Cookie Support |
Cookie Support includes the following topics:
Cookies are a way of storing data on the client side. They have been used extensively for personalization of portal sites, user preference tracking, and logging into web sites. For enterprise customers using cookies in their web sites, cookie support in Java Plug-in and Java Web Start facilitates deployment of client-side Java.
Cookie support allows a Java application to pass a cookie back to a web server if that cookie originated from the web server. This provides the server with information about the state of the client.
There are two main types of cookies: Session Cookies and Permanent Cookies.
Session cookies are stored in memory during the applet or application session. Session cookies expire when the applet or application exits and are automatically deleted. These cookies usually store a session ID that is not personally identifiable to users, allowing the user to move from page to page without having to log-in repeatedly. They are widely used by commercial web sites (for example, to keep track of items that a consumer has added to a shopping cart.)
Permanent cookies are stored in persistent storage and are not deleted when the application exits. They are deleted when they expire. They can retain user preferences for a particular web site, allowing those preferences to be used in future sessions. Permanent cookies can be used to identify individual users, so they may be used by web sites to analyze users' surfing behavior within the web site. These cookies can also be used to provide information about the numbers of visitors, the average time spent on a particular page, and the general performance of the web site. They are usually configured to keep track of users for a prolonged period of time, in some cases many years into the future.
Java Plug-in and Java Web Start support handling of both types of cookie on all platforms.
Java Plug-in provides permanent cookie support using the underlying browser cookie store. When it runs in Internet Explorer, the cookie store in IE is used; when it runs in Mozilla, the cookie store in Mozilla is used. Because each browser has a different cookie policy, the cookie-handling behavior depends on the cookie control in the browser. For example, if the browser is configured to reject third-party cookies, the policy will apply to Java Plug-in when it runs in this browser.
Java Web Start provides permanent cookie support on Windows using the cookie store in Internet Explorer, and the cookie-handling behavior is determined by the cookie control in IE. On Linux/Solaris, Java Web Start provides permanent cookie support using its own cookie store implementation.
There are several ways for an application to override the default cookie handling. Four are outlined below.
void URLConnection.setRequestProperty(String key, String value)
This approach allows the application to set a custom cookie header in URLConnection
before making a connection.
URL url = new URL( "http://java.sun.com/" );
URLConnection conn = url.openConnection();
conn.setRequestProperty("Cookie", "foo=bar");
InputStream is = conn.getInputStream();
.....
When the connection is made, the custom cookie would be sent to the server in the HTTP/HTTPS request headers.
Map<String, List<String>> URLConnection.getHeaderFields()
After a connection is made, the server may return a cookie in the HTTP/HTTPS response headers. The approach outlined below allows the application to retrieve the cookie value through URLConnection
.
URL url = new URL( "http://java.sun.com/" );
URLConnection conn = url.openConnection();
conn.connect();
.....
Map<String, List<String>> headers = conn.getHeaderFields();
List<String> values = headers.get("Set-Cookie");
String cookieValue = null;
for (Iterator iter = values.iterator(); iter.hasNext(); ) {
String v = values.next();
if (cookieValue == null)
cookieValue = v;
else
cookieValue = cookieValue + ";" + v;
}
After the connection is made, the server may return the cookie in the HTTP/HTTPS response headers.
Map<String,List<String>> CookieHandler.get(URI uri, Map<String,List<String>> requestHeaders)
This approach allows the application to retrieve session/permanent cookies for a given URL:
String retrieveCookie(URL url)
{
String cookieValue = null;
CookieHandler handler = CookieHandler.getDefault();
if (handler != null) {
Map<String, List<String>> headers = handler.get(url.toURI(), new Map<String, List<String>>());
List<String> values = headers.get("Cookie");
for (Iterator<String> iter=values.iterator(); iter.hasNext();) {
String v = iter.next();
if (cookieValue == null)
cookieValue = v;
else
cookieValue = cookieValue + ";" + v;
}
}
return cookieValue;
}
CookieHandler
is an abstraction of the browser/system cookie storage, so additional security permission is required for execution; the above code will be executed successfully only if the application is trusted.
void CookieHandler.put(URI uri, Map<String,List<String>> responseHeaders)
This approach allows the application to set a session/permanent cookie for a given URL:
void setCookie(URL url, String value)
{
CookieHandler handler = CookieHandler.getDefault();
if (handler != null) {
Map<String, List<String>> headers= new Map<String, List<String>>();
List<String> values = new List<String>();
values.add(value);
headers.put("Cookie", values);
handler.put(url.toURI(), headers);
}
}
CookieHandler
is an abstraction of the browser/system cookie storage, so additional security permission is required for execution; the above code will be executed successfully only if the application is trusted.


