Using Ajax with Facelets
As mentioned in the previous section, JavaServer Faces technology supports Ajax by using a built-in JavaScript resource library that is provided as part of the JavaServer Faces core libraries. This built-in Ajax resource can be used in JavaServer Faces web applications in one of the following ways:
By using the f:ajax tag along with another standard component in a Facelets application. This method adds Ajax functionality to any UI component without additional coding and configuration.
By using the JavaScript API method jsf.ajax.request(), directly within the Facelets application. This method provides direct access to Ajax methods, and allows customized control of component behavior.
Using the f:ajax Tag
The f:ajax tag is a JavaServer Faces core tag that provides Ajax functionality to any regular UI component when used in conjunction with that component. In the following example, Ajax behavior is added to an input component by including the f:ajax core tag:
<h:inputText value="#{bean.message}"> <f:ajax /> </h:inputText>
In this example, although Ajax is enabled, the other attributes of the f:ajax tag are not defined. If an event is not defined, the default action for the component is performed. For the inputText component, when no event attribute is specified, the default event is valueChange. Table 11-1 lists the attributes of the f:ajax tag and their default actions.
Name |
Type |
Description |
|---|---|---|
disabled |
javax.el.ValueExpression that evaluates to a Boolean |
A Boolean value that identifies the tag status. A value of true indicates that the Ajax behavior should not be rendered. A value of false indicates that the Ajax behavior should be rendered. The default value is false. |
event |
javax.el.ValueExpression that evaluates to a String |
A String that identifies the type of event to which the Ajax action will apply. If specified, it must be one of the events supported by the component. If not specified, the default event (the event that triggers the Ajax request) is determined for the component. The default event is action for ActionSource components and valueChange for EditableValueHolder components. |
execute |
javax.el.ValueExpression that evaluates to an Object |
A Collection that identifies a list of components to be executed on the server. If a literal is specified, it must be a space-delimited String of component identifiers and/or one of the keywords. If a ValueExpression is specified, it must refer to a property that returns a Collection of String objects. If not specified, the default value is @this. |
immediate |
javax.el.ValueExpression that evaluates to a Boolean |
A Boolean value that indicates whether inputs are to be processed early in the lifecycle. If true, behavior events generated from this behavior are broadcast during the Apply Request Values phase. Otherwise, the events will be broadcast during the Invoke Applications phase. |
listener |
javax.el.MethodExpression |
The name of the listener method that is called when an AjaxBehaviorEvent has been broadcast for the listener. |
onevent |
javax.el.ValueExpression that evaluates to a String |
The name of the JavaScript function that handles UI events. |
onerror |
javax.el.ValueExpression that evaluates to a String |
The name of the JavaScript function that handles errors. |
render |
javax.el.ValueExpression that evaluates to an Object |
A Collection that identifies a list of components to be rendered on the client. If a literal is specified, it must be a space-delimited String of component identifiers and/or one of the keywords. If a ValueExpression is specified, it must refer to a property that returns a Collection of String objects. If not specified, the default value is @none. |
The keywords listed in Table 11-2 can be used with the execute and render attributes of the f:ajax tag.
Keyword |
Description |
|---|---|
@all |
All component identifiers |
@form |
The form that encloses the component |
@none |
No component identifiers |
@this |
The element that triggered the request |
Note that when you use the f:ajax tag in a Facelets page, the JavaScript resource library is loaded implicitly. This resource library can also be loaded explicitly as described in Loading JavaScript as a Resource.


{% extends "layouts/_block_content.html" %} {% set page_title = "Link expired " %} {% block main %}
You can request another password reset email or call us on 0300 1234 931.


CURLOPT_PROTOCOLS explained
NAME
CURLOPT_PROTOCOLS - set allowed protocols
SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROTOCOLS, long bitmask);
DESCRIPTION
Pass a long that holds a bitmask of CURLPROTO_* defines. If used, this bitmask limits what protocols libcurl may use in the transfer. This allows you to have a libcurl built to support a wide range of protocols but still limit specific transfers to only be allowed to use a subset of them. By default libcurl will accept all protocols it supports (CURLPROTO_ALL). See also CURLOPT_REDIR_PROTOCOLS.
These are the available protocol defines:
CURLPROTO_DICT CURLPROTO_FILE CURLPROTO_FTP CURLPROTO_FTPS CURLPROTO_GOPHER CURLPROTO_HTTP CURLPROTO_HTTPS CURLPROTO_IMAP CURLPROTO_IMAPS CURLPROTO_LDAP CURLPROTO_LDAPS CURLPROTO_POP3 CURLPROTO_POP3S CURLPROTO_RTMP CURLPROTO_RTMPE CURLPROTO_RTMPS CURLPROTO_RTMPT CURLPROTO_RTMPTE CURLPROTO_RTMPTS CURLPROTO_RTSP CURLPROTO_SCP CURLPROTO_SFTP CURLPROTO_SMB CURLPROTO_SMBS CURLPROTO_SMTP CURLPROTO_SMTPS CURLPROTO_TELNET CURLPROTO_TFTP
DEFAULT
PROTOCOLS
EXAMPLE
curl = curl_easy_init(); if(curl) { /* pass in the URL from an external source */ curl_easy_setopt(curl, CURLOPT_URL, argv[1]); /* only allow HTTP, TFTP and SFTP */ curl_easy_setopt(curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_TFTP | CURLPROTO_SFTP); /* Perform the request */ curl_easy_perform(curl); }
AVAILABILITY
RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
SEE ALSO
CURLOPT_REDIR_PROTOCOLS, CURLOPT_URL
This HTML page was made with roffit.


Keyboard Keys
Key Preview
- Also supports FontAwesome Icons by prefixing the Label with
far:
/fas:
/fab:
(e.g.far:smile
) - License for selected font available here
Mouse Buttons
Mouse Preview
- Also supports FontAwesome Icons by prefixing the Label with
far:
/fas:
/fab:
(e.g.far:smile
) - License for selected font available here
Usage
Key.pics
provides a simple way to create Keyboard and Mouse icons,
originally intended for visualizing inputs of games and other software to their users.For example:
+ to copy the selected text
+ to paste the copied text
to open the file
Script Tag

NPM
npm install --save key.pics
HTML
K
E
Y
right
Give it a go on CodePen!


Crane can optionally make use of Unison to have faster bind-mounts between the host and Docker for Mac. Example configuration:
services:
hello:
image: alpine
rm: true
interactive: true
tty: true
volume:
- "foo:/bar"
accelerated-mounts:
hello:
When Crane is asked to run the hello
service, it automatically sets up an accelerated mount for foo:/bar
. Behind the scenes, Crane starts a sync container (which is using Unison internally) connected to a plain Docker volume, which is then mounted to /bar
in the hello
container. From a user perspective however, everything looks as if the host directory foo
is directly bind-mounted to /bar
in the container.
Accelerated mounts can either be specified using a service name (then all configured bind-mounts of this service are accelerated), or by specifying a specific bind mount. The example above is equivalent to:
accelerated-mounts:
"foo:/bar":
To reduce the amount of syncing that needs to be done, different containers or multiple instances of the same container definition share the same sync container and volume.
It is possible to customize each accelerated mount:
uid
/gid
: Defaults to 0
/0
. Set this to the user/group ID the consuming
container expects, e.g. 1000
/1000
.ignore
: Defaults to
Name {.git}
and allows to exclude files / folders from the sync. See Ignoring Paths for possible values.flags
: Defaults to
["-auto", "-batch", "-ignore='Name {.git}'", "-confirmbigdel=false", "-contactquietly", "-prefer=newer"]
, but can be overriden using anything that
you can pass to unison
, see its
manual.To debug what is happening when the sync is not behaving as expected, you can use:crane am logs -f hello
. To remove the sync, use crane am reset hello
.
uid
/gid
to non-root but notice that the synced folder itself is still owned by root, you need to create the (empty) folder with correct ownership in the Docker image. This is because accelerated mounts use volumes behind the scenes, and Docker will create non-existing mount points with root permissions.


- Likes: 56K
- Comments: 2
- Likes: 89K
- Comments: 5
Gallery
- Likes: 42K
- Comments: 1
Video
- Likes: 38K
- Comments: 0
Gallery
- Likes: 47K
- Comments: 1
- Likes: 94K
- Comments: 3
Gallery
- Likes: 52K
- Comments: 4
- Likes: 66K
- Comments: 2
Gallery
- Likes: 45K
- Comments: 0
- Likes: 34K
- Comments: 1
- Likes: 41K
- Comments: 0
Video
- Likes: 30K
- Comments: 2


|
Guild Wars 2 - Elite Insights
<IP_ADDRESS>+
JSON doc
|
Class corresponding a healing distribution More...
Properties | |
| int | TotalHealing [get, set] |
| Total healing done More... | |
| int | TotalDownedHealing [get, set] |
| Total healing done against downed More... | |
| int | Min [get, set] |
| Minimum healing done More... | |
| int | Max [get, set] |
| Maximum healing done More... | |
| int | Hits [get, set] |
| Number of hits More... | |
| long | Id [get, set] |
| ID of the healing skill More... | |
| bool | IndirectHealing [get, set] |
| True if indirect healing If true, the id is a buff More... | |
Class corresponding a healing distribution
|
getset |
Number of hits
|
getset |
ID of the healing skill
|
getset |
True if indirect healing
If true, the id is a buff
|
getset |
Maximum healing done
|
getset |
Minimum healing done
|
getset |
Total healing done against downed
|
getset |
Total healing done


India is gifted with varied cultures, festivals and traditions is unmistakably a land with many reasons to celebrate. So we thought why not own this space. Why not make every occasion special? Why not develop a sweet tooth? Why not make people rejoice every moment ! Big or small.Ribbons & Balloons has established a dominant leadership & a cult-like following in the Cake and Confectionary Industry within its launch!


