JSON Data Model
Drill supports JSON (JavaScript Object Notation), a self-describing data format. The data itself implies its schema and has the following characteristics:
- Language-independent
- Textual format
- Loosely defined, weak data typing
Semi-structured JSON data often consists of complex, nested elements having schema-less fields that differ type-wise from row to row. The data can constantly evolve. Applications typically add and remove fields frequently to meet business requirements.
Using Drill you can natively query dynamic JSON data sets using SQL. Drill treats a JSON object as a SQL record. One object equals one row in a Drill table.
You can also query compressed .gz JSON files.
In addition to the examples presented later in this section, see “How to Analyze Highly Dynamic Datasets with Apache Drill” for information about how to analyze a JSON data set.
Data Type Mapping
JSON data consists of the following types:
- Array: ordered values, separated by commas, enclosed in square brackets
- Boolean: true or false
- null: empty value
- Object: unordered key/value collection enclosed in curly braces
- String: Unicode enclosed in double quotation marks
- Value: a string, number, true, false, null
- Whitespace: used between tokens
- Number: double-precision floating point number, including exponential numbers, NaN, and Infinity. Octal and hexadecimal are not supported.
Drill 1.13 and later supports NaN (Not-a-Number) and Infinity (both POSITIVE and NEGATIVE) as numeric values. This support introduces the following session options, which are set to true by default:
store.json.writer.allow_nan_inf
store.json.reader.allow_nan_inf
Drill writes NaN and Infinity values as literals to a JSON file when store.json.writer.allow_nan_inf
is set to true. When set to false, Drill writes NaN and Infinity values as string values to a JSON file. If a query selects NaN or Infinity values in a JSON file, and store.json.reader.allow_nan_inf
is set to false, Drill returns an error message. You can use the SET command to change the option settings.
The following table shows SQL-JSON data type mapping:
| SQL Type | JSON Type | Description |
|---|---|---|
| BOOLEAN | Boolean | True or false |
| BIGINT | Numeric | Number having no decimal point in JSON, 8-byte signed integer in Drill |
| DOUBLE | Numeric | Number having a decimal point in JSON, 8-byte double precision floating point number in Drill |
| VARCHAR | String | Character string of variable length |
By default, Drill does not support JSON lists of different types. For example, JSON does not enforce types or distinguish between integers and floating point values. When reading numerical values from a JSON file, Drill distinguishes integers from floating point numbers by the presence or lack of a decimal point. If some numbers in a JSON map or array appear with and without a decimal point, such as 0 and 0.0, Drill throws a schema change error. You use the following options to read JSON lists of different types:
store.json.read_numbers_as_double
Reads numbers from JSON files with or without a decimal point as DOUBLE. You need to cast numbers from DOUBLE to other numerical types only if you cannot use the numbers as DOUBLE.store.json.all_text_mode
Reads all data from JSON files as VARCHAR. You need to cast numbers from VARCHAR to numerical data types, such as DOUBLE or INTEGER.
The default setting of store.json.all_text_mode
and store.json.read_numbers_as_double
options is false. Using either option prevents schema errors, but using store.json.read_numbers_as_double
has an advantage over store.json.all_text_mode
. Using store.json.read_numbers_as_double
typically involves less explicit casting than using store.json.all_text_mode
because you can often use the numerical data as is--DOUBLE.
Handling Type Differences
Set the store.json.read_numbers_as_double
property to true.
ALTER SESSION SET `store.json.read_numbers_as_double` = true;
When you set this option, Drill reads all numbers from the JSON files as DOUBLE. After reading the data, use a SELECT statement in Drill to cast data as follows:
- Cast JSON values to SQL types, such as BIGINT, FLOAT, and INTEGER.
- Cast JSON strings to Drill Date/Time Data Type Formats.
“Query Complex Data” show how to use composite types to access nested arrays.
Drill uses these types internally for reading complex and nested data structures from data sources such as JSON.
Experimental Feature: Heterogeneous types
The Union type allows storing different types in the same field. This new feature is still considered experimental, and must be explicitly enabled by setting the exec.enabel_union_type
option to true.
ALTER SESSION SET `exec.enable_union_type` = true;
With this feature enabled, JSON data with changing types, which previously could not be queried by drill, are now queryable.
A field with a Union type can be used inside of functions. Drill will automatically handle evaluation of the function appropriately for each type. If the data requires special handling for the different types, you can do this with case statement, leveraging the new type
functions:
select 1 + case when is_list(a) then a[0] else a end from table;
In this example, the column a contains both scalar and list types, so the case where it is a list is handled by using the first element of the array.
Reading JSON
To read JSON data using Drill, use a file system storage plugin that defines the JSON format. You can use the dfs
storage plugin, which includes the definition.
JSON data is often complex. Data can be deeply nested and semi-structured. but you can use workarounds covered later.
Drill reads tuples defined in single objects, having no comma between objects. A JSON object is an unordered set of name/value pairs. Curly braces delimit objects in the JSON file:
{ name: "Apples", desc: "Delicious" }
{ name: "Oranges", desc: "Florida Navel" }
To read and analyze complex JSON files, use the FLATTEN and KVGEN functions. For example, you need to flatten the data to read all the names in this JSON file:
{"Fruits": [{"name":"Apples", "quantity":115},
{"name":"Oranges","quantity":199},
{"name":"Peaches", "quantity":116}
]
}
To flatten the data and read the names, use a subquery that flattens the complex nesting. Use table aliases, t and flatdata, to resolve ambiguities.
SELECT t.flatdata.name FROM (select flatten(Fruits) AS flatdata FROM dfs.`/Users/path/fruits.json`) t;
Writing JSON
You can write data from Drill to a JSON file. The following setup is required:
-
In the storage plugin definition, include a writable (mutable) workspace.
-
Set the output format to JSON. For example:
ALTER SESSION SET `store.format`='json';
-
Use the path to the workspace location in a CTAS command. for example:
USE myplugin.myworkspace; CREATE TABLE my_json AS SELECT my column from dfs.`<path_file_name>`;
Drill performs the following actions, as shown in the complete CTAS command example:
- Creates a directory using table name.
- Writes the JSON data to the directory in the workspace location.
Analyzing JSON
Generally, you query JSON files using the following syntax, which includes a table alias. The alias is sometimes required for querying complex data. Because of the ambiguity between y.z where y could be a column or a table, Drill requires a table prefix for referencing a field inside another field (t.y.z). This isn’t required in the case y, y[z] or y[z].x because these references are not ambiguous. Observe the following guidelines:
-
Use dot notation to drill down into a JSON map.
SELECT t.level1.level2. . . . leveln FROM <storage plugin location>`myfile.json` t
-
Use square brackets, array-style notation to drill down into a JSON array.
SELECT t.level1.level2[n][2] FROM <storage plugin location>`myfile.json` t;
The first index position of an array is 0.
-
Do not use a map, array or repeated scalar type in GROUP BY, ORDER BY or in a comparison operator.
Drill returns null when a document does not have the specified map or level.
Use the following techniques to query complex, nested JSON:
- Flatten nested data
- Generate key/value pairs for loosely structured data
Example: Flatten and Generate Key Values for Complex JSON
This example uses the following data that represents unit sales of tickets to events that were sold over a period of several days in December:
ticket_sales.json Contents
{
"type": "ticket",
"venue": 123455,
"sales": {
"12-10": 532806,
"12-11": 112889,
"12-19": 898999,
"12-21": 10875
}
}
{
"type": "ticket",
"venue": 123456,
"sales": {
"12-10": 87350,
"12-15": 972880,
"12-19": 49999,
"12-21": 857475
}
}
Take a look at the data in Drill:
|---------|---------|---------------------------------------------------------------|
| type | venue | sales |
|---------|---------|---------------------------------------------------------------|
| ticket | 123455 | {"12-10":532806,"12-11":112889,"12-19":898999,"12-21":10875} |
| ticket | 123456 | {"12-10":87350,"12-19":49999,"12-21":857475,"12-15":972880} |
|---------|---------|---------------------------------------------------------------|
2 rows selected (1.343 seconds)
Generate Key/Value Pairs
Continuing with the data from previous example, use the KVGEN (Key Value Generator) function to generate key/value pairs from complex data. Generating key/value pairs is often helpful when working with data that contains arbitrary maps consisting of dynamic and unknown element names, such as the ticket sales data in this example. For example purposes, take a look at how kvgen breaks the sales data into keys and values representing the key dates and number of tickets sold:
SELECT KVGEN(tkt.sales) AS `key dates:tickets sold` FROM dfs.`/Users/drilluser/ticket_sales.json` tkt;
|---------------------------------------------------------------------------------------------------------------------------------------|
| key dates:tickets sold |
|---------------------------------------------------------------------------------------------------------------------------------------|
| [{"key":"12-10","value":"532806"},{"key":"12-11","value":"112889"},{"key":"12-19","value":"898999"},{"key":"12-21","value":"10875"}] |
| [{"key":"12-10","value":"87350"},{"key":"12-19","value":"49999"},{"key":"12-21","value":"857475"},{"key":"12-15","value":"972880"}] |
|---------------------------------------------------------------------------------------------------------------------------------------|
2 rows selected (0.106 seconds)
KVGEN allows queries against maps where the keys themselves represent data rather than a schema, as shown in the next example.
Flatten JSON Data
FLATTEN breaks the list of key-value pairs into separate rows on which you can apply analytic functions. FLATTEN takes a JSON array, such as the output from kvgen(sales), as an argument. Using the all (*) wildcard as the argument is not supported and returns an error. The following example continues using data from the previous example:
SELECT FLATTEN(kvgen(sales)) Sales
FROM dfs.`/Users/drilluser/drill/ticket_sales.json`;
|--------------------------------|
| Sales |
|--------------------------------|
| {"key":"12-10","value":532806} |
| {"key":"12-11","value":112889} |
| {"key":"12-19","value":898999} |
| {"key":"12-21","value":10875} |
| {"key":"12-10","value":87350} |
| {"key":"12-19","value":49999} |
| {"key":"12-21","value":857475} |
| {"key":"12-15","value":972880} |
|--------------------------------|
8 rows selected (0.171 seconds)
Example: Aggregate Loosely Structured Data
Use flatten and kvgen together to aggregate the data from the previous example. Make sure all text mode is set to false to sum numbers. Drill returns an error if you attempt to sum data in all text mode.
ALTER SESSION SET `store.json.all_text_mode` = false;
Sum the ticket sales by combining the SUM
, FLATTEN
, and KVGEN
functions in a single query.
SELECT SUM(tkt.tot_sales.`value`) AS TicketSold FROM (SELECT flatten(kvgen(sales)) tot_sales FROM dfs.`/Users/drilluser/ticket_sales.json`) tkt;
|--------------|
| TicketsSold |
|--------------|
| 3523273.0 |
|--------------|
1 row selected (0.244 seconds)
Example: Aggregate and Sort Data
Sum and group the ticket sales by date and sort in ascending order of total tickets sold.
SELECT `right`(tkt.tot_sales.key,2) `December Date`,
SUM(tkt.tot_sales.`value`) AS TotalSales
FROM (SELECT FLATTEN(kvgen(sales)) tot_sales
FROM dfs.`/Users/drilluser/ticket_sales.json`) tkt
GROUP BY `right`(tkt.tot_sales.key,2)
ORDER BY TotalSales;
|----------------|-------------|
| December Date | TotalSales |
|----------------|-------------|
| 11 | 112889.0 |
| 10 | 620156.0 |
| 21 | 868350.0 |
| 19 | 948998.0 |
| 15 | 972880.0 |
|----------------|-------------|
5 rows selected (0.252 seconds)
Example: Access a Map Field in an Array
To access a map field in an array, use dot notation to drill down through the hierarchy of the JSON data to the field. Examples are based on the following City Lots San Francisco in .json.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties":
{
"MAPBLKLOT": "0001001",
"BLKLOT": "0001001",
"BLOCK_NUM": "0001",
"LOT_NUM": "001",
"FROM_ST": "0",
"TO_ST": "0",
"STREET": "UNKNOWN",
"ST_TYPE": null,
"ODD_EVEN": "E" },
"geometry":
{
"type": "Polygon",
"coordinates":
[ [
[ -122.422003528252475, 37.808480096967251, 0.0 ],
[ -122.422076013325281, 37.808835019815085, 0.0 ],
[ -122.421102174348633, 37.808803534992904, 0.0 ],
[ -122.421062569067274, 37.808601056818148, 0.0 ],
[ -122.422003528252475, 37.808480096967251, 0.0 ]
] ]
}
},
. . .
This example shows how to drill down using array notation plus dot notation in features[0].properties.MAPBLKLOT to get the MAPBLKLOT property value in the San Francisco city lots data:
SELECT features[0].properties.MAPBLKLOT, FROM dfs.`/Users/drilluser/citylots.json`;
|------------|
| EXPR$0 |
|------------|
| 0001001 |
|------------|
1 row selected (0.163 seconds)
To access the second geometry coordinate of the first city lot in the San Francisco city lots, use array indexing notation for the coordinates as well as the features:
SELECT features[0].geometry.coordinates[0][1]
FROM dfs.`/Users/drilluser/citylots.json`;
|-------------------|
| EXPR$0 |
|-------------------|
| 37.80848009696725 |
|-------------------|
1 row selected (0.19 seconds)
More examples of workarounds for drilling down into the city lots data are presented in the following sections:
More examples of drilling down into an array are shown in “Selecting Nested Data for a Column”.
Example: Flatten an Array of Maps using a Subquery
By flattening the following JSON file, which contains an array of maps, you can evaluate the records of the flattened data.
{"name":"classic","fillings":[ {"name":"sugar","cal":500} , {"name":"flour","cal":300} ] }
SELECT flat.fill FROM (SELECT FLATTEN(t.fillings) AS fill FROM dfs.flatten.`test.json` t) flat WHERE flat.fill.cal > 300;
|----------------------------|
| fill |
|----------------------------|
| {"name":"sugar","cal":500} |
|----------------------------|
1 row selected (0.421 seconds)
Use a table alias for column fields and functions when working with complex data sets. Currently, you must use a subquery when operating on a flattened column. Eliminating the subquery and table alias in the WHERE clause, for example flat.fillings[0].cal > 300
, does not evaluate all records of the flattened data against the predicate and produces the wrong results.
Example: Access Map Fields in a Map
This example uses a WHERE clause to drill down to a third level of the following JSON hierarchy to get the max_hdl greater than 160:
{
"SOURCE": "Allegheny County",
"TIMESTAMP":<PHONE_NUMBER>989,
"birth": {
"id": 35731300,
"firstname": "Jane",
"lastname": "Doe",
"weight": "CATEGORY_1",
"bearer": {
"father": "John Doe",
"ss": "208-55-5983",
"max_ldl": 180,
"max_hdl": 200
}
}
}
{
"SOURCE": "Marin County",
"TIMESTAMP":<PHONE_NUMBER>,
"birth": {
"id": 35731309,
"firstname": "Somporn",
"lastname": "Thongnopneua",
"weight": "CATEGORY_2",
"bearer": {
"father": "Jeiranan Thongnopneua",
"ss": "208-25-2223",
"max_ldl": 110,
"max_hdl": 150
}
}
}
Use dot notation, for example t.birth.lastname
and t.birth.bearer.max_hdl
to drill down to the nested level:
SELECT t.birth.lastname AS Name, t.birth.weight AS Weight
FROM dfs.`Users/drilluser/vitalstat.json` t
WHERE t.birth.bearer.max_hdl < 160;
|----------------|------------|
| Name | Weight |
|----------------|------------|
| Thongneoupeanu | CATEGORY_2 |
|----------------|------------|
1 row selected (0.142 seconds)
Limitations and Workarounds
In most cases, you can use a workaround, presented in the following sections, to overcome the following limitations:
- Complex nested data
- Commas between records
- Irregular data
- Varying types
- Misusing Dot Notation
- Lengthy JSON objects
- Complex JSON objects
- Schema changes
- Selecting all in a JSON directory query
Complex nested data
Drill cannot read some complex nested arrays unless you use a table alias.
Workaround: To query n-level nested data, use the table alias to remove ambiguity; otherwise, column names such as user_info are parsed as table names by the SQL parser. The alias is not needed for data, such as dev_id, date, and time, that are not nested:
{"dev_id": 0,
"date":"07/26/2013",
"time":"04:56:59",
"user_info":
{"user_id":28,
"device":"A306",
"state":"mt"
},
"marketing_info":
{"promo_id":4,
"keywords":
["stay","to","think","watch","glasses",
"joining","might","pay","in","your","buy"]
},
"dev_info":
{"prod_id":[16],"purch_flag":"false"
}
}
. . .
SELECT dev_id, `date`, `time`, t.user_info.user_id, t.user_info.device, t.dev_info.prod_id
FROM dfs.`/Users/mypath/example.json` t;
Commas between records
Continuing the example “Accessing a Map Field in an Array”, Drill cannot find data in multiple records separated by commas.
Workaround: Delete commas between records.
After deleting the commas, the following query works:
SELECT
lots.geometry.coordinates[0][0][0] longitude,
lots.geometry.coordinates[0][0][1] latitude,
lots.geometry.coordinates[0][0][2] altitude
FROM dfs.`/Users/drilluser/citylots.json` lots LIMIT 1;
|-----------------------|---------------------|-----------|
| longitude | latitude | altitude |
|-----------------------|---------------------|-----------|
| -122.422003528252475 | 37.808480096967251 | 0.0 |
|-----------------------|---------------------|-----------|
1 row selected (0.618 seconds)
Irregular data
Data that lacks uniformity causes a problem. Continuing the example “Accessing a Map Field in an Array”, Drill cannot handle the intermixed Polygon shapes and MultiPolygon shapes.
Workaround: None, per se, but if you avoid querying the multi-polygon lines (120 of them), Drill works fine on the entire remainder. For example:
WITH tbl AS (
SELECT
CAST(lots.geometry.coordinates[0][0][0] AS FLOAT) longitude,
CAST(lots.geometry.coordinates[0][0][1] AS FLOAT) latitude,
CAST(lots.geometry.coordinates[0][0][2] AS FLOAT) altitude
FROM dfs./Users/drilluser/uniform.json` lots)
SELECT
AVG(longitude),
AVG(latitude),
MAX(altitude)
FROM tbl;
|---------------------|--------------------|---------|
| EXPR$0 | EXPR$1 | EXPR$2 |
|---------------------|--------------------|---------|
| -122.4379846573301 | 37.75844260679518 | 0.0 |
|---------------------|--------------------|---------|
1 row selected (6.64 seconds)
Another option is to use the experimental union type.
Varying types
Any attempt to query a list that has varying types fails. Continuing the example “Accessing a Map Field in an Array”, the city lots file has a list of lists of coordinates for shapes of type Polygon. For shapes of MultiPolygon, this file has lists of lists of coordinates. Even a query that tries to filter away the MultiPolygons will fail.
Workaround: Use union type (experimental).
Misusing Dot Notation
Drill accesses an object when you use dot notation in the SELECT statement only when the dot is not the first dot in the expression. Drill attempts to access the table that appears after the first dot. For example, records in some-file
have a geometry field that Drill successfully accesses given this query:
select geometry from dfs.`some-file.json`;
The following query, however, causes an error because there is no table named geometry.
select geometry.x from dfs.`some-file.json`;
Workaround: Use a table alias. For example:
select tbl.geometry.x from dfs.`some-file.json` tbl;
Lengthy JSON objects
Currently, Drill cannot manage lengthy JSON objects, such as a gigabit JSON file. Finding the beginning and end of records can be time consuming and require scanning the whole file.
Workaround: Use a tool to split the JSON file into smaller chunks of 64-128MB or 64-256MB initially until you know the total data size and node configuration. Keep the JSON objects intact in each file. A distributed file system, such as HDFS, is recommended over trying to manage file partitions.
Complex JSON objects
Complex arrays and maps can be difficult or impossible to query.
Workaround: Separate lengthy objects into objects delimited by curly braces using the following functions:
-
FLATTEN separates a set of nested JSON objects into individual rows in a DRILL table.
-
KVGEN separates objects having more elements than optimal for querying.
Schema changes
Drill cannot read JSON files containing changes in the schema. For example, attempting to query an object having array elements of different data types cause an error:
Drill interprets numbers that do not have a decimal point as BigInt values. In this example, Drill recognizes the first two coordinates as doubles and the third coordinate as a BigInt, which causes an error.
Workaround: Set the store.json.read_numbers_as_double
property, described earlier, to true.
ALTER SESSION SET `store.json.read_numbers_as_double` = true;
Selecting all in a JSON directory query
Drill currently returns only fields common to all the files in a directory query that selects all (SELECT *) JSON files.
Workaround: Query each file individually. Another option is to use the union type (experimental).


Welcome to my online portfolio! I am a fourth year undergraduate physics and astronomy student at the University of British Columbia. My goal is to go to graduate school for particle physics, and I am currently looking for opportunities to get into research. I am eligible for NSERC awards and will be available to work this summer (2018). If you think I might be a good match for a research opportunity, please don't hesitate to reach out!
Here are my resume and transcript, but the rest of this website is a more detailed description of everything on there:
Last summer, I went to the University of Toronto to participate in the SURP program. I worked with Professor Jo Bovy to develop a Python class to represent the gravitational potential of the spiral arms of galaxies in the galpy open source Python library. I also wrote a comprehensive test suite using pytest to make sure my program works as intended. Furthemore, I used my code to investigate the effects of spiral arms on the Oort constants. I learned a lot about doing actual research and working in a small research team.
Worked with Professor Marek Malak to develop and test a micro-controller based on the Intel Galileo Gen 2 Development Board (Arduino) for the Hitachi 3D Tomography Holder used in electron microscopes. Programmed the controller in the Arduino language and MATLAB to work with the existing microscopy software (Maestro). Improved the rotation angle resolution of the tomography holder from 1° to 0.25°.
I started working as a lifeguard during my grade 12 year.
Used the propagator method to calculate the bound states of an electron in N square potential wells.
Determined the Curied temperature of the 2D Ising model using Monte Carlo methods.
Used the Runge-Kutta method to solve the differential equation for a driven, damped pendulum. Examined unforced damped motion with under-damped, critically-damped, and over-damped motions. Examined the stable and unstable manifolds of the pendulum using poincare sections.
Modelled the spread of an infection through a population with variable vaccination rates, infection rates, vaccine and treatment costs, and population densities.
Solved the differential equation for projectile motion with air drag on the surface of the Earth using the odeint function from the scipy.optimize library. Computed the path for various launch angles and initial velocities and plotted various quantities of interest.
Computed and plotted the free fall and parachute phases of a sky dive jump from an altitude of approximately 40km using SciPy's odeint for numerical integration.
Created an animation of the forest fire model.
Created an animation of brownian motion using a simple model. Verified that the distance travelled by the particle is proportional to the square root of time.
Numerically solved the equations of motion for a many body system and simulated the orbit of planets using average values as initial conditions.
Simulated a forced, damped pendulum, and examined the effects of different forcing frequencies. Created an animation of a forced, damped pendulum at resonance frequency.
Quiz game where you pick a city and guess where a restaurant is. Data for the restaurants is obtained from Yelp and route data from Google Maps. Markers change colours from red to green on a linear scale as the guess gets closer to the restaurant. Route between the markers is plotted in red on the map. Top five high scores are tracked and displayed with the best scores highlighted. Bonus "tips" feature implemented for extra credit.
This game started out as just a lab in CPSC 110, but I got really into it and made a lot of improvements to the original code submitted for the lab. I made the snake able to grow, added two "food" dots that appear randomly on the screen, changed the colors, and even added a function to keep track of the score.
Here are the lab reports I wrote for my second and third year physics lab courses.
Apart from physics, I like playing chess online and watching chess videos on Youtube. I'm just starting out, but I'm really enjoying the game. As white, I like starting with 1.d4 and going for a queen's gambit line. As black, I like playing the sicilian Najdorf variation because of the sharp lines and exciting exchange sacrifices. I'm quite terrible at end games, and in bullet chess I am still often too weak, too slow, but I am steadily improving. I am looking forward to entering my first real chess tournament soon. My favorite chess player is Yasser Seirawan.
I am also interested in staving off physical atrophy and disease, and in that vein, I like to run, swim, or lift weights at the gym. I am currently training for the Vancouver Sun Run in April.


Overview
Package
Class
Deprecated
Index
Help
Groovy Documentation
PREV NEXT
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
_
A
ADV_BAR_CHART
- Enum Constant in
DemoCharts
ADV_BAR_CHART
- Property in
DemoController
ADV_BAR_CHART_SKETCH
- Enum Constant in
DemoCharts
ADV_BAR_CHART_SKETCH
- Property in
DemoController
ADV_DOT_LINES
- Enum Constant in
DemoCharts
ADV_DOT_LINES
- Property in
DemoController
ADV_FLOATING_BARS
- Enum Constant in
DemoCharts
ADV_FLOATING_BARS
- Property in
DemoController
AREA_HOLLOW
- Enum Constant in
DemoCharts
AREA_HOLLOW
- Property in
DemoController
author
- Property in
OfchartGrailsPlugin
authorEmail
- Property in
OfchartGrailsPlugin
B
BAR_CHART_3D
- Enum Constant in
DemoCharts
BAR_CHART_3D
- Property in
DemoController
BAR_CHART
- Enum Constant in
DemoCharts
BAR_CHART
- Property in
DemoController
BAR_CHART_FILLED
- Enum Constant in
DemoCharts
BAR_CHART_FILLED
- Property in
DemoController
BAR_CHART_GLASS
- Enum Constant in
DemoCharts
BAR_CHART_GLASS
- Property in
DemoController
BAR_CHART_SKETCH
- Enum Constant in
DemoCharts
BAR_CHART_SKETCH
- Property in
DemoController
BAR_H
- Enum Constant in
DemoCharts
BAR_H
- Property in
DemoController
C
chart
- Property in
GraphTagLib
COMPLEX_LABELS
- Enum Constant in
DemoCharts
COMPLEX_LABELS
- Property in
DemoController
D
DataSource
- Class in
grails-app.conf
DataSource
()
- Constructor in
DataSource
DemoCharts
- Enum in
src.java.org.codehaus.groovy.grails.plugins.ofchart.demo
DemoCharts
(String)
- Method in
DemoCharts
DemoController
- Class in
grails-app.controllers.org.codehaus.groovy.grails.plugins.ofchart.demo
DemoController
()
- Constructor in
DemoController
DemoControllerTests
- Class in
test.unit.org.codehaus.groovy.grails.plugins.ofc.demo
DemoControllerTests
()
- Constructor in
DemoControllerTests
dependsOn
- Property in
OfchartGrailsPlugin
description
- Property in
OfchartGrailsPlugin
display
- Field in
DemoCharts
documentation
- Property in
OfchartGrailsPlugin
doWithApplicationContext
- Property in
OfchartGrailsPlugin
doWithDynamicMethods
- Property in
OfchartGrailsPlugin
doWithSpring
- Property in
OfchartGrailsPlugin
doWithWebDescriptor
- Property in
OfchartGrailsPlugin
E
F
G
getDisplay
()
- Method in
DemoCharts
grailsVersion
- Property in
OfchartGrailsPlugin
GraphTagLib
- Class in
grails-app.taglib.org.codehaus.groovy.grails.plugins.ofchart.taglib
GraphTagLib
()
- Constructor in
GraphTagLib
H
I
index
- Property in
DemoController
J
K
L
LINE_DOT
- Enum Constant in
DemoCharts
LINE_DOT
- Property in
DemoController
LINE_HOLLOW
- Enum Constant in
DemoCharts
LINE_HOLLOW
- Property in
DemoController
M
MANY_LINES
- Enum Constant in
DemoCharts
MANY_LINES
- Property in
DemoController
mappings
- Property in
UrlMappings
N
namespace
- Property in
GraphTagLib
O
OfchartGrailsPlugin
- Class in
DefaultPackage
OfchartGrailsPlugin
()
- Constructor in
OfchartGrailsPlugin
onChange
- Property in
OfchartGrailsPlugin
onConfigChange
- Property in
OfchartGrailsPlugin
P
PIE_CHART
- Enum Constant in
DemoCharts
PIE_CHART
- Property in
DemoController
pluginExcludes
- Property in
OfchartGrailsPlugin
Q
R
resources
- Property in
GraphTagLib
S
SCATTER
- Enum Constant in
DemoCharts
SCATTER
- Property in
DemoController
setUp
()
- Method in
DemoControllerTests
SIMPLE_CHART
- Enum Constant in
DemoCharts
SIMPLE_CHART
- Property in
DemoController
STACKED_BAR
- Enum Constant in
DemoCharts
STACKED_BAR
- Property in
DemoController
T
tearDown
()
- Method in
DemoControllerTests
testSomething
()
- Method in
DemoControllerTests
title
- Property in
OfchartGrailsPlugin
U
UrlMappings
- Class in
grails-app.conf
UrlMappings
()
- Constructor in
UrlMappings
V
valueOf
(String)
- Method in
DemoCharts
Returns the enum constant of this type with the specified name.
values
()
- Method in
DemoCharts
Returns an array containing the constants of this enum type, in the order they are declared.
version
- Property in
OfchartGrailsPlugin
W
X
Y
Z
_
_Install
- Class in
scripts
_Install
()
- Constructor in
_Install
_Uninstall
- Class in
scripts
_Uninstall
()
- Constructor in
_Uninstall
_Upgrade
- Class in
scripts
_Upgrade
()
- Constructor in
_Upgrade
Groovy Documentation


I thought I'd give these seeds a try but wanted to reduce the seering pain associated with it so I made my own recipe. Simply I took 3 seeds and popped them on a dry skillet. Peeled them and ground them to a fine powder, then I placed a small amount of baking soda in a metal ladle and put the seed powder in, just enough water to cover the mix then heated till boiling for 5 seconds, I then put the whole wet mix in a coffee filter and squeezed out as much liquid as possible on a flat glass plate, put the plate in the microwave until it dried.
Now I scraped the powder off the plate, made two big lines, railed them....OK there still was the pain and alot of sneezing but all of this was bearable. I'm sure it was not half as bad as others have had on the powder without the extraction i did. Now the heavy body intense visuals and disconnected sound effects. VERY nice trip. 10 minutes or so, and no seed solids to drip down my throat. All in all it was worth the effort. Will continue to do this over and over again! P.S. smoking works too but smells terrible and tastes as bad. Also hard to get the same effect with the smoking method.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Educational Workshop
Description: Water and staying hydrated was another key healthcare message from participants that related to selfcare.
Comments:
- 'Drink plenty of water to keep your body clean from the inside.'
- 'Drink hot water in the morning.'
- 'The participants mentioned that they drink bottled water.'
Full Data link


--- layout: default title: ICBB'18 - PayPal meta: PayPal Payment information for Registration keyword: biotechnology conference, biofuel conference, biomaterials conference, biomedical conference, bioengineering conference, biocatalysis conference, biochemical engineering conference, biochemistry, bioenergy, biology, biomechanics, biomechatronics conference, biomedicine, toxicology, biotechnology, biofuel, biomaterials, biomedical, bioengineering, biocatalysis, biochemical engineering, biochemistry conference, bioenergy conference, biology conference, biomechanics conference, biomechatronics, biomedicine conference, toxicology conference ---
Please select the proper registration type from the drop-down box and click Pay Now to proceed with the payment.
If you are not able to use this method of payment, you may use our other types of payment. For more information please visit the link below:


Optical waveguides are channels in a material which spatially confine light, directing its propagation. Waveguides can be written onto materials via laser irradiation, where the laser changes the refractive index of the material. In nanocrystalline YSZ, the material of the Window to the Brain implant, it is possible to write waveguides using much lower laser power than for other materials, such as silicon. We have previously demonstrated waveguides written along the surface of the YSZ implants, and are now working on writing waveguides across the bulk of the implant. Ultimately, we aim to couple these waveguides to optical fibers to allow for greater optical penetration to deeper targets within the brain. We are also interested in writing diverging waveguide structures to increase the field of view for diagnostic imaging procedures (e.g. Optical Coherence Tomography imaging).


Router Workspace
Save
Editor Themes
cobalt
monokai
terminal
Create Directory
Create File
Delete
Default


Romance of the Three Kingdoms is a historical novel written in the 14th century by Luo Guanzhong. It is one of the Four Great Classical Novels of China, and the basis of Koei's popular video game franchises Romance of the Three Kingdoms and Dynasty Warriors.
The novel contains 120 chapters and around 1000 named characters. Hundreds of characters from the novel appear as officers in the Koei games. The number of characters and the complexity of their relationships makes visualization a great tool to help the reader or student understand the novel and its various adaptations.


This is my own blog, where I showcase my projects, post tutorials or document my learning.
Check it outThis project was built from the ground up, and features clean architecture, testing, and good documentation.
Check it outA minimalistic timer that works for screens of all shapes and sizes, this is something I've always wanted to make.
Check it outThis is a website for Anavasi Mountain Resort, a hotel in the Tzoumerka mountains, Greece.
Check it out


| Book of Mormon |
Annotations |
|
Chapter 12
|
|
|
1 Now Alma, seeing that the words of Amulek had silenced
Zeezrom, for he beheld that Amulek had caught him in his lying and deceiving
to destroy him, and seeing that he began to tremble under a consciousness of
his guilt, he opened his mouth and began to speak unto him, and to establish
the words of Amulek, and to explain things beyond, or to unfold the
scriptures beyond that which Amulek had done.
|
It would great if this is how modern prophets operated.
Unfortunately they are not so bold, and actually have gotten tripped up
themselves pretty easily.
An example that comes to mind is Elder Jeffrey Holland having to backpedal
when it was pointed out that his response was not true in the BBC documentary
“The Mormon Candidate” (The Elder Holland exchange starts at about 1:21 into
this video).
|
|
2 Now the words that Alma spake unto Zeezrom were heard by
the people round about; for the multitude was great, and he spake on this
wise:
|
|
|
3 Now Zeezrom, seeing that thou hast been taken in thy
lying and craftiness, for thou hast not lied unto men only but thou hast lied
unto God; for behold, he knows all thy thoughts, and thou seest that thy
thoughts are made known unto us by his Spirit;
|
|
|
4 And thou seest that we know that thy plan was a very
subtle plan, as to the subtlety of the devil, for to lie and to deceive this
people that thou mightest set them against us, to revile us and to cast us
out—
|
|
|
5 Now this was a plan of thine adversary, and he hath
exercised his power in thee. Now I would that ye should remember that what I
say unto thee I say unto all.
|
|
|
6 And behold I say unto you all that this was a snare of
the adversary, which he has laid to catch this people, that he might bring
you into subjection unto him, that he might encircle you about with his
chains, that he might chain you down to everlasting destruction, according to
the power of his captivity.
|
|
|
7 Now when Alma had spoken these words, Zeezrom began to
tremble more exceedingly, for he was convinced more and more of the power of
God; and he was also convinced that Alma and Amulek had a knowledge of him,
for he was convinced that they knew the thoughts and intents of his heart;
for power was given unto them that they might know of these things according
to the spirit of prophecy.
|
|
|
8 And Zeezrom began to inquire of them diligently, that he
might know more concerning the kingdom of God. And he said unto Alma: What
does this mean which Amulek hath spoken concerning the resurrection of the
dead, that all shall rise from the dead, both the just and the unjust, and
are brought to stand before God to be judged according to their works?
|
|
|
9 And now Alma began to expound these things unto him,
saying: It is given unto many to know the mysteries of God; nevertheless they
are laid under a strict command that they shall not impart only according to
the portion of his word which he doth grant unto the children of men,
according to the heed and diligence which they give unto him.
|
|
|
10 And therefore, he that will harden his heart, the same
receiveth the lesser portion of the word; and he that will not harden his
heart, to him is given the greater portion of the word, until it is given
unto him to know the mysteries of God until he know them in full.
|
|
|
11 And they that will harden their hearts, to them is
given the lesser portion of the word until they know nothing concerning his
mysteries; and then they are taken captive by the devil, and led by his will
down to destruction. Now this is what is meant by the chains of hell.
|
|
|
12 And Amulek hath spoken plainly concerning death, and
being raised from this mortality to a state of immortality, and being brought
before the bar of God, to be judged according to our works.
|
|
|
13 Then if our hearts have been hardened, yea, if we have
hardened our hearts against the word, insomuch that it has not been found in
us, then will our state be awful, for then we shall be condemned.
|
|
|
14 For our words will condemn us, yea, all our works will
condemn us; we shall not be found spotless; and our thoughts will also
condemn us; and in this awful state we shall not dare to look up to our God;
and we would fain be glad if we could command the rocks and the mountains to
fall upon us to hide us from his presence.
|
|
|
15 But this cannot be; we must come forth and stand before
him in his glory, and in his power, and in his might, majesty, and dominion,
and acknowledge to our everlasting shame that all his judgments are just;
that he is just in all his works, and that he is merciful unto the children
of men, and that he has all power to save every man that believeth on his
name and bringeth forth fruit meet for repentance.
|
|
|
16 And now behold, I say unto you then cometh a death,
even a second death, which is a spiritual death; then is a time that
whosoever dieth in his sins, as to a temporal death, shall also die a
spiritual death; yea, he shall die as to things pertaining unto righteousness.
|
|
|
17 Then is the time when their torments shall be as a lake
of fire and brimstone, whose flame ascendeth up forever and ever; and then is
the time that they shall be chained down to an everlasting destruction,
according to the power and captivity of Satan, he having subjected them
according to his will.
|
The qualifier for destruction here is “everlasting.” One
is left to wonder what that means exactly since according to D&C 19:6-12
the words “endless” and “eternal” do not mean without end when it comes to
“endless torment” or “eternal damnation”. These verses in the D&C explain
that “endless” and “eternal” are used because, “it is more express than other
scriptures, that it might work upon the hearts of the children of men.” When
people read these words in the Book of Mormon, how do they likely understand
the words “endless” and “eternal”? Is this honest communication if D&C 19
reveals the actual meaning of these words? Does “everlasting” also not mean
without end?
|
|
18 Then, I say unto you, they shall be as though there had
been no redemption made; for they cannot be redeemed according to God’s
justice; and they cannot die, seeing there is no more corruption.
|
|
|
19 Now it came to pass that when Alma had made an end of
speaking these words, the people began to be more astonished;
|
|
|
20 But there was one Antionah, who was a chief ruler among
them, came forth and said unto him: What is this that thou hast said, that
man should rise from the dead and be changed from this mortal to an immortal
state, that the soul can never die?
|
|
|
21 What does the scripture mean, which saith that God
placed cherubim and a flaming sword on the east of the garden of Eden,
lest our first parents should enter and partake of the fruit of the tree of
life, and live forever? And thus we see that there was no possible chance
that they should live forever.
|
The only pre-Columbian weapon I can find that was similar
to a sword was the macuahuitl which was made with a plank of wood similar in
shape to a cricket bat with obsidian blades mounted on the edges. It is
similar enough to a sword that it is often referred to as the Aztec sword.
However, the macuahuitl does not seem to fit the Book of
Mormon time frame. “Some groups of Central Mexico, principally in the
transition between the Early and the Late Post-Classic, probably
developed this weapon” (emphasis added, Dr. Marco Antonio Cervera Obregón,
“The macuahuitl: an innovative weapon of the Late Post-Classic in
Mesoamerica”, Arms & Armour, Vol.3, Nov. 2, 2006, p. 146, article from a research journal).
The Post-Classic period is between 900 CE and the Spanish conquest.
|
|
22 Now Alma said unto him: This is the thing which I was
about to explain. Now we see that Adam did fall by the partaking of the
forbidden fruit, according to the word of God; and thus we see, that by his
fall, all mankind became a lost and fallen people.
|
|
|
23 And now behold, I say unto you that if it had been
possible for Adam to have partaken of the fruit of the tree of life at that
time, there would have been no death, and the word would have been void,
making God a liar, for he said: If thou eat thou shalt surely die.
|
|
|
24 And we see that death comes upon mankind, yea, the
death which has been spoken of by Amulek, which is the temporal death;
nevertheless there was a space granted unto man in which he might repent;
therefore this life became a probationary state; a time to prepare to meet
God; a time to prepare for that endless state which has been spoken of by us,
which is after the resurrection of the dead.
|
|
|
25 Now, if it had not been for the plan of redemption,
which was laid from the foundation of the world, there could have been no
resurrection of the dead; but there was a plan of redemption laid, which
shall bring to pass the resurrection of the dead, of which has been spoken.
|
|
|
26 And now behold, if it were possible that our first
parents could have gone forth and partaken of the tree of life they would
have been forever miserable, having no preparatory state; and thus the plan
of redemption would have been frustrated, and the word of God would have been
void, taking none effect.
|
|
|
27 But behold, it was not so; but it was appointed unto
men that they must die; and after death, they must come to judgment, even
that same judgment of which we have spoken, which is the end.
|
|
|
28 And after God had appointed that these things should
come unto man, behold, then he saw that it was expedient that man should know
concerning the things whereof he had appointed unto them;
|
|
|
29 Therefore he sent angels to converse with them, who
caused men to behold of his glory.
|
|
|
30 And they began from that time forth to call on his
name; therefore God conversed with men, and made known unto them the plan of
redemption, which had been prepared from the foundation of the world; and
this he made known unto them according to their faith and repentance and
their holy works.
|
|
|
31 Wherefore, he gave commandments unto men, they having
first transgressed the first commandments as to things which were temporal,
and becoming as gods, knowing good from evil, placing themselves in a state
to act, or being placed in a state to act according to their wills and
pleasures, whether to do evil or to do good—
|
This verse teaches that by transgression of eating the fruit
of the tree of knowledge, man came to know the difference between good and
evil, and that this placed them in the state to act, or in other words it put
them into a state of having moral agency.
Yet, prior to this, in the war in Heaven, one third the hosts of heaven were
cast into outer darkness for transgressing. There was a judgment prior to
mortality that indicates that there was already moral agency. These teachings
seem incompatible.
|
|
32 Therefore God gave unto them commandments, after having
made known unto them the plan of redemption, that they should not do evil,
the penalty thereof being a second death, which was an everlasting death as
to things pertaining unto righteousness; for on such the plan of redemption
could have no power, for the works of justice could not be destroyed,
according to the supreme goodness of God.
|
|
|
33 But God did call on men, in the name of his Son, (this
being the plan of redemption which was laid) saying: If ye will repent, and
harden not your hearts, then will I have mercy upon you, through mine Only
Begotten Son;
|
|
|
34 Therefore, whosoever repenteth, and hardeneth not his
heart, he shall have claim on mercy through mine Only Begotten Son, unto a
remission of his sins; and these shall enter into my rest.
|
|
|
35 And whosoever will harden his heart and will do
iniquity, behold, I swear in my wrath that he shall not enter into my rest.
|
|
|
36 And now, my brethren, behold I say unto you, that if ye
will harden your hearts ye shall not enter into the rest of the Lord;
therefore your iniquity provoketh him that he sendeth down his wrath upon you
as in the first provocation, yea, according to his word in the last
provocation as well as the first, to the everlasting destruction of
your souls; therefore, according to his word, unto the last death, as well as
the first.
|
The qualifier for destruction here is “everlasting.” One
is left to wonder what that means exactly since according to D&C 19:6-12
the words “endless” and “eternal” do not mean without end when it comes to
“endless torment” or “eternal damnation”. These verses in the D&C explain
that “endless” and “eternal” are used because, “it is more express than other
scriptures, that it might work upon the hearts of the children of men.” When
people read these words in the Book of Mormon, how do they likely understand
the words “endless” and “eternal”? Is this honest communication if D&C 19
reveals the actual meaning of these words? Does “everlasting” also not mean
without end?
|
|
37 And now, my brethren, seeing we know these things, and
they are true, let us repent, and harden not our hearts, that we provoke not
the Lord our God to pull down his wrath upon us in these his second
commandments which he has given unto us; but let us enter into the rest of
God, which is prepared according to his word.
|
|


Tao Art Gallery
Date
11/23/2016 09:00~14:00
Where
Tao Art Gallery ,Besides Hinduja House Rai Road Worli - 18
Tao Art Gallery has been an able guide, illuminating the way to art for fourteen years now; the gallery was established on the 28th January 2000. Exhibition space is divided into 2 galleries, owned by self-taught artist, curator, connoisseur, collector and philanthropist, Kalpana Shah.
Tao has curated uniquely conceptualized shows highlighting diverse art forms like painting, photography, sculpture, video, performance as well as installation arts. It showcases works of Contemporary masters as well as emerging and mid-career artists.
The gallery is very open-minded towards any creative expression and emphasizes on powerful and innovative presentation of artistic creativity, building a thought provoking experience for all our viewers and inviting dialogues on culture, aesthetics and tradition of visual arts. This juxtaposition of a wide range of art practice enables us to perform the valuable exercise of providing an enriched experience within various art practices. We use considerable resources at our disposal to promote art.
Tao has curated international shows at prestigious spaces in London, Tokyo & Singapore for International Institute of Fine Arts (IIFA). Tao has also been actively involved in publishing various art books promoting a range of art forms of Indian artists and organized book release events, interactive sessions with artists, workshops and lectures aim to propagate love for art, and boost the presence of Indian Art in the global arena. Tao’s macro-vision sees art not in isolation, but as having a cohesive relationship with life itself.


Intro to Sia
Similar to Amazon S3, or Google Cloud Storage, Sia is a cloud storage layer. Just like Amazon and Google, we provide an API that allows developers to upload and download files to and from the network. But unlike Amazon and Google, Sia is decentralized. Files are encrypted and spread across dozens of nodes on the network, such that there is no single point of failure. Sia is also significantly cheaper than Amazon and Google (around 10x cheaper right now). Sia uses a cryptocurrency similar to Bitcoin for all storage payments. Checkout the video below for a short introduction to Sia.


{% extends "base.html" %} {% block content %}
This Flask site uses Canadian Pizza Pizza data to randomly generate your next pizza order!
Find the source on Github!


Welcome to the Kid Money Manager
To view the account, click
here.
Find out more about Kid Money Manager


Download Awesome Cars Spray
Download
Go to your "cstrike" folder and paste the "tempdecal.wad" file in it
Right click on it and check "Read-only" then click okay
Restart your game and see the result
Click to see How to Create Your Own Spray
Go Back


Publications(National Journal)
Click to enter detail
date_range
Publications(Inter National Journal)
Inform the date you wish to get Report
date_range
Publications(National Conference)
Inform the date you wish to get Report
date_range
Publications(Inter National Conference)
Inform the date you wish to get Report
date_range
Book Published
Inform the date you wish to get Report
date_range
Patent Granted
Inform the date you wish to get Report
date_range
Award received
Inform the date you wish to get Report
date_range
Grant received
Inform the date you wish to get Report
date_range


pcf.particle.aws.lambda_function package¶
Submodules¶
pcf.particle.aws.lambda_function.lambda_function module¶
-
class
pcf.particle.aws.lambda_function.lambda_function.
LambdaFunction
(particle_definition)¶ Bases:
pcf.core.aws_resource.AWSResource
This is the implementation of Amazon’s lambda service. This particle works with function code in a zipfile located locally and in s3. Note that having a zipfile locally versus s3 has a slightly different configuration format.
-
RETURN_PARAM_FILTER
= {'CodeSha256', 'DeadLetterConfig', 'Description', 'Environment', 'FunctionName', 'Handler', 'KMSKeyArn', 'MemorySize', 'Role', 'Runtime', 'Timeout', 'TracingConfig', 'VpcConfig'}¶
-
S3_PARAM_CONVERSIONS
= {'S3Bucket': 'Bucket', 'S3Key': 'Key', 's3ObjectVersion': 'VersionId'}¶
-
START_PARAM_FILTER
= {'Code', 'DeadLetterConfig', 'Description', 'Environment', 'FunctionName', 'Handler', 'KMSKeyArn', 'MemorySize', 'Publish', 'Role', 'Runtime', 'Tags', 'Timeout', 'TracingConfig', 'VpcConfig'}¶
-
UNIQUE_KEYS
= ['aws_resource.FunctionName']¶
-
UPDATE_PARAM_FILTER
= {'DeadLetterConfig', 'Description', 'Environment', 'FunctionName', 'Handler', 'KMSKeyArn', 'MemorySize', 'Role', 'Runtime', 'Timeout', 'TracingConfig', 'VpcConfig'}¶
-
_LambdaFunction__s3_to_sha256
()¶ Looks to see if the zipfile located in s3 has a tag with the latest sha256. If there is no tag it calculates the hash and adds the tag.
Returns: base 64 hash
-
_LambdaFunction__zip_local_to_sha256
()¶ Hashes the contents of a local zipfile using sha256
Returns: base 64 hash
-
_LambdaFunction__zipfile_to_sha256
()¶ returns the contents of the lambda code as a sha256 hash. There is a separate process for the code stored locally or in s3
Returns: hash
-
_set_unique_keys
()¶ Logic that sets keys from state definition that are used to uniquely identify the Lambda Function
-
_start
()¶ Starts the lambda particle that matches desired state definition
Returns: response of boto3 create_function
-
_stop
()¶ Lambda function does not have a stopped state so calls terminate.
-
_terminate
()¶ Starts the lambda particle that matches the function_name
Returns: response of boto3 delete_function
-
_update
()¶ Updates the lambda function particle to match current state definition. There is a different function call if the update is the function code in the zipfile or a configuration variable.
-
file_get_contents
()¶ Function gets and reads contents of local zipfile
Returns: file contents
-
flavor
= 'lambda_function'¶
-
get_status
()¶ Calls the get function configuration boto call and returns status missing if the function does not exist. Otherwise will return the current definition.
Returns: current definition
-
is_state_definition_equivalent
()¶ Compares the desired state and current state definitions.
Returns: bool
-
s3client
¶ Create a s3 client if the zipfile is located in s3.
Returns: s3 client
-
sync_state
()¶ Lambda function implementation of sync state. Calls get status and sets the current state.
-


| Total net profit | -113.97 | Gross profit | 10.15 | Gross loss | -124.12 |
| Profit factor | 0.08 | Expected payoff | -1.09 | ||
| Absolute drawdown | -114.04 | Maximal drawdown (%) | 113.33 (-15961.97%) | ||
| Total trades | 105 | Profit trades (% of total) | 14 (13.33%) | Loss trades (% of total) | 91 (86.67%) |
| Long positions (won %) | 76 (14.47%) | Short positions (won %) | 29 (10.34%) | ||
| Largest | profit trade | 1.62 | loss trade | -5.04 | |
| Average | profit trade | 0.73 | loss trade | -1.36 | |
| Minimum | profit trade | 0.03 | loss trade | -0.04 | |
| Maximum | take profit in pips | 189.0 | stop loss in pips | -186.2 | |
| Average | take profit in pips | 12.8 | stop loss in pips | -71.0 | |
| Minimum | take profit in pips | -77.9 | stop loss in pips | -24.1 | |
| Maximum | Reward-Risk | 3.4 | Duration in minutes | 742 | |
| Average | Reward-Risk | 0.5 | Duration in minutes | 67.9 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 0 | |
| Maximum | consecutive wins (profit in money) | 2.0 (0.94) | consecutive losses (loss in money) | 29.0 (-33.16) | |
| Average | consecutive wins | 1.0 | consecutive losses | 7.0 |
| Total net profit | -81.11 | Gross profit | 7.9 | Gross loss | -89.01 |
| Profit factor | 0.09 | Expected payoff | -1.07 | ||
| Absolute drawdown | -81.97 | Maximal drawdown (%) | 81.26 (-11445.07%) | ||
| Total trades | 76 | Profit trades (% of total) | 11 (14.47%) | Loss trades (% of total) | 65 (85.53%) |
| Largest | profit trade | 1.62 | loss trade | -3.63 | |
| Average | profit trade | 0.72 | loss trade | -1.37 | |
| Minimum | profit trade | 0.03 | loss trade | -0.04 | |
| Maximum | take profit in pips | 86.8 | stop loss in pips | -170.0 | |
| Average | take profit in pips | -0.3 | stop loss in pips | -76.7 | |
| Minimum | take profit in pips | -77.9 | stop loss in pips | -29.4 | |
| Maximum | Reward-Risk | 2.6 | Duration in minutes | 547.0 | |
| Average | Reward-Risk | 0.3 | Duration in minutes | 75.0 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 0.0 | |
| Maximum | consecutive wins (profit in money) | 2.0 (0.94) | consecutive losses (loss in money) | 20.0 (-23.95) | |
| Average | consecutive wins | 1.0 | consecutive losses | 7.0 |
| Total net profit | -32.86 | Gross profit | 2.25 | Gross loss | -35.11 |
| Profit factor | 0.06 | Expected payoff | -1.13 | ||
| Absolute drawdown | -32.86 | Maximal drawdown (%) | 31.07 (-1735.75%) | ||
| Total trades | 29 | Profit trades (% of total) | 3 (10.34%) | Loss trades (% of total) | 26 (89.66%) |
| Largest | profit trade | 1.23 | loss trade | -5.04 | |
| Average | profit trade | 0.75 | loss trade | -1.35 | |
| Minimum | profit trade | 0.05 | loss trade | -0.63 | |
| Maximum | take profit in pips | 189.0 | stop loss in pips | -186.2 | |
| Average | take profit in pips | 47.3 | stop loss in pips | -56.0 | |
| Minimum | take profit in pips | 1.8 | stop loss in pips | -24.1 | |
| Maximum | Reward-Risk | 3.4 | Duration in minutes | 742.0 | |
| Average | Reward-Risk | 1.0 | Duration in minutes | 49.4 | |
| Minimum | Reward-Risk | Duration in minutes | 0.0 | ||
| Maximum | consecutive wins (profit in money) | 1.0 (0.05) | consecutive losses (loss in money) | 22.0 (-30.07) | |
| Average | consecutive wins | 1.0 | consecutive losses | 8.0 |


© 0.1V 05.09.2014 -By danish
WORKS ONLY IN GOOGLE CHROME
Credits to Alex Valdez for the background imagine, sorry for not aksing.


Pregnancy symptoms you can expect each trimester of your pregnancy and how to alleviate them
by Denice Rackley- Pregnancy symptoms will start at the beginning of your first trimester and last through your third trimester.
- Most women find the second trimester easier than the first trimester because that’s when fatigue and nausea typically subsides.
- Many of the symptoms you experience in the second trimester will continue into the third. But you’ll experience some new ones too like heartburn and trouble sleeping.
- This article was reviewed by Karen Duncan, MD, who is an assistant professor with the Department of Obstetrics and Gynecology at NYU Langone.
- Visit Insider’s homepage for more stories.
As hormones change to support the new life inside you, pregnancy comes with myriad symptoms. Here’s what you can expect each trimester of your pregnancy.
First-trimester symptoms (1-12 weeks)
Each woman is different, and so is each pregnancy, so hormonal changes during pregnancy will have varying effects. But below are some of the most common symptoms you can expect in your first trimester.
- Nausea and vomiting: According to a survey by the American Pregnancy Association (APA), 25% of women said morning sickness was their first symptom. “Nausea and vomiting are triggered by the increase of the hormone, human chorionic gonadotropin (hCG),” Marianna Vardaka, an ObGyn at TriHealth, says. “An empty stomach can worsen these symptoms.” More than 50% of women experience nausea during the first trimester.
- Missed period or spotting: According to the same APA survey, 29% of women said a late period was their first symptom. That’s because once an egg implants in the uterus, it halts the menstrual cycle. You may still experience some spotting or implantation bleeding, which can occur as the egg moves to attach to the uterine wall.
- Increased urination: Your amount of blood increases to support the nutritional needs of the baby. That means more blood is filtered by your kidneys increasing how often you need to urinate.
- Fatigue: Your body is producing more of a hormone called progesterone, which is known to cause fatigue as well as vomiting, nausea, constipation, and heartburn.
Other hormone-related symptoms that can pop up in your first trimester include:
- Headaches
- Tender or swollen breasts
- Moodiness
- Bloating
- Food craving and aversions
- Heartburn
- Nasal congestion
- Weight gain
- Acne flare-ups
There are some medications you can take for aches and pains.
Second-trimester symptoms (13-28 weeks)
Most women find the second trimester easier as their body adjusts to the hormone changes. Fatigue typically subsides and you should have more energy, says Vardaka.
At this point in your pregnancy, you’ll likely start to notice other symptoms associated with hormonal changes and the growing baby.
- Lower back pain: By the end of the second trimester, the baby will weigh 2 to 3 pounds and measure 13 to 16 inches long. To compensate for this growth, women often lean backward, which strains the lower back.
- Swelling: Your body retains significantly more fluid while pregnant, so it’s normal to experience some swelling in your ankles and feet.

Third-trimester symptoms (29-40 weeks)
Many of the symptoms you experience in the second trimester will continue into the third. But you’ll experience some new ones too.
These new symptoms are a result of the baby growing toward its full size before birth. Therefore, it’s occupying more space in your abdomen, which is pressing on your organs and can cause:
- Shortness of breath
- Increased urination
- Heartburn
- Trouble sleeping
- Tender breasts
How to alleviate pregnancy symptoms
As your body changes and adjusts you may need to change up your daily routine. Here are some ways doctors recommend you alleviate certain symptoms:
- Walk after a meal to reduce acid reflux and heartburn.
- Eat frequent small meals or take Benadryl to help alleviate vomiting and nausea.
- Prop up your legs to ease swelling in legs, ankles, and feet.
- Go to bed earlier to ease fatigue.
- Sleep on your side to increase comfort as the baby grows.
- Sleep at a slight angle to help reduce pressure on the stomach that can cause acid reflux. “Put one more pillow under the head so that there’s no regurgitation of that acidity,” Vardaka adds.
- Take Tylenol to relieve aches and pains.
Related stories about pregnancy:
- Yes, pregnancy can cause acne. Here’s when you will breakout the worst and how to treat it.
- When pregnancy cravings start and how long they last
- Yes, Tylenol is safe for pregnancy. Here’s the right dosage
- Can dogs sense pregnancy? Research doesn’t have a definite answer
- Yes, you can get a flu shot while pregnant. Here’s the best time to get it.
- Doctors debunk the 25 biggest pregnancy myths


Memory Protection Extensions
Intel® MPX is an instruction set extension that allows programmers to enable hardware-based memory bounds checking.


Welcome to Unexpected
The extensible BDD assertion toolkit
Badges
Features
- Extensible
- Fast
- Provides really nice error messages
- Helps you if you misspells assertions
- Compatible with all test frameworks.
- Node.JS ready (
require('unexpected')
) - Supports asynchronous assertions using promises
- Single global with no prototype extensions or shims.
- Cross-browser: works on Chrome, Firefox, Safari, Opera, IE6+, (IE6-IE8 with es5-shim)
Node
Install it with NPM or add it to your package.json
:
Then:
Browser
Include unexpected.js
.
This will expose the expect
function under the following namespace:
RequireJS
Include the library with RequireJS the following way:
Using Unexpected with a test framework
For example, if you create a test suite with mocha.
Let's say we wanted to test the following program:
math.js
Our test file would look like this:
If a certain expectation fails, an exception will be raised which gets captured and shown/processed by the test runner.
Source
The source for Unexpected can be found on Github.
Releases
10.0.0
- Assertions are now declared with explicit type requirements for
the arguments as part of the pattern. This is a breaking change
that removes support for the old
addAssertion
syntax where the subject type(s) were passed as the first argument. See addAssertion for more information. - The
to be >
,to be >=
,to be <
, andto be <=
assertions have been removed as they clashed with the new type syntax. Please use the fully spelled-out variants:to be greater than
,to be less than or equal to
, etc. - The
[not] to begin with
,[not] to end with
, and[not] to contain
assertions now require strings as the needle(s). Previously they supported any type, which would then be stringified. - Inside an assertion you can now access the
errorMode
,shift
,flags
,alternations
properties etc. via theexpect
passed to the assertion. They can still be accessed viathis
as previously, but that is deprecated. (This change actually debuted in 9.12.0). - The
when passed as parameter(s) to
,when called with
,when decoded as
can now be used standalone, ie. without delegating the result to another assertion in the sameexpect
call. In that case they will provide the result as the fulfillment value of the promise.
9.0.0
- Build all error messages lazily. This is an internal refactoring that makes it possible to generate very different output in the text, Ansi, and HTML modes using the magicpen raw feature. This change mostly affects plugins, and we have updated all the official plugins accordingly, so please upgrade those to the latest version when you upgrade to Unexpected 9.
- Made it possible to tweak the default error message when creating assertions. See addAssertion for more information.
- Expanded the
to have message
assertion defined forError
instances to allow matching a serialization other than plain text:to have ansi message
,to have html message
. - The
to contain
assertion defined for strings: When the assertion fails, display a "diff" where partial matches are highlighted.
8.0.0
- All errors originating from assertions are now instances of
UnexpectedError
, which can be manipulated before being serialized. - Error messages and diffs are now built lazily, improving performance.
- Unexpected now detects created promises that were never returned and fails synchronously. This will uncover some extremely nasty bugs where the test suite succeeds when it should actually fail. This feature only works in Mocha and Jasmine.
- Deprecated error.output, please use error.getErrorMessage() instead.
- Deprecated error.label, please use error.getLabel() instead.
when decoded as
,when called with
,when passed as parameter to
,when passed as parameters to
: Require the 4th argument to be a string specifying an assertion. Previously a function was also allowed, which turned out to be error prone. This also affects all plugins that use the internal functionAssertion.prototype.shift
to delegate to other assertions.- Nested error mode: Don't repeat the subject when it takes up multiple lines and is identical to the parent subject.
- Added a new
bubbleThrough
error mode that will make the error bubble all the way to the top, mainly useful internally. - Added
to error
assertion. - Minor bugfixes and output tweaks.
7.0.0
- Support for
asynchronous assertions using promises.
All built-in assertions that delegate to other assertions (such as
to satisfy
) have been rewritten to support this. The change is fully backwards compatible. - Removed support for the
to be an array of
andto be an array of (strings|numbers|...)
assertions. There are better and more flexible alternatives. - Renamed assertions so that the subject type isn't mentioned in the assertion name.
The old names are kept around as aliases for now. These assertions are affected:
to be an array whose items satisfy
=>to have items satisfying
to be an (object|hash|map) whose keys satisfy
=>to have keys satisfying
to be an (object|hash|map) whose values satisfy
=>to have values satisfying
Also, these 3 assertions no longer pass for empty collections.
- New
when passed as parameter to constructor
andwhen passed as parameter to async
"adverbial" assertions. - New
when decoded as
"adverbial" assertion forBuffer
instances. - New
to have message
assertion defined forError
instances. - A lot of output improvements and minor tweaks.
6.0.0
- New documentation and corresponding site.
- Use
Object.is
/the SameValue algorithm when checking equality of primitive values (theto be
andto equal
assertions). - Tweaked the output of numerous assertions.
- Constrained
to be empty
andto have length
to only work with strings and array-like objects. - Renamed the
arrayLike
type toarray-like
. - Changed style names and added theming support (mostly internal).
- Removed grammatically incorrect assertions.
MIT License
Copyright (c) 2013 Sune Simonsen<EMAIL_ADDRESS>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


S-Help stands for "Social Helping".
We will soon bring you a page showcasing a range of products created by some very industrious people from certain NGO's. You will be able to choose the products you wish to buy right from the comfort of your PC.


flixel.addons.weapon.FlxWeapon
- type
- class
A Weapon can only fire 1 type of bullet. But it can fire many of them at once (in different directions if needed) via createBulletPattern
A Player could fire multiple Weapons at the same time however, if you need to layer them up
Constructor
- parameters
Name
The name of your weapon (i.e. "lazer" or "shotgun"). For your internal reference really, but could be displayed in-game.
ParentRef
If this weapon belongs to a parent sprite, specify it here (bullets will fire from the sprites x/y vars as defined below).
BulletType
Class of the bullet to be associated with this FlxWeapon, must inherit FlxBullet
BulletID
An optional ID for the bullet. Can be accessed through FlxBullet.ID
Instance Methods
- parameters
ObjectOrGroup
The group or object to check if bullets collide
NotifyCallBack
A function that will get called if a bullet overlaps an object
SkipParent
Don't trigger colision notifies with the parent of this object
- returns
- True if a bullet was fired or false if one wasn't available. A reference to the bullet fired is stored in FlxWeapon.currentBullet.
- returns
- True if a bullet was fired or false if one wasn't available. A reference to the bullet fired is stored in FlxWeapon.currentBullet.
- parameters
X
The x coordinate (in game world pixels) to fire at
Y
The y coordinate (in game world pixels) to fire at
- returns
- True if a bullet was fired or false if one wasn't available. A reference to the bullet fired is stored in FlxWeapon.currentBullet.
- parameters
Target
The FlxSprite you wish to fire the bullet at
- returns
- True if a bullet was fired or false if one wasn't available. A reference to the bullet fired is stored in FlxWeapon.currentBullet.
- parameters
Touch
The FlxTouch object to fire at, if null use the first available one
- returns
- True if a bullet was fired or false if one wasn't available. A reference to the bullet fired is stored in FlxWeapon.currentBullet.
- parameters
Angle
The angle (in degrees) calculated in clockwise positive direction (down = 90 degrees positive, right = 0 degrees positive, up = 90 degrees negative)
- returns
- True if a bullet was fired or false if one wasn't available. A reference to the bullet fired is stored in FlxWeapon.currentBullet.
- returns
- True if a bullet was fired or false if one wasn't available. A reference to the bullet fired is stored in FlxWeapon.currentBullet.
- returns
- The speed the bullet moves at, in pixels per second (sq)
- parameters
Quantity
How many bullets do you need to make? This value should be high enough to cover all bullets you need on-screen *at once* plus probably a few extra spare!
ImageSequence
The image used to created the animated bullet from
FrameWidth
The width of each frame in the animation
FrameHeight
The height of each frame in the animation
Frames
An array of numbers indicating what frames to play in what order (e.g. 1, 2, 3)
FrameRate
The speed in frames per second that the animation should play at (e.g. 40 fps)
Looped
Whether or not the animation is looped or just plays once
OffsetX
When the bullet is fired if you need to offset it on the x axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
OffsetY
When the bullet is fired if you need to offset it on the y axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
- parameters
Quantity
How many bullets do you need to make? This value should be high enough to cover all bullets you need on-screen *at once* plus probably a few extra spare!
Image
The image used to create the bullet from
OffsetX
When the bullet is fired if you need to offset it on the x axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
OffsetY
When the bullet is fired if you need to offset it on the y axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
AutoRotate
When true the bullet sprite will rotate to match the angle of the parent sprite. Call fireFromParentAngle or fromFromAngle to fire it using an angle as the velocity.
Frame
If the image has a single row of square animation frames on it, you can specify which of the frames you want to use here. Default is -1, or "use whole graphic"
Rotations
The number of rotation frames the final sprite should have. For small sprites this can be quite a large number (360 even) without any problems.
AntiAliasing
Whether to use high quality rotations when creating the graphic. Default is false.
AutoBuffer
Whether to automatically increase the image size to accomodate rotated corners. Default is false. Will create frames that are 150% larger on each axis than the original frame or graphic.
- parameters
Quantity
How many bullets do you need to make? This value should be high enough to cover all bullets you need on-screen *at once* plus probably a few extra spare!
Width
The width (in pixels) of the bullets
Height
The height (in pixels) of the bullets
Color
The color of the bullets. Must be given in 0xAARRGGBB format
OffsetX
When the bullet is fired if you need to offset it on the x axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
OffsetY
When the bullet is fired if you need to offset it on the y axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
- parameters
AccelerationX
Acceleration speed in pixels per second to apply to the sprites horizontal movement, set to zero to cancel. Negative values move left, positive move right.
AccelerationY
Acceleration speed in pixels per second to apply to the sprites vertical movement, set to zero to cancel. Negative values move up, positive move down.
SpeedMaxX
The maximum speed in pixels per second in which the sprite can move horizontally
SpeedMaxY
The maximum speed in pixels per second in which the sprite can move vertically
- parameters
Bounds
An FlxRect area. Inside this area the bullet should be considered alive, once outside it will be killed.
- parameters
angle
The angle of the bullet. In clockwise positive direction: Right = 0, Down = 90, Left = 180, Up = -90. You can use one of the consts such as BULLET_UP, etc
speed
The speed it will move, in pixels per second (sq)
- parameters
Elasticity
The elasticity of the bullet between 0 and 1 (0 being no rebound, 1 being 100% force rebound). Set to zero to disable.
- parameters
ForceX
A positive value applies gravity dragging the bullet to the right. A negative value drags the bullet to the left. Zero disables horizontal gravity.
ForceY
A positive value applies gravity dragging the bullet down. A negative value drags the bullet up. Zero disables vertical gravity.
- parameters
Lifespan
The lifespan of the bullet, given in seconds.
- parameters
OffsetX
The x coordinate offset to add to the launch location (positive or negative)
OffsetY
The y coordinate offset to add to the launch location (positive or negative)
- parameters
RandomAngle
The +- value applied to the angle when fired. For example 20 means the bullet can fire up to 20 degrees under or over its angle when fired.
RandomSpeed
The +- value applied to the speed when fired. For example 20 means the bullet can fire up to 20 px/sec slower or faster when fired.
RandomPosition
The +- value applied to the firing location when fired (fire spread).
RandomLifeSpan
The +- value applied to the bulletLifeSpan when fired. For example passing 2 when bulletLifeSpan is 3, means the bullet can live up to 5 seconds, minimum of 1.
- parameters
Speed
The speed it will move, in pixels per second (sq)
- parameters
Callback
The function to call
Sound
A FlxSound to play
- parameters
Rate
The delay in milliseconds (ms) between which each bullet is fired, set to zero to clear
- parameters
X
The x coordinate (in game world pixels) to fire from
Y
The y coordinate (in game world pixels) to fire from
OffsetX
When the bullet is fired if you need to offset it on the x axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
OffsetY
When the bullet is fired if you need to offset it on the y axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
- parameters
ParentRef
If this weapon belongs to a parent sprite, specify it here (bullets will fire from the sprites x/y vars as defined below).
VariableX
The x axis variable of the parent to use when firing. Typically "x", but could be "screenX" or any public getter that exposes the x coordinate.
VariableY
The y axis variable of the parent to use when firing. Typically "y", but could be "screenY" or any public getter that exposes the y coordinate.
OffsetX
When the bullet is fired if you need to offset it on the x axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
OffsetY
When the bullet is fired if you need to offset it on the y axis, for example to line it up with the "nose" of a space ship, set the amount here (positive or negative)
UseDirection
When fired the bullet direction is based on parent sprites facing value (up/down/left/right)
- parameters
Callback
The function to call
Sound
An FlxSound to play
- parameters
Callback
The function to call
Sound
A FlxSound to play


Archive
2012
- 30-11-2012 » Building your Own Service In SwitchYard (JUDCon China)
- 30-10-2012 » Back To Basics - Review notes on Robot Software Architecture Course
- 19-10-2012 » Back To Basics - Review notes on Database System Implementation I
- 06-07-2012 » JavaScript中的函数对象
- 02-07-2012 » 迎接新的教育模式,新的学习方式
2011
- 18-10-2011 » Git merge or rebase?
- 16-10-2011 » Git Cheat Sheet for history/difference.
- 17-09-2011 » "Functional Programming for Java Developer" book review.
- 08-09-2011 » Upgrading Hibernate 3.3.2 to Hibernate 4.0.0
2010
- 28-09-2010 » Getting/Using services deployed in JBoss AS 5.x
- 19-08-2010 » Install Mysql and Postgres in Mac OS through MacPorts
- 26-07-2010 » Exploring ODE part V: implemenation of scheduler-simple module.
- 23-07-2010 » My Roadmap on Mac OS X
- 21-02-2010 » Exploring ODE Part IV: BpelServer API
- 20-02-2010 » Apache CXF Web Service Development book.
- 30-01-2010 » Exploring ODE Part III: architecture and modules introduction
- 27-01-2010 » Exploring ODE Part II: JACOB Framework
- 26-01-2010 » Exploring ODE Part I: Bpel Compiler and its internal model.
- 22-01-2010 » Maven Global Excludes tip.
- 19-01-2010 » Connecting to various DBs by using ant's sql command.
- 15-01-2010 » Using Oracle Instant and Sqlplus in Fedora
- 07-01-2010 » Hightlights from BPMN2.0
2009
- 12-12-2009 » Install VirtualBox and Chrome beta in Fedora 10
- 06-12-2009 » open source projects should really use Git
- 06-12-2009 » JPA implementation patterns
- 04-12-2009 » Good presentation about XMPP and Web.
- 16-11-2009 » JBoss AS5 MC articles and presentations.
- 29-10-2009 » Create Database and user in Postgres and Mysql.
- 22-10-2009 » Openfire + jwchat + Tomcat = Realtime collaboration
- 29-09-2009 » 简说xml的namespace
- 28-09-2009 » PartnerLink,PartnerLinkType详解
- 10-09-2009 » Soft delete, or Hard delete.
- 11-08-2009 » Publishing web service in JBoss ESB
- 08-08-2009 » jBPM 4.0 restful service introduction.
- 02-08-2009 » Build restful service with RESTEasy
- 24-07-2009 » code against web service.
- 22-07-2009 » Updates on JBoss ESB.
- 19-07-2009 » Getting Started with jBPM 4.0 (Part IV)
- 14-07-2009 » 浅谈ws-security: 加密,签名,证书等
- 12-07-2009 » Getting Started with jBPM 4.0 (Part III)
- 12-07-2009 » Getting Started with jBPM 4.0 (Part II)
- 11-07-2009 » Getting Started with jBPM 4.0 - (Part I )
- 08-07-2009 » java concurrency and scala links
- 08-07-2009 » Fedora environment setting.
- 29-06-2009 » jBPM4.0 framework exploring
- 03-06-2009 » Fedora 10 使用NetworkManager配置ADSL
- 31-03-2009 » I am a Duty Fulfiller??
- 23-03-2009 » 十篇每个程序员应该读的文章,论文.(至少两遍)
- 18-02-2009 » JUL Logger setting
- 13-01-2009 » Reflection on 2008, and 2009's resolution.


Basic Usage of Provisioners
While Vagrant offers multiple options for how you are able to provision your machine, there is a standard usage pattern as well as some important points common to all provisioners that are important to know.
Configuration
First, every provisioner is configured within your Vagrantfile using the config.vm.provision
method call. For example, the Vagrantfile below enables shell provisioning:
Vagrant.configure("2") do |config|
# ... other configuration
config.vm.provision "shell", inline: "echo hello"
end
Every provisioner has an identifier, such as `"shell", used as the first parameter to the provisioning configuration. Following that is basic key/value for configuring that specific provisioner. Instead of basic key/value, you can also use a Ruby block for a syntax that is more like variable assignment. The following is effectively the same as the prior example:
Vagrant.configure("2") do |config|
# ... other configuration
config.vm.provision "shell" do |s|
s.inline = "echo hello"
end
end
The benefit of the block-based syntax is that with more than a couple options it can greatly improve readability. Additionally, some provisioners, like the Chef provisioner, have special methods that can be called within that block to ease configuration that can't be done with the key/value approach.
Multiple Provisioners
Multiple config.vm.provision
methods can be used to define multiple provisioners. These provisioners will be run in the order they're defined. This is useful for a variety of reasons, but most commonly it is used so that a shell script can bootstrap some of the system so that another provisioner can take over later.
Running Provisioners
Provisioners are run in three cases: vagrant up
, vagrant reload
, and vagrant provision
.
A --no-provision
flag can be passed to up
and reload
if you don't want to run provisioners. Likewise, you can pass --provision
to force provisioning.
The --provision-with
flag can be used if you only want to run a specific provisioner if you have multiple provisioners specified. For example, if you have a shell and Puppet provisioner and only want to run the shell one, you can do vagrant provision --provision-with shell
.


Hush is a fork of ZCash (ZEC) running on zero-knowledge proof encryption, created by Jonathan "Duke" Leto. Hush is the first cryptocurrency offering zkSNARK (upstream Zcash 1.0.13 build), TLS (secure nodes), TOR nodes and bitcore making it the most secure and advanced privac...


Badges
Small count and labeling component.
Background colors
Primary
Secondary
Success
Danger
Warning
Info
Primary
Success
Danger
Warning
Info
Light
Dark
Light
Dark

Primary

Secondary

Success

Danger

Warning

Info

Light

Dark

Primary

Success

Danger

Warning

Info

Light

Dark
Badge with shadow
Primary
Secondary
Success
Danger
Warning
Info
Light
Dark

Primary

Secondary

Success

Danger

Warning

Info

Light

Dark
Pill badges
Primary
Secondary
Success
Danger
Warning
Info
Light
Dark

Primary

Secondary

Success

Danger

Warning

Info

Light

Dark
Inside heading
Example heading New
Example heading New
Example heading New
Example heading New
Example heading New
Example heading New

Example heading New

Example heading New

Example heading New

Example heading New

Example heading New

Example heading New

Inside list group

Messages
14

Orders
2

Favourites
6


When creating functions for other people to use, you always need some validator functions which check if arguments passed by users are valid, and if not, generate informative and good-formatted error messages in a consistent style.
Functions documented here serve the exact purposes:
check_type()
checks if an argument has valid type.
check_types()
checks if each item of an argument has valid type.
check_class()
checks if an argument has valid class.
check_classes()
checks if each item of an argument has valid class.
check_length()
checks if an argument has valid length.
check_content()
checks if an argument is from some given choices.
check_string()
checks if an argument is a single character.
It can be used to check names, for example.
check_n()
checks if an argument is a single positive integer.
It can be used to check indices, for example.
check_bool()
checks if an argument is TRUE
or FALSE
.
check_type( x, valid, name = NULL, general = NULL, specifics = NULL, supplement = NULL, ... ) check_types(x, valid, name = NULL, general = NULL, supplement = NULL, ...) check_class( x, valid, name = NULL, general = NULL, specifics = NULL, supplement = NULL, ... ) check_classes(x, valid, name = NULL, general = NULL, supplement = NULL, ...) check_length( x, valid, interval = NULL, name = NULL, general = NULL, specifics = NULL, supplement = NULL, ... ) check_content( x, valid, name = NULL, general = NULL, specifics = NULL, supplement = NULL, ... ) check_string( x, name = NULL, general = NULL, specifics = NULL, supplement = NULL, ... ) check_n( x, name = NULL, general = NULL, specifics = NULL, supplement = NULL, ... ) check_bool( x, name = NULL, general = NULL, specifics = NULL, supplement = NULL, ... )
| x | The argument to be checked.
|
|---|---|
| valid |
|
| name | Optional. A single character which represents the argument's
name. The name is used in the error message. By default, the name of the
argument passed to argument |
| general | Optional. A single character which represents the general
statement of the error. Each validator function comes with its own
error message, so usually you don't need to specify this argument and
arguments |
| specifics | Optional. A (named) character vector which represents details of the error. |
| supplement | Optional. A single character which represents the additional message added at the end of the error message. |
| ... | Optional. Additional arguments passed to |
| interval | Only used in |
An invisible NULL
if the argument is valid,
or error message is generated.
Statement()
for more details about arguments general
,
specifics
and supplement
.
rlang::abort()
for adding additional arguments.
vignette("erify", package = "erify")
for a gentle introduction to this
package.
The tidyverse style guide for more details about the used error message style.
# argument to be checked arg <- 1:10 # invisible `NULL` returned if `arg` is valid check_type(arg, "integer") if (FALSE) { # check if `arg` is character or double check_type(arg, c("character", "double")) # check if `arg` has length 1 check_length(arg, 1) # check if `arg` has length smaller than 3 check_length(arg, c(NA, 3)) # specify argument's name check_type(arg, "character", "`other_name`") # customize error message check_type( arg, "character", general = "General statement of the error.", specifics = c(x = "An error.", i = "A hint.", `*` = "Other detail."), supplement = "More words to say." ) } # add and retrieve additional arguments tryCatch( {check_type(arg, "character", your_arg = "your data")}, error = function(e) e$your_arg )#> [1] "your data"


 :)