API Showcase
Welcome to my API documentation demo site.
Note that different styles may be applied to the written English according to client preferences. Expect:
- UK and US English
- A stop to end descriptions.
- No stop
- Oxford comma/none
Client 1: Cloud RF
About Cloud RF
Cloud RF provides its customers with a dashboard SaaS and direct access to the API that underpins it. My task was to take a non-spec-compliant API schema (in YAML format) and:
- improve the endpoint and schema descriptions
- ensure the API schema complies with Open API 3.0
- make calls to the endpoints and add descriptions of the responses/payloads to the schema
- start high-level docs
As is typical with such a project, I was able to identify inconsistencies in logic such as:
- default values that lay outside of min/max values
- integer that should be a float
Tools Used
| Parameter | Description |
|---|---|
| Pandoc | I have updated the YAML file and written pages in Markdown for a Pandoc-generated static site |
| Stoplight | I used Stoplight locally to assist with error identification and ensuring compliance with spec |
| GitHub | The main communications channel via PRs |
| GitBash | For version control via GitHub |
API Schema Extract
Introduction
The Cloud-RF API enables users to model and test radio propagation for any radio, anywhere. Authenticate by passing your API2.0 key in the request header as key
. Set up a CloudRF.com account to generate this key. All data is transferred as JSON. For detailed documentation, visit docs.cloudrf.com.
Base URLs:
Terms of service
Email: Support
Authentication
An APIKey passed in the request headers:
- ApiKeyAuth
- Pass parameter name: key, in: header.
Endpoint Example
Create a point-to-multipoint heatmap
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'key' => 'API_KEY'
}
result = RestClient.post 'https://api.cloudrf.com/area',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'key': 'API_KEY'
}
r = requests.post('https://api.cloudrf.com/area', headers = headers)
print(r.json())
Cloud RF API
POST https://api.cloudrf.com/area Host: api.cloudrf.com Content-Type: application/json
POST /area
This endpoint returns an omni-directional coverage plot (point-to-multipoint) as an image, rendered with a color schema. This function assumes the same receiver height at all locations out to fixed radius (up to a 300 km maximum). Due to its recursive processing, this is the slowest of all the API calls. Speed can be improved significantly by adjusting the resolution "res" parameter upwards so 4 (m) is faster than 2 (m). A standard request requires transmitter, receiver, antenna, and output objects; providing model and environment enhances accuracy.
Example Body Parameter
{
"site": "A1",
"network": "Testing",
"transmitter": {
"lat": 38.916,
"lon": 1.448,
"alt": 2,
"frq": 868,
"txw": 0.1,
"bwi": 1
},
"receiver": {
"lat": 0,
"lon": 0,
"alt": 2,
"rxg": 3,
"rxs": -100
},
"antenna": {
"txg": 2.15,
"txl": 1,
"ant": 0,
"azi": 1,
"tlt": 10,
"hbw": 2,
"vbw": 2,
"pol": "h"
},
"output": {
"units": "metric",
"col": "RAINBOW.dBm",
"out": 2,
"ber": 2,
"mod": 7,
"nf": -100,
"res": 10,
"rad": 5
}
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | false | The request payload providing the site properties. |
| » site | body | string | false | Site name. |
| » network | body | string | false | Network name/group. |
| » transmitter | body | Transmitter | true | none |
| »» lat | body | number(float) | false | Latitude of transmitter in decimal degrees. |
| »» lon | body | number(float) | false | Longitude of transmitter in decimal degrees. |
| »» alt | body | number(float) | false | Altitude above ground level in meters OR feet. |
| »» frq | body | number(float) | false | Center frequency in megahertz. |
| »» txw | body | number(float) | false | Transmitter power in watts before the antenna. |
| »» bwi | body | number(float) | false | Bandwidth in MHz. 1MHz has a noise floor of -114dBm; 10MHz = -104dBm; 20MHz = -101dBm. |
| » receiver | body | Receiver | true | none |
| »» lat | body | number(float) | false | Latitude in decimal degrees. |
| »» lon | body | number(float) | false | Longitude in decimal degrees. |
| »» alt | body | number(float) | false | Altitude above ground level in meters OR feet. |
| »» rxg | body | number(float) | false | Receiver antenna gain in dBi. |
| »» rxs | body | number(float) | false | Receiver sensitivity/threshold in measured units defined by 'out' parameter. |
| » antenna | body | Antenna | true | none |
| »» txg | body | number(float) | false | Transmitter antenna gain in dBi. |
| »» txl | body | number(float) | false | Feeder loss in dB. |
| »» ant | body | integer(int32) | false | Antenna pattern code: 0=allows custom options (see: hbw; vbw; fbr) 1=Vertical dipole (omni-directional). |
| »» azi | body | number(float) | false | Antenna azimuth in degrees north. |
| »» tlt | body | number(float) | false | Antenna tilt in degrees below the horizon (inverted). |
| »» hbw | body | number(float) | false | Custom antenna horizontal beamwidth in degrees; for use only with ant=0. |
| »» vbw | body | number(float) | false | Custom antenna vertical beamwidth in degrees; for use only with ant=0. |
| »» pol | body | string | false | Antenna polarization. |
| » model | body | Model | false | none |
| »» pm | body | integer(int32) | false | Propagation model: 1=Irregular Terrain Model; 2=Line of Sight (LOS); 3=Hata; 4=ECC33; 5=SUI Microwave; 6=COST231; 7=Free space path loss; 9=Ericsson9999; 10=Plane earth loss; 11=Egli. |
| »» pe | body | integer(int32) | false | Propagation model subtype/environment: 1=Conservative/Urban; 2=Average/Suburban; 3=Optimistic/rural. |
| »» cli | body | integer(int32) | false | Radio climate for ITM model: (1). 1=Equatorial (Congo); 2=Continental Subtropical (Sudan); 3=Maritime Subtropical (West coast of Africa); 4=Desert (Sahara); 5=Continental Temperate; 6=Maritime Temperate and Over Land (UK and West coasts of US & EU); 7=Maritime Temperate, Over Sea. |
| »» ked | body | number | false | Include knife edge diffraction for enhancing basic empirical models (already in ITM). Switch on/off; 1=INCLUDE, 0=OFF, i.e., if diffraction is OFF (0) then the model applies more conservative 'line of sight'. |
| »» rel | body | number(float) | false | ITM model required reliability as % |
| »» ter | body | integer(int32) | false | Terrain code for ITM model (1): 1=Water; 2=Wet ground; 3=Farmland; 4=Forest/Average; 5=Mountain/Sand; 6=City/Poor ground. |
| » environment | body | Environment | false | none |
| »» clm | body | integer(int32) | false | Clutter mode: 0=None/DSM only; 1=System & custom clutter; 2=Custom clutter only. |
| »» cll | body | integer(int32) | false | Clutter loss: 0=None/DSM only; 1=Hard/LOS mode; 2=Soft/NLOS mode. |
| »» mat | body | number(float) | false | Clutter attenuation override in dB/m based on a tree block OR hollow building; light foliage=0.1dB/m; brick=1.0dB/m; concrete=5dB/m. |
| » output | body | Output | true | none |
| »» units | body | string | false | Define distance units applied; either meters/kilometers (metric) or feet/miles (imperial). |
| »» col | body | string | false | Color schema code OR filename string. Codes: 1=Cellular (5); 2=Red; 3=Green; 4=Blue; 5=Microwave(7); 7=Custom RGB; 8=Automatic by frequency; 9=Greyscale/GIS; 10=Rainbow(24); 11=Green/Blue/Red; 13=Sub noise floor (10); 14=TV broadcasting (4); 15=Red threshold; 16=Green threshold; 17=Blue threshold. Filename examples: RAINBOW.dBm; CUSTOMSCHEMA.dBm. |
| »» out | body | integer(int32) | false | Measured units: 1=dB; 2=dBm; 3=dBuV; 4=SNR (4 supports nf option). |
| »» ber | body | integer(int32) | false | Bit error rate: 1=0.1; 2=0.01; 3=0.001; 4=0.0001; 5=0.00001; 6=0.000001; >6=Lora; 7=SF7; 8=SF8; 9=SF9; 10=SF10; 11=SF11; 12=SF12. |
| »» mod | body | integer(int32) | false | Modulation: 1=4QAM; 2=16QAM; 3=64QAM; 4=256QAM; 5=1024QAM; 6=BPSK; 7=QPSK; 8=8PSK; 9=16PSK; 10=32PSK; 11=LoRa. |
| »» nf | body | number(float) | false | Noise floor in dBm for use with out=4/SNR. |
| »» res | body | number(float) | false | Resolution in meters for output. |
| »» rad | body | number(float) | false | Radius in kilometers for output. |
Example responses
200 Response
{
"kmz": "https://api.cloudrf.com/archive/export?sid=YnJETGFWbjZsNDBlNVRQY1phUFFsdz09&fmt=kmz",
"PNG_WGS84": "https://api.cloudrf.com/users/40843/0722102238_Testing_A1.4326.png",
"PNG_Mercator": "https://api.cloudrf.com/users/40843/0722102238_Testing_A1.3857.png",
"bounds": [
[
38.97373,
1.505727,
38.85827,
1.390273
]
],
"id": "3930916",
"sid": "M2ZSaUZuVlVDRno3TTJDTGVqRGJlUT09",
"area": "0 km2",
"coverage": "0%",
"key": [
[
{
"l": "-20dBm",
"r": 255,
"g": 19,
"b": 0
},
{
"l": "-24dBm",
"r": 255,
"g": 61,
"b": 0
},
{
"l": "-28dBm",
"r": 255,
"g": 102,
"b": 0
},
{
"l": "-32dBm",
"r": 255,
"g": 144,
"b": 0
},
{
"l": "-36dBm",
"r": 255,
"g": 185,
"b": 0
},
{
"l": "-40dBm",
"r": 255,
"g": 227,
"b": 0
},
{
"l": "-44dBm",
"r": 242,
"g": 255,
"b": 0
},
{
"l": "-48dBm",
"r": 200,
"g": 255,
"b": 0
},
{
"l": "-52dBm",
"r": 159,
"g": 255,
"b": 0
},
{
"l": "-56dBm",
"r": 117,
"g": 255,
"b": 0
},
{
"l": "-60dBm",
"r": 76,
"g": 255,
"b": 0
},
{
"l": "-64dBm",
"r": 34,
"g": 255,
"b": 0
},
{
"l": "-68dBm",
"r": 0,
"g": 255,
"b": 7
},
{
"l": "-72dBm",
"r": 0,
"g": 255,
"b": 49
},
{
"l": "-76dBm",
"r": 0,
"g": 255,
"b": 90
},
{
"l": "-80dBm",
"r": 0,
"g": 255,
"b": 132
},
{
"l": "-84dBm",
"r": 0,
"g": 255,
"b": 173
},
{
"l": "-88dBm",
"r": 0,
"g": 255,
"b": 215
},
{
"l": "-92dBm",
"r": 0,
"g": 254,
"b": 255
},
{
"l": "-96dBm",
"r": 0,
"g": 212,
"b": 255
},
{
"l": "-100dBm",
"r": 0,
"g": 171,
"b": 255
},
{
"l": "-104dBm",
"r": 0,
"g": 129,
"b": 255
},
{
"l": "-108dBm",
"r": 0,
"g": 88,
"b": 255
},
{
"l": "-112dBm",
"r": 0,
"g": 46,
"b": 255
}
]
],
"elapsed": 3572,
"balance": 1
}
Transmitter
{
"lat": 38.916,
"lon": 1.448,
"alt": 1,
"frq": 868,
"txw": 0.1,
"bwi": 1
}
Transmitter Object
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| lat | number(float) | false | none | Latitude of transmitter in decimal degrees. |
| lon | number(float) | false | none | Longitude of transmitter in decimal degrees. |
| alt | number(float) | false | none | Altitude above ground level in meters OR feet. |
| frq | number(float) | false | none | Center frequency in megahertz. |
| txw | number(float) | false | none | Transmitter power in watts before the antenna. |
| bwi | number(float) | false | none | Bandwidth in MHz. 1MHz has a noise floor of -114dBm; 10MHz = -104dBm; 20MHz = -101dBm. |
Antenna
{
"txg": 2.15,
"txl": 1,
"ant": 0,
"azi": 1,
"tlt": 10,
"hbw": 2,
"vbw": 2,
"pol": "h"
}
Antenna Object
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| txg | number(float) | false | none | Transmitter antenna gain in dBi. |
| txl | number(float) | false | none | Feeder loss in dB. |
| ant | integer(int32) | false | none | Antenna pattern code: 0=allows custom options (see: hbw; vbw; fbr) 1=Vertical dipole (omni-directional). |
| azi | number(float) | false | none | Antenna azimuth in degrees north. |
| tlt | number(float) | false | none | Antenna tilt in degrees below the horizon (inverted). |
| hbw | number(float) | false | none | Custom antenna horizontal beamwidth in degrees; for use only with ant=0. |
| vbw | number(float) | false | none | Custom antenna vertical beamwidth in degrees; for use only with ant=0. |
| pol | string | false | none | Antenna polarization. |
Receiver
{
"lat": 38.906986,
"lon": 1.421416,
"alt": 0.1,
"rxg": 3,
"rxs": -100
}
Receiver Object
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| lat | number(float) | false | none | Latitude in decimal degrees. |
| lon | number(float) | false | none | Longitude in decimal degrees. |
| alt | number(float) | false | none | Altitude above ground level in meters OR feet. |
| rxg | number(float) | false | none | Receiver antenna gain in dBi. |
| rxs | number(float) | false | none | Receiver sensitivity/threshold in measured units defined by 'out' parameter. |
Model
{
"pm": 1,
"pe": 2,
"cli": 7,
"ked": 1,
"rel": 55,
"ter": 3
}
Model Object
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| pm | integer(int32) | false | none | Propagation model: 1=Irregular Terrain Model; 2=Line of Sight (LOS); 3=Hata; 4=ECC33; 5=SUI Microwave; 6=COST231; 7=Free space path loss; 9=Ericsson9999; 10=Plane earth loss; 11=Egli. |
| pe | integer(int32) | false | none | Propagation model subtype/environment: 1=Conservative/Urban; 2=Average/Suburban; 3=Optimistic/rural. |
| cli | integer(int32) | false | none | Radio climate for ITM model: (1). 1=Equatorial (Congo); 2=Continental Subtropical (Sudan); 3=Maritime Subtropical (West coast of Africa); 4=Desert (Sahara); 5=Continental Temperate; 6=Maritime Temperate and Over Land (UK and West coasts of US & EU); 7=Maritime Temperate, Over Sea. |
| ked | number | false | none | Include knife edge diffraction for enhancing basic empirical models (already in ITM). Switch on/off; 1=INCLUDE, 0=OFF, i.e., if diffraction is OFF (0) then the model applies more conservative 'line of sight'. |
| rel | number(float) | false | none | ITM model required reliability as % |
| ter | integer(int32) | false | none | Terrain code for ITM model (1): 1=Water; 2=Wet ground; 3=Farmland; 4=Forest/Average; 5=Mountain/Sand; 6=City/Poor ground. |
Environment
{
"clm": 1,
"cll": 1,
"mat": 1
}
Environment Object
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| clm | integer(int32) | false | none | Clutter mode: 0=None/DSM only; 1=System & custom clutter; 2=Custom clutter only. |
| cll | integer(int32) | false | none | Clutter loss: 0=None/DSM only; 1=Hard/LOS mode; 2=Soft/NLOS mode. |
| mat | number(float) | false | none | Clutter attenuation override in dB/m based on a tree block OR hollow building; light foliage=0.1dB/m; brick=1.0dB/m; concrete=5dB/m. |
Output
{
"units": "metric",
"col": "RAINBOW.dBm",
"out": 2,
"ber": 2,
"mod": 7,
"nf": -100,
"res": 10,
"rad": 5
}
Output Object
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| units | string | false | none | Define distance units applied; either meters/kilometers (metric) or feet/miles (imperial). |
| col | string | false | none | Color schema code OR filename string. Codes: 1=Cellular (5); 2=Red; 3=Green; 4=Blue; 5=Microwave(7); 7=Custom RGB; 8=Automatic by frequency; 9=Greyscale/GIS; 10=Rainbow(24); 11=Green/Blue/Red; 13=Sub noise floor (10); 14=TV broadcasting (4); 15=Red threshold; 16=Green threshold; 17=Blue threshold. Filename examples: RAINBOW.dBm; CUSTOMSCHEMA.dBm. |
| out | integer(int32) | false | none | Measured units: 1=dB; 2=dBm; 3=dBuV; 4=SNR (4 supports nf option). |
| ber | integer(int32) | false | none | Bit error rate: 1=0.1; 2=0.01; 3=0.001; 4=0.0001; 5=0.00001; 6=0.000001; >6=Lora; 7=SF7; 8=SF8; 9=SF9; 10=SF10; 11=SF11; 12=SF12. |
| mod | integer(int32) | false | none | Modulation: 1=4QAM; 2=16QAM; 3=64QAM; 4=256QAM; 5=1024QAM; 6=BPSK; 7=QPSK; 8=8PSK; 9=16PSK; 10=32PSK; 11=LoRa. |
| nf | number(float) | false | none | Noise floor in dBm for use with out=4/SNR. |
| res | number(float) | false | none | Resolution in meters for output. |
| rad | number(float) | false | none | Radius in kilometers for output. |
Client 2: SMTP2GO
About SMTP2GO
SMTP2GO provides their customers with a dashboard to manage their email campaigns. They also allow users to interact directly with the API that underpins it.
My task was to take a non-spec-compliant API schema (in YAML format) and:
- improve the endpoint and schema descriptions
- ensure the API schema complies with Open API 3.0
- provide high-level docs
As is typical with such a project, I was able to identify inconsistencies in logic such as: - strings that should be datetime - boolean with no example to let user know whether to pass 0/1 or True/False - allOf that should be anyOf
Tools Used
| Parameter | Description |
|---|---|
| Slate | Cleaned up the YAML, converted it to JSON, used Widdershins to convert the schema to Markdown and added Markdown pages for high-level overview material in Slate |
| Stoplight | I used Stoplight locally to assist with error identification and ensuring compliance with spec |
| Slack | The main communications channel to chat to the developer assigned to answer all my questions |
| GitBash | For version control via GitHub |
| Asana | For task management |
API Overview Extract
Quick Start
Get started with SMTP2GO's simple REST API.
These docs support users who wish to integrate with the API. Should you wish to use SMTP, that is also supported.
Prerequisites
To make an API call to SMTP2GO, first:
Authenticate
Once you have registered for an account, log in to your control panel.
Your API key must be provided in the X-Smtp2go-Api-Key
header and in the body api_key
.
If you are new to using API keys, please consider API key security.
Choose your Region
Now that you are ready to authenticate, you can:
- choose your region
- pass the API key in the request headers and in the body
Your options include:
- Regionless
- US Region
- EU Region
Your choice of region determines the URL to which you make your API call. For example, to make a request to add senders to your allowed list using the US region, use the path:
https://us-api.smtp2go.com/v3/allowed_senders/add
API Schema Extract
SMTP2GO Public API
SMTP2GO Public API Schema v3.0. Integrate with SMTP2GO Systems.
Base URLs:
Email: SMTP2GO Support Web: SMTP2GO Support License: Apache 2.0
Authentication
- API Key (APIKeyHeader)
- Parameter Name: X-Smtp2go-Api-Key, in: header and in the body
api_key
.
- Parameter Name: X-Smtp2go-Api-Key, in: header and in the body
Activity
A POST command allows you to search the activity stream. Select individual field/s to search, such as start_date
, or utilise the search
field to search across all fields.
postActivitySearch
Code samples
# You can also use wget
curl -X POST https://api.smtp2go.com/v3/activity/search \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Smtp2go-Api-Key: API_KEY'
POST https://api.smtp2go.com/v3/activity/search HTTP/1.1
Host: api.smtp2go.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"api_key": "api-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"start_date": "2021-04-20T00:00:00",
"end_date": "2021-04-21T00:00:00",
"search": "string",
"search_subject": "string",
"search_sender": "string",
"search_recipient": "string",
"search_usernames": "string",
"limit": 0,
"continue_token": "string",
"only_latest": false,
"event_types": [
"processed"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'X-Smtp2go-Api-Key':'API_KEY'
};
fetch('https://api.smtp2go.com/v3/activity/search',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Smtp2go-Api-Key' => 'API_KEY'
}
result = RestClient.post 'https://api.smtp2go.com/v3/activity/search',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Smtp2go-Api-Key': 'API_KEY'
}
r = requests.post('https://api.smtp2go.com/v3/activity/search', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Smtp2go-Api-Key' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://api.smtp2go.com/v3/activity/search', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.smtp2go.com/v3/activity/search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"X-Smtp2go-Api-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.smtp2go.com/v3/activity/search", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /activity/search
Search events
This endpoint searches the activity stream for events.
Body parameter
{
"api_key": "api-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"start_date": "2021-04-20T00:00:00",
"end_date": "2021-04-21T00:00:00",
"search": "string",
"search_subject": "string",
"search_sender": "string",
"search_recipient": "string",
"search_usernames": "string",
"limit": 0,
"continue_token": "string",
"only_latest": false,
"event_types": [
"processed"
]
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | false | The request payload carrying the search criteria |
| » api_key | body | APIKeyField | true | API Key from SMTP2GO App > Settings > API Keys |
| » start_date | body | string | false | ISO-8601-formatted datetime, which defaults to the current date at midnight (the range is inclusive of start_date and exclusive of end_date). |
| » end_date | body | string | false | ISO-8601-formatted datetime, which defaults to now |
| » search | body | string | false | A string used to search across all fields |
| » search_subject | body | string | false | A string used to search the subject field |
| » search_sender | body | string | false | A string used to search the sender field |
| » search_recipient | body | string | false | A string used to search the recipients field |
| » search_usernames | body | string | false | A string used to search the username field |
| » limit | body | integer | false | An integer to restrict the number of events returned per page |
| » continue_token | body | string | false | A string containing a token used to fetch the next page of results based on the current search |
| » only_latest | body | boolean | false | Pass true here to display only the latest event for each email |
| » event_types | body | any | false | none |
| »» anonymous | body | [string] | false | none |
| »» anonymous | body | any | false | A list of event types to filter on |
API key security
It is important to keep your API key secure. Publicly exposing your key can compromise your account, which could result in unexpected charges. To keep your API keys secure, follow these best practices:
- Store API keys as environment variables
- If you store API keys in files, store those files outside your application's source tree.
Client 3: Faria
About Faria
Faria provides its customers with a dashboard SaaS to manage vital aspects of School Administration from applications through to lessons and class management. Faria's many products are supported by unique API sets.
My task was to:
- identify a platform that could support multi-level user access including an SSO
- assist with implementing the platform
- advocate for a "docs as code" philosophy
- create high-level user documentation based on often out-of-date, and conflicting PDF guides
- improve the endpoint and schema descriptions for 5 APIs that support various dashboards
- ensure the API schemas comply with Open API 3.0
Tools Used
| Parameter | Description |
|---|---|
| Redocly | I cleaned the API YAML files and provided them to the Redocly build for consumption. I also populated several high-level overview pages for partners, developers, and external clients; written in Markdown |
| Rswag | I identified an automated tool that allowed the dev teams to extract a Swagger-compliant YAML directly from their Ruby code-base |
| Spectral | I proposed that Spectral be setup with webhooks to automatically verify adherence to spec as a new YAML file is generated |
| GitHub | I joined the Faria.org GitHub organisation to enable me to have access to the various repos including the documentation site |
| GitBash | For version control via GitHub |
API Schema Extract
This API set Orchestrates Faria Services Manager and School Administration with the ManageBac GUI.
Base URL:
Email: Faria International School Web: Faria International School
Authentication
API Key (authTokenQuery)
- Parameter Name: auth_token, in: query. Your V2 API authentication token may be passed in the parameters.
API Key (authTokenHeader)
- Parameter Name: auth-token, in: header. Your V2 API authentication token may be passed in the header.
To protect your key, use environment variables.
 It returns the group name, program, grade level and student IDs for members. Note: /v2/ib-groups
endpoints have been deprecated in favor of /v2/year-groups
endpoints and will be removed completely by the end of 2021.
Year Group Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| modified_since | query | string | false | A timestamp to filter results by modification date. |
| page | query | string | false | An integer defining which page to display. |
| per_page | query | string | false | An integer defining the number of records to display per page. |
Example responses
200 Response
{
"year_groups": [
{
"id": 10907398,
"name": "IB Diploma Group of 2019 (Grade 12)",
"program": "IB Diploma",
"grade": "Grade 12",
"grade_number": 13,
"student_ids": [
10193652
]
},
{
"id": 11076103,
"name": "IB MYP Group of 2019 (Year 4)",
"program": "IB Middle Years",
"grade": "Year 4",
"grade_number": 10,
"student_ids": [
12459565,
11456849,
12068809
]
}
],
"meta": {
"current_page": 1,
"total_pages": 1,
"total_count": 2,
"per_page": 100
}
}
Faria's needs were/are unusual in that I was the more experienced member of the team in terms of API documentation. This meant not only did I have to identify the tooling for the developers to use, I also had to advocate for best practice. I supported the various development teams (there are different teams working on each Faria product/API):
- By writing up how the first individual implemented a new tool and sharing code samples (e.g. for Rswag and Spectral)
- By advocating for CICD practices; now when developers make upstream changes to the API a build is triggered downstream to update the API schema on the documentation site
- By becoming the in-house "expert" on Redoc.ly (there is a limit to this, I am not a developer! I can, however, use the "switches" to activate and deactivate features and functionality for the build).


Name:
Age:
Breed:
Gender:
Service: ---Select an option--- Shower Nails Cut Full Service
Owner's Name:
Contact phone:


First state description
Second state description
On the fourth state thins get more interesting, we show button to enter next state depending on chosen answer, this allows for some simple validation / different routes
Choose one of the options and enter final state
Finished!
Finished!
Finished!


Using the CRC32 smart contract at deployed on Rinkeby network
Check CRC32 of an ASCII string or hexadecimal number (hex number should start with '0x')


I am a fourth year student at San Diego State University, pursuing a Bachelor’s degree in Computer Science.I have interned as a software engineer for Sharp Healthcare, and during the school year I work as a data structures teaching assistant at San Diego State University, and as a Research Assistant at Edwards Labs. When I’m not coding, I like to explore sunny San Diego’s beaches, hiking spots, and try different foods.
Mentored students in their design and implementations of Linked Lists, Stacks, Queues, Hash Tables, Balanced Trees in Java. Assisted the professor in grading and explaining core concepts.
Worked with the development of the Continuous Network Discovery Project that focused on managing continuous network discovery across a networked environment to maintain a current inventory of all the servers and web applications used within the Sharp network. Developed the Virus Total Project using Virus Total API to build a SQL database of malware.
Managed CISCO data communications network throughout university campus. Configuration of CISCO and Alcatel switches to provide Wi-Fi throughout the campus.
GPA: 3.7
BonAppétit is a web application that recommends users restaurants in their specified radius using the Yelp API. Further, it logs all the restaurants that have been visited in a SQL database.
The Sport Impact Monitor is a universalized device meant to measure the impact force and pressure force of target objects. Looking at the picture above, we see the product is composed of an ADXL 345 accelerometer, breadboard, raspberry pi 2, jumper wires, and an independent power supply. Sports Impact Monitor's features include calculating acceleration, impact force, email notification using twilio. The Sports Impact Monitor also returns a graph of the calculated acceleration and impact force using python without needing the user to go through the specific coordinates. Said features vary based on the dependent or independent mode of the Sports Impact Monitor.
Edwards Labs is a bioinformatics lab at San Diego State University run by Dr. Edward.
As a research assistant, I explored relationships between bacteriophage genomes by counting kmers using python and c. I also extracted DNA and protein sequences by pulling out the sequences from fasta files and making tuples of the bacteriophage and the ID to see the connection.[To be added]
[To be added]


GOV.UK
alpha
This is a new service –
help us improve it.
Choose a thing
Styleguide
Local
Dev Env
Demo Env
Selfserve Styleguides
Internal Styleguides
Selfserve Local
Have you got all required VMs running?
Internal Local
Have you got all required VMs running?
Selfserve Dev
Are you connected to the VPN?
Internal Dev
Are you connected to the VPN?
Selfserve Demo
Are you connected to the VPN?
Internal Demo
Are you connected to the VPN?
Unit Testing
Have you ran 'grunt test' to generate the coverage files?
Documentation
Are you connected to the VPN?


Formal Verification of Smart Contracts
Dr. Christian Reitwiessner
@ethchris github.com/chriseth<EMAIL_ADDRESS>Oberseminar Mathematische Logik
München
2016-07-13
Ethereum - the World Computer
- blockchain-based system
- creates globally-shared and distributed computer
- tamper-proof, no centralized control
- programs are called "smart contracts"
- cryptographic signatures for identity
- internal "currency" pays for operation
- programs can interact
- operations always triggered from outside
Examples of Smart Contracts
- multi-signature "wallet"
- land registry
- auction
- crowdfund
- voting
Smart contracts can interact arbitrarily, so we can combine them:
Use your multi-signature wallet to take part in a crowdfund
that votes on whether the participants want to bid in an automated auction
to buy a strip of land.
Advanced Vision
- "smart objects" owned by themselves
- fleet of autonomous cars providing taxi service
- nobody owns this system, it buys and sells cars on its own
Recent Events
- "The DAO" - decentralized autonomous organization
- largest crowdfund in history (~150 mio USD)
- tiny flaw allowed attacker to remove ~30 mio USD
- details: exploited reentrance bug in "split" mechanism
Details about the Bug
Oversimplified example:
// every contract has implicit "balance"
contract DAO {
// shares of each participant
mapping(address => uint) shares;
function split() {
// send money to caller according to shares
msg.sender.send(shares[msg.sender]);
// set shares to zero
shares[msg.sender] = 0;
}
}
msg.sender.send()
executes code on the
receiving side, that code can call back into split()
and
extract more money.
Fineprint: This is not actually possible with .send()
, but it is with
a similar function.
The Ethereum System
- simple machine
- fully isolated
- no concurrency
System State:
- state: ((address: uint160) -> account)
- account: {code: byte array, balance: uint256, storage}
- storage: (uint256 -> uint256)
Account can only be modified by its own code,
messages between accounts are synchronous and trigger code execution, code is immutable.
The Ethereum Virtual Machine
- stack-based virtual machine
- 256 bit words
- temporary memory wiped after execution
- storage persistent between calls
- execution time limited by "gas" (has to be paid)
- ~70 opcodes:
- control flow: 11
- message related: 8
- arithmetics: 17
- comparison: 5
- data: 10
- blockchain internals: 14
Formal Methods in Ethereum
- Luu et al.: "Making Smart Contracts Smarter": symbolic execution of Ethereum code to find bug classes
- Aesthetic Integration: "Imandra": high level language with verification tools (unreleased)
- Solidity ("official" high level language): translation to why3, verification using various solver backends
- current stage: full model of single execution (of subset of language)
- soon: use invariants to cope with modifications by external messages
- future: multi-transaction reasoning using process calculus
Formal Verification of Binary Search
Invariants for External Effects
The previous example done right:
/// @why3 invariant { to_int #shares - to_int this.balance }
contract Fund {
uint shares;
function withdraw(uint amount) {
if (amount < shares) {
// subtract the amount from the shares
shares -= amount;
// send the actual money / ether
if (!msg.sender.call.value(amount)())
throw;
}
}
}
- why3 automatically generates conditions for the program and the invariant
- invariant ensures "shares" represent actual amount
- conditions are checked by the why3 tools automatically
Future Directions
- conditions spanning multi-contract systems
- combine high level model with bytecode-level model (correctness of compiler)
- conditions spanning multiple transactions (process calculi?)


Ocean [ac11], ocean, in Crystal Sea
Last updated Turn #145
Ocean [ac11], ocean, in Crystal Sea
------------------------------------------------------------------------
23: Canopus I [hq7s], ship, 2 hulls, 1 rowing port, 6 sails, arrived from
23: Ocean [ac10], owner:
23: Toulouse [h1q], Pen, with eight sailors
24: Canopus I [hq7s], ship, 2 hulls, 1 rowing port, 6 sails, departed for
24: Ocean [ac12].
30: It has stopped raining.
Routes leaving Ocean:
North, to Ocean [ab11], 6 days
East, to Ocean [ac12], 6 days
South, to Ocean [ad11], 6 days
West, to Ocean [ac10], 6 days
Inner locations:
Island [ac5e], island, 1 day, owner:
Cyclops [hv5h], cyclops, number: 23


MYSTERY, ALASKA A film review by Steve Rhodes Copyright 1999 Steve Rhodes RATING (0 TO ****): * 1/2
Potatoes. The secret weapon of the rag-tag group of adults who play hockey in the extremely remote village of Mystery, Alaska is the lowly potato. Heated they can be shoe warmers, and cold they can be used to plan plays. The juvenile R-rated comedy MYSTERY, ALASKA would have been more aptly named, THE MIGHTY DUCKS 4: NORTH TO ALASKA.
A putative comedy that includes all the well-worn sport clichés, it tries hard to be a poignant tale as well about the bleakness and hardships of living in the far north. At neither a comedy nor a drama does it come close to succeeding.
Even in the obligatory big game ending, the movie fails miserably. Containing one of the most poorly filmed hockey sequences you could imagine, it manages to be both confusing and boring. Basically, we see the puck in close-up shot back and forth ad nauseam until one team, thank god, is finally declared the winner.
Director Jay Roach, whose only other film credits are the AUSTIN POWERS series, seems as lost with the material as if he wandered off into a blizzard. MYSTERY, ALASKA is so clumsily directed that it gives support for those who say that the real director of the AUSTIN POWERS movies was the star himself, MIKE MYERS.
The setup for the story is that an article in Sports Illustrated ("The Roots of Hockey") propels the local team into national prominence. As a publicity stunt, the New York Rangers come to town to challenge them to a single game of "pond hockey." ("We don't know who they are or what they are," says the national newscaster, as the way the network plans on promoting the game. "We just know they have poor dental health and can skate like the wind.")
The town, for reasons that are never made plausible, only wants to play if they can actually beat the pros. "Two things we've always had: our dignity and our illusions," Judge Burns (Burt Reynolds) lectures the town's citizens. "I suggest we cling to them both." Other members of the large cast include Hank Azaria, Russell Crowe, Mary McCormack, Lolita Davidovich, Ron Eldard, Colm Meaney and Maury Chaykin.
Typical of what passes for humor in the movie is a scene in the locker room in which the coach, the town's sheriff, tells the players, "You guys know what you're made of!" The youngest member of the team then proceeds to puke.
In the long chasm between the setup and the big game, we have to witness constant bickering among the locals. The film's R rating stems mainly from sexual humor that is included, one supposes, as a way to juice up the script. Too bad. Released as a PG-13 film, they could attract preteen set, which might have lower standards as to what constitutes comedy.
So is anything funny? Yes. There are two cameo appearances: One actor provides a little color commentary during the game and the other sings the national anthem. I will not give either away since the names of these individuals, not the script, provide most of the laughs.
MYSTERY, ALASKA runs a long 1:58. It is rated R for language and sexuality and would be acceptable for teenagers.
Email<EMAIL_ADDRESS>Web: http://www.InternetReviews.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Recently I enhanced support for publishing haddocks of multiple
components (see
this pull request).
It will be available in next release of GHC
(GHC-9.0.2
). Note that there is still room for improvement (e.g.
external links to hackage). Currently, there's no tooling support, so it might
still feel a bit hacky.
First one needs to compile haddocks of all the components, which can be done
with either cabal
or stack
:
cabal haddock --haddock-html \ --haddock-quickjump \ --haddock-option="--use-index=../doc-index.html" \ --haddock-option="--use-contents=../index.html" \ --haddock-option="--base-url=.." \ all
The second step is to copy all the haddocks to a common directory, e.g.
docs
folder. To compile the contents page (the haddock entry
page), index with support of quickjump one can run:
haddock -o docs \ --quickjump \ --gen-index \ --gen-contents \ --read-interface=package-a,docs/package-a/package-a.haddockwhere one needs to list each component with
--read-interface
pointing to the compiled *.haddock
interface file.
The docs directory can be served with a local http server or
github-pages
. Check out an example project
here. Note that some
settings are hidden in its
cabal.project
file. Its haddocks, which also include haddocks of base
library
are available here.


TRANSFORM
Description
The TRANSFORM
clause is used to specify a Hive-style transform query specification
to transform the inputs by running a user-specified command or script.
Spark’s script transform supports two modes:
- Hive support disabled: Spark script transform can run with
spark.sql.catalogImplementation=in-memory
or withoutSparkSession.builder.enableHiveSupport()
. In this case, now Spark only uses the script transform withROW FORMAT DELIMITED
and treats all values passed to the script as strings. - Hive support enabled: When Spark is run with
spark.sql.catalogImplementation=hive
or Spark SQL is started withSparkSession.builder.enableHiveSupport()
, Spark can use the script transform with both Hive SerDe andROW FORMAT DELIMITED
.
Syntax
SELECT TRANSFORM ( expression [ , ... ] )
[ ROW FORMAT row_format ]
[ RECORDWRITER record_writer_class ]
USING command_or_script [ AS ( [ col_name [ col_type ] ] [ , ... ] ) ]
[ ROW FORMAT row_format ]
[ RECORDREADER record_reader_class ]
Parameters
-
expression
Specifies a combination of one or more values, operators and SQL functions that results in a value.
-
row_format
Specifies the row format for input and output. See HIVE FORMAT for more syntax details.
-
RECORDWRITER
Specifies a fully-qualified class name of a custom RecordWriter. The default value is
org.apache.hadoop.hive.ql.exec.TextRecordWriter
. -
RECORDREADER
Specifies a fully-qualified class name of a custom RecordReader. The default value is
org.apache.hadoop.hive.ql.exec.TextRecordReader
. -
command_or_script
Specifies a command or a path to script to process data.
ROW FORMAT DELIMITED BEHAVIOR
When Spark uses ROW FORMAT DELIMITED
format:
- Spark uses the character
\u0001
as the default field delimiter and this delimiter can be overridden byFIELDS TERMINATED BY
. - Spark uses the character
\n
as the default line delimiter and this delimiter can be overridden byLINES TERMINATED BY
. - Spark uses a string
\N
as the defaultNULL
value in order to differentiateNULL
values from the literal stringNULL
. This delimiter can be overridden byNULL DEFINED AS
. - Spark casts all columns to
STRING
and combines columns by tabs before feeding to the user script. For complex types such asARRAY
/MAP
/STRUCT
, Spark usesto_json
casts it to an inputJSON
string and usesfrom_json
to convert the result outputJSON
string toARRAY
/MAP
/STRUCT
data. COLLECTION ITEMS TERMINATED BY
andMAP KEYS TERMINATED BY
are delimiters to split complex data such asARRAY
/MAP
/STRUCT
, Spark usesto_json
andfrom_json
to handle complex data types withJSON
format. SoCOLLECTION ITEMS TERMINATED BY
andMAP KEYS TERMINATED BY
won’t work in default row format.- The standard output of the user script is treated as tab-separated
STRING
columns. Any cell containing only a string\N
is re-interpreted as a literalNULL
value, and then the resultingSTRING
column will be cast to the data types specified incol_type
. - If the actual number of output columns is less than the number of specified output columns,
additional output columns will be filled with
NULL
. For example:output tabs: 1, 2 output columns: A: INT, B INT, C: INT result: +---+---+------+ | a| b| c| +---+---+------+ | 1| 2| NULL| +---+---+------+
- If the actual number of output columns is more than the number of specified output columns,
the output columns only select the corresponding columns, and the remaining part will be discarded.
For example, if the output has three tabs and there are only two output columns:
output tabs: 1, 2, 3 output columns: A: INT, B INT result: +---+---+ | a| b| +---+---+ | 1| 2| +---+---+
- If there is no
AS
clause afterUSING my_script
, the output schema iskey: STRING, value: STRING
. Thekey
column contains all the characters before the first tab and thevalue
column contains the remaining characters after the first tab. If there are no tabs, Spark returns theNULL
value. For example:output tabs: 1, 2, 3 output columns: result: +-----+-------+ | key| value| +-----+-------+ | 1| 2| +-----+-------+ output tabs: 1, 2 output columns: result: +-----+-------+ | key| value| +-----+-------+ | 1| NULL| +-----+-------+
Hive SerDe behavior
When Hive support is enabled and Hive SerDe mode is used:
- Spark uses the Hive SerDe
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
by default, so columns are cast toSTRING
and combined by tabs before feeding to the user script. - All literal
NULL
values are converted to a string\N
in order to differentiate literalNULL
values from the literal stringNULL
. - The standard output of the user script is treated as tab-separated
STRING
columns, any cell containing only a string\N
is re-interpreted as aNULL
value, and then the resulting STRING column will be cast to the data type specified incol_type
. - If the actual number of output columns is less than the number of specified output columns,
additional output columns will be filled with
NULL
. - If the actual number of output columns is more than the number of specified output columns, the output columns only select the corresponding columns, and the remaining part will be discarded.
- If there is no
AS
clause afterUSING my_script
, the output schema iskey: STRING, value: STRING
. Thekey
column contains all the characters before the first tab and thevalue
column contains the remaining characters after the first tab. If there is no tab, Spark returns theNULL
value. - These defaults can be overridden with
ROW FORMAT SERDE
orROW FORMAT DELIMITED
.
Examples
CREATE TABLE person (zip_code INT, name STRING, age INT);
INSERT INTO person VALUES
(94588, 'Zen Hui', 50),
(94588, 'Dan Li', 18),
(94588, 'Anil K', 27),
(94588, 'John V', NULL),
(94511, 'David K', 42),
(94511, 'Aryan B.', 18),
(94511, 'Lalit B.', NULL);
-- With specified output without data type
SELECT TRANSFORM(zip_code, name, age)
USING 'cat' AS (a, b, c)
FROM person
WHERE zip_code > 94511;
+-------+---------+-----+
| a | b| c|
+-------+---------+-----+
| 94588| Anil K| 27|
| 94588| John V| NULL|
| 94588| Zen Hui| 50|
| 94588| Dan Li| 18|
+-------+---------+-----+
-- With specified output with data type
SELECT TRANSFORM(zip_code, name, age)
USING 'cat' AS (a STRING, b STRING, c STRING)
FROM person
WHERE zip_code > 94511;
+-------+---------+-----+
| a | b| c|
+-------+---------+-----+
| 94588| Anil K| 27|
| 94588| John V| NULL|
| 94588| Zen Hui| 50|
| 94588| Dan Li| 18|
+-------+---------+-----+
-- Using ROW FORMAT DELIMITED
SELECT TRANSFORM(name, age)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
NULL DEFINED AS 'NULL'
USING 'cat' AS (name_age string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '@'
LINES TERMINATED BY '\n'
NULL DEFINED AS 'NULL'
FROM person;
+---------------+
| name_age|
+---------------+
| Anil K,27|
| John V,null|
| ryan B.,18|
| David K,42|
| Zen Hui,50|
| Dan Li,18|
| Lalit B.,null|
+---------------+
-- Using Hive Serde
SELECT TRANSFORM(zip_code, name, age)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim' = '\t'
)
USING 'cat' AS (a STRING, b STRING, c STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim' = '\t'
)
FROM person
WHERE zip_code > 94511;
+-------+---------+-----+
| a | b| c|
+-------+---------+-----+
| 94588| Anil K| 27|
| 94588| John V| NULL|
| 94588| Zen Hui| 50|
| 94588| Dan Li| 18|
+-------+---------+-----+
-- Schema-less mode
SELECT TRANSFORM(zip_code, name, age)
USING 'cat'
FROM person
WHERE zip_code > 94500;
+-------+---------------------+
| key| value|
+-------+---------------------+
| 94588| Anil K 27|
| 94588| John V \N|
| 94511| Aryan B. 18|
| 94511| David K 42|
| 94588| Zen Hui 50|
| 94588| Dan Li 18|
| 94511| Lalit B. \N|
+-------+---------------------+


Oh My... Entity Contact Once Again
I just came down an hour ago from my first trip for over a month. It's been maybe 10 trips and many months since my last encounter with the entities. Tonight I encountered them for the 4th time total. I'm quite shocked. The first three times they have been friendly, though always kind of childishly insisting that I follow them to somewhere. I don't know where, only that I feel they want me to go deeper, and to another place. I have always resisted, saying to them, or thinking to them actually 'No,no, sorry, I can't go, I have to stay here, I know it would be really cool to go there, yes I know, I can't, sorry'. They have sort of accepted that I don't go, although with, it seems, some kind of dissapointment.
One of my greatest goal with this plant has been to figure out who and what these enteties are, since the first time I met them. 'They' actually seem to be 'one', like a hive mind. They seem fractal, or faceted, though every facet reflects the same being. It's impossible to describe how they look, because there's so much more to them. They don't have a fixed shape or anything. This is how the enteties appear. And always wanting to take me somewhere or show me something.
But this time I made a new discovery; I now believe that they are really not faceted reflections of the *same* being/consciousness, but that they actually *are* different beings. Different, but with the same intentions or 'orders'. They seemed to work as a team, cooperating, although I could sense that they were individuals.
On my first encounters they have been friendly and insisting that I come along, and then the effects usually fade after a while. This time however, they were serious about it. I have just installed Winamp and several plugins for the first time. I put on the an ambient/meditation song and started the plugin 'eXess'. As the effects came I got lost in the visuals in Winamp, and that's were they first appeared, through the visuals. To my surprize, because I had not expected the trip to reach this level, I was aiming for a light experience while enoying the Winamp plug ins. But I smoked really effectively.
It was as if the screen and the visuals suddenly became conscious, alive and living. Not the screen in itself, but the stuff the screen is made of. The screen no longer seemed like solid matter, it seemed like it was made of mind stuff, as if the fabric was consciousness. The whole room became like this, as it often does when I'm on Salvia. I actually said hello to them when I saw them, but they obviously had no time for chit chat! They immediately urged me to come with them, but I resisted as usual. Then they went from urging to plain forcing! It was as if one being tried to pull me through the music, another through my vision, and one was in the space around me like a gas, but not just floating there, it *came out* from there, as if it was hardwired to another place through the space it occupied.
I had to resist all I could, I was really afraid that I would not be able to resist, because their will was extremely strong, and they seemed angry or cold. They were really working on me. I resisted until the effects started to fade.
This being the 4th time I've encountered them I now think I'm accepting their existance. THEY WERE REAL!!! What more can I say? That's what I experienced, I witnessed it. They were there, completely alien and conscious of me. It happened, I can't deny it anymore. I was there. And they have been the exact same beings every damn time.
I'm starting to fear Salvia, that's why it has been so long since the last time. But I won't back out, I'm going to figure them out. I'm going to speak to them, I'm going to ask them who they are, where they come from and what they want, and I'm going with them some day, I have to.
THE DAY AFTER
I've had a nights sleep, and some hours thinking. I've been thinking a bit. Our mind has been moulded by natural selection for millions of years to perceive *this* version of reality. But this is only *one* version. With a different brain I could see the same reality but from another perspective, like for instance a snail or an insect does. They have a totally different perception of the world, but it's just as valid and real as ours. The common factor is that both the brains of snails and humans have evolved naturally to work as effectively and smoothly as possible, grounding us in *this* perspective. Evolution has shaped the brain so that it interprets various aspects of reality as vision, sound, space and time so that the species can interact with their environment in the most beneficial way for survival and reproduction.
But when I alter the brains natural balanced chemistry with for instance Salvia, then it no longer interprets reality way it's meant to. Essentially I am in chaos land. With chaos I mean a system that seems random and unpredictable yet still displays an inherent order, like fractals. I am no longer grounded in the natural perspective of reality, I actually get to see the world with a whole new brain. I sometimes think of the brain as a kind of filter; letting some perceptions pass and blocking out others that would be an evolutionary disadvantage. When I insert the 'Salvia filter', there's no telling what can happen.
My point is, the reality I perceive with the new brain exists. If it didn't exist, then I wouldn't experience it. Even though it's very different from my natural state of perception, the perceptions are just as real. The 'Salvia filter' lets through new aspects of reality, and blocks or alters the usual ones. And I believe the entities are one of these new aspects that the filter opens for. They don't seem any less real to me today as they did during and after my experience yesterday.
Everything is interconnected, all aspects of reality. Our consciousness as well as our body is interwoven with the entire cosmos. Ultimately there are no divisions, only psychological divisions created by evolutionary forces to enable us to function the way we normally do. So I don't find it too hard to accept that there may be other conscious beings, hidden from our natural perception. Alter the mind with Salvia: Wham! There they are. The walls have collapsed.
I may be on deep water here, but I have decided to take it at face value. I won't come one step closer unless I make a choice. I have only two choices; either I accept it or deny it. There is no third option. So, with my present worldview, I finally feel I can honestly accept their existance.
I wonder if they are the same as the 'DMT-elves', just that with Salvia we get to see them from another perspective?
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.


John Lennon
John Ono Lennon, (born John Winston Lennon; 9 October 1940 – 8 December 1980), was an English musician, singer and songwriter who rose to worldwide fame as a founder member of the rock band the Beatles, the most commercially successful band in the history of popular music. With Paul McCartney, he formed a songwriting partnership that is one of the most celebrated of the 20th century.
Born and raised in Liverpool, as a teenager Lennon became involved in the skiffle craze; his first band, the Quarrymen, evolved into the Beatles in 1960. When the group disbanded in 1970, Lennon embarked on a solo career that produced the critically acclaimed albums John Lennon/Plastic Ono Band and Imagine, and iconic songs such as "Give Peace a Chance" and "Working Class Hero". After his marriage to Yoko Ono in 1969, he changed his name to John Ono Lennon. Lennon disengaged himself from the music business in 1975 to raise his infant son Sean, but re-emerged with Ono in 1980 with the new album Double Fantasy. He was murdered three weeks after its release.


We propose a consistent monitoring procedure to detect a structural change from a cointegrating relationship to a spurious relationship. The procedure is based on residuals from modified least squares estimation, using either Fully Modified, Dynamic or Integrated Modified OLS. It is inspired by Chu et al. (1996) <doi:10.2307/2171955> in that it is based on parameter estimation on a pre-break "calibration" period only, rather than being based on sequential estimation over the full sample. See the discussion paper <doi:10.2139/ssrn.2624657> for further information. This package provides the monitoring procedures for both the cointegration and the stationarity case (while the latter is just a special case of the former one) as well as printing and plotting methods for a clear presentation of the results.
| Version: | 0.1.0 |
| Depends: | cointReg (≥ 0.2.0) |
| Imports: | stats, graphics, matrixStats (≥ 0.14.1) |
| Suggests: | knitr, rmarkdown |
| Published: | 2016-06-14 |
| Author: | Philipp Aschersleben [aut, cre], Martin Wagner [aut] (Author of underlying paper.), Dominik Wied [aut] (Author of underlying paper.) |
| Maintainer: | Philipp Aschersleben <aschersleben at statistik.tu-dortmund.de> |
| BugReports: | https://github.com/aschersleben/cointmonitoR/issues |
| License: | GPL-3 |
| URL: | https://github.com/aschersleben/cointmonitoR |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | cointmonitoR results |
| Reference manual: | cointmonitoR.pdf |
| Vignettes: |
cointmonitoR |
| Package source: | cointmonitoR_0.1.0.tar.gz |
| Windows binaries: | r-devel: cointmonitoR_0.1.0.zip, r-release: cointmonitoR_0.1.0.zip, r-oldrel: cointmonitoR_0.1.0.zip |
| OS X binaries: | r-release: cointmonitoR_0.1.0.tgz, r-oldrel: cointmonitoR_0.1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=cointmonitoR to link to this page.


Laravel
Admin Panel
Version: 8.*
React
Admin Panel
Version: 17.*
Comming Soon
Next Js
Admin Panel
Version: -
Comming Soon
Let's Achieve Beyond Imagination !!


{% extends 'base.html' %} {% block content %}
Enter details for Image to be listed on our portal.
All items shall be displayed in order and appropriately.
Enter associated information so that
website can render images with ease and according to category.
{{error}}
{% endif %} {% if success %}{{success}}
{% endif %}


Smooth Talk * * * * (out of * * * * )
Directed by Joyce Chopra. Cast: Laura Dern, Mary Kay Place, Elizabeth Berridge, Treat Williams, Margaret Welsch, Levon Helm, Jill Inglis. 1986 - 92 minutes. Rated PG-13 (for sexual situations and profanity). Reviewed September 1998.
"Smooth Talk," which is the best independent film I have ever seen, won the Grand Jury Prize at 1985's Sundance Film Festival, then known as the U.S. Film Festival. It is an alternately funny, touching, tragic, unexpected gem.
Laura Dern stars as Connie, a bored 15-year-old girl who is sometimes naive and selfish, like most teenagers are, and has an unhappy home life, especially because her mother (Mary Kay Place) completely doesn't understand her. Her dad (Levon Helm) is often so involved in himself and his own dreams that when he talks to Connie, it is as if he is speaking a foreign language. She also suffers because her parents obviously prefer her older sister, June (Elizabeth Berridge).  Every day she goes to the mall with her two friends and they slip into the bathroom, change into more revealing clothes, and run around the building like little children. She also decides to venture across the road from the mall and go to the burger joint where the older people hang out, hoping to find a boy, but it is obvious she is still too immature for a relationship. Connie briefly comes in contact with a handsome, but mysterious older man who obviously has an ulterior motive.
To give away the last 30 minutes of "Smooth Talk" would be criminal, because one of the best things about the film is the element of surprise at what comes at the conclusion. What happens is one of the most unpredictable, shocking things I have ever seen, but it leads up to a moment in the last scene that leaves closure for what had happened, and is one of my all-time favorite scenes in any film.
"Smooth Talk" is the best type of film. It obviously was made for not much money, but was written and directed by Joyce Chopra, based on the short story, "Where Am I Going? Where Have I Been?" by Joyce Carol Oates, with a great deal of delicacy and care. The screenplay is especially impressive, and perfectly realized, because not only is it perfect at being a "coming-of-age" story, and a "slice-of-life" picture, but the characters are also all written to be three-dimensional, and each one of them is given the chance to have at least one scene in which we really get to know or sympathize with them.
At the center of the story, however, is Connie, who is one of the most memorable and realistic teenage characters in recent memory. And what definately brings her to life is Dern, who is flawless in her portrayal of this girl who at one moment has the stature and ability to act like an adult, and in the next frame turn into this child. It is Dern's best performance to date, and was worthy of winning the 1986 Academy Award for Best Actress. The other cast members also couldn't be better. Berridge, as Connie's lonely sister, gives a truly poignant performance, as does Jill Inglis as one of Connie's friends whom Connie ignores once she starts hanging out at the burger place. The music by James Taylor is perfect for the movie, and fits very well, especially in the last sequence already mentioned, which makes the scene all the more powerful.
I wouldn't change a thing about "Smooth Talk." It is one of the few motion pictures I've seen that enraptured me in its story and characters so well that at the end, I was left with a lot of deep emotions and feelings about what I had witnessed, and also about the brilliance and subtlety of the last touching scene.
- Copyright 1999 by Dustin Putman Http://hometown.aol.com/FilmFan16/index.html
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


my_maps
infos
- A right click (tap and hold on mobile) will display information about the current location.
- A short click (tap on mobile) on a map feature will select the feature and show more information.
## -*- coding: utf-8 -*- <% settings = request.registry.settings proxy_wms_url = settings.get('proxy_wms_url') node_modules_path = settings.get('node_modules_path') closure_library_path = settings.get('closure_library_path') %>\


Something that is one and a half feet, or half a yard, long is called sesquipedalian.
(This word also has the non-mathematical meaning of ’having many syllables’, etc).


Intern
KBZ Bank Company.Ltd:
Job Description
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Job Requirements
Honest, ethical and with integrity Enjoy working with people Positive and enthusiastic Hungry for achievements Desire to upgrade and improve Willingness to learn
What We Can Offer
BENEFITS
Professional and personal development not taught in school Towards excellence and professionalism Become a highly effective and elite professional
HIGHLIGHTS
Work experience in an international company Be a part of the number one life insurer Live a healthier, longer, better life
CAREER OPPORTUNITIES
Best intern will be apprentice to Director Successful and high performing interns will secure permanent full time management careers
- APPLY FOR THIS INTERN
- Apply Here


Tina & Darren
Are getting married
February 3, 2018
Save the Date
Tina and Darren request the pleasure of your company at the celebration of our marriage on Saturday 3rd February 2018.
Please RSVP by 15th October 2017.
Ceremony & Reception
Tithe Barn
Symondsbury Estate
The Estate Office Manor Yard
Bridport, Dorset DT6 6HG
Your presence at our wedding is all that we wish for...
We do not have a gifting list
Our house is set with nothing missed
We’d like to go on honeymoon
A place for us as bride and groom
To receive a small donation
To send us to our dream location
Would be amazing!
Get in Touch
Please contact us by email at tina.darren.wedding@gmail.com


Next: with-open-stream, Previous: with-open-file, Up: Streams Dictionary
close
stream &key abort ⇒ result
stream—a stream (either open or closed).
abort—a generalized boolean. The default is false.
result—t if the stream was open at the time it was received as an argument, or implementation-dependent otherwise.
close closes stream. Closing a stream means that it may no longer be used in input or output operations. The act of closing a file stream ends the association between the stream and its associated file; the transaction with the file system is terminated, and input/output may no longer be performed on the stream.
If abort is true, an attempt is made to clean up any side effects of having created stream. If stream performs output to a file that was created when the stream was created, the file is deleted and any previously existing file is not superseded.
It is permissible to close an already closed stream, but in that case the result is implementation-dependent.
After stream is closed, it is still possible to perform the following query operations upon it:
streamp, pathname, truename, merge-pathnames, pathname-host, pathname-device, pathname-directory,pathname-name, pathname-type, pathname-version, namestring, file-namestring, directory-namestring, host-namestring, enough-namestring, open, probe-file, and directory.
The effect of close on a constructed stream is to close the argument stream only. There is no effect on the constituents of composite streams.
For a stream created with make-string-output-stream, the result of get-output-stream-string is unspecified after close.
(setq s (make-broadcast-stream)) ⇒ #<BROADCAST-STREAM> (close s) ⇒ T (output-stream-p s) ⇒ true
The stream is closed (if necessary). If abort is true and the stream is an output file stream, its associated file might be deleted.
Next: with-open-stream, Previous: with-open-file, Up: Streams Dictionary


Page 1 of 1
Responsiveness
Posted:
Mon Oct 26, 2009 4:34 pm
by strafe of x2
ok so i got to playing with things and it seems like trans can be some what non-responsive sometimes. not to say that it doesn't work but more of a slow almonst sluggish response not sure if its just that i dont have the agility i need yet or what the deal is anyone got a high agil mage that can trans beam? also if u hit the create port button and then the end task key it doesnt stop it you from the port screen which means u cant cast untill you make a port.
Re: Responsiveness
Posted:
Mon Oct 26, 2009 4:50 pm
by ffrank
I'm pretty sure every spell has this problem. Mainly responsible for my many deaths. It could be lag.
Re: Responsiveness
Posted:
Mon Oct 26, 2009 5:15 pm
by Joe M.
Two problems:
1. Responsiveness: Agility does affect cast speed. It might be a problem with this, it might not be. Can anybody else help here?
2. Stop action with portal: I haven't observed this simply because I never use the stop action key. This is a problem. In the meantime, use right-click, which cancels activated spells (although this too may not work with portal--I'm not sure).
Re: Responsiveness
Posted:
Mon Oct 26, 2009 5:24 pm
by strafe of x2
well i think its the spell delay time or that's what it seems like i will try out the port right click thing. it really messed me up (like 100k penalty) i set the wrong key for it and couldnt figure out what i did lol
Re: Responsiveness
Posted:
Mon Oct 26, 2009 5:51 pm
by marzuku
Adept magnus doesnt have a problem transbeaming me, he seems to have found out of it, though he finally fell into the pit.
but i have found transers to be unresponsive at quite many occations.
think its easier if you increase the depth of what you can fall before you die, if you have a transer anyway you most likely wont die.. so im guessing its no biggy:)
Re: Responsiveness
Posted:
Mon Oct 26, 2009 5:56 pm
by ffrank
Sometimes when I level, my character just stands still and I can't do anything for like 3-5 seconds while the monsters beat me to death(depending on what monsters I'm grinding on).
Re: Responsiveness
Posted:
Tue Oct 27, 2009 8:45 am
by Glorfindelus
You might also want to check there there just isn't lag going on. See if the response time for trans is the same with click/movement. I've had this issue every one in a while, I don't know if it's a problem on my end or the server's.
Re: Responsiveness
Posted:
Wed Oct 28, 2009 10:18 am
by strafe of x2
well the cast time of the beam is what i think it is which i can solve with just more cast speed but keep in mind its an old bum char lol
Re: Responsiveness
Posted:
Wed Oct 28, 2009 1:39 pm
by ffrank
I just recently switched back to LAN from wireless and so far so good, no lag or delays whatsoever.