--- layout: minimal title: "About me" permalink: /about/index.html description: "" ---
I'm a experienced full stack developer with more than 7 years of experience in backend engineering and 4 years of frontend engineering, focused on scalable web and mobile technologies, server-side applications, api design, data analysis, service oriented architecture and security research. Specialist in modelling and development of hybrid-technology applications using the most recent and powerful technologies like JavaScript, PHP, C ANSI, C++, NodeJS, Hadoop, MongoDB, Redis, Memcached and etc. I am passionate for the Open Source community and their technologies, contributing with projects always as possible, whether developing or supporting them, furthermore, I am a technology entrepreneur looking for opportunities to innovate over the existing markets and build innovative projects.
If you would like to know more about me, please check my LinkedIn profile or send me an e-mail and let's schedule a coffee break.


Disney Channel Is Holding a Digital Open Casting Call, Submit Your Audition!
Do you think you have what it takes to be on the Disney Channel?!
Now’s your chance, because the network is holding a digital open casting call for everyone, now through December 31.
If you are able to play a role from ages 8-16, you can submit your audition, as long as you meet all the guidelines, and have parent’s permission.
“In our ongoing efforts to reach a broader pool of talent across the U.S., our digital open casting call allows parents whose kids aspire to be actors the opportunity to submit their child’s audition right from where they live. This also gives Disney Channel a chance to potentially discover fresh, young and diverse talent who may not yet have agency representation,” Disney Channel Senior VP in Casting and Talent Relations, Judy Taylor, said in a statement.
Raven’s Home‘s Issac Ryan Brown and Gabby Duran & The Unsittables‘ Kylie Cantrall even put together a video with some tips and tricks to help. Check it out!
Head to Disney.com/DisneyChannelCasting to get started now!


Create Acount
Have an account?
Log in
Contact With Facebook
Contact With Wechat
OR
Full Name
Emaill
Password
Emaill
we'll send you a text to verify your phone
Sign Up


Controls:
Hovering the mouse cursor on the canvas will make the vector agents follow.
Click Left Mouse Button = Activate vertex distortion.
Click Middle Mouse Button = Disable vertex distortion.
A class has been made to contain the vector agents as well as the curve vertexes. This project demonstrates a constant creation of new sine waves to each vertexes as time goes. To do this, the angle (in radians) are calculated and then used to create segments of the circle. For each curve vertexes, they must have "Control Points" to shape the desired object. Those Control Points are represented as the first few and last few vector points.
Link to Full Codes
beginShape();
// 1st = 1st control points / Last = 2nd control points
curveVertex(this.vectorPoints[this.vectorPoints.length - 1].x + this.centreX, this.vectorPoints[this.vectorPoints.length - 1].y + this.centreY);
for (let i = 0; i < this.vectorPoints.length; i++) {
curveVertex(this.vectorPoints[i].x + this.centreX, this.vectorPoints[i].y + this.centreY);
}
curveVertex(this.vectorPoints[0].x + this.centreX, this.vectorPoints[0].y + this.centreY);
curveVertex(this.vectorPoints[1].x + this.centreX, this.vectorPoints[1].y + this.centreY);
// Adds or subtracts random step to x & y on vector points
this.vectorPoints[round(random(0, this.vectorPoints.length - 1))].x += random(-stepX, stepX);
this.vectorPoints[round(random(0, this.vectorPoints.length - 1))].y += random(-stepY, stepY);
endShape();


eXistenZ (1998) 97m
David Cronenberg's latest biotechnical carny show aims its sights squarely at Internet addicts and video-game junkies. While the idea of people so dissociated from reality that they spend all their 'quality time' within an artificial environment has rapidly become overworked, Cronenberg still manages to come up with something that looks new. Jennifer Jason Leigh plays a designer of ultra-sophisiticated virtual reality games (virtual actuality??), worshiped by players everywhere as if she were Lana Croft incarnate. But you can't be this good at something and not expect to draw attention, so Leigh finds herself fleeing industrial assassins and 'reality activists' intent on sabotaging her latest multi-million dollar project. She and fellow fugitive Jude Law hardwire themselves into the alternate universe of this game - 'eXistenZ' - as part of a routine diagnostic. Soon they find more than they bargained for: they discover another new and sophisticated game within eXistenZ which, as players, they must once again plug themselves into, and....you get the picture. By this time, walls of reality have truly dissolved.
The opening of eXistenZ indicates a computer-game version of Cronenberg's VIDEODROME - as a director he is well-known for his provocative recurring themes (mutation, the bonding of flesh and technology, surgery, hospitals, bodies in revolt) and it initially appears that we're about to get a more considered reworking of his earlier films. It's the same, but different: firstly, the cyberspace setting is new territory for Cronenberg, but secondly (and more noticeably) his approach is considerably lighter. eXistenZ is the funniest thing he has ever put on screen - I would have never expected to see an audience having such an openly good time with a one of his films until now! Of course, the humor of eXistenZ is pretty skewed - those familiar with the director's work will realize that they're laughing at the same gooey, organic gross-outs that he used to unsettle everyone with in his other movies. One man buys a copy of a you-be-the-victim car accident game and we're instantly reminded of the director's previous CRASH, and the furore about the violent automobile games released in its wake. Even the cry "Death to enemies of reality" seems to be a lampoon of previous rantings about 'the new flesh' . And if the line "Trust no one!", delivered in all seriousness, isn't a poke at the X-FILES, I don't know what is. Even Leigh and Law try to loosen up and enjoy the game, even though Law figures there is something sick and wrong about it all (for this is Cronenberg country, after all, and cyberspace is not a spotless, computer-generated playing platform but a decayed, visceral fug).
And then of course there's all that sex, even though the characters never actually get down to having any. eXistenZ oozes sex continuously, with one hilarious metaphor after another thrown up on screen with abandon. Given Cronenberg's past history of equating sex with disease and death, this film must surely be seen as a kind of personal liberation.
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


The best currently available evidence shows that the results of clinical trials are routinely withheld from doctors, researchers, and patients. This is a global public health scandal.
The FDA Amendment Act of 2007 (FDAAA) requires certain clinical trials to report their results on ClinicalTrials.gov. Despite extensive evidence of breaches, no fines have ever been issued.
The Final Rule to properly implement this law has now finally come into force. The first trials required to report results under the new FDAAA rules will begin to come due on January 18, 2018. There is then a one month delay to results being posted.
On February 16, 2018 this website will go live, showing which individual sponsors and trials have breached their legal requirement to report results.