UnsupportedOperationException
- if you're trying to instantiate a non-instantiable class
Author
sliep
Receiver
the Class to check


Source: https://www.npmjs.com/package/fast-xml-parser
a: {{u.a}}
b: {{u.b}}
Offset: {{u.offset}}
Scale: {{u.scale}}
Xml-File must be stored in folder 'assets/docs'


| Book Name | Book No | Limit Issued Days | After Limit Per Day Fine | |
|---|---|---|---|---|
|
|
|
{{lmtissd}} | {{aftrlmtfine}} |
|
| {{row.bookname}} | {{row.bookno}} | {{row.lmtissd}} | {{row.aftrlmtfine}} |
|
| After Limit Total Fine | {{totalIssuedFine()}} |


{% extends "base.html" %}
{% load static from staticfiles %}
{% load include_block from wagtailcore_tags %}
{% include_block page.body %}
{% block body_class %}guide_page{% endblock %}
{% block content %}
{% include "includes/heading_plain.html" %}
{% include "includes/sub_heading.html" %}
{% if page.subsections %}
{% include "includes/accordion.html" with subsections=page.subsections %}
{% endif %}
{% endblock %}


public class ServerStatusEvent
extends java.util.EventObject
Server
class has six statuses as follows:
Server#start()
, it is in two statuses: "started" and "running".Server#start()
, Server#pause()
, Server#resume()
, Server#stop()
, and Server#exit()
.
Methods such as Server#isStarted()
, Server#isPaused()
, and Server#isRunning()
are used to query current status of server.
Every time server change its current status, it notifies an event ServerStatusEvent
to listeners that implement ServerStatusListener
interface.
As a convention, this ServerStatusEvent
class is called server status event
.
Such listeners are called server status listeners
, which must be registered with server by method #addStatusListener(ServerStatusListener)
to receive server status events.
A server status event
is removed from server by calling #removeStatusListener(ServerStatusListener)
.| Modifier and Type | Class and Description |
|---|---|
static class |
ServerStatusEvent.Status
This enum defines six status of server represented by
Server class. |
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
msg
The message that server stores in this event.
|
protected boolean |
shutdownHookStatus
Shutdown hook is the mechanism in which some tasks are done before the sever shutdown really.
|
protected ServerStatusEvent.Status |
status
The current status that server stores in this event.
|
| Constructor and Description |
|---|
ServerStatusEvent(Server server,
ServerStatusEvent.Status status)
Constructor with specified server and specified status.
|
ServerStatusEvent(Server server,
ServerStatusEvent.Status status,
java.lang.String msg)
Constructor with specified server, status, and message.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getMsg()
Getting message given in this event.
|
boolean |
getShutdownHookStatus()
Shutdown hook is the mechanism in which some tasks are done before the sever shutdown really.
|
ServerStatusEvent.Status |
getStatus()
Getting status given in this event.
|
void |
setMsg(java.lang.String msg)
Setting specified message in this event.
|
void |
setShutdownHookStatus(boolean shutdownHookStatus)
Shutdown hook is the mechanism in which some tasks are done before the sever shutdown really.
|
void |
setStatus(ServerStatusEvent.Status status)
Setting specified status in this event.
|
java.lang.String |
toString() |
protected ServerStatusEvent.Status status
protected java.lang.String msg
protected boolean shutdownHookStatus
true
, this event indicates there is a mechanism of shutdown hook in server.
The default value of this variable is false
.public ServerStatusEvent(Server server, ServerStatusEvent.Status status)
server
- specified server.status
- specified status.public ServerStatusEvent(Server server, ServerStatusEvent.Status status, java.lang.String msg)
server
- specified server.status
- specified status.msg
- specified status.public ServerStatusEvent.Status getStatus()
public void setStatus(ServerStatusEvent.Status status)
status
- specified status.public java.lang.String getMsg()
public void setMsg(java.lang.String msg)
msg
- specified message.public boolean getShutdownHookStatus()
public void setShutdownHookStatus(boolean shutdownHookStatus)
shutdownHookStatus
- if true
, the mechanism of shutdown hook is supported in server.public java.lang.String toString()
toString
in class java.util.EventObject


