Missoula Area Group Cycling Rides 2004
Glossary/Legend:
Weekend Group
Ride: Mixed bag of fitness levels but everyone
sticks together. Sometimes the pace
picks up, but we will regroup. Routes
are predetermined and provide plenty of places to turn around. Folks new to riding in packs are encouraged
to attend.
Hell Ride: A fast paced ride. No
waiting, all-out-hammerfest!
Turah TT: A 10 mile time trial (race against the clock) Departs from Turah cutoff
Newbie ride: Group ride for riders new to riding in groups and is usually easy
to moderate pace. Departs from Missoula
Bicycle Works.
D.E.A.T.H.
Ride: Corbin’s sick idea. Drop Everyone Ascending The Hills: Climb all hills around Missoula with points
being awarded to the top 3 finishers.
3pts for 1st to top, 2 for 2nd, and 1 for 3rd.


DfE enquiries
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Press release
Details of continued investment in physics teaching.
Education Secretary Michael Gove has today (Thursday) announced the continuation of a £2m-a-year partnership between the Department for Education (DfE) and the Institute of Physics (IOP).
In a sustained effort to overcome the chronic shortage of specialist physics teachers, Michael Gove has announced that IOP’s teacher training scholarships will continue.
Education Secretary Michael Gove said:
Following the successful recruitment of 115 excellent trainee teachers this year, I’m delighted to announce another recruitment round over this academic year.
We are starting to see the root causes of our physics teacher shortage being addressed. By raising the status of the profession, we’re bringing highly sought-after physics graduates and career-changers, all with incredible aptitude to teach, into the classroom.
The £20,000 scholarships - available to graduates with a 2:1 or first class degree intending to do a mainstream physics, or physics with maths, initial teacher training course - have contributed to another year of record high physics teacher recruitment.
IOP has also today published a summary of trends in physics education and, as the note reports, “While there is no magic bullet to remedy the chronic shortage of physics teachers, the situation is starting to improve as steps have been taken by both the IOP and the Department for Education”.
With a need to recruit 1,000 new specialist physics teachers every year for more than a decade to address the imbalance between the number of specialist biology, chemistry and physic teachers in science departments across England, there is still a long way to go.
Professor Peter Main, director of education and science at IOP, said:
For the second year running, we are seeing record numbers of would-be teachers starting teacher training courses in either physics or physics with maths.
Last year, we saw 889 new trainees start their initial teacher training and this year all evidence suggests that we’ll see more than 900 entering teacher training. This is up from below 600 just two years ago.
IOP credits a range of developments with the strides being made to address the teacher shortage; from the government’s introduction of ambitious teacher recruitment targets for physics through to the teacher training scholarships and efforts being made to retain greater numbers of physics teachers in the profession once qualified.
With the shortage due to persist for at least a decade another government-funded programme called the Stimulating Physics Network continues to work with non-specialist physics teachers to ensure non-specialists (often biologists) have the knowledge, enthusiasm and confidence to successfully teach physics.
The IOP’s note on the summary of trends in physics education can be found on the Institute of Physics website.
The Institute of Physics is a leading scientific society promoting physics and bringing physicists together for the benefit of all. It has a worldwide membership of around 45,000 comprising physicists from all sectors, as well as those with an interest in physics. It works to advance physics research, application and education; and engages with policymakers and the public to develop awareness and understanding of physics. Its publishing company, IOP Publishing, is a world leader in professional scientific publishing and the electronic dissemination of physics. Go to the IOP website .
The Teaching Agency is responsible for initial teacher training (ITT) in England. It provides a comprehensive programme of support to help graduates become a teacher, providing guidance all the way through the application process. People interested in becoming a teacher should visit the Department for Education’s Get Into Teaching page or contact the Teaching Line on 0800 389 2500.
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Website: www.education.gov.uk/help/contactus
Published: 6 September 2012


Toggle navigation
Brouze
Search Brouze
Search All Tutors
English
History
AP Spanish
French
AP French
AP Computer Science
Computer Science
Pre-Algebra
Algebra
Algebra 2
Geometry
Trigonometry
Precalculus
AP Calculus AB
AP Calculus BC
Statistics
Rhetoric
AP English Literature
AP English Language
AP European History
AP United States History
Biology
AP Biology
Chemistry
Chemistry Honors
AP Chemistry
AP Environmental Science
Physics
AP Physics
SAT
ACT
Subject
Subject
Subject
Subject
Subject
Subject
Subject
Tutor Name
Searching tutors
Help
Menu
Profile
Saved Tutors
Sign Out
Results
Search Specific User
Search Username:
Filter
Remove Filter
Refine Search
Zipcode:
School:
Minimum Age:
13
14
15
16
17
18
19
Maximum Age:
13
14
15
16
17
18
19
Filter
Remove Filter
Copyright 2015 - YAAAS Labs


This is the third page.
link to the fourth page
This is the fourth page.
link to the first page (first HTML)
link to the second page (first HTML)


After you’ve signed up for a Merchant Account, we require a few pieces of information before your account is able to process payments.
If you haven’t signed up yet, phone our Sales Team at 1<PHONE_NUMBER>, or you can request a call.
Our Onboarding Team will guide you through each important step. If you have any questions, feel free to email them at<EMAIL_ADDRESS>After we receive your application, our Onboarding Team will review it and the accompanying paperwork within one or two business days. If we reach out to you because something is incomplete or missing, you should follow up as quickly as possible to avoid delays.
If you’re exclusively using a website for payments, we will also review the website during the approval process to ensure you meet website requirements.
Before your application is processed, you’ll complete one of two self-assessment questionnaires about your ability to meet PCI standards.
Self-Assessment 1
This questionnaire is aimed at any merchant using a solution that has all payment pages hosted on a fully compliant service provider such as Bambora Checkout. If your third-party shopping cart is PCI Certified, you’ll focus on this questionnaire.
Self-Assessment 2
Any merchant using a fully integrated API will complete this comprehensive questionnaire.
If you’re selling online, your goods or services require a clear description, along with information about their price. If your customer clearly understands what they’re purchasing, there’s less chance for a customer dispute or chargeback.
Because of requirements from Bambora and its banking partners, you’re required to clearly display the following pieces of information on your site:
After we’ve confirmed this information is readily available on your website, we can start work on issuing your Merchant Account. If you have questions about any of these requirements, or need more detail on making them available, contact our Customer Experience Team.
If you’ve already got a Merchant Account through a bank or credit union, you’ll be able to connect your previous account as a Terminal Account. We’ll need a few specific details about those accounts so we can connect you to the Bambora gateway, this list of account providers below outlines the necessary details.
Chase Paymentech
Elavon
First Data
Global Payments
Royal Bank of Canada (RBC), Scotiabank, Moneris, Desjardins and Canadian Credit Unions
TSYS
Toronto Dominion (TD)
If you’re using Chase Paymentech, ensure that your accounts are set up on the NetConnect platform. If you don’t already have one, request a VARS setup sheet from your Chase account representative with:
For Elavon merchant accounts, request a terminal setup sheet if you don’t already have one. It will include your:
If you are processing a high volume of transactions, your setup sheet may also include additional information such as FTP usernames and passwords.
To use your Canadian First Data accounts, they’ll need to be located on the Nashville South platform. American accounts need to be on Nashville North. If you don’t already have one, request a setup sheet with:
If you’re using Global Payments, ensure that your accounts are set up on the Global: Atlanta East platform. You’ll also need to make sure that Bambora is the software provider for your account. If you don’t already have one, request a terminal setup sheet with:
If you’re currently using any of these banks or credit unions, you need to provide your 5 to 12-digit Merchant ID, and confirm with your bank or union that these ID’s are set up for use through a third-party provider.
If you don’t already have one, request a terminal setup sheet from your TYSYS account representative with your:
You need to ensure that your TD merchant accounts are tied to a Bambora terminal. You’ll also need a terminal setup sheet from your account representative if you don’t already have one with:
If you’re interested in accepting Interac Online, you’ll need to complete the Interac portion of the Bambora application, covering how you’ll accept the payment online. if you’re new to online debit and bank payment, you can find the definitions of the terms used here.
If you’re unsure of any definitions or fields in the Bambora application, feel free to leave them blank and our Onboarding Team will be happy to assist.
After your application has been accepted, you will need to complete the Merchant Checklist for Interac Online Certification Testing, ensuring each item meets the standards outlined by Interac Online.
If you’re unsure about any steps in the process including the use of logos, process flow, or requirements, refer to our Interac Online Integration Guide.
After you’ve turned in your Merchant Checklist, we will perform a full test transaction on your account. After the test is successfully confirmed, we will contact our Interac partners to finalize the account setup.
You can begin to test your system’s integration using these test cards in your sandbox environment. Each currency requires its own Merchant ID, so if you intend on accepting multiple currencies, you will need to create a new integration for each one.
After integration tests are complete, as well as your terminal and merchant accounts are confirmed, we’ll send you an email to the address you provided, authorizing you to go live.
We recommend that you review our guide to Security and Risk Management for enhanced security featuresand best practices.
Once you or your developer finish testing, send us an email requesting to go live, and we will make it so. You’ll move from the test environment to live on production.
We’ll perform a review of your website to ensure everything is running smoothly. If we detect any issues or problems, we’ll send you an email concerning your site review.
Test transactions will remain free of charge, but monthly processing fees will start from the point your account goes live.
If you’re looking for more information about using Bambora, you can look through our Quickstart Guide for helpful hints, how-to’s, and all things Bambora.