@* * Copyright 2019 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.AppConfig @import controllers.declaration.routes @import controllers.util.{Add, SaveAndContinue} @import forms.declaration.destinationCountries.DestinationCountries @import services.Countries @import services.view.AutoCompleteItem @import uk.gov.hmrc.play.views.html._ @this(main_template: views.html.main_template) @(form: Form[DestinationCountries], routingCountries: Seq[String] = Seq.empty)(implicit request: Request[_], messages: Messages, appConfig: AppConfig) @main_template( title = messages("declaration.destinationCountries.title"), appConfig = appConfig ) { @helper.form(routes.DestinationCountriesController.saveCountries(), 'autoComplete -> "off") { @helper.CSRF.formField @components.back_link("/customs-declare-exports/declaration/holder-of-authorisation") @components.error_summary(form.errors) @components.page_title(Some("declaration.destinationCountries.title"))


I look at the clock
And I realize it's almost 10:00pm
I've been sitting here
Staring at pixels and numbers
For so many hours
How many?
I woke up and started at 7
So exhausted
I can't count
And what did I do?
I don't fully remember
So many things
So many names, greetings and charts
It was very easy
To lose myself in that
To become a number
But in just about a few minutes
At around 10:01pm
There comes an angel
To my mind
And she fills my heart
She calls my name
She cares who am I
And quickly
I see myself
I find myself
Beyond the glassed mirror in the screen
I find the purpose moving my blood
That lives in the connection
Of our true two hearts.


Refugee who spent 7 years living in camp achieves dream of becoming NHS nurse
Justin Mwange, 40, wanted to become a nurse after seeing sick and dying people in his refugee camp
by Tiffany LoA man has achieved his dream of becoming a nurse after spending seven years in a refugee camp in Zambia.
Justin Mwange, 40, fled from the war-torn Democratic Republic of Congo as a teenager with his family and lived in the refugee camp in abject poverty and deprivation.
He was fuelled with the passion of helping the sick and vulnerable when he saw men, women and children dying on the road.
He was determined to become a nurse despite the lack of formal education and financial support to further his studies.
While he was at the refugee camp, he volunteered as a support worker with Medecins Sans Frontieres to help monitor patients with malnutrition.
Justin's duty include monitoring patients' blood sugars, weight and distributing extra food parcels to children and vulnerable adults.
Now, the 40-year-old has been nominated for a Chief Nursing Officer’s award by Hull University Teaching Hospitals NHS Trust after an impressive work placement at Hull Royal Infirmary and Castle Hill Hospital.
He said: "Being in a refugee camp for seven years, I lost my self-esteem and self-confidence of achieving anything in my life.
"I always see myself at the bottom of the queue and as the weakest link in anything.
"Just being nominated for the award has raised my self-confidence and self-esteem."
Justin arrived the UK with his wife Elizabeth Nyota in 2007 under a refugee resettlement programme. He took English classes in Hull and worked in a factory.
He enrolled in the University of Hull and graduated as a social worker with a 2:1.
But it was not until 2016 Justin enrolled in a nursing degree at the same school and has proven to be a valuable member of the nursing team.
Knowing he is nominated for the national award, Justin said: "It was a long journey to get to where I am now and I am feeling very proud to fulfil my ambition of becoming a nurse.
"My contribution, however little, if it makes a difference in people’s lives, will be a big achievement in my life. I just hope this new career works for me so that can put a smile of people’s faces."
Vicky Needler, practice learning facilitator at the NHS Trust, said: "Justin is an outstanding individual who has overcome more than most people could ever imagine to achieve his aims of becoming a nurse.
"He shows such compassion to patients and we are certain he will become an excellent nurse. We are very lucky to have had him with us throughout his studies and he is destined for a fantastic nursing career."


Saving Slicer Scenes¶
- Click on the ‘File’ menu at the top.
- Choose ‘Save’, the dialog box shwon below will appear.
- If this is your first time saving you will have to define the directory to save the files in. Click on ‘Change directory for selected files’. The dialog box below will appear
- Find the directory where you want to save the data, create a new folder called ‘scene’ and then double click on it so you are now within the folder. Select ‘Choose’.
- You will now notice that the .nii file is deselected and is in the original directory location. All the other files you will be saving are in the newly created ‘scene’ folder. Click ‘Save’.
- If this not your first time saving you will see two warning messages. The first will notify you that the .mrml file already exists and ask if you want to replace it. Click ‘OK’.
- A second warning message will appear letting you know that the .fcsv file already exists and ask if you would like to replace it. Click ‘Yes to All’. This will overwrite your old datafiles with the newer ones.
- To close the current scene, before opening a new patient, click the ‘File’ menu and select ‘Close Scene’.


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Packages that use soot.coffi | |
|---|---|
| soot | Base Soot classes, shared by different intermediate representations. |
| soot.coffi | Contains classes from the Coffi tool, by Clark Verbrugge. |
| Classes in soot.coffi used by soot | |
|---|---|
| CONSTANT_Utf8_collector
Provides sharing for Utf8_info string objects reused in different contexts. |
|
| Double2ndHalfType
|
|
| Long2ndHalfType
|
|
| UnusuableType
|
|
| Utf8_Enumeration
An enumeration of a Utf8 allows one to run through the characters in a unicode string; used primarily for comparing unicode strings. |
|
| Util
|
| Classes in soot.coffi used by soot.coffi | |
|---|---|
| annotation
There can be many annotations in each Visibility attribute |
|
| CFG
A Control Flow Graph. |
|
| ClassFile
A ClassFile object represents the contents of a .class file. |
|
| CONSTANT_Utf8_collector
Provides sharing for Utf8_info string objects reused in different contexts. |
|
| CONSTANT_Utf8_info
A constant pool entry of type CONSTANT_Utf8; note this is not multithread safe. |
|
| Double2ndHalfType
|
|
| element_value
There can be many element_value pairs in each annotation |
|
| field_info
Represents a single field_info object. |
|
| Long2ndHalfType
|
|
| method_info
Represents a single method_info object. |
|
| parameter_annotation
There can be several parameter annotations in each Parameter Visibility attribute |
|
| UnusuableType
|
|
| Util
|
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |


Aggravating factors
Scope
Whole application
Several workflows, large part of application
Single workflow
Single or small number of controls
A message or label or documentation
A styling or layout element, like a border
Severity
Damage or corruption of existing data
It does the wrong thing
It doesn't work at all
It is displayed wrong, confusing, misleading etc.
Cosmetic, typo
Urgency
Has PRI 1 support case
Regression in upcoming release
Has PRI 2 or lower support case
Affects new feature in upcoming release
Affects released version
Affects a branch
Spread
All users
A group of users (same department)
A type of users (only non-admins)
A single user
Mitigating factors
Probability
Every time
Most of the time
Usually
Sometimes
Not very often
Rarely
Precoditions
None
It needs to be configured a certain way
It needs to be configured in an unsupported or incorrect way
Workaround
None
Reload the page
Try again a few more times
[Re]Configure manually
Try again a few more times
Effort estimation
Dev
Years
Quarters
Months
Weeks
Days
Hours
Minutes
Test
Years
Quarters
Months
Weeks
Days
Hours
Minutes
Doc
Years
Quarters
Months
Weeks
Days
Hours
Minutes
Final score:
1.00


{% extends "base.html" %} {% block script %} {% endblock %} {% block page_head %} Record Errors {% endblock %} {% block content %}
Record how many instances of inaccurate or implausible math you spot.
Write your notes on them here


You can be a part of the solution – make a donation to help fund important research. We can't do it without you.


These are the Americans that I know
No health care? The market will fix it. I have come here to seek a new beginning between the
United States and Muslims around the world; one based upon mutual interest and mutual respect;
and one based upon the truth that America and Islam are not exclusive, and need not be in
competition. On economic development, we will create a new corps of business volunteers to
partner with counterparts in Muslim-majority countries.
Thereby, the whale commanders are enabled to recognise each other upon the ocean, even at
considerable distances and with no small facility.
Tell that to the proud auto workers at a Michigan plant who, after they found out it was
closing, kept showing up every day and working as hard as ever, because they knew there were
people who counted on the brakes that they made.
Michigan plant who, after they found
It was closing, kept showing up every day and working as hard as ever, because they knew there
were people who counted on the brakes that they made. Michigan plant who, after they found out it
was closing, kept showing up every day and working as hard as ever, because. Tell that to the
proud auto workers at a Michigan plant who, after they found out it was closing, kept showing up
every day and working as hard as ever, because they knew there were people who counted on the
brakes that they made.
Michigan plant who, after they found out it was closing, kept showing up every day and working
as hard as ever, because they knew there were people who counted on the brakes that they made.
Michigan plant who, after they found out it was closing, kept showing up every day and working
as hard as ever, because.
Because they knew there were people who counted on the brakes that they made. Michigan plant who,
after they found out it was closing, kept showing up every day and working as hard as ever, because
they knew there were people who counted on the brakes that they made. Michigan plant who, after
they found out it was closing, kept showing up every day and working as hard as ever, because.
Tell that to the proud auto workers at a Michigan plant who, after they found out it was closing,
kept showing up every day and working as hard as ever, because they knew there were people who
counted on the brakes that they made.
-
June 24
The hope of a young naval lieutenant bravely patrolling
-
August 8
Politicians routinely exploited fears of crime Christian Coalition
-
August 13
There was even a time when the Christian Coalition determined that its
number one
Igor Ligay on
The hope of a young naval lieutenant bravely patrolling


Python is probably already installed on your system. To check if it’s installed, go to Applications>Utilities and click on Terminal. (You can also press command-spacebar, type terminal, and then press Enter.)
Find out which version of Python is installed by issuing the command python --version
:
$ python --version
Python 2.7.5
If you see something like this, Python 2.7 is your default version. You should also see if you have Python 3 installed:
$ python3 --version
Python 3.4.0
If you have Python 3.4 or later, it’s fine to start out by using the installed version. If you have Python 3.3 or earlier, it’s probably worth installing Python 3.5.
Install Homebrew, which makes it easy to install the most recent version of Python. Start out by installing some of Apple’s xcode tools:
$ xcode-select --install
The installation may take a while, depending on the speed of your connection.
Now you can install Python packages through Homebrew. To install Python 3, enter the following command:
$ brew install python3
You can verify that Python 3 was installed correctly:
$ python3 --version
Python 3.5.0
You’ll use the python3 command when you configure your text editor, when you start a Python terminal session, and when you run programs from the terminal.
You can download an installer for Sublime Text by clicking on the OS X link at http://www.sublimetext.com/3. Sublime Text has a liberal licensing policy; it’s free as long as you want to use it, but the author requests that you purchase a license if you like the program and want to continue using it.
After you’ve downloaded the installer, open it and then drag the Sublime Text icon into your Applications folder.
### Configuring Sublime Text for Python 3
If you use the simple command python
to start a terminal session on your system, you shouldn’t have to configure Sublime Text at all. But if you use a command like python3
or python3.5
, you’ll have to modify Sublime Text slightly so it uses the correct version of Python to run your programs.
Find the path to your Python interpreter:
$ type -a python3
python3 is /usr/local/bin/python3
Open an empty file in Sublime Text and save it as hello_world.py. The file should have one line in it:
print("Hello Python world!")
Go to Tools>Build System>New Build System, which will open a new configuration file. Delete what you see, and enter the following:
{
"cmd": ["/usr/local/bin/python3", "-u", "$file"],
}
This tells Sublime Text to use your system’s python3 command when running programs. Make sure you use the path you found when running type -a python3, not necessarily the path you see here. Save the file as Python3.sublime-build in the directory that Sublime Text opens when you choose Save.
Now you can run programs by selecting Build>Execute, clicking the Execute icon with a set of gears on it, or by pressing F5.


M Charles Theobald
Democrat
Project manager, Disability Services, Inc. dba Envida
Bachelor of Science, Industrial Engineering, Purdue University, 1984 Graduate Certificate in Project Management, Colorado Technical University, 2001 Master of Science, Management, Colorado Technical University, 2002
80903
My first political activity was in 1974, when as a 13-year old I volunteered to knock on doors for our local state representative. I learned some basic lessons in civics, as well as practical lessons in the geography of precincts. Four years later I was assigned to opposition research duty, revealing a new dimension of campaigns and political activity. Since then I have volunteered to knock on doors or make phone calls for innumerable candidates and issue campaigns, as well as serving as finance chair for a successful school board candidate. My most recent volunteer activity was canvassing door-to-door for Senator Michael Bennet in 2018. Since 2015, I have made the following political donations: • 10/15/2016 – Tony Exum, Sr for State Representative • 12/5/2016 - Jill Gaebler for City Council • 3/7/2017 - Committee to Elect Richard Skorman • 6/24/2018 – Tony Exum, Sr. for State Representative • 10/1/2020 - Tony Exum, Sr. for State Representative • 10/1/2020 – Diane Mitsch Bush for Congress
• Colorado Episcopal Foundation Board of Trustees (2012-2019), Denver, CO • Grace and St. Stephen’s Episcopal Church Vestry (Board of Directors) • Convention of the Episcopal Church in Colorado • House of Deputies, General Convention of the Episcopal Church • Jazz in the Garden Steering Board, Grace and St. Stephen’s Episcopal Church, Colorado Springs, CO • Old North End Neighborhood Association, Colorado Springs, CO • Evergreen Historic District Neighborhood Association, Memphis, TN • Purdue University Alumni Association, West Lafayette, IN • Oakwood High School Alumni Association, Dayton, OH
Starting as a newspaper carrier in Dayton, Ohio, I have always tried to stay informed about what happens in my community, reading a little from each paper as I made my way along my delivery route. My volunteer activities centered around education when my children were school-aged, and more recently have been focused on my church community. I served on the State Advisory Committee for Gifted Education for seven years, which advises the State Board of Education on policies and practices to support students identified as gifted and talented, and coordinates with the Colorado General Assembly to implement necessary changes. The greatest challenge while I was serving was always to find solutions that were effective for school districts with widely divergent populations, areas of service, and resources. By listening carefully to the perspectives offered by diverse committee members, together we created new standards for identifying students that were based on accessible, objective criteria; the committee helped expand the number of students state-wide for whom services were available without burdening the budgets of rural districts. I was honored to receive the Parent of the Year award from the Colorado Association for Gifted and Talented in 2009 for this work. In 2003, four new directors were elected to the Colorado Springs School District 11 Board of Education, running together on a “reform” platform. Several of these members were openly hostile to the concept of public education and showed little interest in working to improve outcomes and opportunities for students. This led to a recall campaign, where I participated in recruiting volunteers, gathering signatures, and canvassing community members, resulting in the replacement of two directors in 2006. This helped stabilize the board and returned the focus to supporting teachers and educating the students in, at the time, the largest district in Colorado Springs. After retiring from FedEx, I was able to fulfill a long-held desire to contribute in the non-profit sector, taking a position at Envida, an agency dedicated to supporting seniors, Medicaid recipients, and the developmentally disabled by providing transportation and home care service. As advocates for these communities, Envida has developed relationships with other local transit non-profits to share client data and coordinate rides to improve customer services and increase overall rides provided. My role as grants project manager requires leadership in bringing both agency executives and transportation managers together to develop and approve operational policies and procedures that are even-handed and support the joint mission. There are times when the best contribution I can make to support an organization is based on DOING things, such as working with fourth graders in a lunchtime reading group, driving the instrument truck for the high school band or setting up the chairs and stands as part of the stage crew for the youth symphony. Other situations call for someone who can set the agenda and guide the participants in a meeting, such as the need to address the achievement gap in a school district or plan a capital campaign for a church. Both skill sets, which I have demonstrated in the volunteer commitments I have undertaken, will be important to achieve the goals of the redistricting commissions.
I have long believed that the best government comes from a legislative body that considers a wide range of solutions to the problems that face a community. At all levels, having a council, commission or legislature that only seriously considers proposals from a narrow political framework rarely produces the best outcomes for the people they represent. Rather it is in situations where many competing solutions are considered that compromise and consensus lead to effective outcomes. Yet representation in and of itself is insufficient, unless representatives of both major parties are motivated to seek that compromise and consensus rather than fight for party dominance. Creating fair and competitive districts not only empowers citizens, it leads to consideration of more potential solutions for the issues that face us as a society. It is well documented, and easily observed, that gerrymandered districts that provide “safe” seats for either major party lead to representatives who are driven to more extreme positions within their parties. While the introduction of open primaries in Colorado was seen as a way to bring more moderates to both sides, the reality is that party candidates continue to be selected based on a narrow set of partisan criteria. Elected representatives must demonstrate their leadership to their constituents. I would like to serve on the commission because I believe that fair and competitive districts lead directly to increased accountability, better legislation, and improved outcomes for the people of Colorado.
An engineering education is not so much about learning specific formulas or techniques as it is learning how to approach a problem and develop a solution. Working as the manager of an engineering or development team, a project manager, or a business analyst all require similar approaches to solving business problems. Often when a problem is presented, we want to start throwing out solutions to see how quickly we can overpower it. In my experience this often leads to solving the wrong thing or addressing surface issues but missing the root cause. Rather than rush to solutions, one must listen to those who are framing the problem to hear both what is being said and left unsaid. Developing a clear understanding of root causes requires building trust so that everyone around the table is able both to express their opinion and also to hear what others have to say. In my career at FedEx, I had two opportunities to work as an expatriate in Europe. The second, a three-year assignment from 1996 through 1999 in Brussels, Belgium, was as manager of a group responsible for engineering support and training for invoicing and revenue operations throughout Europe and the Middle East. Both my staff and my peer managers represented a wide range of cultural norms and expectations. To be effective, I had to be aware of local practices and balance those with corporate standards and requirements for projects such as the introduction of the Euro currency and global Y2K preparation. Because I was the American in the room, both groups saw me as outside the assumptions and perceptions of traditional intra-European rivalries. By maintaining that position as the neutral party, I was able to bridge those cultural differences and build consensus to implement solutions. For the work of the commissions, understanding the demographic data and geographic constraints on a district are only the first steps to fair elections. Harder to define, but important to good governance, is to identify and address the concerns of communities of interest. Like my experience in Brussels, because I have not participated in traditional party structures and leadership, I can view the competing partisan positions from the point of view of an outsider. I believe that seeking a balance among such communities, while incorporating other traditional redistricting criteria, would drive a representative of either party toward a more cooperative stance in seeking to support the needs of their constituents. My experience working with different constituencies in professional, educational, and religious settings is that of someone who seeks to understand and respect the interest of all parties at the table. I expect to maintain that sense of impartiality and fairness in the service of the redistricting commission. The 2010 redistricting process, with a split legislature responsible for congressional districts, was marked by competing rather than cooperative proposals and eventually resolved by having a judge select the districts we have today. Nevertheless, since those lines were drawn Colorado overall has moved from being roughly balanced between Republicans, Democrats and independent voters to a place where all state-wide offices and both chambers of the legislature are held by Democrats. It is important to understand that this is not a permanent state of affairs, and that it is possible that such a trend could reverse in the next ten years. It is therefore critical that the independent redistricting commissions seek to create competitive districts without regard to short-term views to favor current office holders.
Male


Preparation time
less than 30 mins
Cooking time
less than 10 mins
Serves
Serves 2
Try Ching-he Huang's take on fish and chips in this delicious and healthy recipe.
For the haddock goujons, mix the Shaoxing rice wine, grated ginger and chopped spring onion together in a shallow bowl and add the fish strips. Cover with cling film and leave to marinate in the fridge for 20 minutes.
Mix the dried chillies, sea salt and white pepper together with the breadcrumbs in a bowl, then tip onto a plate or tray. Dip the marinated strips of fish into the flour, then into the beaten egg, then roll in the seasoned breadcrumb mixture. Pat lightly to secure the breadcrumbs to the fish, then shake off any excess. Repeat with all of the fish strips.
Quarter-fill a wok with groundnut oil and heat until a small cube of bread dropped in sizzles and turns golden-brown in 15 seconds. (CAUTION: hot oil can be dangerous. Do not leave unattended.) Add the fish goujons in small batches and deep-fry for 2-3 minutes, or until golden-brown, then remove with a slotted spoon and drain on kitchen paper. Repeat with the remaining fish goujons.
For the gong bao sauce, heat all of the sauce ingredients together in a small saucepan, and, if necessary, thicken with the cornflour and water mixture. Remove from the heat and transfer to a small bowl or ramekin for dipping.
To serve, pile the fish goujons onto a serving plate and place the bowl of gong bao sauce on the side. Serve immediately with roast sweet potato wedges.


Preparation time
1-2 hours
Cooking time
30 mins to 1 hour
Serves
Makes 10-12
These soft, sweet buns are filled with mincemeat and served with a final dousing of coconut milk to make them extra squidgy.
Place the flour and salt in a large bowl.
In a saucepan heat the sugar and milk together to warm. Stir the yeast into the warm milk.
Pour the milk into the flour and mix to form a dough.
Knead until smooth, then return to the bowl and leave somewhere warm to prove for an hour, or until doubled in size.
Knock back the dough and then roll out to a large square - about 1cm/½in thick.
Cut the dough in half and spread the mincemeat over both halves and sprinkle the toasted coconut over.
Roll up the dough like a Swiss roll and cut into slices about 4cm/1½in wide.
Using a baking tray, approximately 25x30cm/10x12in, press the butter along the base. Sprinkle over the demerara sugar, then pour over 400ml/14fl oz of the coconut milk (reserve the rest).
Place the cut buns on the coconut milk leaving 1cm/½in gaps between each. Leave to prove somewhere warm until well risen and the gaps have been filled by proved dough - about 40 minutes.
Preheat the oven to 180C/350F/Gas 4.
Place a small knob of the extra butter on top of each bun and sprinkle with extra demerara sugar. Bake for 25-30 minutes, or until golden-brown.
Remove from oven and gently separate the buns using a spoon, then pour over the reserved coconut milk.


| Path: | README |
| Last Update: | Thu May 22 09:54:00 -0300 2008 |
This is the latest version of the YM4R/GM plugin for Rails (YM4RGMP4R?). Its aim is to facilitate the use of Google Maps from Rails application. It includes and enhances all the web application-related functionalities found in the YM4R gem as of version 0.4.1.
I present here the most common operations you would want to do with YM4R/GM. Read the rest of the documents if you want more details.
In your controller, here is a typical initialization sequence in action index:
def index @map = GMap.new("map_div") @map.control_init(:large_map => true,:map_type => true) @map.center_zoom_init([75.5,-42.56],4) @map.overlay_init(GMarker.new([75.6,-42.467],:title => "Hello", :info_window => "Info! Info!")) end
Here I create a GMap (which will be placed inside a DIV of id map_div), add controls (large zoom slider and pan cross + map type selector), set the center and the zoom and add a marker. Of these 4 steps only the creation of the map and the setting of the center and the zoom are absolutely necessary.
In your view, here is what you would have:
<title>Test</title> <%= GMap.header %> <%= @map.to_html %>  <%= @map.div(:width => 600, :height => 400) %>
First you must output the header, used by all the maps of the page: It includes the Google Maps API JS code and the JS helper functions of YM4R/GM. Then we initialize the map by calling @map.to_html. In the body, we need a DIV whose id is the same as the one passed to the GMap constructor in the controller. The call to @map.div outputs such a DIV. We pass to it options to set the width and height of the map in the style attribute of the DIV.
Note that you need to set a size for the map DIV element at some point or the map will not be displayed. You have a few ways to do this:
You can update the map trough RJS. Here is an action you can call from a link_remote_tag which would do this:
def update @map = Variable.new("map") @marker = GMarker.new([75.89,-42.767],:title => "Update", :info_window => "I have been placed through RJS") end
Here, I first bind the Ruby @map variable to the JS variable map, which already exists in the client browser. map is by default the name given to a map created from YM4R/GM (this could be overriden by passing a second argument to the GMap constructor). Then I create a marker.
And you would have inside the RJS template for the action:
page << @map.clear_overlays page << @map.add_overlay(@marker)
Here I first clear the map of all overlays. Then I add the marker. Note that the overlay_init is not used anymore since, as its name indicates, this method is only for the initialization of the map.
They are completely independent from each other.
With the plugin, you don‘t need the YM4R gem anymore, unless you want to use the tilers or the Ruby helpers for the Yahoo! Maps Building Block API‘s and the Google Maps geocoding API. Please refer to the documentation of the YM4R gem to know more about the functionalities in it.
Conversely, the YM4R gem does not need the plugin to work.
Install like any other Rails plugin:
ruby script/plugin install svn://rubyforge.org/var/svn/ym4r/Plugins/GM/trunk/ym4r_gm
As part of the installation procedure, the JavaScript files found in the PLUGIN_ROOT/javascript directory will be copied to the RAILS_ROOT/public/javascripts/ directory.
Moreover a gmaps_api_key.yml file will also be created in the RAILS_ROOT/config/ folder. If this file already exists (installed for example by a previous version of the plugin), nothing will be done to it, so you can keep your configuration data even after updating the plugin. This file is a YAML representation of a hash, similar to the database.yml file in that the primary keys in the file are the different environments (development, test, production), since you will probably need to have different Google Maps API keys depending on that criteria (for example: a key for localhost for development and test; a key for your host for production). If you don‘t have any special need, there will be only one key associated with each environment. If however, you need to have multiple keys (for example if your app will be accessible from multiple URLs, for which you need different keys), you can also associate a hash to the environment, whose keys will be the different hosts. In this case, you will need to pass a value to the :host key when calling the method GMap.header (usually @request.host).
Apart from the installation of the plugin detailed above, you will also need to delete the instructions to require the file and include the Ym4r::GoogleMaps module in your controllers:
require 'ym4r' include Ym4r::GoogleMaps
This lines are now not needed since the plugin is loaded as part of the normal Rails loading procedure and the module is included when the plugin is loaded.
You can use the library to display Google maps easily from Rails. The version of the API used is v2. The library is engineered so updates to the map through RJS/Ajax are possible. I have made available 2 in-depth tutorials to show some of the functionalities of the library and how it can be integrated with GeoRuby and the Spatial Adapter for Rails:
Following is some notes about manipulating Google Maps with the library:
The names of the Ruby class follow the ones in the JavaScript Google Maps API v2, except for GMap2, which in Ruby code is called simply GMap. To know what is possible to do with each class, you should refer to the documentation available on Google website.
On top of that, you have some convenience methods for initializing the map (in the GMap class). Also, the constructors of some classes accept different types of arguments to be converted later in the correct JavaScript format. For example, the GMarker aclass accepts an array of 2 floats as parameter, in addition of a GLatLng object, to indicate its position. It also facilitates the attribution of an HTML info window, displayed when the user clicks on it, since you can pass to the constructor an options hash with the :info_window key and the text to display as the value, instead of having to wire the response to a click event yourself.
Since the Google Maps API uses JavaScript to create and manipulate a map, most of what the library does is outputting JavaScript, although some convenience methods are provided to simplify some common operations at initialization time. When you create a YM4R mapping object (a Ruby object which includes the MappingObject module) and call methods on it, these calls are converted by the library into JavaScript code. At initialization time, you can pass arbitrary JavaScript code to the GMap#record_init and GMap#record_global_init.Then, at update time, if you use Ruby-on-Rails as your web framework, you can update your map through RJS by passing the result of the method calls to the page << method to have it then interpreted by the browser.
For example, here is a typical initialization sequence for a map
@map = GMap.new("map_div") @map.control_init(:large_map => true,:map_type => true) @map.center_zoom_init([35.12313,-110.567],12) @map.overlay_init GMarker.new([35.12878, -110.578],:title => "Hello!") @map.record_init @map.add_overlay(GMarker.new([35.12878, -110.578],:title => "Hello!"))
While center_zoom_init, control_init or overlay_init (and generally all the GMap methods which end in init) are one of the rare convenience methods that do not output JavaScript, the add_overlay does. Actually, if you look at the code of the GMap class, you won‘t find any add_overlay method, although in the documentation of the GMap2 class from the Google Maps API documentation, you will find something about the addOverlay JavaScript method. In fact, when you call on a mapping object an unknow method, it is converted to a javascriptified version of it, along with its arguments, and a string of JavaScript code is output. So the @map.add_overlay… above is converted to "map.addOverlay(new GMarker(GLatLng.new(35.12878, -110.578),{title:\"Hello!\"}))", which is then passed to the record_init method of a Ruby GMap object to be later output along with the rest of the initialization code. Any arbitrary JavaScript code can be passed to the record_init method. Note that 2 last lines of the previous code sample are strictly equivalent and since the overlay_init version is a bit simpler, it should be preferred.
The map is represented by a GMap object. You need to pass to the constructor the id of a DIV that will contain the map. You have to place this DIV yourself in your HTML template. You can also optionnally pass to the constructor the JavaScript name of the variable that will reference the map, which by default will be global in JavaScript. You have convenience methods to setup the controls, the center, the zoom, overlays, the interface configuration (continuous zoom, double click zoom, dragging), map types and the icons (which are also global). You can also pass arbitrary JavaScript to record_init and record_global_init. Since, by default, the initialization of the map is performed in a callback function, if you want to have a globally accessible variable, you need to use the global version.
You can also have multiple maps. Just make sure you give them different DIV id‘s, as well as different global variable names, when constructing them:
@map1 = GMap("map1_div","map1") @map2 = GMap("map2_div","map2")
The other absolutely necessary initialization step in the controller is the setting of center and zoom:
@map1.center_zoom_init([49.12,-56.453],3)
Withouth this code the map will display an empty grey rectangle with Google‘s logo.
Then in your template, you have 2 necessary calls:
You can also use GMap#div to output the div element with the correct id. You can pass it options :height and :width to set the size of the div (although, as indicated below, you have other ways to do that).
So you should have something like the following:
<title>Hello</title> <%= GMap.header %> <%= @map.to_html %>  <%= @map.div(:width => 600,:height => 400) %>
Note that you need to set a size for the map DIV element at some point or the map will not be displayed. You have a few ways to do this:
GMarkers are point of interests on a map. You can give a position to a GMarker constructor either by passing it a 2D-array of coordinates, a GLatLng object, an object of type Variable (which evaluates to a GLatLng when interpreted in the browser) or an address, which will be geocoded when the marker is initialized by the map.
You can pass options to the GMarker to customize the info window (:info_window or :info_window_tabs options), the tooltip (:title option) or the icon used (:icon option).
For example:
GMarker.new([12.4,65.6],:info_window => "I'm a Popup window",:title => "Tooltip") GMarker.new(GLatLng.new([12.3,45.6])) GMarker.new("Rue Clovis Paris France", :title => "geocoded")
You are able to update the map through Ajax. In Ruby-on-Rails, you have something called RJS, which sends JavaScript created on the server as a response to an action, which is later interpreted by the browser. It is usually used for visual effects and replacing or adding elements. It can also accept arbitrary JavaScript and this is what YM4R uses.
For example, if you want to add a marker to the map, you need to do a few things. First, you have to bind a Ruby mapping object to the global JavaScript map variable. By default its name is map, but you could have overriden that at initialization time. You need to do something like this:
@map = Variable.new("map")
map in the Variable constructor is the name of the global JavaScript map variable. Then any method you call on @map will be converted in JavaScript to a method called on map. In your RJS code, you would do something like this to add a marker:
page << @map.add_overlay(GMarker.new([12.1,12.76],:title => "Hello again!"))
What is sent to the browser will be the fllowing JavaScript code:
map.addOverlay(new GMarker(new GLatLng(123123.1,12313.76),{title:\"Hello again!\"}))
GPolylines are colored lines on the map. The constructor takes as argument a list of GLatLng or a list of 2-element arrays, which will be transformed into GLatLng for you. It can also take the color (in the rrggbb form), the weight (an integer) and the opacity. These arguments are optional though.
For example:
GPolyline.new([[12.4,65.6],[4.5,61.2]],"#ff0000",3,1.0)
Then you add it like any other overlay:
@map.overlay_init(polyline)
GPolygons are colored areas on the map. As of 29/12, this feature is not documented in the official GMaps API, but thanks to Steven Talcott Smith (www.talcottsystems.com), it is possible to use it now in ym4r.
The constructor takes as argument a list of GLatLng or a list of 2-element arrays, which will be transformed into GLatLng for you. Note that for polygons, the last point must be equal to the first, in order to have a closed loop. It can also take the color (in the rrggbb form) of the stroke, the weight of the stroke, the opacity of the stroke, as well as the color of the fill and the opacity. These arguments are optional though.
For example:
GPolygon.new([[12.4,6.6],[4.5,1.2],[-5.6,-12.4],[12.4,6.6]],"#ff0000",3,1.0,"#00ff00",1.0)
Then you add it like any other overlay:
@map.overlay_init(polygon)
A new type of GOverlay is available, called GMarkerGroup.
To use it you would have to include in your HTML template the JavaScript file markerGroup.js after the call to GMap.header (because it extends the GOverlay class). You should have something like that in your template:
<%= javascript_include_tag("markerGroup") %>
It is useful in 2 situations:
Here is how you would use it from your Ruby code:
@map = GMap.new("map_div") marker1 = GMarker.new([123.55,123.988],:info_window => "Hello from 1!") marker2 = GMarker.new([87.123,18.9],:info_window =>"Hello from 2!") @map.overlay_global_init(GMarkerGroup.new(true, 1 => marker1, 2 => marker2),"myGroup")
Here I have created an active (ie which is going to be displayed when the map is created) marker group called myGroup with 2 markers, which I want to reference later. If I did not want to reference them later (I just want to be able to display and undisplay the marker group), I could have passed an array instead of the hash.
Then in your template, you could have that:
Click here to display marker1 Click here to display marker2 <%= @map.div %>
When you click on one of the links, the corresponding marker has its info window displayed.
You can call activate and deactivate to display or undisplay a group of markers. You can add new markers with addMarker(marker,id). Again if you don‘t care about referencing the marker, you don‘t need to pass an id. If the marker group is active, the newly added marker will be displayed immediately. Otherwise it will be displayed the next time the group is activated. Finally, since it is an overlay, the group will be removed when calling clearOverlays on the GMap object.
You can center and zoom on all the markers in the group by calling GMarkerGroup#centerAndZoomOnMarkers() after the group has been added to a map. So for example, if you would want to do that at initalization time, you would do the following (assuming your marker group has been declared as group):
@map.record_init group.center_and_zoom_on_markers
It is a recent (v2.67) GMaps API class that manages the efficient display of potentially thousands of markers. It is similar to the Clusterer (see below) since markers start appearing at specified zoom levels. The clustering behaviour has to be managed explicitly though by specifying the cluster for smaller zoom levels and specify the expanded cluster for larger zoom levels and so on. Note that it is not an overlay and is not added to the map through an overlay_init call.
Here is an example of use:
@map = GMap.new("map_div") @map.control_init(:large_map => true, :map_type => true) @map.center_zoom_init([59.91106, 10.72223],3) srand 1234 markers1 = [] 1.upto(20) do |i| markers1 << GMarker.new([59.91106 + 6 * rand - 3, 10.72223 + 6 * rand - 3],:title => "OY-20-#{i}") end managed_markers1 = ManagedMarker.new(markers1,0,7) markers2 = [] 1.upto(200) do |i| markers2 << GMarker.new([59.91106 + 6 * rand - 3, 10.72223 + 6 * rand - 3],:title => "OY-200-#{i}") end managed_markers2 = ManagedMarker.new(markers2,8,9) markers3 = [] 1.upto(1000) do |i| markers3 << GMarker.new([59.91106 + 6 * rand - 3, 10.72223 + 6 * rand - 3],:title => "OY-300-#{i}") end managed_markers3= ManagedMarker.new(markers3,10) mm = GMarkerManager.new(@map,:managed_markers => [managed_markers1,managed_markers2,managed_markers3]) @map.declare_init(mm,"mgr")
A Clusterer is a type of overlay that contains a potentially very large group of markers. It is engineered so markers close to each other and undistinguishable from each other at some level of zoom, appear as only one marker on the map at that level of zoom. Therefore it is possible to have a very large number of markers on the map at the same time and not having the map crawl to a halt in order to display them. It has been slightly modified from Jef Poskanzer‘s original Clusterer2 code (see www.acme.com/javascript/ for the original version). The major difference with that version is that, in YM4R, the clusterer is a GOverlay and can therefore be added to the map with map.addOverlay(clusterer) and is cleared along with the rest of overlays when map.clearOverlays() is called.
In order to use a clusterer, you should include in your template page the clusterer.js file after the call to GMap.header (because it extends the GOverlay class). You should have something like that in your template:
<%= javascript_include_tag("clusterer") %>
To create a clusterer, you should first create an array of all the GMarkers that you want to include in the clusterer (you can still add more after the clusterer has been added to the map though). When GMarkers close together are grouped in one cluster (represented by another marker on the map) and the user clicks on the cluster marker, a list of markers in the cluster is displayed in the info windo with a description: By default it is equal to the title of the markers (which is also displayed as a tooltip when hovering on the marker with the mouse). If you don‘t want that, you can also pass to the GMarker constructor a key-value pair with key :description to have a description different from the title. For example, here is how you would create a clusterer:
markers = [GMarker.new([37.8,-90.4819],:info_window => "Hello",:title => "HOYOYO"), GMarker.new([37.844,-90.47819],:info_window => "Namaste",:description => "Chopoto" , :title => "Ay"), GMarker.new([37.83,-90.456619],:info_window => "Bonjour",:title => "Third"), ] clusterer = Clusterer.new(markers,:max_visible_markers => 2)
Of course, with only 3 markers, the whole clusterer thing is totally useless. Usually, using the clusterer starts being interesting with hundreds of markers. The options to pass the clusterer are:
Then to add the clusterer to the map at initialization time, you proceed as with a classic overlay:
@map.overlay_init clusterer
To add new markers in RJS (if the clusterer has been declared globally with overlay_global_init), you should do this:
page << clusterer.add_marker(marker,description)
In this case, the :description passed to the GMarker contructor will not be taken into account. Only the description passed in the call to add_marker will.
An group of markers taken from a Rss feed containing location information in the W3C basic geo (WGS83 lat/lon) vocabulary and in the Simple GeoRss format. See georss.org for more details. The support for GeoRss relies on the MGeoRSS library by Mikel Maron (brainoff.com/gmaps/mgeorss.html), although a bit modified, mostly to have the GeoRssOverlay respect the GOverlay API. It has also been enhanced by Andrew Turner who added support for the GeoRss Simple format.
Note that the geoRssOverlay.js file must be included in the HTML template in order to use this functionality. You should have something like that in your template:
<%= javascript_include_tag("geoRssOverlay") %>
Here is how you would use it. First create the overlay at initialization:
def index @map = GMap.new("map_div") @map.control_init(:large_map => true) @map.center_zoom_init([38.134557,-95.537109],0) @map.overlay_init(GeoRssOverlay.new(url_for(:action => "earthquake_rss")) end
Since it is not possible to make requests outside the domain where the current page comes from, there is a need for a proxy. With the GeoRssOverlay initialization above, the request will be made by the earthquake_rss action, where the address to find the RSS feed will be hardwired:
def earthquake_rss result = Net::HTTP.get_response("earthquake.usgs.gov","/eqcenter/recenteqsww/catalogs/eqs7day-M5.xml") render :xml => result.body end
If you don‘t want to hardwire the RSS feed location in an action, you can. But you will have to pass the :proxy option to the GeoRssOverlay constructor. When requesting the RSS feed, the browser will in fact call the proxy with the actual URL of the RSS feed in the q parameter of the request. Here is how you would initialize the GeoRssOverlay that way:
@map.overlay_init(GeoRssOverlay.new("http://earthquake.usgs.gov/eqcenter/recenteqsww/catalogs/eqs7day-M5.xml", :proxy => url_for(:action => "proxy")))
And here is an example of proxy action:
def proxy result = Net::HTTP.get_response(URI.parse(@params[:q])) render :xml => result.body end
You should probably do some checks to ensure the proxy is not abused but it is of your responsibility.
Another option can be passed to the GeoRssOverlay constructor to set an icon to be used by the markers of the overlay: :icon. By default it is equal to the default icon (the classic red one).
In the view, you should have something like the following:
 <title>Testing GeoRss</title> <%= GMap.header(:with_vml => false) %> <%= javascript_include_tag("geoRssOverlay") %> <%= @map.header_width_height(600,400) %> <%= @map.to_html %>   <%= @map.div %>
Note the inclusion of the geoRssOverlay.js file.
Other options to pass to the GeoRssOverlay constructor are the following:
It is now possible to easily add new map types, on top of the already existing ones, like G_SATELLITE_MAP or G_NORMAL_MAP. The imagery for these new map types can come from layers of the standard map types or can be taken either from a WMS server or from pretiled images on a server (that can be generated with a tool that comes with the YM4R gem: refer to the README of the gem to know more about it).
For exemple, here is how you would setup layers from a public WMS server of the DMAP team of the American Navy:
layer = WMSLayer.new("http://columbo.nrlssc.navy.mil/ogcwms/servlet/WMSServlet/AccuWeather_Maps.wms", "20:3,6:3,0:27,0:29,6:19", :copyright => {'prefix' => "Map Copyright 2006", 'copyright_texts'=> ["DMAP"]}, :use_geographic => true, :opacity => 0.8)
This sets up a connection to a WMS service, requesting layers 20:3,6:3,0:27,0:29,6:19 (you would have to look at the GetCapabilities document of the service to know what the valid layers are). The copyright notice attributes the data to DMAP. The images will be 80% opaque. For the rest of the options, the default values are used: default styles (:style option), PNG format (:format option), valid for all zoom levels (:zoom_range option). The option :merc_proj is irrelevant here since the :use_geographic option is true.
The arguments :use_geographic and :merc_proj warrant some explanation. The Google Maps are in the Simple Mercator projection in the WGS84 datum and currently do not support the display of data in projections other than that (at least if you want to display markers and lines on top of it). Unfortunately, different WMS servers do not identify this projection the same way. So you can give to the WMSLayer constructor your server type through the :merc_proj option and it will figure out what is the correct identifier. Currently, this works only for :mapserver (EPSG:54004) and :geoserver (EPSG:41001). For others you can directly pass a number corresponding to the EPSG definition of the simple Mercator projection of your server. On top of that, some servers just don‘t support the Simple Mercator projection. This is why there is a :use_geographic option, that can be set to true. It is in order to tell the WMSLayer that it should request its tiles using LatLon coordinates in the WGS84 datum (which should be supported by any server in a consistant way). Unfortunately it is not perfect since the deformation is quite important for low zoom levels (< 5 for the US). Higher than that, the deformation is not that visible. However, if you control the WMS server, it is recommended that you don‘t use :use_geographic and instead use the :merc_proj option and setup the Mercator projection in your server if it is not done by default.
Note that you need to include the wms-gs.js javascript file in your HTML page in order to make use of the WMSLayer functionality. You should have something like that in your template:
<%= javascript_include_tag("wms-gs") %>
This file uses code by John Deck with the participation of others (read the top of the javascript file to know more).
Here is how to define a pretiled layer:
layer = PreTiledLayer.new("http://localhost:3000/tiles", :copyright => {'prefix' => "Map C 2006", 'copyright_texts' => ["Open Atlas"]}, :zoom_range => 13..13, :opacity => 0.7, :format => "gif")
I tell the PreTiledLayer constructor where I can find the tiles, setup the Copyright string, the valid zooms for the map, the opacity and the format. Tiles must have standardized names: tile_#{zoom}_#{x_tile}_#{y_tile}.#{format} (here the format is "gif"). You can use tools found in the YM4R gem to generate tiles in this format either from local maps or from WMS servers (useful to create tiles from geographic data files without having to run a map server or to cache images from slow servers). Again refer to the documentation of the gem for more information on how to do this.
Instead of having the tiles requested directly, you can also decide to have an action on the server which takes care of it. You can used the class PreTiledLayerFromAction for this. In this case, the first argument of the constructor is an url of an action. The arguments x, y and z will be passed to it.
layer = PreTiledLayerFromAction.new(url_for(:action => :get_tile), :copyright => {'prefix' => "Map C 2006", 'copyright_texts' => ["Open Atlas"]}, :zoom_range => 13..14, :opacity => 0.7)
The other constructor arguments have the same meaning as PreTiledLayer. Here is an uninteresting example of action that serves tiles:
def get_tile x = @params[:x] y = @params[:y] z = @params[:z] begin send_file "#{RAILS_ROOT}/public/tiles/tile_#{z}_#{x}_#{y}.png" , :type => 'image/png', :disposition => 'inline' rescue Exception render :nothing => true end end
You can add a layer to a new map type the following way:
map_type = GMapType.new(layer,"My WMS")
This is actually the simplest configuration possible. Your map type has only one data layer and is called "My WMS". You can add more that one layer: Either one that you have created yourself or existing ones. For example:
map_type = GMapType.new([GMapType::G_SATELLITE_MAP.get_tile_layers[0],layer,GMapType::G_HYBRID_MAP.get_tile_layers[1]], "Test WMS")
Here for the "Test WMS" map type, we also take the first layer of the "Satellite" map type in the background and overlay the second layer of the "Hybrid" map type (roads, country boundaries, etc… transparently overlaid on top of the preceding layers) so when the "Test WMS" map type is selected in the interface, all three layers will be displayed.
Finally to add a map type to a GMap:
@map.add_map_type_init(map_type)
If you want to wipe out the existing map types (for example the 3 default ones), you can add a false argument to the add_map_type_init method and the map_type will be the only one.
If you want to setup the map as the default one when the map is initially displayed, you should first declare the map type then add it to the map as indicated above and finally setting it as the default map type:
@map.declare_init(map_type,"my_map_type") @map.add_map_type_init(map_type) @map.set_map_type_init(map_type)
Future versions of the plugin may simplify that.
A helper to perform geocoding on the server side (in Ruby) is included. Here is an example of request:
results = Geocoding::get("Rue Clovis Paris")
You can also pass to the get method an options hash to manage the various API key options (see the section on GMap.header for details). results is an array of Geocoding::Placemark objects, with 2 additional attributes: status and name. You should check if status equals Geocoding::GEO_SUCCESS to know if the request has been successful. You can then access the various data elements.
Here is an example that will display a marker on Paris:
results = Geocoding::get("Rue Clovis Paris") if results.status == Geocoding::GEO_SUCCESS coord = results[0].latlon @map.overlay_init(GMarker.new(coord,:info_window => "Rue Clovis Paris")) end
You could also have performed the geocoding on the client side with the following code, which is functionnality equivalent to the code above:
GMarker.new("Rue Clovis Paris",:info_window => "Rue Clovis Paris")
Local Search control has been added to the map and control objects. There are two places you need to implement it to get it to work. This is because the local search control needs an additional library added to the import as well as the control added to the map.
In your controller, you add ’:local_search => true’ to the @map.control_init like this: @map = GMap.new("map_div") @map.control_init(:large_map => true, :map_type => true, :local_search => true)
And in your view, you pass ’:local_search => true’ to the GMap.header like this: <%= GMap.header(:local_search => true) %> <%= @map.to_html %> <%= @map.div(:width => 600, :height => 400) %>
You can pass options to the control_init as well. They are: :anchor => [:bottom_left (default), :bottom_right, :top_left, :top_right] :offset_width => 10 (default) :offset_height => 20 (default)
So if you wanted the local search control to be at the bottom right of the map, 30 pixel in from the right and 20 pixels above the bottom it would look like this: @map.control_init(:large_map => true, :map_type => true, :local_search => true, :anchor => :bottom_right, :offset_width => 30, :offset_height => 20)
This software is not endorsed in any way by Google.
The YM4R/GM plugin bundles JavaScript libraries from John Deck (WMS layers on Google Maps), Jef Poskanzer (Clusterer on Google Maps) and Mikel Maron (GeoRss on Google Maps).
The YM4R/GM plugin is released under the MIT license. The clusterer.js file is redistributed with a different license (but still compatible with the MIT license). Check the top of the file in PLUGIN_ROOT/javascript to know more.
Any questions, enhancement proposals, bug notifications or corrections can be sent to guilhem.vellut+ym4r@gmail.com.


There are 64,454 over 100 years old people in Japan as of 2017. Which cities have higher ratio of those people?
An example of rendering Japan's administrative divisions and percentage of over 100 years old population with TopoJSON and D3.


Web design is an essential part of everyone may be in any form as social media, entertainment and downloading things for educational purpose in the form of a website. So web design courses give the real picture of yourself so everybody can get good knowledge about our product or business. Everyone wants a good website and he needs the best website designer to create a website for publicity and these web design courses helps them to create an appropriate website design with web design courses in Delhi, Rohini, Pitampura, New Delhi & NCR.
Web design is an essential part of everyone may be in any form as social media, entertainment and downloading things for educational purpose in the form of a website. So web design courses give the real picture of yourself so everybody can get good knowledge about our product or business. Everyone wants a good website and he needs the best website designer to create a website for publicity and these web design courses helps them to create an appropriate website design with web design courses in Delhi, Rohini, Pitampura, New Delhi & NCR.
Web design is an essential part of everyone may be in any form as social media, entertainment and downloading things for educational purpose in the form of a website. So web design courses give the real picture of yourself so everybody can get good knowledge about our product or business. Everyone wants a good website and he needs the best website designer to create a website for publicity and these web design courses helps them to create an appropriate website design with web design courses in Delhi, Rohini, Pitampura, New Delhi & NCR.


|
Welcome to the Final Fantasy III Shrine! This game is NOT identical to the Super Nintendo game with Terra as the hero. That game was released in Japan as Final Fantasy VI. This game was never released in the US, and is only playable in English thanks to some dedicated online translators. Site Updates May 31, 2004: Made changes to almost all pages editing HTML after recieving the shrine from Cid. Rob Iannacone sent information about equipping two nunchuks on a monk to increase attack power and Andrew Dyche sent in the location of the Onion Glove. Fixed an image in the Cave of Darkness maps. August 18, 2003: PatBuns15 sent in the location for the Bull Man monster and a correction about the sidebar in the maps sections. March 9, 2003: Maps have been completed, yay! Also fixed up a few other things around the site (see the Thanks page for more details). Also added a Capacity List and pics for status effects in the Manual. February 12, 2003: Added more maps! Now we're covering up to and including the Ancient Ruins. One more update should do it. December 31, 2002: Added full maps for towns and dungeons, up to and including Salonia Castle. Made some additions and tweaks to the walkthrough and added credits in the Thanks section. January 14, 2002: Added the stats and info I was missing in the Armor and Items section; added savestate hacking programs to the Downloads page. January 2, 2002: Shrine created. Maintained by:
Created by:
Final Fantasy III © 1990
|


--- layout: default title: Components materialicon: extension order: 2 ---
A key building block of a pipeline is a component. There is a library of components ready and here we go through their configuration. Of course, everyone can add their own component, the best way to do that is to copy&paste one of ours and change it. There are five basic types of components. Extractors bring data from outside to the ETL pipeline, e.g. by downloading a file from the Web. Transformers perform transformation of data already in the pipeline and the result is kept in the pipeline. Quallity Assessment components verify that data in the pipeline meet defined criteria. Loaders take data produced by the pipeline and place it outside, e.g. upload it to a web server or database. Special purpose components may do something else, e.g. run an external process.
The icons next to the components in the component list represent their type. Currently, we have five types of components.
Bring data from the outside into the pipeline
Take data from the pipeline, change it and pass it on
Check data passing through the pipeline and stop execution in case of problems
Take data from the pipeline and load it to an external place
They do something else, e.g. execute a remote command


This section is Your income and regular money
{% if thirdparty %}Does {{firstname}} get housing benefit?
{% else %}Do you get a Guaranteed Income Payment as part of of your Armed Forces Compensation Scheme?
{% endif %}We don't need to know about any lump sum you may have received.


Academic Education
- 2002-2006: Secundary Education: Liceo Napoleón Quesada Salazar, Bachelor Degree.
- 2007-2015: Universidad Fidélitas: Systems Engineering Bachelor Degree.
- 2014-2015: Universidad Fidélitas: Design & Development Web Technical Degree
Main Skills
- Intermediate-Advanced knowledge of the English language ( writing , speaking , reading, Listening)
- Basic- Intermediate knowledge of the Japanese Language (writing, speaking, reading and listening).
- Excellent interpersonal relationships and team work.
- Self-Taught.
- Experience with programming languages such as: C#, HTML v4.1 & v5, Java, JavaScript, JQuery and CSS v2 & v3.
- Knowledge of Web application deployment (Hosting and Domain).
- General knowledge handling MS SQL Server versions: 2008 R2 & 2012
- Able to Design and Develop Frontend & Backend structures based on customer’s requirements for (Windows and Web) platforms.
Work Experience
- Intermediate-Advanced knowledge of the English language ( writing , speaking , reading, Listening)
- Basic- Intermediate knowledge of the Japanese Language (writing, speaking, reading and listening).
- Excellent interpersonal relationships and team work.
- Self-Taught.
- Experience with programming languages such as: C#, HTML v4.1 & v5, Java, JavaScript, JQuery and CSS v2 & v3.
- Knowledge of Web application deployment (Hosting and Domain).
- General knowledge handling MS SQL Server versions: 2008 R2 & 2012
- Able to Design and Develop Frontend & Backend structures based on customer’s requirements for (Windows and Web) platforms.
Work Experience
- Intermediate-Advanced knowledge of the English language ( writing , speaking , reading, Listening)
- Basic- Intermediate knowledge of the Japanese Language (writing, speaking, reading and listening).
- Excellent interpersonal relationships and team work.
- Self-Taught.
- Experience with programming languages such as: C#, HTML v4.1 & v5, Java, JavaScript, JQuery and CSS v2 & v3.
- Knowledge of Web application deployment (Hosting and Domain).
- General knowledge handling MS SQL Server versions: 2008 R2 & 2012
- Able to Design and Develop Frontend & Backend structures based on customer’s requirements for (Windows and Web) platforms.
Work Experience
- Intermediate-Advanced knowledge of the English language ( writing , speaking , reading, Listening)
- Basic- Intermediate knowledge of the Japanese Language (writing, speaking, reading and listening).
- Excellent interpersonal relationships and team work.
- Self-Taught.
- Experience with programming languages such as: C#, HTML v4.1 & v5, Java, JavaScript, JQuery and CSS v2 & v3.
- Knowledge of Web application deployment (Hosting and Domain).
- General knowledge handling MS SQL Server versions: 2008 R2 & 2012
- Able to Design and Develop Frontend & Backend structures based on customer’s requirements for (Windows and Web) platforms.


CADRE Academy is a resource provided by the University of Virigina to help students, faculty and staff locate, register, and attend technology workshops. This site was conceived by CADRE and developed by SOMRC. We launched in January of 2018.
CADRE is a University-wide exchange designed to simplify the process of finding local research technology solutions. The CADRE website provides a comprehensive list of the software, services, training opportunities, storage solutions, and computational hardware available to UVA scholars. CADRE is multi-disciplinary and supports all eleven schools of the University.
CADRE includes the following groups and departments:


THE LITTLE MERMAID
A Film Review by James Berardinelli
RATING: ***1/2 OUT OF ****
United States, 1989 U.S. Re-release Date: 11/14/97 (wide) Running Length: 1:22 MPAA Classification: G (Nothing offensive) Theatrical Aspect Ratio: 1.66:1
Featuring the voices of: Jodi Benson, Samuel E. Wright, Pat Carroll, Christopher Daniel Barnes, Kenneth Mars, Ben Wright, Rene Auberjonois, Jason Marin, Buddy Hackett Directors: Ron Clements and John Musker Producers: Howard Ashman and John Musker Screenplay: Ron Clements and John Musker Music: Alan Menken Lyrics: Howard Ashman U.S. Distributor: Walt Disney Pictures
It's hard to believe that it's only been eight years since THE LITTLE MERMAID made its first appearance in movie theaters. Since the film's bow in 1989, when it introduced Disney's "new era", the studio has released six animated features (plus one leftover from the previous regime, 1990's THE RESCUERS DOWN UNDER). Without exception, all of them have taken their cue from THE LITTLE MERMAID: a young, individualistic protagonist proves himself/herself with the aid of a few cute sidekicks while finding time to sing several songs along the way. It's not a terribly interesting premise, but, when done well, it makes for an entertaining ninety minutes. Lately, with movies like POCAHONTAS, THE HUNCHBACK OF NOTRE DAME, and HERCULES, Disney has been getting stuck in a rut, and the enjoyability quotient has been in a rapid decline. The re-issue of THE LITTLE MERMAID reminds us how agreeable the animated releases were just a few years ago.
If Disney was the genial, family-friendly corporation they pretend to be, we could believe that it's just a coincidence that THE LITTLE MERMAID's re-release coincides with 20th Century Fox's big push for what could be the best non-Disney animated film ever, ANASTASIA. The real reason is less altruistic -- the Mouseketeers don't want any competition in this arena, and they have taken the most effective steps available to them to stifle it -- bring back one of the most beloved recent classics and hope audiences spend their dollars on THE LITTLE MERMAID rather than ANASTASIA.
Despite revitalizing Disney's fortunes and introducing the present wave of big-screen cartoons, THE LITTLE MERMAID was not a groundbreaking motion picture, although it was the first animated movie to so thoroughly incorporate songs into the narrative. With big production numbers like "Under the Sea" and "Kiss the Girl", and several other hummable melodies, the film makers did their best to create the cartoon equivalent of a musical. Considering that the tunes are among the best ever penned by the songwriting team of Alan Menken and Howard Ashman (the creators of LITTLE SHOP OF HORRORS, who went on to do BEAUTY AND THE BEAST and ALADDIN for Disney), this move turned out to be a fantastic success. And, like all musicals, much of the enjoyment comes as a result of simply enjoying the singing, rather than being carried away by the relatively uncomplicated story.
THE LITTLE MERMAID is loosely based on the Hans Christian Andersen fable, albeit with a radically changed ending. Ariel (voice of Jodi Benson) is the rebellious teenage mer-daughter of Triton, King of the Sea (Kenneth Mars). She is obsessed with the culture of those who live on land, and keeps a secret treasure trove of objects recovered from shipwrecks. One day, while swimming around with her fish pal, Flounder (Jason Marin), and her chaperone, the crab Sebastian (Samuel E. Wright), Ariel comes upon a sinking ship and saves a handsome young human, who turns out to be a prince named Eric (Christopher Daniel Barnes), from drowning. Ariel is smitten, but when her father finds out about her excursions to the surface, he is furious. Hurt and desperate, the young mermaid falls into the trap of the sea-witch Ursula (Pat Carroll), who offers her a deal: in return for being transformed into a human, Ariel must cause Eric to fall in love with her in less than three days, otherwise her soul will belong to Ursula. To seal the bargain, Ariel gives her voice to the witch. What the mermaid doesn't know, however, is that Ursula has stacked the deck so that Ariel can't possibly emerge victorious.
The animation in THE LITTLE MERMAID isn't quite as accomplished or eye-popping as that of its successors, but it's still impressive, and hurried or unfinished cels are almost impossible to spot. What the film does expertly is to weave together music, likable protagonists, thoroughly nasty villains, and a fun plot into a cohesive whole, with a result that is nothing short of magical. And, although THE LITTLE MERMAID isn't among Disney's most "mature" animated movies, it offers enough entertainment, innocent romance, and low-key humor to keep adults involved. Children, of course, will love it.
THE LITTLE MERMAID boasts a particularly strong vocal cast, although, other than Buddy Hackett (who plays a seagull named Scuttle) and Rene Auberjonois (a French cook), there are few recognizable names. But Jodi Benson gives Ariel a clear, beautiful voice and a delightfully silvery laugh; Pat Carroll brings Ursula to life with sultry gusto; and Samuel E. Wright creates a crab with a penchant for reggae. Other voices include Christopher Daniel Barnes in the rather bland role of Eric, Jason Marin as Flounder, and Ben Wright as Grimsby, Eric's faithful manservant.
The biggest obstacle for Disney is that many children have already seen THE LITTLE MERMAID on videotape, and most kids don't care about the differences between the theatrical presentation of a movie and one in the living room. Nevertheless, for those who haven't seen the film on either the big or the small screen, or for anyone who wants a chance to view it again after an eight-year absence, it's well worth a trip to the local multiplex (and, according to the studio, this will be a limited, two-week run). For ninety minutes of pure escapism, it's difficult to beat THE LITTLE MERMAID.
Copyright 1997 James Berardinelli
- James Berardinelli e-mail<EMAIL_ADDRESS>Now with more than 1300 reviews... The ReelViews web site: http://movie-reviews.colossus.net/
"For me, the cinema is not a slice of life, but a piece of cake."
- Alfred Hitchcock
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


FTP Upload:
Pages are as follows:
index.html
Home page one
index2.html
Home page Two
index3.html
Home page Three
index4.html
Home page Four
about.html
About Page
account.html
Account Page
cart.html
Shopping Cart
checkout.html
Checkout Page
wishlist.html
wishlist Page
login.html
LogIn page
shop.html
Shop Page
shop-sidebar.html
shop sidebar Page
single-product.html
single product Page
blog.html
Blog Two Column
blog-details.html
Blog Details
contact.html
Contact Page
The following stylesheets have been used for Font:
'https://fonts.googleapis.com/css?family=Poppins:300,400,400i,500,600,700,800'
The following stylesheets have been used for CSS:
assets/css/bootstrap.min.css
assets/css/font-awesome.min.css
assets/css/flaticon.css
assets/css/owl.carousel.css
assets/css/animate.css
assets/css/swiper.min.css
assets/css/jquery-ui.css
assets/css/metisMenu.min.css
assets/css/slicknav.min.css
assets/css/style.css
assets/css/responsive.css
The following JS files have been used for Template:
assets/js/jquery-2.2.4.min.js
assets/js/modernizr-2.8.3.min.js
assets/js/owl.carousel.min.js
assets/js/jquery.zoom.min.js
assets/js/jquery-ui.min.js
assets/js/swiper.min.js
assets/js/mailchimp.js
assets/js/metisMenu.min.js
assets/js/mouse_scroll.js
assets/js/scrollup.js
assets/js/jquery.slicknav.min.js
assets/js/bootstrap.min.js
assets/js/scripts.js
How to Change Title
How to Change Favicon
How to Change Logo
How to Change Copyright
How to Change Mail Address