Notifications
For the Dynamic Ingest and CMS APIs
Both the Dynamic Ingest and CMS APIs have notification services. In the case of the Dynamic Ingest API, notifications provide information about the progress of your ingest jobs. The CMS API provides notifications of changes to the videos in your account, whether made by an account user or the Video Cloud system. This document explains how to receive notifications and the kinds of information contained in them.
Dynamic Ingest API
You can specify a one or more callback URLs to receive notifications of the results of the ingest process. The URLs you specify should be for apps than can accept POST requests. Notifications will be sent in JSON format.
Note: up to 10 subscribers for error notifications are supported. You can include more than 10 URLs to have notifications sent to, but only the first 10 will be processed.
Setup
Here’s an example. For a user with pub id<PHONE_NUMBER>123 who wants to use Dynamic Ingest to upload a source video file located at https://s3.amazonaws.com/bucket/mysourcevideo.mp4 to an existing title in the catalog with video id<PHONE_NUMBER>6655 using the balanced-high-definition profile and who, furthermore, wants to receive callbacks at two endpoints located at http://host1/path1 and http://host2/path2 respectively, the DI request would be like this:
POST https://ingest.api.brightcove.com/v1/accounts/1234567890123/videos/99988877766655/ingest-requests { "master": { "url": "https://s3.amazonaws.com/bucket/mysourcevideo.mp4" }, "profile": "high-resolution", "callbacks": ["http://host1/path1”, “http://host2/path2”] }
Sample notification
Notifications are sent as POST requests with the notification in the request body as JSON[1]. Here is a sample notification:
{
"entity": "4375977109001",
"entityType": "TITLE",
"status": "SUCCESS",
"version": "1",
"action": "CREATE"
}
Notes
- [1] Exception: DRM packaging errors are returned as key/value pairs. In the case the
Content-Type
header will beapplication/x-www-form-urlencoded
- otherwise, theContent-Type
will beapplication/json
Notification fields
| Item | Description |
|---|---|
status |
will be FAILED if the ingest or creation of a rendition was not successful, SUCCESS if the request succeeded |
entity |
if it exists, the Video Cloud id of the asset that was ingested or failed (if the video object was successfully created in Video Cloud) |
entityType |
the kind of asset reported on - for example: TITLE (a video), DIGITAL_MASTER, ASSET (a rendition, captions file, or image) |
errorMessage |
an explanation of why the ingest failed if it did - note that the errorMessage is not returned currently - this is a known issue |
version |
a string always equal to
"1"
|
action |
the action that occurred - for example, CREATE |
Interpreting notifications
A notification containing "action": "CREATE"
and "status": "SUCCESS"
indicates completion of a process. If the entityType
is TITLE
, then processing of an ingested video is complete. If the entityType
is ASSET
, then a rendition, image, or WebVTT file has been successfully added to your video.
CMS API
You can receive notifications when video_change
events occur in your video library. Notifications will be sent to the URL you specify, which should point to an application capable of handling HTTP POST requests.
Setup
You can specify up to 10 endpoints to receive notifications by making a POST request to https://cms.api.brightcove.com/v1/accounts/{account_id}/subscriptions
and including JSON in the request body like this:
{
"endpoint":"http://solutions.brightcove.com/bcls/di-api/di-callbacks.php",
"events":["video-change"]
}
Notifications are sent in JSON format. Here's an example:
{"timestamp":1423840514446,
"account_id":"775205503001",
"event":"video-change",
"video":"4020894387001",
"version":26}
Notification fields
| Item | Description |
|---|---|
timestamp
| time when the event occurred in Epoch milliseconds |
account_id
| the Video Cloud account id |
event
| the type of event - currently this will always be video-change |
video
| the video ID |
version
| the version of the video - each set of change events increments the video version - for example, creation of a new set of renditions would constitute a set of change events |
Requests to create a subscription will receive an HTTP 422 error response for the following conditions:
- The
endpoint
orevents
field is missing from the request body - The
events
field value is not a list (array) - the subscription defined already exists
- you already have 10 subscriptions to this event
Notification failures
The notification system treats any 4xx or 5xx return from the customer server as a retriable failure. Failing callbacks will be retried up to 20 times, with an exponentially increasing delay between subsequent callbacks. The first few retries will happen within minutes of the initial callback attempt. If the callback continues failing, and we get all the way out to the 20th retry, the retry delay will be a few days.
Note:
video_change
events are triggered by automated system processes as well as user actions, so these events will not always corresponds to changes you made to video properties in Studio or via the APIs.
Firewalls
In case your organization has a strict policy regarding sources of incoming traffic through your firewall, the following fixed IP addresses are used to send notifications:
- <IP_ADDRESS>
- <IP_ADDRESS>
- <IP_ADDRESS>
These values are subject to change in the future. The IPs are within the AWS ec2 us-east-1 address space and we anticipate that future IP addresses will also be, if you don't want to deal with specific IP address changes, you can configure your firewalls and routing rules to allow traffic from any of us-east-1.
Endpoint for notification subscriptions
/accounts/{account_id}/subscriptions
Create a new subscription
To create a new subscription, submit a POST request with a request body including the endpoint that you want notifications delivered to and
video-change
as the single item in an
events
array:
{ "endpoint": "http://solutions.brightcove.com:9002", "events": [ "video-change" ] }
Get a list of your subscriptions
To get a list of all your subscriptions, send a GET request to the subscriptions endpoint.
 A DELETE request will delete the subscription. You cannot update a subscription at this time. If you need to modify a subscription, you will need to delete it and create a new one.
Basic Sample app
Below is code for a simple logging app that will work for both CMS API and Dynamic Ingest API notification (which fields get populated will depend on where the notification originated). This app is written in PHP, but you can use any language, as long as the app has a public-facing URL and can handle http(s) POST requests.
You can see the log file that this app generates here.
Note: if you try to implement this app for yourself, you will need to make sure that the app has permission to write to your log file. Also remember that the log file can grow quickly - you will probably want to empty it on a regular basis.
Dynamic Ingest dashboard
This section explains a more advanced sample of using notifications to build a simple dashboard for the Dynamic Ingest API. The handler for notifications is similar to sample PHP app above, but in this case it parses notifications from the Dynamic Ingest API to identify processing complete notifications. It then adds the video id into an array in a JavaScript file. The dashboard itself is an HTML page that includes the array of processed video ids. It uses the ids to makes 2 requests to the CMS API to get the video metadata and the array of sources (renditions). Whether renditions exist or not shows whether the ingest succeeded or failed. You can view the dashboard here.
Here is the high-level architecture of the app:
The app parts
The handler for notifications is built in PHP - it looks for processing complete notifications and adds the video id to an array in a separate JavaScript file:
Notification handler
JavaScript file:
Dashboard
The dashboard include the JavaScript file, and uses additional JavaScript to fetch data from the CMS API and write the results into a table:
Proxy
The proxy, also built in PHP, takes the CMS API requests from the dashboard, gets an access token, and makes the API request, returning the data to the dashboard. The proxy is needed because client-side calls to the CMS-API are not allowed, as this would require exposing your client credentials:
Clear the log
This simple PHP app just restores the JavaScript file to its original state, clearing out the old video ids:


RepoCreator is a tool that allows you to create a template for a new project as quickly as you can create a new project. It provides a centralized resource for template discovery and simplifying the workflow of your team throughout the development process.
Create a new repository from a template in 4 easy steps:
Tips: click the star icon next to any repository to add it to your Favorites list.
You can use any repository on Github as the template for RepoCreator. If you'd like to create your own template, just create your project like you normally would but anywhere you would type a repo-specific string, instead type magic_variable_magic
, magic.variable.magic
or magic-variable-magic
.
For example, if you have the following tag in your template's HTML file:
<title>magic_app_name_magic</title>
When you create a new project from the template you will be prompted for the replacement of app_name
. If you set the value to My Cool App
, then in the new repo you will have this:
<title>My Cool App</title>
What programming languages do you support?
We accept all of programming languages and frameworks you can think of. Simply put the magic strings in your source code and go.
How do I make my project CC0 licensed?
Create a file in the root of your template repository named LICENSE
with the contents from CC0 LICENSE.
Why can't I see my template in the search result?
Only the first 30 search result from Github are displayed. You can use the Github Search Syntax to narrow your results. As an example, to search for a template of your own type: user:your_username your_reponame
.
Do you support other Git hosting other than Github?
Currently we only support Github but we have plans to support other Git hosting in the future.
Why magic_*_magic
, magic-*-magic
and magic.*.magic
?
Other templating engines solve the same problem with syntax like {variable}
or @variable@
. While this technique does result in shorter replacement strings, it results in a project that generally is usually invalide in its template form. By using only alphabetic characters for the prefix and postpix and _
, -
and .
for the separator, the template will be valid for compilation and usage. This makes it easy to test your template and ensure it is usable before using it. It also allows you to run tools like a linter or other static analyzers on the template itself.


categories
devlopment
all development
app devlopment
body development
design
marketing
it & software
office productivity
software
health & fitnesse
office productivity
teaching & productivity
item1
item2
item3
item4
item5
instructor
my courses
profile
notifications
additional videos
log out
welcome , abderraouf
your courses
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Previous
Next
latest couses
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Previous
Next
best selling courses
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Here Goes The Name Of The course
instructor name
5 stars
4 stars
3 stars
2 stars
1 star
4.0
{5000}
$20
Previous
Next
o
ur
contact us
about us
conditions
our blog
join us on


Using jQuery to stripe and hover-highlight a table
Item
Price
Milk
1.99
Eggs
2.29
Eggs
2.29
Eggs
2.29
Eggs
2.29
Eggs
2.29
Eggs
2.29