E-Card Generator
Change Canvas Background Colour:
Shapes
Text
Images
Export
Clear
Circle
Square
Triangle
Star
Oval
Pentagon
Change Colour
Remove
Enter Text:
Add Text
Change Font:
Arial
Helvetica
Courier New
Verdana
Times
Change Font Size
Change Text Color
Remove
Choose an Image
Remove
Export as Image


Malaysian MotoGP: Vinales beats Marquez in Sepang
by Vishal VenugopalYamaha rider finished 3.059sec ahead of the eight-time world champion; Dovizioso rounded off the podium.
Marc Marquez’s 2019 MotoGP winning streak came to an end in Malaysia, after Maverick Vinales’ dominating performance saw him cross the line 3.059sec ahead of the eight-time world champion.
Vinales started in 2nd place and climbed up to the lead by the end of the first lap. From there on it was a straightforward race for him, with the Yamaha rider firmly holding onto the race lead till the very end. Marquez enjoyed a sublime start too, making his way up to 2nd place after a crash in qualifying saw him start from down in 11th place. Rookie of the year, Fabio Quartararo started on pole and was expected to be contesting for the win, but fell back, eventually, crossing the line in 7th place.
The Ducatis had a great start as the lights went out, with Jack Miller pouncing into the lead after starting in 4th place. Andrea Dovizioso, on his factory Ducati, finished the race in 3rd place, after starting on the fourth row in 10th place. The battle for the last step on the podium between him and Valentino Rossi was one of the longest and closest of the race, with the two switching places multiple times. Rossi’s 4th-place finish sees his podium-less drought continue, but, in what was some consolation for the nine-time champion, he did set the fastest lap of the race.
Marquez’s 2nd-place finish means his record of finishing in the top two at every race this season (apart from the DNF in Austin) continues to stand. Alex Rins crossed the line in 5th place, in front of the Petronas Yamaha pair of Franco Morbidelli and Quartararo. The duo were the two fastest riders in practice, with the latter also breaking the Sepang lap record, but they could not replicate their performance on race day.
Jack Miller fell back after his early lead, taking 8th place for Pramac Ducati. Behind him, an incident between Johann Zarco and Joan Mir saw the Suzuki rider being handed a ‘Long Lap’ penalty, allowing Miller to cross the line uncontested. Danilo Petrucci took home 9th, ahead of Mir.
Hafizh Syahrin finished his home grand prix right outside the points, in 16th place, behind Jorge Lorenzo and Mika Kallio in 14th and 15th, respectively. Cal Crutchlow and Andrea Iannone crashed out of the race, while Miguel Oliveira and Tito Rabat missed it due to injuries.
Results
| POS | RIDER | TEAM | BIKE | LAPS | GAP |
| 1 | Maverick Vinales | Yamaha | Yamaha | 20 | 40m14.632s |
| 2 | Marc Marquez | Honda | Honda | 20 | 3.059s |
| 3 | Andrea Dovizioso | Ducati | Ducati | 20 | 5.611s |
| 4 | Valentino Rossi | Yamaha | Yamaha | 20 | 5.965s |
| 5 | Alex Rins | Suzuki | Suzuki | 20 | 6.350s |
| 6 | Franco Morbidelli | Petronas Yamaha | Yamaha | 20 | 9.993s |
| 7 | Fabio Quartararo | Petronas Yamaha | Yamaha | 20 | 12.864s |
| 8 | Jack Miller | Pramac Ducati | Ducati | 20 | 17.252s |
| 9 | Danilo Petrucci | Ducati | Ducati | 20 | 19.773s |
| 10 | Joan Mir | Suzuki | Suzuki | 20 | 22.854s |
| 11 | Pol Espargaro | KTM | KTM | 20 | 24.821s |
| 12 | Francesco Bagnaia | Pramac Ducati | Ducati | 20 | 30.251s |
| 13 | Aleix Espargaro | Aprilia | Aprilia | 20 | 30.447s |
| 14 | Jorge Lorenzo | Honda | Honda | 20 | 34.215s |
| 15 | Mika Kallio | KTM | KTM | 20 | 34.461s |
| 16 | Hafizh Syahrin | Tech3 KTM | KTM | 20 | 44.319s |
| 17 | Karel Abraham | Avintia Ducati | Ducati | 20 | 47.343s |
| - | Johann Zarco | LCR Honda | Honda | 16 | Retirement |
| - | Cal Crutchlow | LCR Honda | Honda | 14 | Retirement |
| - | Andrea Iannone | Aprilia | Aprilia | 11 | Retirement |
| - | Miguel Oliveira | Tech3 KTM | KTM | 0 | Withdrawn |


Welcome to the home of the asset servers for Wrapper: Online.
It’s most likely you’re not supposed to be here.
You probably got here through the magic known as the Network tab.
If you meant to come here, feel free to look around and do stuff. Maybe you’ll find a secret…
Click here to go to the wrapper online video list
Click here to view the Wrapper: Online's asset server using github