During university, I recorded neural activity for research. To be able to detect the times of the neural activity, I created a Matlab-based GUI to visualize the recording.
Korean-English language exchange
I was part of a Korean-English language exhange and I created a website that includes games to practice our conversational skills. I hosted this website on Blogspot before I knew Github.


- {{this.business.title}}
-
{{this.location.country}},
{{this.location.state}},
{{this.location.locality}},
{{this.location.number}},
{{this.location.postal_code}}
-
{{this.location.country}},
{{this.location.state}},
{{this.location.locality}},
{{this.location.postal_code}}
- {{this.business.number}}
- {{this.business.email}}


{% block head %}
{% block title %}{% endblock %} Home
{% endblock %}
Soundararaj, Haritha :<PHONE_NUMBER>
Magnitude Range from
Magnitude Range To
Number of queries to run:


"/> /* link rel="preload" as="image" href=" echo qs_link("/images/icons.svg"); ?>" */?> "/> " type="image/x-icon"/> " type="image/x-icon"/> " /> " /> " /> " />
require(production_dir."/html/components/popup_modal.html"); ?> /* .page has all the content in it. on pc it is a vertical strip down the middle. on phone and tablet it is the full page width. */?>


The outline-color Property
A heading with a colored outline
The outline-color can be specified with a color name.
Notice that the outline is outside of any border.
Note: The outline-color property does not work if it is used alone. Use the outline-style property to set the outline first.