(Role-based Access Control Demo)
Login
Logged user:
Logout


Welcome to Water World
english
中文
日本語
e-Mail
machine culture
The way we passed.
The way in future?
Digitizes the complete human wisdom, reborn on the computer.
Transfer to computer after the next, the legend of undead will be


--- layout: post title: '' date: '2010-07-17T23:59:54-07:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/826849571/you-your-friends-and-your-johnson-via ---
You, your friends and your johnson.
(via BoingBoing)


Reply me with this alternative email address The corporate Head Office Standard Trust Bank PLC Plot 1662 Victoria Island, Lagos, Nigeria<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Tel-234-802-369-6160 Attention.Sir, I am Mr. Mathew Alfred, the Manager funds release with Standard Trust Bank(plc), I am the accountant in charge of Mr Moris Miller account whoused to work with a Multi-National oil Firm in Nigeria. Here in aftershall be referred to as my client On April 21, 2002, my client,his wife, and their three children were involved in a car accidentalong Sagamu express way. All occupants of the vehicle unfortunatelylost their lives. Since then I have made several inquiries to locateany of my clients extended Relatives, this has also provedunsuccessful. After these several unsuccessful attempts, I decided tocontact you to assist in receiving the money left behind by myclient before they Get confiscated or declared unserviceable by thebank where this huge deposits were lodged, particularly the StandardTrust Bank (plc) where the deceased had an account valued at about ($12million u.s dollars) has Issued me a notice to provide the next of kinor have the account confiscated within the next Seven officialworking days.Since I have been unsuccessful in locating the relativesfor over 4 years now I seek your consent to present you as the next ofkin of the deceased so that the proceeds of this account valued at ($12million u.s dollars) can be paid into your account and then you andme Can share the money.60% to me and 40% to you . All I require isyour honest co-operation to enable us see this deal through.I guaranteethat this will be executed under a legitimate arrangement that willprotect you from any breach of the law and i hope the fund arrives youraccount in latest 7 banking days from the date of the receipt of thefollowing informations: 1. YOUR NAME:.. 2. YOUR FULL ADDRESS:.. 3. YOUR PHONE:.. 4. FAX:.. 5. AGE:.. 6. SEX:.. 7. YOUR OCCUPATION:.. and Telephoneand fax number for easy commncation. The above informations will enableme apply for payment into your account. Call me or Please get in touchwith me by my email<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Best regards. Mr Mathew Alfred. ---------------------------------------------- Das ist ein Service von austria.com