Build, configure, and deploy¶
These instructions assume the reader is familiar with the process of deploying
a KBase module, including the runtime
and dev_container, and has access to
a system with the KBase runtime installed. These instructions are based on the
kbase-image-v26
runtime image.
Unlike many modules the WSS can be built and tested outside the
dev_container
, but the dev_container
is required to build and test the
scripts. These instructions are for deploying the server and so do not
address the scripts. Building outside the dev_container
means the Makefile
uses several default values for deployment - if you wish to use other values
deploy from the dev_container
as usual.
Build the workspace service¶
First checkout the dev_container
:
/kb$ sudo git clone https://github.com/kbase/dev_container
Cloning into 'dev_container'...
remote: Counting objects: 1097, done.
remote: Total 1097 (delta 0), reused 0 (delta 0), pack-reused 1097
Receiving objects: 100% (1097/1097), 138.81 KiB, done.
Resolving deltas: 100% (661/661), done.
Note
In the v26 image, /kb
is owned by root
. As an alternative to
repetitive sudo
s, chown
/kb
to the user.
Bootstrap and source the user environment file, which sets up Java and Perl paths which the WSS build needs:
/kb$ cd dev_container/
/kb/dev_container$ sudo ./bootstrap /kb/runtime/
/kb/dev_container$ source user-env.sh
Now the WSS may be built. If building inside the dev_container
all the
dependencies from the DEPENDENCIES
file are required, but to build outside
the dev_container
, only the jars
and workspace_deluxe
repos are
necessary:
~$ mkdir kb
~$ cd kb
~/kb$ git clone https://github.com/kbase/workspace_deluxe
Cloning into 'workspace_deluxe'...
remote: Counting objects: 21961, done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 21961 (delta 20), reused 0 (delta 0), pack-reused 21921
Receiving objects: 100% (21961/21961), 21.42 MiB | 16.27 MiB/s, done.
Resolving deltas: 100% (13979/13979), done.
~/kb$ git clone https://github.com/kbase/jars
Cloning into 'jars'...
remote: Counting objects: 1466, done.
remote: Total 1466 (delta 0), reused 0 (delta 0), pack-reused 1466
Receiving objects: 100% (1466/1466), 59.43 MiB | 21.49 MiB/s, done.
Resolving deltas: 100% (626/626), done.
~/kb$ cd workspace_deluxe/
~/kb/workspace_deluxe$ make
*snip*
make
will build:
- A workspace client jar in
/dist/client
- A workspace server jar in
/dist
- This documentation in
/docs
Note
If the build fails due to a sphinx error, sphinx may require an upgrade to >= 1.3:
$ sudo pip install sphinx --upgrade
Service dependencies¶
The WSS requires MongoDB 2.4+ to run. The WSS may optionally use:
- Shock as a file storage backend.
- The Handle Service b9de699 + and Handle Manager 3e60998 + to allow linking workspace objects to Shock nodes (see Shock integration with the workspace service).
The WSS has been tested against the auth2 branch of the KBase fork of Shock version 0.9.6 (e9f0e1618e265042bf5cb96429995b5e6ec0a06a), and against MongoDB versions 2.4.14, 2.6.11, 3.0.8, and 3.2.1. 3.0+ versions were tested with and without the WiredTiger storage engine.
Please see the respective service documentation to set up and run the services required.
Note
The alternative to Shock as a file storage backend is MongoDB GridFS. GridFS is simpler to set up, but locks the entire database when writing files. Since the workspace can consume very large files, this can cause a significant impact on other database operations.
Configuration¶
There are two sources of configuration data for the WSS. The first is contained
in the deploy.cfg
file in the repository root (see
Configuration parameters). Copy the provided deploy.cfg.example
file to deploy.cfg
to create the file. These parameters may change from invocation to
invocation of the workspace service. The second is contained in the workspace
MongoDB database itself and is set once by the configuration script (see
Configuration script).
Warning
deploy.cfg
contains several sets of credentials, and thus should be
protected like any other file containing unencryted passwords or tokens.
It is especially important to protect the password / token that the WSS uses
to talk to Shock (backend-secret
or backend-token
) as if
access to that account is lost, the new account owner has access to all
the workspace object data, and recovery will be extremely time consuming
(use shock admin account to change all the acls for every WSS owned object
to the new account). At minimum, only the user that runs the WSS (which
should not be root
) should have read access to deploy.cfg
. Also be
aware that the deploy.cfg
contents are copied to, by default,
/kb/deployment/deployment.cfg
when the workspace is deployed from the
dev_container
.
Configuration parameters¶
mongodb-user¶
Required: If the MongoDB instance requires authorization
Description: Username for an account with readWrite access to the MongoDB database
mongodb-pwd¶
Required: If the MongoDB instance requires authorization
Description: Password for an account with readWrite access to the MongoDB database
ignore-handle-service¶
Required: If not using handles
Description: Set to anything (true
is good) to not use handles. In this
case attempting to save an object with a handle will fail. Delete or leave
blank to use handles (the default).
handle-manager-token¶
Required: If using handles
Description: Credentials for the account approved for Handle Manager use
ws-admin¶
Required: No
Description: the user name for a workspace administrator. This name, unlike
names added via the administer
API call, is not permanently stored in the
database and thus the administrator will change if this name is changed and the
server restarted. This administrator cannot be removed by the administer
API call.
backend-token¶
Required: If using Shock as the file backend
Description: Token for the file backend user account used by the WSS to communicate with the backend. The user name is stored in the database after being determined by the configuration script.
mongodb-retry¶
Required: No
Description: Startup MongoDB reconnect retry count. The workspace will try to reconnect 1/s until this limit has been reached. This is useful for starting the Workspace automatically after a server restart, as MongoDB can take quite a while to get from start to accepting connections. The default is no retries.
dont-trust-x-ip-headers¶
Required: No
Description: When true
, the server ignores the X-Forwarded-For
and
X-Real-IP
headers. Otherwise (the default behavior), the logged IP address
for a request, in order of precedence, is 1) the first address in
X-Forwarded-For
, 2) X-Real-IP
, and 3) the address of the client.
Configuration script¶
Before starting the WSS for the first time, the database must be configured with information about the type database and file backend. This information travels with the MongoDB database because it is intrinsic to the overall data store - once a type database and file backend are chosen, they cannot be changed later without causing massive data inconsistency.
Prior to configuring the database, MongoDB must be running. If using Shock as a backend, Shock must be running.
To configure the database, run the initialization script, which will step the user through the process:
~/kb/workspace_deluxe$ cd administration/
~/kb/workspace_deluxe/administration$ ./initialize.py
Current configuration file:
mongodb-host=localhost
mongodb-database=workspace
handle-service-url=
handle-manager-url=
handle-manager-token=
auth-service-url=https://kbase.us/services/auth/api/legacy/KBase/Sessions/Login/
globus-url=https://kbase.us/services/auth/api/legacy/KBase
ws-admin=workspaceadmin
backend-token=
port=7058
server-threads=20
min-memory=10000
max-memory=15000
temp-dir=ws_temp_dir
mongodb-retry=0
Keep this configuration? [y - keep]/n - discard: n
Discarding current local configuration.
Please enter value for mongodb-host: localhost
Please enter value for mongodb-database: ws_db
Does mongodb require authentication? [y - yes]/n - no: n
Ok, commenting out authorization information.
Attempting to connect to mongodb database "ws_db" at localhost... Connected.
Please enter the name of the mongodb type database: ws_db_types
Choose a backend: [s - shock]/g - gridFS: s
Please enter the url of the shock server: http://localhost:7044
Please enter an authentication token for the workspace shock user account: [redacted]
Validating token with auth server at https://kbase.us/services/auth/api/legacy/KBase/Sessions/Login/
Successfully set DB configuration:
type_db=ws_db_types
backend=shock
shock_location=http://localhost:7044/
shock_user=gaprice
Saving local configuration file:
mongodb-host=localhost
mongodb-database=ws_db
handle-service-url=
handle-manager-url=
handle-manager-token=
auth-service-url=https://kbase.us/services/auth/api/legacy/KBase/Sessions/Login/
globus-url=https://kbase.us/services/auth/api/legacy/KBase
ws-admin=workspaceadmin
backend-token=[redacted]
port=7058
server-threads=20
min-memory=10000
max-memory=15000
temp-dir=ws_temp_dir
mongodb-retry=0
Configuration saved.
Note that the configuration script will only alter the mongodb-*
and
backend-secret
parameters. Other parameters must be altered through
manually editing deploy.cfg
.
Also, do not, under any circumstances, use kbasetest
as the account with
which the WSS will communicate with Shock.
Once the database is started and deploy.cfg
is filled in to the user’s
satisfaction, the server may be deployed and started.
Deploy and start the server¶
To avoid various issues when deploying, chown
the deployment directory
to the user. Alternatively, chown /kb/
to the user, or deploy as root.
~/kb/workspace_deluxe$ sudo mkdir /kb/deployment
~/kb/workspace_deluxe$ sudo chown ubuntu /kb/deployment
~/kb/workspace_deluxe$ make deploy
*snip*
Makefile:53: Warning! Running outside the dev_container - scripts will not be deployed or tested.
Since the service was deployed outside of the dev_container
, the service
needs to be told where deploy.cfg
is located. When built in the
dev_container
, the contents of deploy.cfg
are automatically copied to
a global configuration and this step is not necessary.
~/kb/workspace_deluxe$ export KB_DEPLOYMENT_CONFIG=~/kb/workspace_deluxe/deploy.cfg
Next, start the service. If using Shock or the Handle services, ensure they are up and running before starting the WSS.
~/kb/workspace_deluxe$ /kb/deployment/services/workspace/start_service
Creating domain Workspace at /kb/deployment/services/workspace/glassfish_domain
Using default port 4848 for Admin.
Using default port 8080 for HTTP Instance.
*snip*
No domain initializers found, bypassing customization step
Domain Workspace created.
Domain Workspace admin port is 4848.
Domain Workspace allows admin login as user "admin" with no password.
Command create-domain executed successfully.
Starting domain Workspace
Waiting for Workspace to start .......
Successfully started the domain : Workspace
domain Location: /kb/deployment/services/workspace/glassfish_domain/Workspace
Log File: /kb/deployment/services/workspace/glassfish_domain/Workspace/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.
Removing options []
Setting option -Xms10000m
Removing options ['-Xmx512m']
Setting option -Xmx15000m
Restarting Workspace, please wait
Successfully restarted the domain
Command restart-domain executed successfully.
Creating property KB_DEPLOYMENT_CONFIG=/home/ubuntu/kb/workspace_deluxe/deploy.cfg
Command create-system-properties executed successfully.
Command create-virtual-server executed successfully.
Command create-threadpool executed successfully.
Command create-http-listener executed successfully.
server.network-config.network-listeners.network-listener.http-listener-7058.thread-pool=thread-pool-7058
Command set executed successfully.
server.network-config.protocols.protocol.http-listener-7058.http.timeout-seconds=1800
Command set executed successfully.
Application deployed with name app-7058.
Command deploy executed successfully.
The server started successfully.
Stop the service:
~/kb/workspace_deluxe$ /kb/deployment/services/workspace/stop_service
Domain Workspace exists at /kb/deployment/services/workspace/glassfish_domain, skipping creation
Domain Workspace is already running on port 4848
Command undeploy executed successfully.
Command delete-http-listener executed successfully.
Command delete-threadpool executed successfully.