Friend Finder
Answer The Following Questions
Home
Survey Questions
Name (Required)
Link to Photo Image (Required)
Question 1
Your mind is always buzzing with unexplored ideas and plans.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 2
Generally speaking, you rely more on your experience than your imagaination.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 3
you find it easy to stay relaxed and focused even when there is some pressure.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 4
You rarely do something just out of sheet curiosity.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 5
People can rarely upset you.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 6
It is often difficult for you to relate to other people's feelings.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 7
In a discussion, truth should be more important than peoples sensitivities
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 8
You rarely get carried away by fantasies and ideas.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 9
You think that everyone's view should be respected regardless of whether they are supported by facts or not.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 10
You feel more energetic after spending time with a group of people.
Select
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Submit


Meet {{item.rentee.username}} on {{item.meetupAt.time}} at {{item.meetupAt.location}}
${{item.cost}} for {{item.duration}} days requested by {{item.rentee.username}}
Pending meetup schedule at {{item.suggestedMeetup.location}} between {{item.suggestedMeetup.from}} and {{item.suggestedMeetup.to}}
In use by {{item.rentee.username}}
{{item.rentee.username}} has requested a return
Meet {{item.rentee.username}} on {{item.meetupAt.time}} at {{item.meetupAt.location}}
Pending meetup schedule at {{item.suggestedReturn.location}} between {{item.suggestedReturn.from}} and {{item.suggestedReturn.to}}
Return due on {{item.dueDate}}
Daily rate set at ${{item.daily_rate}}.00 per day
Request initiated on {{item.time_of_request}}
Due date: {{item.dueDate}}
Pick up at {{item.meetupAt.location}} on {{item.meetupAt.time}}
Return on {{item.meetupAt.time}} at {{item.meetupAt.location}}
Owner: {{item.owner}}
Rent duration: {{item.duration}} days
Cost: ${{item.cost}}.00


Distribution Trends 101! Khune's Crazy Week In Social Media
by SL SocialIt can be said that Kaizer Chiefs goalkeeper Itumeleng Khune had a whirlwind of a week, that's if his activity and reactions on social media was anything to go by. We take a look at how crazy Khune's week has been online. Check it out!
From Monday onwards, Khune's name was arguably on every fan's lips and was a trending topic online for a large chunk of the week. Even on Friday, the Bafana Bafana star was part of the South African trends list on Twitter after Chiefs declared "Itu" fit to play again.
Download The Soccer Laduma Social Media App & Earn Airtime for Selfies!
On 18 November, Khune's partner Sphelele Mak took to her Instagram account to reveal that the shot-stopper had paid lobola for her. Her post "broke the internet" as fans subsequently reacted to the news and congratulated the pair.
A day later, Khune ignited more discussion on social media when he uploaded an image of his fiance to his Instagram account along with with a caption that read: "Hey #MrsK."
The crowd favourite even posted an image of himself caressing the seemingly pregnant belly of his model partner, but he deleted the photo shortly thereafter.
Scroll through the gallery above to see some of the images that kept Itu a trending topic online this week!
Do you think Khune is handling his off-field developments in the right manner?