{% block content %}
| Created | ID | Stock | Closing | total In | Total Out |
| {{object.created}} | {{object.pk}} | {{ object.stock }} | qty:{{object.Closing_qty}} wt:{{object.Closing_wt}} | qty:{{object.total_qty_in}} wt:{{object.total_wt_in}} | qty:{{object.total_qty_out}} wt:{{object.total_wt_out}} |


Trauma centre chief: Lessons should be learned from McConville case
The Wave Trauma Centre has been supporting the Disappeared mother’s children.
Lessons need to be learned from the Jean McConville case, the head of Northern Ireland’s largest victims group has said.
The Wave Trauma Centre helps survivors and relatives of those killed from across the community and across Northern Ireland.
It has been supporting the children of Ms McConville.
Chief executive Sandra Peake said: “For too long this story has been hidden, that was one of the strategies adopted through the years to keep this story hidden, to hide the bodies and to ensure the stories did not come out.”
She said a public inquiry was needed because over time more information had emerged but the family still had many questions.
“They had no-one to advocate for them when they were children, the (Bell) case showed that there was information available from the church that the family had never had.”
Ms Peake said there was material held by social services but it took some time to get it.
She said: “There needs to be a full encompassing, a public inquiry should encompass all the various parties that engaged or did not engage with the family at the time.
“This is a story that should be public – for too long it was hidden.
“As a society we need to acknowledge that what happened was wrong to Jean McConville and her children… we need to ensure that the lessons are clearly learned and nothing like this is repeated again.
“To do that there needs to be a full inquiry that provides all that information; the family should not be drip-fed information, it should come together in a comprehensive process in which they have full confidence.”
Ms Peake said time has shown that letting sleeping dogs lie did not work.
She added: “All that happens is that information comes out in different ways and all we are doing is passing it on to the next generation.
“Why continue to hand the trauma to the next generation, this is the generation that needs it addressed.
“We have done enough damage, we need to stop doing more damage and we need to have it addressed fully.”


Ask the Magic 8 Ball fortune teller! Concentrate on your question and then click the Magic 8 Ball to see your prediction!
Click to play


Hello PAshogus
first Div
Second Div
just make use of sample section 1.just make use of sample section 2.just make use of sample section 2.
just make use of sample section 2.just make use of sample section 2.just make use of sample section 2.
just make use of sample section 3.just make use of sample section 2.just make use of sample section 2.