If any problems occur, check the glassfish logs (by default at
/kb/deployment/services/workspace/glassfish_domain/Workspace/logs/server.log
and system logs (on Ubuntu, at /var/log/syslog
). If the JVM can’t start at
all (for instance, if the JVM can’t allocate enough memory), the glassfish
logs are the most likely place to look. If the JVM starts but the workspace
application does not, the system logs should provide answers.


162. Pyramids
time limit per test: 2 sec.
memory limit per test: 65536
KB
input: standard input
output: standard
output
Recently in Farland, a country in Asia, a famous scientist Mr.
Log Archeo has discovered ancient pyramids. But unlike those in Egypt and
Central America, they have triangular (not rectangular) foundation. That is,
they are tetrahedrons in mathematical sense. In order to find out some important
facts about the early society of the country (it is widely believed that the
pyramid sizes are in tight connection with Farland ancient calendar), Mr. Archeo
needs to know the volume of the pyramids. Unluckily, he has reliable data about
their edge lengths only. Please, help him!
Input
The file contains six positive integer numbers not exceeding
1000 separated by spaces, each number is one of the edge lengths of the pyramid
ABCD. The order of the edges is the following: AB, AC, AD, BC, BD, CD.
Output
A real number - the volume printed accurate to four digits after
decimal point.
Sample test(s)
Input
Sample input #1
1 1 1 1 1 1
Sample input #2
1000
1000 1000 3 4 5
Output
Sample output #1
0.1179
Sample output #2
1999.9937
Note
You can download pdf version of this task
here
| Author: |
Nikolay Durov |
| Resource: |
ACM ICPC 2002-2003 NEERC, Northern Subregion |
| Date: |
November, 2002
|
| Server time: 2004-01-13 20:23:07 |
Online Contester Team © 2002 - 2003. All
rights
reserved. | | |


The Offshore Exchange
Tender
Charter
Message
John Smith Enterprises submitted a bid for Job A
3 hrs ago
Your tender Job A is now open for bidding
7 hrs ago
John Doe Enterprises submitted a bid for Job B
11 hrs ago
Your tender Job B is now open for bidding
1 day ago
See All
Brittan M. S. Breaux
E&P Operator
Tender
Post Tender
Post Tender
Tender Name
Description
Service type
Deadline
+ Tender Docs
+ Bid Template


--- layout: post status: publish published: true title: Podcast 3.30 - Marlins Will Soar author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 5685 wordpress_url: http://ivyenvy.com/?p=5685 date: '2011-07-19 09:29:23 +0000' date_gmt: '2011-07-19 14:29:23 +0000' categories: - Podcast tags: - Carlos Marmol - Jim Hendry - Mike Quade - Podcast - Ryan Dempster - Ryne Sandberg - Marlins - Matt Garza - Marlins Will Soar - Scott Stapp comments: - id: 3896 author: Ryan author_email<EMAIL_ADDRESS>author_url: '' date: '2011-07-19 17:41:15 +0000' date_gmt: '2011-07-19 22:41:15 +0000' content: "Here's an interesting question I found on Y!A\r\n\r\nhttp://answers.yahoo.com/question/index;_ylt=Aj.SWy3cSJLl7jMHnpAnFKn3DH1G;_ylv=3?qid=20110719145857AAdmW20" - id: 3900 author: tophatal author_email<EMAIL_ADDRESS>author_url: http://tophatal.wordpress.com date: '2011-07-20 11:08:19 +0000' date_gmt: '2011-07-20 16:08:19 +0000' content: "The only soaring to be done by the Marlins this season will be when Jack McKeon \ remembers not to overdose . \r\n\r\n\r\n\r\n\r\n\r\ntophatal ......" ---
We apologize for the length of this episode. This might be the most entertaining podcast episode in our 3 seasons of existence. In the first half of the episode, we talk about the future of Jim Hendry and Mike Quade with the Cubs and the fact that Ryne Sandberg might be positioning himself to become the next manager.
We also take a look at Carlos Marmol and the closer role. The trade deadline is coming up quickly and we discuss the idea of Matt Garza and Ryan Dempster being "untouchable". We come to the realization that there will likely be very few moves made in trades because the players on the roster are either:
1. Unwilling to be traded and leaning on their no-trade clauses.
2. Labeled "untouchable" by the organization.
3. Not worth anything.
The second half of this episode where things get good. Kurt gives us a killer Scary Stat. He comes through with his best of the season and one that punches every Cubs fan in the gut.
To end the show, Ryan joins us and we take a look at the song "Marlins Will Soar", written and recorded by Scott Stapp. If the Marlins can take 3 of 4 from the Cubs at Wrigley this last weekend, then we can have a little fun with this "masterpiece".
You can find the video here: Marlins Will Soar
Also, at the beginning of the show, I talk about Mark and Gracie's Tutu Couture. Check out their site and if you have a little girl that's a Cubs fan, or know some other Cubs fans that have a little girl, check out their Cubs hair-bows.


Saint of Light Agnes:
The light shines brighter than ever in you, Priest. I gather your mission was a success.
How is Duncan? May the blessing of light always be with him for this favor.
"Here's the food you asked for."


fun disconnect(): Unit
Closes all IO streams and terminates the socket. NOTE: does not turn off bluetooth


This is a sample implementation attached to a form, to add additional parameters.
rcxadm mgrctl stop && rcxadm mgrctl start| Storage unit ID | Portset |
|---|---|
| <IP_ADDRESS> | 500000E0D00C7006:500000E0D00C7086 500000E0D00C7086:500000E0D00C7087 |
| <IP_ADDRESS> | 500000E0D00C6006:500000E0D00C6086 |
| <IP_ADDRESS> | 500000E0D00C6007:500000E0D00C6087 |
| <IP_ADDRESS> | 500000E0D00C6008:500000E0D00C6088 |


01 . What is your age ?
02 . What is your gender ?
03 . What is your Country of residence ?
04 . Which state or territory do you live in ?
05 . Are you self employed ?
06 . Do you have a family history of Mental Illness ?
07 . Have you recieved Treatment before ?
08 . Does your condition interfere with Work ?
09 . How many employees does your company have ?
10 . Do you work remotely at least 50% of the time ?
11 . Is your employer a Technical Company ?
12 . Do you recieve Mental Health benefits ?
13 . Do you know your Work Health Care options ?
14 . Do you have Employee Wellness Programmes ?
15 . Does your employer provide means to seek help?
16 . Do you have Anonymity when you desire it ?
17 . Do you get Leave when you need it ?
18 . Would you discuss Mental Health at work ?
19 . Would you discuss Physical Health at work ?
20 . Would you discuss these topics with colleagues?
21 . Would you discuss these topics with supervisors?
22 . Would you state mental issues in an interview ?
23 . Would you state physical issues in an interview ?
24 . Are Mental and Physical issues equally important ?
25 . Have you faced subjection in sharing issues?
26 . Any additional Notes or Comments ?


The display() functions shows you the image. It is useful for debugging.
If you are in Mac, the image will be opened by your default image application (Preview.app usually).
If you are in Windows, the image will be opened by imdisplay.exe, or your default image application (Windows Photo Viewer usually) if imdisplay.exe is unavailable.
You can use it from CLI also. Execute wand.display module through python -m option:
$ python -m wand.display wandtests/assets/mona-lisa.jpg
New in version 0.1.9.


Preparation time
less than 30 mins
Cooking time
less than 10 mins
Serves
Serves 1
For the salad, melt the butter in a hot griddle pan, add the asparagus and griddle for five minutes, or until slightly charred on all sides.
Heat another non-stick frying pan, add the prosciutto and cook for 1-2 minutes, or until crisp.
Poach two eggs in a shallow pan of gently simmering water for four minutes, or until just cooked. To do this, gently swirl the pan of water to make a whirlpool and crack each egg individually into the middle of the whirlpool. Remove from the simmering water with a slotted spoon and set aside.
To make the dressing, melt the butter with the chilli flakes and cayenne pepper in a small saucepan. Stir in the ketchup and season with salt and freshly ground black pepper. Stir in the chives and remove from the heat.
To serve, pile the roasted asparagus onto a serving plate, top with the two poached eggs and the crisp prosciutto. Drizzle over the dressing and serve.


{% extends "base.html" %} {% block title %}BikeFlow | Station Input{% endblock %} {% block body %}
Home
About
Contact
BikeFlow
Please select a station
Station
{% for _, x in station_df.iterrows() %}
{{ x['neighborhood'] }} | {{ x['name'] }}
{% endfor %}
{% endblock %}


Before Change
def step_wait(self):
results = [env.step(a) for (a,env) in zip(self.actions, self.envs)]
obs, rews, dones, infos = map(np.array, zip(*results))
self.ts += 1
for (i, done) in enumerate(dones):
if done:
obs[i] = self.envs[i].reset()
After Change
self.actions = actions
def step_wait(self):
for i in range(self.num_envs):
obs_tuple, self.buf_rews[i], self.buf_dones[i], self.buf_infos[i] = self.envs[i].step(self.actions[i])
if isinstance(obs_tuple, (tuple, list)):
for t,x in enumerate(obs_tuple):
self.buf_obs[t][i] = x
else:
self.buf_obs[0][i] = obs_tuple
return self.buf_obs, self.buf_rews, self.buf_dones, self.buf_infos
def reset(self):
for i in range(self.num_envs):


Judges 5:9
My heart is toward the governors of Israel, that offered themselves willingly among the people. Bless ye the LORD.


class
FunctionalBuilder[M[_]] extends AnyRef
Type Members
-
class
CanBuild10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10] extends AnyRef
-
class
CanBuild11[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11] extends AnyRef
-
class
CanBuild12[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12] extends AnyRef
-
class
CanBuild13[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13] extends AnyRef
-
class
CanBuild14[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14] extends AnyRef
-
class
CanBuild15[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15] extends AnyRef
-
class
CanBuild16[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16] extends AnyRef
-
class
CanBuild17[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17] extends AnyRef
-
class
CanBuild18[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18] extends AnyRef
-
class
CanBuild19[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19] extends AnyRef
-
class
CanBuild2[A1, A2] extends AnyRef
-
class
CanBuild20[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20] extends AnyRef
-
class
CanBuild21[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21] extends AnyRef
-
class
CanBuild22[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22] extends AnyRef
-
class
CanBuild3[A1, A2, A3] extends AnyRef
-
class
CanBuild4[A1, A2, A3, A4] extends AnyRef
-
class
CanBuild5[A1, A2, A3, A4, A5] extends AnyRef
-
class
CanBuild6[A1, A2, A3, A4, A5, A6] extends AnyRef
-
class
CanBuild7[A1, A2, A3, A4, A5, A6, A7] extends AnyRef
-
class
CanBuild8[A1, A2, A3, A4, A5, A6, A7, A8] extends AnyRef
-
class
CanBuild9[A1, A2, A3, A4, A5, A6, A7, A8, A9] extends AnyRef
Value Members
-
final
def
!=(arg0: AnyRef): Boolean
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: AnyRef): Boolean
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from AnyRef
Inherited from Any