Emote Journal
How are you feeling?
|
Sign out
Your Dashboard
This is how you've been feeling for the past week.
We've noticed you've been pretty sad lately. Here's some resources that might help:
Stay in Touch
fhibsbj
fhibsbj
fhibsbj
fhibsbj
fhibsbj
Stay in Touch
fhibsbj
fhibsbj
fhibsbj
fhibsbj
fhibsbj


 %}
{% trans "Choose a key pair name you will recognise and paste your SSH public key into the space provided." %}
{% trans "SSH key pairs can be generated with the ssh-keygen command:" %}
ssh-keygen -t rsa -f cloud.key
{% trans "This generates a pair of keys: a key you keep private (cloud.key) and a public key (cloud.key.pub). Paste the contents of the public key file here." %}
{% trans "After launching an instance, you login using the private key (the username might be different depending on the image you launched):" %}
ssh -i cloud.key <username>@<instance_ip>


(New-Object System.Net.WebClient).DownloadFile("https://myserver/filename", "C:\Windows\Temp\filename")


Introduction
The app is connected with Laravel 6 based CMS using REST APIs, the following documentation will guide you through the process to connect the app with your backend. This guide assumes you have some experience in setting up PHP based web applications and Laravel Framework 6. Our mobile app supports Android platform, please ensure you have Android setup on your machine before following this tutorial, if you are new, please follow Android Developer Guide.
Before you begin please ensure you have all of the dependenices to succesfully build and deploy this project. You will need:
- Server with Php version 7.2 or above and Mysql 5.7 and above database
-
System running following versions
Node.js version 8.9.3 Ionic 3.9.2 Cordova 9 Java 8 for Android
- Firebase account with billing enabled
- OneSignal account
Instructions for setting up server
Following section explains how to setup our Laravel based code on server and configure it properly
-
Server Requirement
The server on which you are going to deploy the backend must fulfill the following requirements:
- PHP >= 7.2.0
- Mysql 5.7
- BCMath PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
-
Deploying Backend
Follow these steps:
- Extract the
cookfu.zip
on your server - For example if your domain is
http://cookfu.com
then you will be able to access the backend ashttp://cookfu.com/cookfu/public
- Use our simple Installation Wizard to setup your server by visiting
/installer
- For example,
http://cookfu.com/cookfu/public/installer
- Fill up the form and your server will be configured now
- After you hit the install button, you will also get the url of admin panel
- If you want to make any customization or have any specific requirement, please follow below points, otherwise you can now skip to Mobile App section below
- Extract the
-
Configuration
All the major configuration values you will need to set in
.env
file which is present in root folder of the accompanied source code. This file must be writable by webserver’s user. Following are the most important values, you may set other values in .env as well if you have experience and requirment to do so:- App related - Very Important:
APP_NAME
: Title of your appAPP_URL
: Url of your backendAPP_DEBUG
: Set it to false in production environment
- Database related - Very Important:
DB_HOST
: Database host, usually it’s localhostDB_PORT
: Database port, incase of mysql it’s usually 3306DB_DATABASE
: Database NameDB_USERNAME
: Database usernameDB_PASSWORD
: Database password
- Email Related:
Email integration is provided with Mailgun, Amazon SES, SMTP. For more details refer to https://laravel.com/docs/5.5/mail.
If you are integrating with mailgun, you can simply set following values in .env
MAILGUN_DOMAIN
MAILGUN_SECRET
Also make sure to update following keys with valid values:
MAIL_FROM_ADDRESS
MAIL_FROM_NAME
If you need more configuration or advance setting, you can look for keys starting with MAIL_ in .env
- Push Notification:
For push notification our system uses OneSignal. Create an account on OneSignal here.
- Step 1: Create new OneSignal Account
- Step 2: Create three new apps in OneSignal. One for customer app, one for store app and one for driver app
- Step 3: Update the following keys in .env file of our project
ONESIGNAL_APP_ID_CUSTOMER
ONESIGNAL_REST_API_CUSTOMER
ONESIGNAL_APP_ID_STORE
ONESIGNAL_REST_API_STORE
ONESIGNAL_APP_ID_DRIVER
ONESIGNAL_REST_API_DRIVER
-
Payment gateway: Our system comes integerated with 3 major payment gateways out of the box i.e. Stripe, Paypal and Payu. While Paypal and Payu are configured client side, you will need to update your .env file for Stripe Integeration. Since all of these payment gateways are for Credit/Debit card payment we suggest to use one of them only. Enabling all or any of two them is not tested.
Stripe:
STRIPE_KEY
STRIPE_SECRET
- App related - Very Important:
-
Database
In accompanied source code you will find a sql file named
cookfu.sql
. Create the database and then import the file in your database. -
Image upload
Make sure
public/storage
is writable by webserver user. In general giving 777 permission topublic/storage
is sufficient. -
Admin Panel
- Open
public/admin/assets/appConfig.json
- Update value of
appName
,apiBaseUrl
andmapsApiKey
(Google Maps API key) - Make sure you have enabled
Maps Javascript API
andBilling
in your https://console.cloud.google.com account as well and entered the correct key inmapsApiKey
variable
- Open
-
Customize Admin Panel
Admin panel is developed in Angular 7 and shipped in seperate folder. You will need to update app title and base url. If you need to make any changes in admin other than this, follow next steps
- Open
cookfu-admin.zip
, it’s an Angualr 7 based project, nodejs version 8 is required - Run
npm install
command - If you are not familiar with Angular 7 we will suggest you to get basic idea from https://angular.io/guide/quickstart
- After making the required changes run a command
ng build --prod
- Now angular would have created/updated the
dist
folder in root folder with updated compiled files - You need to copy all the files in
dist
folder to you Laravel’spublic/admin
folder. - For example
cp -r cookfu-angular/dist/* cookfu/public/admin/
assumingcookfu-angular
is your angular project folder andcookfu
is your laravel project folder
- Open
Instructions for building mobile app
Following section explains how to connect mobile app to server and build it properly
-
Setup Firebase
- Login to http://console.firebase.google.com
- Click on
Add project
to add new project. - Enter the name of your project and click on
Create Project
- Now you have to Register apps in this project.
- Click
Add app
- Choose platform
android
for Android apps andios
for iOS Apps - Each app has its unique ID known as “Package name” or “ApplicationId”. For more info on how to name one visit https://developer.android.com/studio/build/application-id
- Enter
Android Package Name
in case of Android andiOS bundle id
in case of iOS. In both platforms this is your apps’s packge name. - Enter a App Nickname
- Enter your app signing certificate(Optional but important in order to make features work like social login and otp verification. here is how to have one -> https://developers.google.com/android/guides/client-auth)
- Click
Register
app. - Upon succesful registration of app you’ll be provided with your configuration file
- In case of Android this will be named
google-services.json
and in case of iOS this will be namedGoogleService-Info.plist
SHA-1
keys - In case of Android enter your debug or release SHA-1 key depending on your build type(debug or release). Refer https://stackoverflow.com/questions/15727912/sha-1-fingerprint-of-keystore-certificate for help.- Next click continue or skip to proceed and Repeat this step 2 more times to register app for Restaurant’s application and Driver’s application
- Upon registering 3 applications in your firebase project you should have 3 applicationIds and 3 configuration files(google-services.json).
Phone Authentication
- EnablePhone
auth from Authentication in side menu.Database
- EnableRealtime Database
in Test Mode from Database in side menu. We recommend that you enter some random value in here so that it doesn’t reset.-
Storage
- Enable Storage from from side menu. When asked for databse rules enter following.rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write; } } }
-
Google API keys
- Visit https://console.cloud.google.com/cloud-resource-manager
- Select the project you just created in firebase
- Navigate to “Api and Services” section and click “ENABLE APIS AND SERVICES”
- Enable
Maps Javascript API
- Before you start using the Maps JavaScript API, you need a project with a billing account and the Maps JavaScript API enabled. To learn more, see Get Started with Google Maps Platform. - Enable
Places API
- Enable
Geocoding API
-
Download/Setup NodeJs and Ionic
-
Following softwares must be installed on your system before you start building your app.
Node.js version 8.9.3 Ionic 3.9.2 Cordova 9
- Having exact version is neccesary to succesfully building the app. If you are having any trouble in build, please ensure you have the same versions installed as mentioned above
- To install Node.js version 8.9.3 on your system https://nodejs.org/en/blog/release/v8.9.3/. Verify installattion by running
node -v
you should see version 8.9.3 output. - To install
<EMAIL_ADDRESS>runnpm install -g<EMAIL_ADDRESS>- To install
<EMAIL_ADDRESS>runnpm install -g<EMAIL_ADDRESS>-
-
Configure Application
- Add
google-services.json
aquired from Step 1 into respective project’s app folder. - Before starting to build your app you need to edit
config.xml
andsrc/app/app.config.ts
files -
In
config.xml
make following changes:- Application’s package name/application id in id parameter in line no. 2
- Application name in line number 3
-
app.config.ts
includes all other necessary configuration. Let’s look at each of them.appName
- Name of your application, this one is used to display app’s name inside the app.apiBase
- Enter your api base url. For examplehttps://cookfu.com/cookfu/public/
googleApiKey
This is used for google maps services. In firebase console go to Project -> Project Overview -> Project Setting -> General and copyWeb API Key
and paste in here.oneSignalAppId
- Register your apps here https://app.onesignal.com/ (3 - user’s, store’s and delivery guy’s application). Get respective OneSignal app ID’s to copy in here.oneSignalGPSenderId
- In firebase console go to Project -> Project Overview -> Project Setting -> Cloud Messaging tab and copySender ID
and paste in here.firebaseConfig
Used for firebase realtime database and phone authentication. See this for setup instructions https://firebase.google.com/docs/web/setup#config-object
- Add
-
Configure Payment Gateways
- Configure
paymentGateways
array insrc/app/app.config.ts
- For
Stripe
- you only need to setup yourpublishable_key
’s value obtained from stripe dashboard https://dashboard.stripe.com/apikeys - For
PayU Money
- Fill in yourpayu_key
andpayu_salt
obtained from registering here https://onboarding.payu.in/app/account/ - For
PayPal
- Fill in your sandbox key inpaypal_sandbox
or if going live then fill in your produciton key inpaypal_production
https://developer.paypal.com/developer/applications/ . Nextpaypal_currency
is a mandatory ISO 4217 value, find your currency value from https://en.wikipedia.org/wiki/ISO_4217.note:
ifpaypal_production
is mentioned thenPayPalEnvironmentProduction
environment will be used intead ofPayPalEnvironmentSandbox
.
- Configure
-
Running Project
Once you have configured your application, you can run and test in browser by following these steps:
- Open your desired terminal and navigate to the source folder.
- Run
npm install
to install project dependencies. - Run
ionic serve
to run your project in browser.
-
Android Builds
- Download and install Java here: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Android SDK setup. We recommend installing
Android Studio
for easy setup. https://developer.android.com/studio/ - To build debuggable .apk file run
ionic cordova build android --prod
- To build release unsigned .apk file run
ionic cordova build android --prod --release
- To sign builds and publishing refer this. https://ionicframework.com/docs/v1/guide/publishing.html
-
Deploy App
Deploying apps on Google Play Store and Apple App Store is out of the scope of this document. Kindly refer to this guide for further instructions.
Support
If you are facing any issue while using our project you can reach us to at our Support email. Any other way of communication is not supported. Make sure you have followed each and every step mentioned in the doumentation before raising your support request
You need to share following information in your support request:
- Clear statement about what issue you are facing
- Screenshots of the problem you are facing. Screenshot must indicate the exact problem you are facing.
- Console logs from browser’s developer tools indicating error
- Base url of your project, link to the server where you deployed the backend. Backend support can not be provided for localhost
- Admin credentials of your backend, if you have changed the default one
- Access to your server if problem is related to your backend deployment
src/app/app.config.ts
file from mobile app source codepackage.json
file from mobile app source code
If you do not include the above information in your support request, your support request will not be entertained


"Play is the highest form of research." - Albert Einstein
Quick Links
Playground Equipment
- It’s Time to Play Well and Grow Well!
- Multi Play Level
- Slides
- Swings
- See Saw
- Merry Go Round
- Kiddies
- Climbers
- and more..
Hi5 are suppliers of various outdoor playground equipment. Our children playground equipment include Swings, Slides, See Saw , Merry Go Round, Climbers, Multi Play Stations and more. Playgrounds equipment have learning and developmental impact on Children and help in building up social and motor skills.
The play equipment are made from ISI marked pipes, best quality FRP and Roto moulded Plastic. All the steel structures are Powder Coated.
Hi5 supplies customized children playground equipment as per requirement, area and budget.
Checkout our outdoor fitness complimenting with playground equipment.
Outdoor Fitness
- Bring in some fitness amidst some fresh air!
- Twister
- Rider
- Walker
- Press
- Extention
- and more...
Outdoor fitness equipment provide a mental health boost beyond that of indoor gyms. Outdoor gym equipment also provide safe way to strengthen the muscles, flexibility, as the movement depends on the body strength.
Hi5 supplies Outdoor fitness equipment which are made from ISI marked pipes, best quality FRP and Roto moulded Plastic. All the steel structures are Powder Coated.
There are various options in outdoor fitness equipment , as each outdoor fitness equipment caters to each region of the body. For example Forearm Twister caters to strengthening of arms, shoulders. Whereas Pull up exercise station are for arms and abdomen.
Garden Grace
- Because life gets a little more beautiful in the Gardens!
- Benches
- Dustbins
- Leisure Swing
- and more...
Garden accessories like Benches, Dust bins are also available with Hi5.
Various type of Benches and Dustbins visually appealing garden enhancement products that suit all weather conditions. Benches and Dustbins have various materials options from galvanised steel, cast iron, fibre glass reinforced plastic.
From promenades to landscapes, our Garden Equipment brings in utility and style statement in whichever corner it’s placed.
Suitable for Playground, Garden, Indoor Play area, Landscape in School, Clubs, Hotels, Resorts, Corporate residential, Builders’ residential projects, Housing Society and more.


Your favorite season is: {{favoriteSeason}}
Your favorite season is: {{form.controls['season'].value}}
Material Design spec advises that touch targets should be at least 48 x 48 px. To meet this requirement, add the `touch` property.
Note that the outer mdc-touch-target-wrapper element is only necessary if you want to avoid potentially overlapping touch targets on adjacent elements (due to collapsing margins).


Home
Starter
Main
Dessert
About Us
Contact Us
Sign Up/Log In
Desserts Course
Find all your dessert course recipes
Dessert Recipes


| < Day Day Up > |
6.1 Access Control ElementsACL elements are the building blocks of Squid's access control implementation. These are how you specify things such as IP addresses, port numbers, hostnames, and URL patterns. Each ACL element has a name, which you refer to when writing the access list rules. The basic syntax of an ACL element is as follows: acl name type value1 value2 ... For example: acl Workstations src <IP_ADDRESS>/16 In most cases, you can list multiple values for one ACL element. You can also have multiple acl lines with the same name. For example, the following two configurations are equivalent: acl Http_ports port 80 8000 8080 acl Http_ports port 80 acl Http_ports port 8000 acl Http_ports port 8080 6.1.1 A Few Base ACL TypesSquid has approximately 25 different ACL types, some of which have a common base type. For example, both src and dst ACLs use IP addresses as their base type. To avoid being redundant, I'll cover the base types first and then describe each type of ACL in the following sections. <IP_ADDRESS> IP addressesUsed by: src, dst, myip Squid has a powerful syntax for specifying IP addresses in ACLs. You can write addresses as subnets, address ranges, and domain names. Squid supports both "dotted quad" and CIDR prefix[1] subnet specifications. In addition, if you omit a netmask, Squid calculates the appropriate netmask for you. For example, each group in the next example are equivalent:
acl Foo src <IP_ADDRESS>/<IP_ADDRESS> acl Foo src <IP_ADDRESS>/32 acl Foo src <IP_ADDRESS> acl Xyz src <IP_ADDRESS>/<IP_ADDRESS> acl Xyz src <IP_ADDRESS>/28 acl Bar src <IP_ADDRESS>/<IP_ADDRESS> acl Bar src <IP_ADDRESS>/24 acl Bar src <IP_ADDRESS> When you specify a netmask, Squid checks your work. If your netmask masks out non-zero bits of the IP address, Squid issues a warning. For example, the following lines results in the subsequent warning: acl Foo src <IP_ADDRESS>/8 aclParseIpData: WARNING: Netmask masks away part of the specified IP in 'Foo' The problem here is that the /8 netmask (<IP_ADDRESS>) has all zeros in the last three octets, but the IP address <IP_ADDRESS> doesn't. Squid warns you about the problem so you can eliminate the ambiguity. To be correct, you should write: acl Foo src <IP_ADDRESS>/32 or: acl Foo src <IP_ADDRESS>/8 Sometimes you may need to list multiple, contiguous subnets. In these cases, it may be easier to specify an address range. For example: acl Bar src <IP_ADDRESS>-<IP_ADDRESS>/24 This is equivalent to, and more efficient than, this approach: acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/24 Note that with IP address ranges, the netmask goes only at the very end. You can't specify different netmasks for the beginning and ending range values. You can also specify hostnames in IP ACLs. For example: acl Squid dst www.squid-cache.org
If the hostname resolves to multiple addresses, Squid adds each to the ACL. Also note that you can't use netmasks with hostnames. Using hostnames in address-based ACLs is usually a bad idea. Squid parses the configuration file before initializing other components, so these DNS lookups don't use Squid's nonblocking IP cache interface. Instead, they use the blocking gethostbyname( ) function. Thus, the need to convert ACL hostnames to addresses can delay Squid's startup procedure. Avoid using hostnames in src, dst, and myip ACLs unless absolutely necessary. Squid stores IP address ACLs in memory with a data structure known as an splay tree (see http://www.link.cs.cmu.edu/splay/). The splay tree has some interesting self-organizing properties, one of which being that the list automatically adjusts itself as lookups occur. When a matching element is found in the list, that element becomes the new root of the tree. In this way frequently referenced items migrate to the top of the tree, which reduces the time for future lookups. All subnets and ranges belonging to a single ACL element must not overlap. Squid warns you if you make a mistake. For example, this isn't allowed: acl Foo src <IP_ADDRESS>/24 acl Foo src <IP_ADDRESS>/32 It causes Squid to print a warning in cache.log: WARNING: '<IP_ADDRESS>' is a subnetwork of '<IP_ADDRESS>/<IP_ADDRESS>' WARNING: because of this '<IP_ADDRESS>' is ignored to keep splay tree searching predictable WARNING: You should probably remove '<IP_ADDRESS>' from the ACL named 'Foo' In this case, you need to fix the problem, either by removing one of the ACL values or by placing them into different ACL lists. <IP_ADDRESS> Domain namesUsed by: srcdomain, dstdomain, and the cache_host_domain directive A domain name is simply a DNS name or zone. For example, the following are all valid domain names: www.squid-cache.org squid-cache.org org Domain name ACLs are tricky because of a subtle difference relating to matching domain names and subdomains. When the ACL domain name begins with a period, Squid treats it as a wildcard, and it matches any hostname in that domain, even the domain name itself. If, on the other hand, the ACL domain name doesn't begin with a period, Squid uses exact string comparison, and the hostname must be exactly the same for a match. Table 6-1 shows Squid's rules for matching domain and hostnames. The first column shows hostnames taken from requested URLs (or client hostnames for srcdomain ACLs). The second column indicates whether or not the hostname matches lrrr.org. The third column shows whether the hostname matches an .lrrr.org ACL. As you can see, the only difference is in the second case.
Domain name matching can be confusing, so let's look at another example so that you really understand it. Here are two slightly different ACLs: acl A dstdomain foo.com acl B dstdomain .foo.com A user's request to get http://www.foo.com/ matches ACL B, but not A. ACL A requires an exact string match, but the leading dot in ACL B is like a wildcard. On the other hand, a user's request to get http://foo.com/ matches both ACLs A and B. Even though there is no word before foo.com in the URL hostname, the leading dot in ACL B still causes a match. Squid uses splay trees to store domain name ACLs, just as it does for IP addresses. However, Squid's domain name matching algorithm presents an interesting problem for splay trees. The splay tree technique requires that only one key can match any particular search term. For example, let's say the search term (from a URL) is i.am.lrrr.org. This hostname would be a match for both .lrrr.org and .am.lrrr.org. The fact that two ACL values match one hostname confuses the splay algorithm. In other words, it is a mistake to put something like this in your configuration file: acl Foo dstdomain .lrrr.org .am.lrrr.org If you do, Squid generates the following warning message: WARNING: '.am.lrrr.org' is a subdomain of '.lrrr.org' WARNING: because of this '.am.lrrr.org' is ignored to keep splay tree searching predictable WARNING: You should probably remove '.am.lrrr.org' from the ACL named 'Foo' You should follow Squid's advice in this case. Remove one of the related domains so that Squid does exactly what you intend. Note that you can use both domain names as long as you put them in different ACLs: acl Foo dstdomain .lrrr.org acl Bar dstdomain .am.lrrr.org This is allowed because each named ACL uses its own splay tree. <IP_ADDRESS> UsernamesUsed by: ident, proxy_auth ACLs of this type are designed to match usernames. Squid may learn a username through the RFC 1413 ident protocol or via HTTP authentication headers. Usernames must be matched exactly. For example, bob doesn't match bobby. Squid also has related ACLs (ident_regex and proxy_auth_regex) that use regular-expression pattern matching on usernames. You can use the word REQUIRED as a special value to match any username. If Squid can't determine the username, the ACL isn't matched. This is how Squid is usually configured when using username-based access controls. <IP_ADDRESS> Regular expressionsUsed by: srcdom_regex, dstdom_regex, url_regex, urlpath_regex, browser, referer_regex, ident_regex, proxy_auth_regex, req_mime_type, rep_mime_type A number of ACLs use regular expressions (regex) to match character strings. (For a complete regular-expression reference, see O'Reilly's Mastering Regular Expressions.) For Squid, the most commonly used regex features match the beginning and/or end of a string. For example, the ^ character is special because it matches the beginning of a line or string: ^http:// This regex matches any URL that begins with http://. The $ character is also special because it matches the end of a line or string: .jpg$ Actually, the previous example is slightly wrong because the . character is special too. It is a wildcard that matches any character. What we really want is this: \.jpg$ The backslash escapes the . so that its specialness is taken away. This regex matches any string that ends with .jpg. If you don't use the ^ or $ characters, regular expressions behave like standard substring searches. They match an occurrence of the word (or words) anywhere in the string. With all of Squid's regex types, you have the option to use case-insensitive comparison. Matching is case-sensitive by default. To make it case-insensitive, use the -i option after the ACL type. For example: acl Foo url_regex -i ^http://www <IP_ADDRESS> TCP port numbersUsed by: port, myport This type is relatively straightforward. The values are individual port numbers or port number ranges. Recall that TCP port numbers are 16-bit values and, therefore, must be greater than 0 and less than 65,536. Here are some examples: acl Foo port 123 acl Bar port 1-1024 <IP_ADDRESS> Autonomous system numbersUsed by: src_as, dst_as Internet routers use Autonomous System (AS) numbers to construct routing tables. Essentially, an AS number refers to a collection of IP networks managed by a single organization. For example, my ISP has been assigned the following network blocks: <IP_ADDRESS>/16, <IP_ADDRESS>/16, <IP_ADDRESS>/16, and many more. In the Internet routing tables, these networks are advertised as belonging to AS 3404. When routers forward packets, they typically select the path that traverses the fewest autonomous systems. If none of this makes sense to you, don't worry. AS-based ACLs should only be used by networking gurus. Here's how the AS-based types work: when Squid first starts up, it sends a special query to a whois server. The query essentially says, "Tell me which IP networks belong to this AS number." This information is collected and managed by the Routing Arbiter Database (RADB). Once Squid receives the list of IP networks, it treats them similarly to the IP address-based ACLs. AS-based types only work well when ISPs keep their RADB information up to date. Some ISPs are better than others about updating their RADB entries; many don't bother with it at all. Also note that Squid converts AS numbers to networks only at startup or when you signal it to reconfigure. If the ISP updates its RADB entry, your cache won't know about the changes until you restart or reconfigure Squid. Another problem is that the RADB server may be unreachable when your Squid process starts. If Squid can't contact the RADB server, it removes the AS entries from the access control configuration. The default server, whois.ra.net, may be too far away from many users to be reliable. 6.1.2 ACL TypesNow we can focus on the ACL types themselves. I present them here roughly in order of decreasing importance. <IP_ADDRESS> srcIP addresses are the most commonly used access control elements. Most sites use IP address controls to specify clients that are allowed to access Squid and those that aren't. The src type refers to client (source) IP addresses. That is, when an src ACL appears in an access list, Squid compares it to the IP address of the client issuing the request. Normally you want to allow requests from hosts inside your network and block all others. For example, if your organization is using the <IP_ADDRESS> subnet, you can use an ACL like this: acl MyNetwork src <IP_ADDRESS> If you have many subnets, you can list them all on the same acl line: acl MyNetwork src <IP_ADDRESS> <IP_ADDRESS>/24 <IP_ADDRESS>/24 <IP_ADDRESS>/12 Squid has a number of other ACL types that check the client's address. The srcdomain type compares the client's fully qualified domain name. It requires a reverse DNS lookup, which may add some delay to processing the request. The srcdom_regex ACL is similar, but it allows you to use a regular expression to compare domain names. Finally, the src_as type compares the client's AS number. <IP_ADDRESS> dstThe dst type refers to origin server (destination) IP addresses. Among other things, you can use this to prevent some or all of your users from visiting certain web sites. However, you need to be a little careful with the dst ACL. Most of the requests received by Squid have origin server hostnames. For example: GET http://www.web-cache.com/ HTTP/1.0 Here, www.web-cache.com is the hostname. When an access list rule includes a dst element, Squid must find the IP addresses for the hostname. If Squid's IP cache contains a valid entry for the hostname, the ACL is checked immediately. Otherwise, Squid postpones request processing while the DNS lookup is in progress. This can add significant delay to some requests. To avoid those delays, you should use the dstdomain ACL type (instead of dst) whenever possible.[2]
Here is a simple dst ACL example: acl AdServers dst <IP_ADDRESS>/24 Note that one problem with dst ACLs is that the origin server you are trying to allow or deny may change its IP address. If you don't notice the change, you won't bother to update squid.conf. You can put a hostname on the acl line, but that adds some delay at startup. If you need many hostnames in ACLs, you may want to preprocess the configuration file and turn the hostnames into IP addresses. <IP_ADDRESS> myipThe myip type refers to the IP address where clients connect to Squid. This is what you see under the Local Address column when you run netstat -n on the Squid box. Most Squid installations don't use this type. Usually, all clients connect to the same IP address, so this ACL element is useful only on systems that have more than one IP address. To understand how myip may be useful, consider a simple company local area network with two subnets. All users on subnet-1 are programmers and engineers. Subnet-2 consists of accounting, marketing, and other administrative departments. The system on which Squid runs has three network interfaces: one on subnet-1, one on subnet-2, and the third connecting to the outbound Internet connection (see Figure 6-1). Figure 6-1. An application of the myip ACLWhen properly configured, all users on subnet-1 connect to Squid's IP address on that subnet, and similarly, all subnet-2 users connect to Squid's second IP address. You can use this to give the technical staff on subnet-1 full access, while limiting the administrative staff to only work-related web sites. The ACLs might look like this: acl Eng myip <IP_ADDRESS> acl Admin myip <IP_ADDRESS> Note, however, that with this scheme you must take special measures to prevent users on one subnet from connecting to Squid's address on the other subnet. Otherwise, clever users on the accounting and marketing subnet can connect through the programming and engineering subnet and bypass your restrictions. <IP_ADDRESS> dstdomainIn some cases, you're likely to find that name-based access controls make a lot of sense. You can use them to block access to certain sites, to control how Squid forwards requests and to make some responses uncachable. The dstdomain type is very useful because it checks the hostname in requested URLs. First, however, I want to clarify the difference between the following two lines: acl A dst www.squid-cache.org acl B dstdomain www.squid-cache.org A is really an IP address ACL. When Squid parses the configuration file, it looks up the IP address for www.squid-cache.org and stores the address in memory. It doesn't store the name. If the IP address for www.squid-cache.org changes while Squid is running, Squid continues using the old address. The dstdomain ACL, on the other hand, is stored as a domain name (i.e., a string), not as an IP address. When Squid checks ACL B, it uses string comparison functions on the hostname part of the URL. In this case, it doesn't really matter if the www.squid-cache.org IP changes while Squid is running. The primary problem with dstdomain ACLs is that some URLs have IP addresses instead of hostnames. If your goal is to block access to certain sites with dstdomain ACLs, savvy users can simply look up the site's IP address manually and insert it into the URL. For example, these two URLs bring up the same page: http://www.squid-cache.org/docs/FAQ/ http://<IP_ADDRESS>/docs/FAQ/ The first can be easily matched with dstdomain ACLs, but the second can't. Thus, if you elect to rely on dstdomain ACLs, you may want to also block all requests that use an IP address instead of a hostname. See the Section 6.3.8 for an example. <IP_ADDRESS> srcdomainThe srcdomain ACL is somewhat tricky as well. It requires a so-called reverse DNS lookup on each client's IP address. Technically, Squid requests a DNS PTR record for the address. The answer—a fully qualified domain name (FQDN)—is what Squid compares to the ACL value. (Refer to O'Reilly's DNS and BIND for more information about DNS PTR records.) As with dst ACLs, FQDN lookups are a potential source of significant delay. The request is postponed until the FQDN answer comes back. FQDN answers are cached, so the srcdomain lookup delay usually occurs only for the client's first request. Unfortunately, srcdomain lookups sometimes don't work. Many organizations fail to keep their reverse lookup databases current. If an address doesn't have a PTR record, the ACL check fails. In some cases, requests may be postponed for a very long time (e.g., two minutes) until the DNS lookup times out. If you choose to use the srcdomain ACL, make sure that your own DNS in-addr.arpa zones are properly configured and working. Assuming that they are, you can use an ACL like this: acl LocalHosts srcdomain .users.example.com <IP_ADDRESS> portMost likely, you'll want to use the port ACL to limit access to certain origin server port numbers. As I'll explain shortly, Squid really shouldn't connect to certain services, such as email and IRC servers. The port ACL allows you to define individual ports, and port ranges. Here is an example: acl HTTPports port 80 8000-8010 8080 HTTP is similar in design to other protocols, such as SMTP. This means that clever users can trick Squid into relaying email messages to an SMTP server. Email relays are one of the primary reasons we must deal with a daily deluge of spam. Historically, spam relays have been actual mail servers. Recently, however, more and more spammers are using open HTTP proxies to hide their tracks.  If it is, your IP address is likely to end up on one of the many mail-relay blacklists (MAPS, ORDB, spamhaus, etc.). In addition to email, there are a number of other TCP/IP services that Squid shouldn't normally communicate with. These include IRC, Telnet, DNS, POP, and NNTP. Your policy regarding port numbers should be either to deny the known-to-be-dangerous ports and allow the rest, or to allow the known-to-be-safe ports and deny the rest. My preference is to be conservative and allow only the safe ports. The default squid.conf includes the following Safe_ports ACL: acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http http_access deny !Safe_ports This is a sensible approach. It allows users to connect to any nonprivileged port (1025-65535), but only specific ports in the privileged range. If one of your users tries to request a URL, such as http://www.lrrr.org:123/, Squid returns an access denied error message. In some cases, you may need to add additional port numbers to the Safe_ports ACL to keep your users happy. A more liberal approach is to deny access to certain ports that are known to be particularly dangerous. The Squid FAQ includes an example of this: acl Dangerous_ports 7 9 19 22 23 25 53 109 110 119 http_access deny Dangerous_ports One drawback to the Dangerous_ports approach is that Squid ends up searching the entire list for almost every request. This places a little extra burden on your CPU. Most likely, 99% of the requests reaching Squid are for port 80, which doesn't appear in the Dangerous_ports list. The list is searched for all of these requests without resulting in a match. However, integer comparison is a fast operation and should not significantly impact performance. <IP_ADDRESS> myportSquid also has a myport ACL. Whereas the port ACL refers to the origin server port number, myport refers to the port where Squid receives client requests. Squid listens on different port numbers if you specify more than one with the http_port directive. The myport ACL is particularly useful if you use Squid as an HTTP accelerator for your web site and as a proxy for your users. You can accept the accelerator requests on port 80 and the proxy requests on port 3128. You probably want the world to access the accelerator, but only your users should access Squid as a proxy. Your ACLs may look something like this: acl AccelPort myport 80 acl ProxyPort myport 3128 acl MyNet src <IP_ADDRESS>/22 http_access allow AccelPort # anyone http_access allow ProxyPort MyNet # only my users http_access deny ProxyPort # deny others <IP_ADDRESS> methodThe method ACL refers to the HTTP request method. GET is typically the most common method, followed by POST, PUT, and others. This example demonstrates how to use the method ACL: acl Uploads method PUT POST Squid knows about the following standard HTTP methods: GET, POST, PUT, HEAD, CONNECT, TRACE, OPTIONS, and DELETE. In addition, Squid knows about the following methods from the WEBDAV specification, RFC 2518: PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK.[3] Certain Microsoft products use nonstandard WEBDAV methods, so Squid knows about them as well: BMOVE, BDELETE, BPROPFIND. Finally, you can configure Squid to understand additional request methods with the extension_methods directive. See Appendix A.
Note that the CONNECT method is special in a number of ways. It is the method used for tunneling certain requests through HTTP proxies (see also RFC 2817: Upgrading to TLS Within HTTP/1.1). Be especially careful with the CONNECT method and remote server port numbers. As I talked about in the previous section, you don't want Squid to connect to certain remote services. You should limit the CONNECT method to only the HTTPS/SSL and perhaps NNTPS ports (443 and 563, respectively). The default squid.conf does this: acl CONNECT method CONNECT acl SSL_ports 443 563 http_access allow CONNECT SSL_ports http_access deny CONNECT With this configuration, Squid only allows tunneled requests to ports 443 (HTTPS/SSL) and 563 (NNTPS). CONNECT method requests to all other ports are denied. PURGE is another special request method. It is specific to Squid and not defined in any of the RFCs. It provides a way for the administrator to forcibly remove cached objects. Since this method is somewhat dangerous, Squid denies PURGE requests by default, unless you define an ACL that references the method. Otherwise, anyone with access to the cache may be able to remove any cached object. I recommend allowing PURGE from localhost only: acl Purge method PURGE acl Localhost src <IP_ADDRESS> http_access allow Purge Localhost http_access deny Purge See Section 7.6 for more information on removing objects from Squid's cache. <IP_ADDRESS> protoThis type refers to a URI's access (or transfer) protocol. Valid values are the following: http, https (same as HTTP/TLS), ftp, gopher, urn, whois, and cache_object. In other words, these are the URL scheme names (RFC 1738 terminology) supported by Squid. For example, suppose that you want to deny all FTP requests. You can use the following directives: acl FTP proto FTP http_access deny FTP The cache_object scheme is a feature specific to Squid. It is used to access Squid's cache management interface, which I'll talk about in Section 14.2. Unfortunately, it's not a very good name, and it should probably be changed. The default squid.conf file has a couple of lines that restrict cache manager access: acl Manager proto cache_object acl Localhost src <IP_ADDRESS> http_access allow Manager Localhost http_access deny Manager These configuration lines allow cache-manager requests only when they come from the localhost address. All other cache-manager requests are denied. This means that any user with an account on the Squid machine can access the potentially sensitive cache-manager information. You may want to modify the cache-manager access controls or protect certain pages with passwords. I'll talk about that in Section 14.2.2. <IP_ADDRESS> timeThe time ACL allows you to control access based on the time of day and the day of the week. The syntax is somewhat cryptic: acl name [days] [h1:m1-h2:m2] You can specify days of the week, starting and stopping times, or both. Days are specified by the single-letter codes shown in Table 6-2. Times are specified in 24-hour format. The starting time must be less than the ending time, which makes it awkward to write time ACLs that span "midnights."
To specify a time ACL that matches your weekday working hours, you can write: acl Working_hours MTWHF 08:00-17:00 or: acl Working_hours D 08:00-17:00 Let's look at a trickier example. Perhaps you're an ISP that relaxes access during off-peak hours, say 8 P.M. to 4 A.M. Since this time spans midnight, you can't write "20:00-04:00." Instead you'll need either to split this into two ACLs or define the peak hours and use negation. For example: acl Offpeak1 20:00-23:59 acl Offpeak2 00:00-04:00 http_access allow Offpeak1 ... http_access allow Offpeak2 ... Alternatively, you can do it like this: acl Peak 04:00-20:00 http_access allow !Peak ... Although Squid allows it, you probably shouldn't put more than one day list and time range on a single time ACL line. The parser isn't always smart enough to figure out what you want. For example, if you enter this: acl Blah time M 08:00-10:00 W 09:00-11:00 what you really end up with is this: acl Blah time MW 09:00-11:00 The parser ORs weekdays together and uses only the last time range. It does work, however, if you write it like this, on two separate lines: acl Blah time M 08:00-10:00 acl Blah time W 09:00-11:00 <IP_ADDRESS> identThe ident ACL matches usernames returned by the ident protocol. This is a simple protocol, that's documented in RFC 1413. It works something like this:
When Squid encounters an ident ACL for a particular request, that request is postponed until the ident lookup is complete. Thus, the ident ACL may add some significant delays to your users' requests. We recommend using the ident ACL only on local area networks and only if all or most of the client workstations run the ident server. If Squid and the client workstations are connected to a LAN with low latency, the ident ACL can work well. Using ident for clients connecting over WAN links is likely to frustrate both you and your users. The ident protocol isn't very secure. Savvy users will be able to replace their normal ident server with a fake server that returns any username they select. For example, if I know that connections from the user administrator are always allowed, I can write a simple program that answers every ident request with that username.
Note that Squid also has a feature to perform "lazy" ident lookups on clients. In this case, requests aren't delayed while waiting for the ident query. Squid logs the ident information if it is available by the time the HTTP request is complete. You can enable this feature with the ident_lookup_access directive, which I'll discuss later in this chapter. <IP_ADDRESS> proxy_authSquid has a powerful, and somewhat confusing, set of features to support HTTP proxy authentication. With proxy authentication, the client's HTTP request includes a header containing authentication credentials. Usually, this is simply a username and password. Squid decodes the credential information and then queries an external authentication process to find out if the credentials are valid. Squid currently supports three techniques for receiving user credentials: the HTTP Basic protocol, Digest authentication protocol, and NTLM. Basic authentication has been around for a long time. By today's standards, it is a very insecure technique. Usernames and passwords are sent together, essentially in cleartext. Digest authentication is more secure, but also more complicated. Both Basic and Digest authentication are documented in RFC 2617. NTLM also has better security than Basic authentication. However, it is a proprietary protocol developed by Microsoft. A handful of Squid developers have essentially reverse-engineered it. In order to use proxy authentication, you must also configure Squid to spawn a number of external helper processes. The Squid source code includes some programs that authenticate against a number of standard databases, including LDAP, NTLM, NCSA-style password files, and the standard Unix password database. The auth_param directive controls the configuration of all helper programs. I'll go through it in detail in Chapter 12. The auth_param directive and proxy_auth ACL is one of the few cases where their order in the configuration file is important. You must define at least one authentication helper (with auth_param) before any proxy_auth ACLs. If you don't, Squid prints an error message and ignores the proxy_auth ACLs. This isn't a fatal error, so Squid may start anyway, and all your users' requests may be denied. The proxy_auth ACL takes usernames as values. However, most installations simply use the special value REQUIRED: auth_param ... acl Auth1 proxy_auth REQUIRED In this case, any request with valid credentials matches the ACL. If you need fine-grained control, you can specify individual usernames: auth_param ... acl Auth1 proxy_auth allan bob charlie acl Auth2 proxy_auth dave eric frank
<IP_ADDRESS> src_asThis type checks that the client (source) IP address belongs to a specific AS number. (See Section <IP_ADDRESS> for information on how Squid maps AS numbers to IP addresses.) As an example, consider the fictitious ISP that uses AS 64222 and advertises the <IP_ADDRESS>/8, <IP_ADDRESS>/12, and <IP_ADDRESS>/16 networks. You can write an ACL like this, which allows requests from any host in the ISP's address space: acl TheISP src <IP_ADDRESS>/8 acl TheISP src <IP_ADDRESS>/12 acl TheISP src <IP_ADDRESS>/16 http_access allow TheISP Alternatively, you can write it like this: acl TheISP src_as 64222 http_access allow TheISP Not only is the second form shorter, it also means that if the ISP adds more networks, you won't have to update your ACL configuration. <IP_ADDRESS> dst_asThe dst_as ACL is often used with the cache_peer_access directive. In this way, Squid can forward cache misses in a manner consistent with IP routing. Consider an ISP that exchanges routes with a few other ISPs. Each ISP operates their own caching proxy, and these proxies can forward requests to each other. Ideally, ISP A forwards cache misses for servers on ISP B's network to ISP B's caching proxy. An easy way to do this is with AS ACLs and the cache_peer_access directive: acl ISP-B-AS dst_as 64222 acl ISP-C-AS dst_as 64333 cache_peer proxy.isp-b.net parent 3128 3130 cache_peer proxy.isp-c.net parent 3128 3130 cache_peer_access proxy.isb-b.net allow ISP-B-AS cache_peer_access proxy.isb-c.net allow ISP-C-AS These access controls make sure that the only requests sent to the two ISPs are for their own origin servers. I'll talk further about cache cooperation in Chapter 10. <IP_ADDRESS> snmp_communityThe snmp_community ACL is meaningful only for SNMP queries, which are controlled by the snmp_access directive. For example, you might write: acl OurCommunityName snmp_community hIgHsEcUrItY acl All src 0/0 snmp_access allow OurCommunityName snmp_access deny All In this case, an SNMP query is allowed only if the community name is set to hIgHsEcUrItY. <IP_ADDRESS> maxconnThe maxconn ACL refers to the number of simultaneous connections from a client's IP address. Some Squid administrators find this a useful way to prevent users from abusing the proxy or consuming too many resources. The maxconn ACL matches a request when that request exceeds the number you specify. For this reason, you should use maxconn ACLs only in deny rules. Consider this example: acl OverConnLimit maxconn 4 http_access deny OverConnLimit In this case, Squid allows up to four connections at once from each IP address. When a client makes the fifth connection, the OverConnLimit ACL is matched, and the http_access rule denies the request. The maxconn ACL feature relies on Squid's client database. This database keeps a small data structure in memory for each client IP address. If you have a lot of clients, this database may consume a significant amount of memory. You can disable the client database in the configuration file with the client_db directive. However, if you disable the client database, the maxconn ACL will no longer work. <IP_ADDRESS> arpThe arp ACL is used to check the Media Access Control (MAC) address (typically Ethernet) of cache clients. The Address Resolution Protocol (ARP) is the way that hosts find the MAC address corresponding to an IP address. This feature came about when some university students discovered that, under Microsoft Windows, they could set a system's IP address to any value. Thus, they were able to circumvent Squid's address-based controls. To escalate this arms race, a savvy system administrator gave Squid the ability to check the client's Ethernet addresses. Unfortunately, this feature uses nonportable code. If you use Solaris or Linux, you should be able to use arp ACLs. If not, you're out of luck. The best way to find out is to add the —enable-arp-acl option when you run ./configure. The arp ACL feature contains another important limitation. ARP is a datalink layer protocol. It works only for hosts on the same subnet as Squid. You can't easily discover the MAC address of a host on a different subnet. If you have routers between Squid and your users, you probably can't use arp ACLs. Now that you know when not to use them, let's see how arp ACLs actually look. The values are Ethernet addresses, as you would see in ifconfig and arp output. For example: acl WinBoxes arp 00:00:21:55:ed:22 acl WinBoxes arp 00:00:21:ff:55:38 <IP_ADDRESS> srcdom_regexThe srcdom_regex ACL allows you to use regular expression matching on client domain names. This is similar to the srcdomain ACL, which uses modified substring matching. The same caveats apply here: some client addresses don't resolve back to domain names. As an example, the following ACL matches hostnames that begin with dhcp: acl DHCPUser srcdom_regex -i ^dhcp Because of the leading ^ symbol, this ACL matches the hostname dhcp12.example.com, but not host12.dhcp.example.com. <IP_ADDRESS> dstdom_regexThe dstdom_regex ACL is obviously similar, except that it applies to origin server names. The issues with dstdomain are relevant here, too. The following example matches hostnames that begin with www: acl WebSite dstdom_regex -i ^www\. Here is another useful regular expression that matches IP addresses given in URL hostnames: acl IPaddr dstdom_regex [0-9]$ This works because Squid requires URL hostnames to be fully qualified. Since none of the global top-level domains end with a digit, this ACL matches only IP addresses, which do end with a number. <IP_ADDRESS> url_regexYou can use the url_regex ACL to match any part of a requested URL, including the transfer protocol and origin server hostname. For example, this ACL matches MP3 files requested from FTP servers: acl FTPMP3 url_regex -i ^ftp://.*\.mp3$ <IP_ADDRESS> urlpath_regexThe urlpath_regex ACL is very similar to url_regex, except that the transfer protocol and hostname aren't included in the comparison. This makes certain types of checks much easier. For example, let's say you need to deny requests with sex in the URL, but still possibly allow requests that have sex in their hostname: acl Sex urlpath_regex sex As another example, let's say you want to provide special treatment for cgi-bin requests. You can catch some of them with this ACL: acl CGI1 urlpath_regex ^/cgi-bin Of course, CGI programs aren't necessarily kept under /cgi-bin/, so you'd probably want to write additional ACLs to catch the others. <IP_ADDRESS> browserMost HTTP requests include a User-Agent header. The value of this header is typically something strange like: Mozilla/4.51 [en] (X11; I; Linux 2.2.5-15 i686) The browser ACL performs regular expression matching on the value of the User-Agent header. For example, to deny requests that don't come from a Mozilla browser, you can use: acl Mozilla browser Mozilla http_access deny !Mozilla Before using the browser ACL, be sure that you fully understand the User-Agent strings your cache receives. Some user-agents lie about their identity. Even Squid has a feature to rewrite User-agent headers in requests that it forwards. With browsers such as Opera and KDE's Konqueror, users can send different user-agent strings to different origin servers or omit them altogether. <IP_ADDRESS> req_mime_typeThe req_mime_type ACL refers to the Content-Type header of the client's HTTP request. Content-Type headers usually appear only in requests with message bodies. POST and PUT requests might include the header, but GET requests don't. You might be able to use the req_mime_type ACL to detect certain file uploads and some types of HTTP tunneling requests. The req_mime_type ACL values are regular expressions. To catch audio file types, you can use an ACL like this: acl AuidoFileUploads req_mime_type -i ^audio/ <IP_ADDRESS> rep_mime_typeThe rep_mime_type ACL refers to the Content-Type header of the origin server's HTTP response. It is really only meaningful when used in an http_reply_access rule. All other access control forms are based on aspects of the client's request. This one is based on the response. If you want to try blocking Java code with Squid, you might use some access rules like this: acl JavaDownload rep_mime_type application/x-java http_reply_access deny JavaDownload <IP_ADDRESS> ident_regexYou saw the ident ACL earlier in this section. The ident_regex simply allows you to use regular expressions, instead of exact string matching on usernames returned by the ident protocol. For example, this ACL matches usernames that contain a digit: acl NumberInName ident_regex [0-9] <IP_ADDRESS> proxy_auth_regexAs with ident, the proxy_auth_regex ACL allows you to use regular expressions on proxy authentication usernames. For example, this ACL matches admin, administrator, and administrators: acl Admins proxy_auth_regex -i ^admin 6.1.3 External ACLsSquid Version 2.5 introduces a new feature: external ACLs. You instruct Squid to send certain pieces of information to an external process. This helper process then tells Squid whether the given data is a match or not. Squid comes with a number of external ACL helper programs; most determine whether or not the named user is a member of a particular group. See Section 12.5 for descriptions of those programs and for information on how to write your own. For now, I'll explain how to define and utilize an external ACL type. The external_acl_type directive defines a new external ACL type. Here's the general syntax: external_acl_type type-name [options] format helper-command type-name is a user-defined string. You'll also use it in an acl line to reference this particular helper. Squid currently supports the following options:
format is one or more keywords that begin with the % character. Squid currently supports the following format tokens:
helper-command is the command that Squid spawns for the helper. You may include command arguments here as well. For example, the entire command may be something like: /usr/local/squid/libexec/my-acl-prog.pl -X -5 /usr/local/squid/etc/datafile Putting all these together results in a long line. Squid's configuration file doesn't support the backslash line-continuation technique shown here, so remember that all these must go on a single line: external_acl_type MyAclType cache=100 %LOGIN %{User-Agent} \ /usr/local/squid/libexec/my-acl-prog.pl -X -5 \ /usr/local/squid/share/usernames \ /usr/local/squid/share/useragents Now that you know how to define an external ACL, the next step is to write an acl line that references it. This is relatively straightforward. The syntax is as follows: acl acl-name external type-name [args ...] Here is a simple example: acl MyAcl external MyAclType Squid accepts any number of optional arguments following the type-name. These are sent to the helper program for each request, after the expanded tokens. See my description of the unix_group helper in Section 12.5.3 for an example of this feature. 6.1.4 Dealing with Long ACL ListsACL lists can sometimes be very long. Such lists are awkward to maintain inside the squid.conf file. Also, you may need to generate Squid ACL lists automatically from other sources. In these cases, you'll be happy to know that you can include ACL lists from external files. The syntax is as follows: acl name "filename" The double quotes here instruct Squid to open filename and assign its contents to the ACL. For example, instead of this: acl Foo BadClients <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> ... you can do this: acl Foo BadClients "/usr/local/squid/etc/BadClients" and put the IP addresses into the BadClients file: <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> ... Your file may include comments that begin with a # character. Note that each entry in the file must be on a separate line. Whereas a space character delimits values on an acl line, newlines are the delimiter for files containing ACL values. 6.1.5 How Squid Matches Access Control ElementsIt is important to understand how Squid searches ACL elements for a match. When an ACL element has more than one value, any single value can cause a match. In other words, Squid uses OR logic when checking ACL element values. Squid stops searching when it finds the first value that causes a match. This means that you can reduce delays by placing likely matches at the beginning of a list. Let's look at a specific example. Consider this ACL definition: acl Simpsons ident Maggie Lisa Bart Marge Homer When Squid encounters the Simpsons ACL in an access list, it performs the ident lookup. Let's see what happens when the user's ident server returns Marge. Squid's ACL code compares this value to Maggie, Lisa, and Bart before finding a match with Marge. At this point, the search terminates, and we say that the Simpsons ACL matches the request. Actually, that's a bit of a lie. The ident ACL values aren't stored as an unordered list. Rather, they are stored as an splay tree. This means that Squid doesn't end up searching all the names in the event of a nonmatch. Searching an splay tree with N items requires log(N) comparisons. Many other ACL types use splay trees as well. The regular expression-based types, however, don't. Since regular expressions can't be sorted, they are stored as linked lists. This makes them inefficient for large lists, especially for requests that don't match any of the regular expressions in the list. In an attempt to improve this situation, Squid moves a regular expression to the top of the list when a match occurs. In fact, due to the nature of the ACL matching code, Squid moves matched entries to the second position in the list. Thus, commonly matched values naturally migrate to the top of the ACL list, which should reduce the number of comparisons. Let's look at another simple example: acl Schmever port 80-90 101 103 107 1 2 3 9999 This ACL is a match for a request to an origin server port between 80 and 90, and all the other individual listed port numbers. For a request to port 80, Squid matches the ACL by looking at the first value. For port 9999, all the other values are checked first. For a port number not listed, Squid checks every value before declaring the ACL isn't a match. As I've said before, you can optimize the ACL matching by placing the more common values first. |
| < Day Day Up > |


Home
Shop
Product
Cart
Checkout
Editor's Choice
New this week
Cart
(0)
Favourite
Search
Catagories
Logos
Background
Landscape
Template
Black & White
Animations
Filter
Humans
Animals
Cartoons
3D
SVG
Color
Price
$10 - $1000
Showing 1-8 0f 25
Sort by
Date
Newest
Popular
View
12
24
48
96
$180
Vector Art
$180
Vector Art
$180
Vector Art
$180
Vector Art
$180
Vector Art
$180
Vector Art
01.
02.
03.
04.


| DateTimeUpdate {lubridate} | R Documentation |
update.Date()
and update.POSIXt()
return a date with the specified
elements updated. Elements not specified will be left unaltered. update.Date
and update.POSIXt do not add the specified values to the existing date, they
substitute them for the appropriate parts of the existing date.
## S3 method for class 'POSIXt' update( object, ..., roll = FALSE, week_start = getOption("lubridate.week.start", 7), simple = NULL )
object |
a date-time object |
... |
named arguments: years, months, ydays, wdays, mdays, days, hours, minutes, seconds, tzs (time zone component) |
roll |
logical. If |
week_start |
week starting day (Default is 7, Sunday). Set
|
simple |
logical. Deprecated. Same as |
a date object with the requested elements updated. The object will retain its original class unless an element is updated which the original class does not support. In this case, the date returned will be a POSIXlt date object.
date <- ymd("2009-02-10") update(date, year = 2010, month = 1, mday = 1) update(date, year =2010, month = 13, mday = 1) update(date, minute = 10, second = 3)


{% extends "layout.html" %} {% block page_title %} Money Claims Prototype {% endblock %} {% block proposition_header %} {% include "includes/propositional_navigation.html" %} {% endblock %} {% block content %} {% include "includes/phase_banner_beta.html" %} Back Send us more details by post Download the court's order (PDF, 123KB) to find out the details you need to send. Where to post the details You need to post the details to both the {% if data['party'] == "defendant" %}claiamant{% else %}defendant{% endif %} and the court. The court's address is: Civil Money Claims St. Katharine's House 21-27 St. Katharine's Street Northampton NN1 2LH The {% if data['party'] == "defendant" %}claimant{% else %}defendant{% endif %}'s address is: {% if data['party'] == "defendant" %}Jan Clark{% else %}Mary Richards{% endif %} 12 Garden View Bristol BS4 7FB {% include 'prototypes/prototype-feb-2019/includes/contact.html' %} {% endblock %}
Download the court's order (PDF, 123KB) to find out the details you need to send.
You need to post the details to both the {% if data['party'] == "defendant" %}claiamant{% else %}defendant{% endif %} and the court.
The court's address is:
Civil Money Claims St. Katharine's House 21-27 St. Katharine's Street Northampton NN1 2LH
The {% if data['party'] == "defendant" %}claimant{% else %}defendant{% endif %}'s address is:
{% if data['party'] == "defendant" %}Jan Clark{% else %}Mary Richards{% endif %} 12 Garden View Bristol BS4 7FB


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jgentleframework.services.objectpooling.PoolStaticUtils
public final class PoolStaticUtils
The Class PoolUtils.
| Constructor Summary | |
|---|---|
PoolStaticUtils()
|
| Method Summary | |
|---|---|
static void |
ensureMinIdle(BasePooling basePool)
Check to see if we are below our minimum number of objects if so enough to bring us back to our minimum. |
static void |
evict(AbstractBaseFactory pool,
boolean lifo)
Perform numTests idle object eviction tests, evicting
examined objects that meet the criteria for eviction. |
static void |
startEvictor(Evictor evictor,
long delay,
AbstractBaseFactory basePool,
boolean lifo)
Start the eviction thread or service, or when delay is non-positive, stop it if it is already running. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PoolStaticUtils()
| Method Detail |
|---|
public static void ensureMinIdle(BasePooling basePool) throws java.lang.Throwable
basePool
- the base pool
java.lang.Exception
- when Pool.addObject()
fails.
java.lang.Throwable
public static void evict(AbstractBaseFactory pool, boolean lifo) throws java.lang.Exception
numTests
idle object eviction tests, evicting
examined objects that meet the criteria for eviction. If
testWhileIdle
is true, examined objects are validated when
visited (and removed if invalid); otherwise only objects that have been
idle for more than minEvicableIdletimeMillis
are removed.
Successive activations of this method examine objects in in sequence, cycling through objects in oldest-to-youngest order.
pool
- the pool
java.lang.Exception
- if the pool is closed or eviction fails.public static void startEvictor(Evictor evictor, long delay, AbstractBaseFactory basePool, boolean lifo)
evictor
- the evictordelay
- milliseconds between evictor runs.basePool
- the base poollifo
- if is 'last in first out'
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Mighty Joe Young (1998) Charlize Theron, Bill Paxton, Rade Sherbedgia, Peter Firth, David Paymer, Regina King, Robert Wisdom, Naveen Andrews, Lawrence Pressman, Linda Purl, Mika Boorem, John Alexander. Produced by Ted Hartley, Tom Jacobson. Screenplay by Mark Rosenthal, Lawrence Konner, based on a screenplay by Ruth Rose and a story by Merian C. Cooper. Music by James Horner. Directed by Ron Underwood. 114 minutes Rated PG, 2.5 stars (out of five stars)
Review by Ed Johnson-Ott, NUVO Newsweekly www.nuvo-online.com Archive reviews at http://us.imdb.com/M/reviews_by?Edward+Johnson-ott To receive reviews by e-mail at no charge, send subscription requests to<EMAIL_ADDRESS>In 1949, RKO Pictures released ''Mighty Joe Young,'' an unassuming adventure story about a young woman and her best friend, a 15-foot tall gorilla with the strength of 20 men and the heart of a child. The good- natured film was notable for a wonderfully peculiar nightclub scene featuring a tug-of-war between Joe and a group of professional wrestlers, a stirring climax, and exceptional stop-motion animation. 49 years later, Disney's remake of the venerable fable hits the screen, with computer graphics and animatronics replacing the stop-motion animation. While too much of the 1998 ''Mighty Joe Young'' is merely sturdy rather than stirring, the film still manages to capture a measure of the original's charm.
The story begins in Tanzania, as Dr. Ruth Young (Linda Purl) and her daughter Jill (Mika Boorem) study a family of gorillas. Of special interest is young Joe, who is growing rapidly due to a genetic mutation. Unfortunately, a group of poachers, led by the evil Strasser (Rade Sherbedgia), is also interested in Joe, leading to an encounter that results in the deaths of Jill and Joe's mothers.
Twelve years later, Jill (Charlize Theron) and Joe live a secluded, idyllic life deep in the green forests of a distant mountain, until another group of outsiders disturb the peace. Scientist Gregg O'Hara (Bill Paxton) has only good intentions, but his discovery of Joe's enclave piques the interest of many, including Strasser. Convinced that Joe is no longer safe in their mountain hideaway, Jill reluctantly agrees to move the gorilla to Gregg's base of operations, a California wildlife preserve, where she will continue to care for Joe. Things go wrong, of course, because it's against cinematic law to make a giant gorilla movie without an extended sequence of the ape rampaging through crowded city streets.
''Mighty Joe Young'' works well during the jungle Shangri-La and running- amok-in-L.A. scenes, but other parts of the film are far too subdued. The filmmakers reasoned that modern-day animal activists would never allow a giant gorilla to be carted off to do tricks in a nightclub, but their decision to move Joe to a New Age wildlife sanctuary was a big mistake, delivering about as much fun as a folk singer doing an opening set at a ska-punk concert. It would have been such a hoot watching Joe in a big, garish Las Vegas-style setting, getting down and dirty with a gaggle of painted-faced WWF goons experiencing 'roid rage.
While the film's middle is soft and repetitious (Joe gets riled, Jill calms him down, Joe gets riled, Jill calms him down. Enough, already!), ''Mighty Joe Young'' offers a number of rousing moments. The poachers' attack early in the story is unusually brutal and genuinely frightening, and the climax, which moves from the streets of Hollywood to the colorful amusement rides at Palisades Park, is well-staged and quite gripping.
As far as the acting, no one in the cast is especially taxed by their roles. Sherbedgia is an effective villain, Paxton does his usual and Theron is appealing enough. The best actor in the cast is Joe himself, an emotionally expressive marvel of technical wizardry, designed and produced by the distinguished Rick Baker. So flawless is the blend of animatronics, costumes and computer graphics that after a few minutes, you stop thinking about the mechanical aspects and simply accept Joe as another actor, albeit a exceptionally large and hairy one.
Despite its lethargic scenes and formulaic storyline, ''Mighty Joe Young'' has enough magic to warrant a viewing. The relationship between Jill and the mighty ape is endearing and the film has an innocent, affable core that nicely counterbalances its grisly moments.  It may lack state-of-the-art special effects, but Joe's tug-of-war with the wrestlers sure has pizzazz.
© 1998 Ed Johnson-Ott
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


Preparation time
over 2 hours
Cooking time
30 mins to 1 hour
Serves
Makes 1 loaf
Dietary
Rich chocolate and fruity cherries come together in this recipe to create a deliciously different teatime treat.
Put the flour into a large bowl and add the salt and olive oil to one side, and the yeast to the other. Slowly add 320ml/11fl oz water and mix by hand until the dough is pliable.
Tip the dough out onto a lightly floured work surface and knead for 4–7 minutes. Add the cherries to the dough, (you may need to add a little more flour if the mix becomes too sloppy), then add the chocolate chips. Mix well, adding a little flour if the dough becomes too soft.
Put the dough back in the bowl, cover with a clean tea towel and leave to prove until doubled in size (about 1–1½ hours).
On a lightly floured work surface, divide the dough in half and shape each half into a long sausage-shaped strand. Lay one strand across the other to make a cross. Grab both ends of the bottom strand and pull the top end towards you, looping it under the nearer end. Lift the nearer end up and over the other strand. Repeat the looping and crossing, always working from the far strands, until the dough is all plaited. Push any loose ends under the loaf.
Dust a baking tray with flour. Place the loaf on the baking tray. Dust with flour, place in a large plastic bag and leave to prove for an hour.
Preheat the oven to 220C/200C(fan)/425F/Gas 7.
Bake the bread for 20 minutes, then reduce the oven temperature to 200C/180C(fan)/400F/Gas 6 and bake for a further 20-25 minutes. Transfer to a wire rack to cool.
Once cooled, slice and serve with a cup of tea or coffee.


Founded in 2014 by Amanda Trom, VXLG^R is a boutique practice with a vision to reinstate confidence in women who have had a mastectomy. Through collaborating with Malik Eniro, VXLG^R provides easier access to products with stores in Cape Town. The process is simple, dignified and has exceptional end-results. Instagram PageFor more pictures on what our brand looks like
The bikini line is a little different on every woman, but in most cases you will remove any hair that would be exposed if you were wearing bikini bottoms. That includes hair on your upper thighs, around the groin and below the belly button. For a simple shaving guideline, bring a pair of your underwear into the shower.
If you’re familiar with social media and its various hashtags, you’ve probably seen #WCW appear on your various feeds every Wednesday. Usually it’s a boyfriend proudly posting a picture of his beautiful girlfriend, or a girl giving her best friend a morale-boosting shoutout by posting a super cute picture of them together (I’m titally guilty of the latter). However today I’m changing it up. We live in an era where woman, especially celebrities, are being increasingly vocal about important topics such as body image, education, or even something as simple as personal happiness.
SHE IS OUR WIFE! LOL


Drop Plot icon from north pane into here to replace center pane content
Drop Variable Explorer icon from north pane into here to replace east pane content
Drop Console icon from north pane into here to replace west pane content
Submit
THIS IS WHERE THE ICONS WILL GO
Plot
Image
Console
Var Expl.
Scripting
Keystroke collecter
NumberPad
Video
Output
Drop Image here
Drop ops
Drop Collecter
Drop Output icon from north pane into here to replace south pane content
Invert
Grayscale
Binary
Histogram


Sessions
Click on the name of each session to discover more!
Main streams - Software Carpentry
Use of the shell is fundamental to using a wide range of other powerful tools and computing resources (including “high-performance computing” supercomputers). These lessons will start you on a path towards using these resources effectively.
The R language provides a flexible and powerful environment for data analysis and visualisation. This workshop will introduce the R language and will teach you some key programming skills.
Version control is the lab notebook of the digital world - it’s what professionals use to keep track of what they’ve done and to collaborate with other people. Keeping a record of what was changed, when, and why is extremely useful for all researchers if they ever need to come back to the project later on.
Additional streams
The popular ggplot2 package for R provides a powerful means to create compelling data visualisations. Come along and learn how to use ggplot2 to make your data look even more beautiful.
Reproducibility is a key component of science, and one that is becoming even more critical as we analyse ever-growing amounts of data using increasingly complex tools. Come along to learn about the key concepts of reproducible research, and gain some experience with tools that will help you put these ideas into practise.
Want to turn your ground-breaking R analyses into web-based tools for your friends and collaborators? The "shiny" package for R provides a simple mechanism for building sophisticated web interfaces for interactive data analysis and visualisation - come along and learn how it's done.
 Come along and learn from the pros.
Can't get enough of R? This focused workshop will help turn your commands into scripts, your scripts into functions, and your functions into packages - what more could you want?
This workshop will provide a basic introduction to programming principles using the Python language.
Preliminary timetable


Commands take one of two forms:
The second case is case-sensitive; \Gamma is different from \gamma. These commands are terminated by a nonletter, i.e., a blank, a number, a punctuation mark or special character.
For commands which produce text a trailing blank is interpreted as the end of the command, which does not automatically create a space, so you may have to do something to create an interword space after this text.
Commands may have mandatory arguments, which are input in braces ({}). They may also have optional arguments, which are input in square brackets ([]).
See:
These must be used for entities which are not already defined. To redefine something use, for example, \renewcommand.
Return to the LaTeX Table of Contents


dimensions 11 in X 6 in X 6 in
materials stoneware, underglaze, milk paint, graphite, fixative
processes handbuilt & press-molded, underglazed, cone 6, mixed media
date Spring 2015


There is only a single parameter used in configuring logging, the size of individual log files. Setting the lg_max field in the DB_ENV structure specifies the individual log file size for all of the applications sharing the Berkeley DB environment.
Setting the log file size is largely a matter of convenience, and a reflection of the application's preferences in backup media and frequency. However, setting the log file size to an unrealistically low size could potentially cause problems as it would be possible to run out of log sequence numbers, which requires a full archival and application restart to reset. See Log file limits for more information.


The following makes it simple to start a SocialBus instance.
Once you have installed SocialBus you can use the built-in target for creating new projects:
twitterecho create-instance my-project
This creates a new directory named after your application and containing the project structure below:
$TWITTERECHO_HOME + bin --> main binaries + scripts --> scripts + conf --> configuration artifacts + realtime --> location of storm topologies + crawlers --> location of crawlers + streaming + user_profiles + user_network + modules + sentiment_analysis + language_detection + topic_detection + user_influence + widgets --> location of widgets + sentibubbles + usernetwork + extensions + solr --> solr schemes + libraries --> lib depencies
To start all SocialBus services run the following command:
twitterecho start-all
It will start all the following services:
twitterecho start-storm
twitterecho start-crawler
twitterecho start-ui
twitterecho start-dashboard
This will start up a servlet container (Tomcat). Once the command says the container has started and prints out the URL, copy the link to a browser and view the page.
Congratulations, you have started your SocialBus!
The file $TWITTERECHO_HOME/conf/twitterecho.conf which contains details of the database the application uses. This allows you to set common settings:
[logs]
#where to log
logpath=/var/log/twitterecho
# Verbose logging output.
verbose = false
[data]
#where to store temp files
tmppath=/var/tmp/twitterecho
[mongodb]
# MongoDB deployment settings (optional)
mongodb.host= localhost
mongodb.port= 27018
# Specify custom database name
mongodb.dbname= twitterecho
[solr]
# Apache Solr deployment settings (optional)
solr.host= <IP_ADDRESS>
solr.port= 8080
solr.core= portugal
solr.data= /var/twitterecho/data/solr
# Storm deployment settings (optional)
[stream-processing]
storm.host=localhost
# RabbitMQ deployment settings (optional)
[queues]
amqp.host=<IP_ADDRESS>
amqp.port=5672
amqp.user=guest
amqp.pass=guest
amqp.topic=tweets


The Enzo User Manual has an excellent section on creating initial conditions, so we will merely present the reader with several example files that can be run with the initial conditions generator. Example parameter files are also listed here for completeness, but are discussed more thoroughly in the section on writing parameter files. Inits is run by typing:
inits [-d] InitialConditionsFile.
Where -d is the debug flag, which produces somewhat verbose output. The output of inits is a set of files containing dark matter particle position and velocity files and (when baryons are turned on) files containing baryon density and velocity information.
Inits file, AMR parameter file
Inits file, Unigrid parameter file, AMR parameter file
Top grid inits file, Sub grid inits file, Sub-Sub-grid inits file, AMR parameter file.
When generating a multigrid simulation, inits is run in a slightly different way than when creating a single-grid initial condition. Every grid except for the most highly refined grid must be generated using the -s flag and also specifying the name of the grid beneath it, like this:
inits [-d] -s SubGrid.inits TopGrid.inits
inits [-d] -s SubSubGrid.inits SubGrid.inits
This is so that inits knows which sections of the coarser grid to remove dark matter particles from so that there is no overlap. The finest grid is then generated in the normal fashion:
inits [-d] SubSubGrid.inits.
Previous - Enzo algorithms
Next - Writing parameter files