|
My Project
|
Description of the indirect effect a sub-function has on a memory range. More...
#include <fspec.hh>
Public Types | |
| enum | { unaffected = 1, killedbycall = 2, return_address = 3, unknown_effect = 4 } |
Public Member Functions | |
| EffectRecord (void) | |
| Constructor for use with restoreXml() | |
| EffectRecord (const EffectRecord &op2) | |
| Copy constructor. | |
| EffectRecord (const Address &addr, int4 size) | |
| Construct a memory range with an unknown effect. More... | |
| EffectRecord (const ParamEntry &entry, uint4 t) | |
| Construct an effect on a parameter storage location. More... | |
| EffectRecord (const VarnodeData &addr, uint4 t) | |
| Construct an effect on a memory range. More... | |
| uint4 | getType (void) const |
| Get the type of effect. | |
| Address | getAddress (void) const |
| Get the starting address of the affected range. | |
| int4 | getSize (void) const |
| Get the size of the affected range. | |
| bool | operator< (const EffectRecord &op2) const |
| Comparator for EffectRecords. More... | |
| bool | operator== (const EffectRecord &op2) const |
| Equality operator. | |
| bool | operator!= (const EffectRecord &op2) const |
| Inequality operator. | |
| void | saveXml (ostream &s) const |
| Save the record to an XML stream. More... | |
| void | restoreXml (uint4 grouptype, const Element *el, const AddrSpaceManager *manage) |
| Restore the record from an XML stream. More... | |
Description of the indirect effect a sub-function has on a memory range.
This object applies only to the specific memory range, which is seen from the point of view of the calling function as a particular sub-function gets called. The main enumeration below lists the possible effects.
| anonymous enum |
| Enumerator | |
|---|---|
| unaffected | The sub-function does not change the value at all. |
| killedbycall | The memory is changed and is completely unrelated to its original value. |
| return_address | The memory is being used to pass back a return value from the sub-function. |
| unknown_effect | An unknown effect (indicates the absence of an EffectRecord) |
| EffectRecord::EffectRecord | ( | const Address & | addr, |
| int4 | size | ||
| ) |
Construct a memory range with an unknown effect.
The type is set to unknown_effect
| addr | is the start of the memory range |
| size | is the number of bytes in the memory range |
| EffectRecord::EffectRecord | ( | const ParamEntry & | entry, |
| uint4 | t | ||
| ) |
Construct an effect on a parameter storage location.
| entry | is a model of the parameter storage |
| t | is the effect type |
| EffectRecord::EffectRecord | ( | const VarnodeData & | data, |
| uint4 | t | ||
| ) |
Construct an effect on a memory range.
| data | is the memory range affected |
| t | is the effect type |
|
inline |
Comparator for EffectRecords.
Sort on the memory range, then the effect type
| op2 | is the other record to compare with this |
| void EffectRecord::restoreXml | ( | uint4 | grouptype, |
| const Element * | el, | ||
| const AddrSpaceManager * | manage | ||
| ) |
Restore the record from an XML stream.
Reads an <addr> tag to get the memory range. The effect type is inherited from the parent.
| grouptype | is the effect inherited from the parent |
| el | is address element |
| manage | is a manager to resolve address space references |
| void EffectRecord::saveXml | ( | ostream & | s | ) | const |
Save the record to an XML stream.
Writes just an <addr> tag. The effect type is indicated by the parent tag.
| s | is the output stream |


OpenGL is a cross-platform graphics API that is widely used for rendering 2D and 3D graphics. It was first introduced in 1992 and was quickly adopted as the standard rendering interface. In this project, KAT Systems built a playground using OpenGL and GLUT, a wrapper for OpenGL which can be used to easily create primitives.
Various camera based operations are defined in the camera.h file. We used the GLM package to optimize vector and matrix operations. The camera is first setup by specifying its position, the point it is looking at and the up vector required to define the view coordinate system. Various other properties like aspect ratio, near distance and far distance are also specified. The position is specified using the setupPosition function and other properties are set using the setProperties function. After finishing the setup, various operations can be performed using the camera. In our model, you can use the keyboard to move the camera around using the move function. The pitch, yaw and roll functions allow you to rotate the camera about the various axes. Finally, the setModelViewMatrix function is used by the various functions to update the view coordinate system.
Using GLUT primitives we designed 5 objects - a slide, a swing, a merry-go-round, monkey bars and a bench. We also used the primitives to make the ground, the wall surrounding the area, paths, etc.
A Ferris Wheel modelled in Blender was imported into the playground. The wheel body, with its narrow faces were made by using the bevel-wireframe trick in Blender. First, a normal cylinder was created and the disks at its end, along with some portion of the trunk were extracted. The structure was then bevelled to generate the narrow surfaces. Following this, the wireframe filter was applied which eliminated all the earlier faces, leaving us with the structure. The seats were generated by slicing and contorting a cube, followed by applying repeated sub-diving of the surfaces to produce a high polygon-count structure. The colors were added to the diffusion property of the material, and were read likewise by the parser.
The Blender objects were exported into the wavefront obj format. A parser, written in C++ was generated was used to read these files. Since we have been experimenting with lighting, the normal information was also included along with the mesh information. The texture information (the UV coordinates) were completely omitted and the parser was written to handle the same. The color information was extracted from the “Kd” field of the material description in the mtl files.
Being rather unfamiliar with Blender, it was difficult to get a hang of the basics, especially the camera movement within Blender. Apart from this, rather simple operations like subtraction, intersection etc. have to be performed using some convoluted procedures, which was again difficult to figure out.
Parsing the .obj and the .mtl files was again fairly difficult, as the format seems slightly counter-intuitive. Besides, since we did not use Blender material properties (which would require writing shaders), we had to cherry pick the ones that best represented the color of the object.


Watch Booksmart from 6.00pm - 8.00pm
Watch 1917 from 8.00pm - 10.00pm
Watch Farewell from 10.00pm - 12.00am
Watch Ad astra from 6.00pm - 8.00pm
Watch Forest Gump from 8.00pm - 10.00pm
Watch High Life from 10.00pm - 12.00am
Watch Irishman from 6.00pm - 8.00pm
Watch Jojo from 8.00pm - 10.00pm
Watch Joker from 10.00pm - 12.00am
Watch Justice League from 6.00pm - 8.00pm
Watch Le phare from 8.00pm - 10.00pm
Watch Little women from 10.00pm - 12.00am


{% extends "layout.html" %} {% block page_title %} Fill a vacancy - UJRP {% endblock %} {% block content %} {% include "includes/phase_banner_alpha.html" %} {{ jobTitle }} Back Employer details Employer/organisation name Employer/organisation website Contact name Contact email address Contact telephone number {% endblock %}


Sep 15th 2012 Sep 15th 2012 Sep 15th 2012 Sep 15th 2012 Sep 15th 2012 Sep 15th 2012 Sep 15th 2012 Sep 15th 2012 Sep 15th 2012
AH: TimePiece - What Is It? A spectacular evening of live music and circus arts to raise money for JJGym Calendar Upgrades.
Calling all performers!!
Click Here if you want to find out about taking part in this very special event!
We will create an evening not to be forgotten, and raise funds for the new enhanced version of Jack & Jeri’s Gym Calendar!
AH: TimePiece - A LIVE Music/Circus show taking place Saturday, Sep 15th 2012
We also want your input about upgrades and features you'd like to see added to the calendar. What features would you most want to see added to the JJGym Calendar? We are listening to you and will incorporate your best suggestions!


A place for general developer talk – for everyone! | Documentation https://developers.komodoplatform.com | MoreDev Docs - https://docs.komodoplatform.com | Mastering CryptoConditions - https://github.com/KomodoPlatform/Mastering_CryptoConditions
100 messages
Before 05-Dec-19 12:00 AM
jorian09-Jan-19 07:16 PM
or maybe i did it wrong
dukeleto09-Jan-19 07:17 PM
@jorian which version of perl and BerkeleyDB are you using?
i am using BerkeleyDB 0.55
version of perl shouldn't really matter, but could
jorian09-Jan-19 07:17 PM
This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-gnu-thread-multi
dukeleto09-Jan-19 07:17 PM
ok, that is recent
i am on v5.18.2 from the stoned ages
jorian09-Jan-19 07:17 PM
lol
dukeleto09-Jan-19 07:17 PM
unsupported btree version: 10 is odd
@jorian which version of BerkeleyDB perl module?
which is different from the version of bdb on your system
jorian09-Jan-19 07:18 PM
first 0.55, which is latest i think
dukeleto09-Jan-19 07:19 PM
yeah, that is what I am on
jorian09-Jan-19 07:19 PM
i did
perl -MCPAN -e shell
install BerkeleyDB
dukeleto09-Jan-19 07:19 PM
that is good/reasonable
jorian09-Jan-19 07:19 PM
first steps in perl world
dukeleto09-Jan-19 07:19 PM
i think maybe the perl mod is finding the wrong/different system bdb than you suppose
do you have multiple versions installed, maybe that you use --prefix= to point other things at?
jorian09-Jan-19 07:20 PM
how can i check that
dukeleto09-Jan-19 07:20 PM
how did you install bdb? source code? or system packages?
jorian09-Jan-19 07:20 PM
ok wait
i think i'm missing something hten
i thought the perl module would install all bdb
but it actually uses system BDB?
dukeleto09-Jan-19 07:21 PM
Perl BerkeleyDB is just a wrapper, it talks to your installed bdb
yes
jorian09-Jan-19 07:21 PM
aha
dukeleto09-Jan-19 07:21 PM
BerkeleyDB is a perl wrapper for the C library, basically
@jorian which coin created the wallet.dat you are trying to look at?


Chapter 4: Hello money¶
Until last November, the use and sale of marijuana for recreational purposes was illegal in California. That changed when voters approved Proposition 64, which asked voters if the practice ought to be legalized. A yes vote supported legalization. A no vote opposed it. In the final tally, 57% of voters said yes.
Your mission, should you choose to accept it, is to analyze lists of campaign committees and contributors to figure out the biggest donors both for and against the measure.
To start click here to download a list of last November’s 17 ballot measures and their affiliated fundraising committees.
The data are structured in rows of comma-separated values. This is known as a CSV file. It is the most common way you will find data published online. Save the file with the name prop-committees.csv
in the same directory where you made your notebook.
Open the file in your notebook using the read_csv function in pandas
.
pandas.read_csv("prop-committees.csv")
After you run the cell, you should see something like this.
It is a DataFrame
where pandas
has structured the CSV data into rows and columns, just like Excel or other spreadsheet software might. The advantage offered here is that rather than manipulating the data through a haphazard series of clicks and keypunches we will be gradually grinding down the data using a computer programming script that is 100% transparent and reproducible.
In order to do that, we need to store our DataFrame
so it can be reused in subsequent cells. We can do this by saving in a “variable”, which is a fancy computer programming word for a named shortcut where we save our work as we go.
Go back to your initial cell and change it to this. Then rerun it.
props = pandas.read_csv("./docs/_static/prop-committees.csv")
After you run it, you shouldn’t see anything. That’s a good thing. It means our DataFrame
has been saved under the name props
, which we can now begin interacting with in the cells that follow. We can do this by calling “methods” that pandas
has made available to all DataFrames
. There are dozens of these that can do all sorts of interesting things. Let’s start with some easy ones that analysts
use all the time.
First, to preview the first few rows of the dataset, try the head method. Hit the +
button in the toolbar to add a new cell below the first one. Type this in it and hit the run button again.
props.head()
To get a look at all of the columns and what type of data they store, add another cell and try info.
props.info()
Look carefully at those results and you see we have more than 100 links between committees and propositions. That’s interesting on its own, but our goal is to focus in on just one: Prop 64.
Quick studies will have already noted the prop_name
column where each committee’s affiliation is stored. Let’s use pandas to drill down on it. To see its contents separate from the rest of the DataFrame
, add its name to the variable following a period. That should list out the whole thing.
props.prop_name
One of the many cool tricks built in to pandas
is the ability to total up the frequency of values in a column with the value_counts method. We can use it here to total up how many committees were active for each proposition.
props.prop_name.value_counts()
You may have noticed that both of the previous methods did not return a clean looking table in the same way as head
. It’s often hard to anticipate, but in these cases and many others pandas
will sometimes return an ugly Series rather than more aesthetically pleasing (and powerful) DataFrame
.
 Like most computer programming tools, pandas
has its own odd quirks that you have to pick up as you go. The difference between a Series
and a DataFrame
is one of those. The key is to not worry about it too much and keep hacking.
In most instances, if you have an ugly series generated by a method like value_counts
and you want to convert it into a DataFrame
you can do so by tacking on the reset_index method onto the tail end. Why? Again the answer is “because pandas
says so.” So let’s play along.
props.prop_name.value_counts().reset_index()
Now that we’ve seen all the propositions in the dataset, we’re ready to take a crucial step towards our goal by filtering the list down to just those committees that supported or opposed Proposition 64.
We can do that by copying the full name of the proposition that appears in the dataset and inserting it into the following statement, which follows the pandas
system for filtering a DataFrame
.
You start with the variable you want to filter, and then create an evaluation by combining a column with an “operator” like ==
or >
or <
with a value to compare the field against.
props[props.prop_name == 'PROPOSITION 064- MARIJUANA LEGALIZATION. INITIATIVE STATUTE.']
Now that we’ve seen what it outputs, we should save the results of that filter into new variable separate from the full list we imported from the CSV file.
prop = props[props.prop_name == 'PROPOSITION 064- MARIJUANA LEGALIZATION. INITIATIVE STATUTE.']
The find out how many records are left after the filter, we can use Python’s built-in len function to inspect our new variable.
len(prop)
With that we’re ready to move on to a related, similar task: Importing all of the individual contributions reported to last year’s 17 ballot measures and filtering them down to just those supporting and opposing Proposition 64.
We’ll start by downloading this second CSV file and saving it to the same directory as this notebook with the name contributions.csv
. We’ll then open it with read_csv
and save it as a new variable just as we did above.
contribs = pandas.read_csv("contributions.csv")
Warning
The contributions file you’re downloading is an experimental early release from the California Civic Data Coalition’s effort to streamline the state’s jumbled, dirty and disorganized official database. It has not yet been fully verified as accurate by our team and any conclusions you draw from it should be considered as provisional.
If you want to base a news report off the analysis you do here, you should take the additional step of comparing the numbers you produce against the official data released by the Secretary of State.
Just as we did earlier, you can inspect the contents of this new file with the head
method.
contribs.head()
You should also inspect the columns using the info
method. Running these two tricks whenever you open a new file is a good habit to develop so that you can carefully examine the data you’re about to work with.
contribs.info()
Our next job is to filter down this list, which includes all disclosed contributions to all proposition campaigns, to just those linked to Proposition 64.
We could try to do this with a filter, as we did above with the committees. But look carefully at the columns listed above in the contribution file’s info
output. You will notice that this file contains a field called calaccess_committee_id
that is identical to the one found in the committee CSV.
That’s because these two files are drawn from a “relational database” that tracks a variety of information about campaigns using an array of tables linked by common identifiers. In this case, the unique identifying codes of committees in one table can be expected to match those found in another.
We can therefore safely join the two files using the pandas
merge method. By default this method will return only those rows with ids found in both tables. That means that if we join the full contributions file to our filtered list of Proposition 64 committees, only the contributions to the Proposition 64 committees will remain.
Here’s how to do it. It’s as simple as passing both variables to merge
and specifying which field we’d like to join with. We will save the result into another new variable.
merged = pandas.merge(prop, contribs, on="calaccess_committee_id")
That new DataFrame
variable can inspected just as the ones above.
merged.head()
After all that we have created a new dataset that includes only contributions supporting and opposing Proposition 64. We’re ready to move on from preparing our data to interviewing it.
In some ways, your database is no different from a human source. Getting a good story requires careful, thorough questioning. In this section we will move ahead by conducting an interview with pandas
to pursue our quest of finding out the biggest donors to Proposition 64.
Let’s start with something easy. What were the ten biggest contributions? We can find the answer by using the sort_values method to rearrange our list using the amount
field.
merged.sort_values("amount")
Note that returns the DataFrame
resorted in ascending order from lowest to highest. To answer our question you’ll need to reverse it. Here’s how:
merged.sort_values("amount", ascending=False)
You can limit the result to the top five by returning to the head
method and passing in the number of results we’d like.
merged.sort_values("amount", ascending=False).head(5)
Question one answered. Here’s number two: What is the total sum of contributions that have been reported?
To answer that let’s start by getting our hands on amount
, the column with the numbers in it. We can do that just as we did with other columns above.
merged.amount
Now add up the column’s total using the pandas
method sum.
merged.amount.sum()
There’s our big total. Fun fact: This number is guaranteed to be lower than the totals reported by the campaigns. Why? Campaigns are only required to report the names of donors over $200, so our data is missing all of the donors who gave smaller amounts of money.
The overall totals are reported elsewhere in lump sums and cannot be replicated by adding up the individual contributions. Understanding this is crucial to understanding not just this data, but all campaign finance data.
Adding up a big total is all well and good. But we’re aiming for something more nuanced. We want to separate the money spent for the proposition from the money spent against it. To do that, we’ll need to return to the filtering trick we learned above.
First let’s look at the column we’re going to filter by, committee_position
.
merged.committee_position
Now let’s filter our merged table down using that column and the pandas
filtering method that combines a column, an operator and the value we want to filter by.
merged[merged.committee_position == 'SUPPORT']
Let’s stick the result in a variable.
support = merged[merged.committee_position == 'SUPPORT']
And count how many contributions are in this new, more limited set.
len(support)
We can now use this new variable to rank the five biggest supporting contributions by using sort_values
again.
support.sort_values("amount", ascending=False).head(5)
Now let’s repeat all that for opposing contributions. First the filter into a new variable.
oppose = merged[merged.committee_position == 'OPPOSE']
Then a count.
len(oppose)
Then a ranking.
oppose.sort_values("amount", ascending=False).head(10)
Now sum up the total disclosed contributions to each for comparison. First the opposition.
oppose.amount.sum()
Then the supporters.
support.amount.sum()
The support is clearly larger. But what percent is it of the overall disclosed total? We can find out by combined two sum
calculations using the division operator.
support.amount.sum() / merged.amount.sum()
We’ve encountered a lot of different committees as we’ve explored the data. A natural question follows: Which ones have raised the most money?
To figure that out, we’ll need to group the data by that column and then sum up the amount
for each. We can do that be using the pandas
groupby method and the sum
trick we’ve already learned.
If you scroll back up and look carefully as the info
command we ran after merging out data, you will noticed it includes a column named committee_name_x
and commitee_name_y
. That is because the field was present on both our committee list and our contributions list prior to joining them together. Rather than drop one of them, pandas
is trained to keep them both and to append suffixes to the end.
That’s the field we want to group by here. Since they are identical, it doesn’t matter which one we pick. Let’s go with x.
merged.groupby("committee_name_x").amount.sum()
Again our data has come back as an ugly Series
. To reformat it as a pretty DataFrame
use the reset_index
method again.
merged.groupby("committee_name_x").amount.sum().reset_index()
Sorting the biggest totals to the top is as easy as appending the sort_values
trick we already know to the end. And voila there’s our answer.
merged.groupby("committee_name_x").amount.sum().reset_index().sort_values("amount", ascending=False)
Finding the top contributors is just as easy. We only need to substitute the name fields into the groupby
method.
merged.groupby(["contributor_firstname", "contributor_lastname"]).amount.sum().reset_index().sort_values("amount", ascending=False)
Note
You should be noticing that several of the top contributors appear to be the same person with their name entered in slightly different ways. This is another important lesson of campaign contributions data. Virtually none of the data is standardized by the campaigns or the government. The onus is on the analyst to show caution and responsibly combine records where the name fields refer to the same person.
To find out if each contributor supported or opposed the measure, you simple add that field to our groupby
method.
merged.groupby(["contributor_firstname", "contributor_lastname", "committee_position"]).amount.sum().reset_index().sort_values("amount", ascending=False)
You’ve done it. Our brief interview is complete and you’ve answered the big question that started our inquiry. If you’re interested in continuing the interview, see if you can answer a few more questions on your own. Here are some ideas:
- What percentage of donations came from people who live outside of California?
- What are the top employers of donors who gave for and against the measure?
- Which committees had the fewest donors?


{% extends 'base.html' %}
{% block title %} - {{ page_title }} {% endblock %}
{% block content %}
{% load i18n %}
{% trans "Host"%} {{ host.name }}
| # |
Player |
Number |
starters |
personal foul |
free throw |
field goal |
three_point |
total_points |
{% for hs in host_scores %}
|
{{hs.player.full_name}} |
{{hs.player.number}} |
{{hs.starters}} |
{{hs.personal_foul}} |
{{hs.free_throw}} |
{{hs.field_goal}} |
{{hs.three_point}} |
{{hs.total_points}} |
{% endfor %}
{% trans "Guest"%} {{ guest.name }}
| # |
Player |
Number |
starters |
personal foul |
free throw |
field goal |
three_point |
total_points |
{% for gs in guest_scores %}
|
{{gs.player.full_name}} |
{{gs.player.number}} |
{{gs.starters}} |
{{gs.personal_foul}} |
{{gs.free_throw}} |
{{gs.field_goal}} |
{{gs.three_point}} |
{{gs.total_points}} |
{% endfor %}
{% endblock %}


MQTT Cluster Servers
ssl
ssl
ssl
Connect to cluster
Status
Subscribe
Subscribe
Publish
message
Publish
Messages


Question 21 (3 points)Suppose I have implemented a hash table with linear probing to resolve collisions. My hash table size is 10. Keys are integers. The hash function is a number mod 10.Which of the choices to the right depicts the state of the hash table after inserting the keys 41, 63, 150, 71, 52, 10 and 4? Question 22 (3 points)Suppose instead that I am using quadratic probing. Now, which of the choices on the right shows the proper state of the hash table? |
|


eBay Discounts Millions Of Products By 20%
by Elliot Nashebay.com.au is launching its Black Friday extravaganza offering early shoppers 20% off millions of products for a limited time only.
Starting today, eBay is providing 20% discounts on tech brands including Dyson, Google, Samsung and Sony, including some must-have toys for the children.
Sophie Onikul of eBay Australia has described Black Friday as the perfect time to get a head start on Christmas.
‘[eBay] is giving shoppers even more time to snap up a bargain’.
Some of the juicy tech deals currently on eBay now include:
- Bose SoundSport Free Wireless Earphones $196
- Sony WH-1000XM3 Wireless Noise Cancelling Headphones $356
- Powerbeats Pro – Totally Wireless Earphones $319.20
- Samsung Galaxy Note 10 Plus $999.20
- Google Home Hub $158.40
- Samsung Galaxy S10+ $1102.40
- Fitbit Versa 2 $259.20
- Huawei P30 Pro $1207.20
For the kids, eBay has a wide selection of discounted toys, including:


{% extends "instructions/home.html" %} {% block header %} {% with headerMessage='Drug Definition' %} {% include "includes/header.html" %} {% endwith %} {% endblock %} {% block breadcrumb %}
Drug concepts include:
If you suspect an unfamiliar term of being a drug but are unsure, check here: drugbank.ca or on Google or Wikipedia (for drugs under development) or or visit our new Wikia forum for help


Jupiter Weather
or
Get Location
City
Clear
Clear Skies
Temp
High/Low
Feels
Feels like
Wind Speed
Wind Speed
Pressure
Pressure
Humidity
Humidity


Swagger and NodeJS
This tutorial details how to describe a RESTFul API using Swagger along with Node and Express.
Updates:
- 11/20/2017: Updated to align with the Swagger v2.0 spec.
Contents
- Objectives
- Swagger
- Getting Started
- Generating the Swagger Spec
- Updating the Route Handlers
- Adding Swagger UI
Objectives
By the end of this tutorial, you will be able to…
- Describe the purpose of Swagger
- Generate a Swagger Spec based on an existing RESTful API developed with Node, Express, and Postgres
- Set up the Swagger UI for testing and interacting with the API
Swagger
Swagger is a specification for describing, producing, consuming, testing, and visualizing a RESTful API. It provides a number of tools for automatically generating documentation based on a given endpoint.
Now when you make changes to your code, your documentation is updated and synchronized with the API so that consumers can quickly learn which resources are available, how to access them, and what to expect (status code, content-type, etc.) when interacting with the various endpoints.
Getting Started
Starting a New Project
If you’re starting a new project, you can easily generate the Swagger Specification and project boilerplate using the Swagger Editor. Test it out here.
If you don’t like the generated project structure, you can just export the JSON (or YAML) spec file and then use a custom generator, like Swaggerize Express, to generate the boilerplate. Then when you need to make changes to the API, you can just update the spec file. Simple.
Updating an Existing Project
For this tutorial, we will be generating the Swagger spec based on the code from a previously created project that has the following RESTful endpoints:
| URL | HTTP Verb | Action |
|---|---|---|
| /api/puppies | GET | Return ALL puppies |
| /api/puppies/:id | GET | Return a SINGLE puppy |
| /api/puppies | POST | Add a puppy |
| /api/puppies/:id | PUT | Update a puppy |
| /api/puppies/:id | DELETE | Delete a puppy |
Clone down the project:
$ git clone https://github.com/mjhea0/node-postgres-promises.git node-swagger-api
$ cd node-swagger-api
$ git checkout tags/v1 -b swagger
$ npm install
Want to learn how this project was created? Check out the Designing a RESTful API With Node and Postgres post.
This project uses Postgres, so run create the database and apply the schema:
$ psql -f puppies.sql
Run the server, and then navigate to http://localhost:3000/api/puppies in your browser of choice. You should see:
{
"status": "success",
"data": [
{
"id": 1,
"name": "Tyler",
"breed": "Shih-tzu",
"age": 3,
"sex": "M"
}
],
"message": "Retrieved ALL puppies"
}
Test out each endpoint to make sure everything works before moving on.
Generating the Swagger Spec
To generate the Swagger specification, we will be using swagger-jsdoc.
Install swagger-jsdoc:
$ npm install<EMAIL_ADDRESS>--save
Add the requirement to app.js:
var swaggerJSDoc = require('swagger-jsdoc');
Then add the following code to app.js just below var app = express();
:
// swagger definition
var swaggerDefinition = {
info: {
title: 'Node Swagger API',
version: '1.0.0',
description: 'Demonstrating how to describe a RESTful API with Swagger',
},
host: 'localhost:3000',
basePath: '/',
};
// options for the swagger docs
var options = {
// import swaggerDefinitions
swaggerDefinition: swaggerDefinition,
// path to the API docs
apis: ['./routes/*.js'],
};
// initialize swagger-jsdoc
var swaggerSpec = swaggerJSDoc(options);
Take note of the comments above. This code essentially initializes swagger-jsdoc and adds the appropriate metadata to the Swagger specification.
Add the route to serve up the Swagger spec:
// serve swagger
app.get('/swagger.json', function(req, res) {
res.setHeader('Content-Type', 'application/json');
res.send(swaggerSpec);
});
Fire up the server and navigate to http://localhost:3000/swagger.json to see the basic spec:
{
"info": {
"title": "Node Swagger API",
"version": "1.0.0",
"description": "Demonstrating how to describe a RESTful API with Swagger"
},
"host": "localhost:3000",
"basePath": "/",
"swagger": "2.0",
"paths": { },
"definitions": { },
"responses": { },
"parameters": { },
"securityDefinitions": { }
}
Now we need to update the routes…
Updating the Route Handlers
swagger-jsdoc uses JSDoc-style comments to generate the Swagger spec. So, add such comments, in YAML, to the route handlers that describe their functionality.
GET ALL
Add the comments in /routes/index.js just above the handler, like so:
/**
* @swagger
* /api/puppies:
* get:
* tags:
* - Puppies
* description: Returns all puppies
* produces:
* - application/json
* responses:
* 200:
* description: An array of puppies
* schema:
* $ref: '#/definitions/Puppy'
*/
router.get('/api/puppies', db.getAllPuppies);
This should be fairly self-explanatory. We have an /api/puppies
endpoint that returns a 200 response to a GET request. The $ref
is used to re-use definitions to keep the code DRY.
Add the following code above the previous code:
/**
* @swagger
* definitions:
* Puppy:
* properties:
* name:
* type: string
* breed:
* type: string
* age:
* type: integer
* sex:
* type: string
*/
Now we can use that definition for each of the HTTP methods.
For more information and examples, please see the Swagger Specification.
GET Single
/**
* @swagger
* /api/puppies/{id}:
* get:
* tags:
* - Puppies
* description: Returns a single puppy
* produces:
* - application/json
* parameters:
* - name: id
* description: Puppy's id
* in: path
* required: true
* type: integer
* responses:
* 200:
* description: A single puppy
* schema:
* $ref: '#/definitions/Puppy'
*/
POST
/**
* @swagger
* /api/puppies:
* post:
* tags:
* - Puppies
* description: Creates a new puppy
* produces:
* - application/json
* parameters:
* - name: puppy
* description: Puppy object
* in: body
* required: true
* schema:
* $ref: '#/definitions/Puppy'
* responses:
* 200:
* description: Successfully created
*/
PUT
/**
* @swagger
* /api/puppies/{id}:
* put:
* tags: Puppies
* description: Updates a single puppy
* produces: application/json
* parameters:
* name: puppy
* in: body
* description: Fields for the Puppy resource
* schema:
* type: array
* $ref: '#/definitions/Puppy'
* responses:
* 200:
* description: Successfully updated
*/
DELETE
/**
* @swagger
* /api/puppies/{id}:
* delete:
* tags:
* - Puppies
* description: Deletes a single puppy
* produces:
* - application/json
* parameters:
* - name: id
* description: Puppy's id
* in: path
* required: true
* type: integer
* responses:
* 200:
* description: Successfully deleted
*/
Check out the updated spec at http://localhost:3000/swagger.json.
Adding Swagger UI
Finally, download the Swagger UI repo, add the “dist” folder from the downloaded repo to the “public” folder in the project directory, and then rename the directory to “api-docs”.
Now within index.html inside the “api-docs” directory just update this line-
url = "http://petstore.swagger.io/v2/swagger.json";
To-
url = "http://localhost:3000/swagger.json";
Finally, navigate to http://localhost:3000/api-docs/ in your browser to test out the API endpoints:
Download the code from the repo. Cheers!


Logging user activities on site gives a deeper understanding of customers. It helps us to explore the hidden uncover pattern, trends, correlation and other information about the data. Based on those findings we can craft the rich experiences with progressive enhancement for each user. Considering the importance of this, I decided to log following activities of user.
In addition to the above 5 user behavior, I also logged the tag click, share question, and page change events of user. These all user actions helps us to identify the likes and dislikes of user, so that we can give personalized user feedback on the website.
Analysis & Findings:
By visualizing the collected the data, I found the following patterns:
To find these patterns I created the Horizontal bar chart which display the question view count of top 10 popular tags for individual user and all user. On hovering of any bar, a donut chart appears which represents the user activity on that tag. In the center of a chart, statistics of that chart is displayed i.e. Tag name, views on tag, and user engagement on that tag. User engagement tells us that how active the user is to provide any feedback to any question by upvote/downvote/(un)favorite it. It is the ratio of user’s feedback on that question and user’s view on that question.
Length of each bar chart provides the pattern of how many times a tag is being view. Proportion of each activity on donut chart explains the how much it is compared to other activities.
All charts are shown for both individual user and all users. This social visualization try to progress the user induvial user behavior among the rest of the community and how it is impacting the community.


Course: Node.js - basics
- Node.js and NPM
- Asynchronous Javascript: promises and async/await
- Using MongoDB with Mongoose
- Error handling with Express
- Athentication, authorization and security
- Advanced features: payments, email, file uploads
- Setting up git and deployment


We are able to target large audience with our state of the art ads
Using latest technology, we design ads that the audince enjoy
We configure your Vehicle with high speed internet to enable your customers connect with the world.
Using Kenya culture, we design artistic graphics that transforms your Matatu that connects you with your customers
We provide various services
.


With an emphasis in software development
I have been in the industry for nearly five years
Have had exposure to several different teams
Have experience with many different methodologies and practices
Experience with many different technologies
Experience with leading teams
I LOVE working and collaborating with others
Computer Vision - Improved Edge Detection in Grayscale Images Using Adaptive Thresholding
Game Development - An online multiplayer game using web sockets
Game Development - Game with maze generation and path finding
Software Application - Property Manager Application
JavaScript/TypeScript
React.js/Vue.js
Git
Designing Application Architecture
Design of ReSTful APIs
Object Oriented Programming
SQL
Machine Learning
Getting hired at Utah State University Research Foundation was a big deal
I had mentors that encouraged my growth
Learning was encouraged
My success depended on how hard I was willing to work
Spearheaded efforts for UI testing (Cucumber/Selenium)
Was able to work with clients
... I actually didn't start as a CS major...
and then becoming a full time employee at Space Dynamics Laboratory
Accepting a senior software engineering position
New Technologies
New opportunities to lead
New projects to contribute to
On several different committees for standardization
Improved Edge Detection in Grayscale Images Using Adaptive Thresholding
Source CodeShortcuts:


THREE COLORS: BLUE A film review by Scott Renshaw Copyright 1994 Scott Renshaw
Starring: Juliette Binoche, Benoit Regent, Charlotte Very. Screenplay: Krzysztof Kieslowski & Krzysztof Piesiewicz. Director: Krzysztof Kieslowski.
I can't claim that my experience with French films has been all that extensive, but the limited experience I have had has lent itself to the following stereotypical image: two characters sitting in a dimly lit cafe, smoking cigarettes and speaking cryptically to one another in extremely muted tones. These films tended to deal with emotionally stunted people in an emotionally stunted manner, potentially intriguing but inert, if not downright soporific. It caused me no end of amusement to find a scene exactly like the one I just described in Krzysztof Kieslowski's THREE COLORS: BLUE. It caused me more pleasure to discover that scene only one part of a complex and fascinating character study of grief, directed with a mesmerizing grace. So now I wonder...is it French cinema that has changed, or is it me?
THREE COLORS: BLUE opens with a car crash which claims the life of renowned composer Patrice de Courcy and his five-year-old daughter, leaving wife Julie (Juliette Binoche) as the only survivor. Julie first considers suicide, but eventually decides to sever all ties with her previous life and move into a small flat in Paris. There she wishes nothing more than to spend the rest of her days doing nothing, free of the loves and friendships she describes as "traps." However, she finds that freedom difficult, as she develops a friendship with neighbor Lucille (Charlotte Very). When her husband's former partner Olivier (Benoit Regent) goes public with his intention to complete Patrice's unfinished final concerto, Julie is forced to confront facts which might finally shake her from her reverie.
From a narrative standpoint, BLUE is not the most easily accessible of films. There is very little dialogure, in fact very little sound of any kind; even the car crash is notable for its understatement. Only the occasional explosions of Zbigniew Preisner's score tend to break the silence, loading the music with significance. Kieslowski chooses to allow us into Julie's world almost entirely through images, but how arresting those images are. In one scene, Julie sits in a cafe and listens to a street musician playing one of Patrice's compostions; Kieslowski indicates how long she stays simply through the changing shadows cast by Julie's coffee cup. Another scene shows Julie standing in her flat as a man runs down the hall banging on doors, seeking help while being chased, apparently by muggers. It's a confident but rarely showy directing job by Kieslowski, allowing Julie's story to unfold slowly and clearly.
The centerpiece of BLUE is the performance of Juliette Binoche as Julie, and it's a winner. While not the type of performance American film audiences are used to seeing, it is nonetheless extremely effective. Like many characters we saw in 1993, Julie tries to make herself safe by placing herself in an emotional vacuum, but she betrays her natural inclinations to reach out in scenes with her elderly mother and with Lucille. At times the role might appear one-note, yet there are deeper shadings. The early scene in which Julie sleeps with Olivier simply to provide him with closure to his previously unrequited love is strangely emotional. and her physical response to a group of young girls coming into the pool where she is swimming packs a punch. Binoche proves herself as deserving as any actor this year of Oscar consideration.
Where BLUE is likely to irritate many is in the deliberate opaquity of some of its images. Julie's reaction to the discovery of a nest of mice in her apartment never really connects, nor do the images of bungee jumping. A scene between Julie and the young man who witnessed the car crash seems repetitive, relevant only for the introduction of an object which will later prove significant. BLUE proves to be very slow going at times, and requires immense patience. However, as details concerning the relationship between Julie and Patrice unfold, such patience will be proved worthwhile. THREE COLORS: BLUE is an intensely focused examination of one woman's attempt at self-deception for her own perceived good, and will likely stick with me for some time.
On the Renshaw scale of 0 to 10 shades of blue: 8.
-- Scott Renshaw Stanford University Office of the General Counsel
.
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