email newsletter
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Repudiandae illum corporis temporibus asperiores nihil modi tenetur neque, est libero impedit maiores maxime, ad odio perspiciatis, aliquam voluptates commodi alias. Non.
Featured Smashing Book
Meet Design Systems, a recent Smashing book in which Alla Kholmatova explores how to set up an effective design system to create great digital products. With common traps, gotchas and lessons learned.
React, Vue, or perhaps the lightweight Alpine.js? Whether you are an experienced JavaScript developer working with one of these frameworks, or just starting to learn, our authors have created some tutorials for you.
ExploreCSS Layout has been transformed over the past years. We have you covered with all you need to master this new world. If you want to understand the technical details, or learn how to use new CSS creatively, these guides can help.
ExploreEnsuring your site loads quickly is important. The subject touches almost every part of web design and development, from your choice of images to the performance of your web server. In this guide we bring together information that can help you build a fast site, and keep it fast.
Explore


Call center briefing is the summary of all offers for a specific month for a specific project. It includes all offers already valid (offer start date in prior month), offers with starting validity (offer start date within the month of the briefing document) or offers with a placement start date within the month of the briefing document). The offers shall be presented together with all pertinent description fields. The export is in the form of a word document.
If an offer validity period ends before the reporting start date, its detail will not be available in the word document.
If an offer is valid during the report start and end dates, its details are available in the word document.
If an offer starts after the report end date, but the placement starts prior to the report end date (as placement can start before an offer start date), its details are also available in the word document.
If an offer starts after the report end date and so does it's placement, then the details are not available in the word document.
The user wants to generate a briefing that will be sent to the German call center at the end of January. The report shall cover the period February 5 (e.g. when the Q1 publication goes live) until March 31.
The generated report output would then include all the offers that fall with their validity within that date period.
Offer A (valid Dec 15 to Jan 31) will not be included.
Offer B (valid Dec 15 to Feb 15) will be included.
Offer C (valid April 1 to May 3 with a placement start date of March 20) will be included.
Offer D (valid April 1 to May 3) will not be included.
So conclusively, the word document will contain details of only those offers and also their placements that are valid during the reporting period.
* Click to enlarge
Select Project (Required) - Select the Project for which the briefing document is to be exported
Select Language (Required) - Select the language of the briefing document. The export is downloaded as per the language selected namely English and German
Date From (Required) - Select the starting date from which the briefing document is to be downloaded.
Date Until (Required) - Select the end date upto which the briefing document is to be downloaded
Clicking on the Export button will download a word file and all the details of the Offer are seen in the word document
* Click to enlarge
An Admin User can download briefing document for any project or offer.
A General User can only download the briefing document for the projects he/ she has been assigned to.
A Viewer does not possess any right to export the briefing document.


A personal site to document what I have done, as an attempt to think and work systematically
© 2014. All rights reserved.


The MEME Suite allows the biologist to discover novel motifs in collections of unaligned nucleotide or protein sequences, and to perform a wide variety of other motif-based analyses.
The MEME Suite supports motif-based analysis of DNA, RNA and protein sequences. It provides motif discovery algorithms using both probabilistic (MEME) and discrete models (MEME), which have complementary strengths. It also allows discovery of motifs with arbitrary insertions and deletions (GLAM2). In addition to motif discovery, the MEME Suite provides tools for scanning sequences for matches to motifs (FIMO, MAST and GLAM2Scan), scanning for clusters of motifs (MCAST), comparing motifs to known motifs (Tomtom), finding preferred spacings between motifs (SpaMo), predicting the biological roles of motifs (GOMo), measuring the positional enrichment of sequences for known motifs (CentriMo), and analyzing ChIP-seq and other large datasets (MEME-ChIP).
The MEME Suite is comprised of a collection of tools that work together, as shown below. Not all the tools are available as webservices, so to get the full power of the MEME Suite you will need to download and install a local copy of the software. To see what has changed recently you can peruse the release notes.
| Motif Discovery | ||
|---|---|---|
| MEME | Find ungapped motifs in unaligned DNA, RNA or protein sequences. | Sample |
| MEME-ChIP | Comprehensive motif analysis of large nucleotide datasets such as those from ChIP-seq or CLIP-seq experiments. | Sample |
| DREME | Find short, ungapped motifs in large sets of DNA or RNA sequences. Also allows discriminative motif analysis using a set of control sequences. | Sample |
| GLAM2 | Find gapped motifs in DNA or protein sequences. It has a tutorial. | Sample |
| MoMo | Find PTM motifs in fixed width protein sequences. | Sample |
| Motif Enrichment Analysis | ||
| AME | Motif Enrichment Analysis: find known DNA or RNA motifs that are relatively enriched in the input sequences compared to shuffled version of those sequences or control sequences. | Sample |
| CentriMo | Local Motif Enrichment Analysis: Find motifs that are enriched in local regions in equal-length sequences. | Sample |
| SpaMo | Motif Spacing Analysis: Find known motifs that occur with preferred spacings relative to a primary motif in a set of DNA sequences. | Sample |
| GOMo | Genome Ontology Motif Enrichment: Identify possible roles (Gene Ontology terms) for DNA binding motifs. | Sample |
| Motif Search | ||
| FIMO | Search a sequence database for occurrences of known motifs. This program treats each motif independently and reports all putative motif occurrences below a specified p-value threshold. | Sample |
| MAST | Search a sequence database for occurrences of known motifs. This program assumes exactly one occurrence of each motif per sequence, and each sequence in the database is assigned a p-value, based on the product of the p-values of the individual motif occurrences in that sequence. | Sample |
| MCAST | Search a sequence database for clusters of known motifs. mcast employs a motif-based hidden Markov model, using a star topology and a novel scoring algorithm. The motifs may appear in any order. | Sample |
| MOTIPH | Search a set of aligned sequences for conserved matches to motifs. In addition to the aligned sequences and the motifs, this program requires a maximum likelihood phylogenetic tree estimating the evolutionary relationships and distances among the sequences. | Sample |
| GLAM2Scan | Search for occurrences of gapped motifs, discovered by GLAM2. | Sample |
| Motif Comparison | ||
| Tomtom | Find motifs that are similar to a given DNA or RNA motif by searching a database of known motifs. | Sample |
| Additional Primary Tools | ||
| AMA | Print the Average Motif Affinity score of each sequence in a database. The score is calculated by averaging the likelihood ratio scores for all feasible binding events to the given sequence and to its reverse strand. | |
| Motif Format Conversion Scripts | Foreign Motif Formats | |
| beeml2meme | Convert an BEEML matrix file to MEME format. | |
| chen2meme | Convert a CHEN matrix file to MEME format. | |
| elm2meme | Convert a ELM tab separated file to MEME format. | |
| iupac2meme | Convert an IUPAC string to MEME format. | |
| jaspar2meme | Convert a directory of JASPAR files to MEME format. | |
| matrix2meme | Convert count or frequency matrices to MEME format. | |
| meme2meme | Convert and merge multiple MEME formatted files. | |
| nmica2meme | Convert a nestedMICA (BioTiffin/XMS) matrix file to MEME format. | |
| priority2meme | Convert a PRIORITY matrix file to MEME format. | |
| rna2meme | Convert a FASTA file with micro-RNA sequences into MEME motifs for their mRNA target sequences. | |
| scpd2meme | Convert an SCPD matrix file to MEME format. | |
| sites2meme | Convert files containing sites into MEME format. | |
| taipale2meme | Convert a tab-separated file exported from a spreadsheet of Taipale results to MEME format. | |
| tamo2meme | Convert a TAMO matrix file to MEME format. | |
| transfac2meme | Convert a TRANSFAC matrix file to MEME format. | |
| uniprobe2meme | Convert a UNIPROBE matrix file to MEME format. | |
| File Format Conversion Utilities | ||
| clustalw2fasta | Convert a Clustalw multiple alignment into FASTA format. | |
| clustalw2phylip | Convert a Clustalw multiple alignment into Phylip format. | |
| glam2format | Convert glam2 motifs to standard alignment formats. | |
| obo2dag | Convert a Gene Ontology OBO file into a GO DAG file. | |
| FASTA Sequence Utilities | ||
| dust | Mask low-complexity regions in DNA sequences in a FASTA file to N characters. | |
| fasta-center | Output the central portion of each sequence in a FASTA file of sequences. | |
| fasta-dinucleotide-shuffle | Shuffle the letters in each sequence in a file of FASTA file of nucleotide sequences, preserving the dinucleotide frequencies. | |
| fasta-fetch | Fetch sequences from a FASTA sequence file. Requires an index file made by fasta-make-index. | |
| fasta-get-markov | Estimate a Markov model from a FASTA file of sequences. | |
| fasta-grep | Find matches to a Perl regular expression in a FASTA file of sequences. | |
| fasta-hamming-enrich | Compute the relative enrichment of a regular expression in two sets of sequence, where the shortest Hamming distance is used to classify sequences. | |
| fasta-io | Read and write FASTA files. | |
| fasta-make-index | Make an index for a FASTA file for use by fasta-fetch. | |
| fasta-most | Writes the most frequently occurring sequence length and how many times it occurs. | |
| fasta-shuffle-letters | Shuffle the letters in each sequence in a file of FASTA file preserving k-mer frequencies. This makes use of uShuffle. | |
| fasta-subsample | Extract a random selection of the sequences in a FASTA file. Can also subsample the sequences themselves. | |
| fasta-unique-names | Copy a FASTA sequence file changing any duplicate sequence names to insure there are no duplicates. | |
| gendb | Generate FASTA sequences from a Markov model. | |
| getsize | Print statistics about or (higher-order) shuffle sequences read from a FASTA file. | |
| Other Utilities | ||
| alphtype | Classify a string passed as a command line argument as an instance of the DNA or protein alphabet. | |
| ama-qvalues | Add q-values to AMA output. | |
| ceqlogo | Create motif logos. | |
| compute-prior-dist | Compute the distribution of priors in a MEME PSP format file. | Sample |
| compute-uniform-priors | Compute a uniform position-specific prior equal to the mean of the position-specific prior contained in a MEME PSP format file. | Sample |
| create-priors | Compute priors and their distribution from raw scores in a Wiggle format file. | |
| fisher_exact | Compute the Fisher Exact test p-value. | |
| fitevd | Fit an extreme value distribution to data. | |
| glam2mask | Mask glam2 motifs out of sequences so that weaker motifs can be found. | |
| gomo_highlight | Identify GO terms which are implied by other GO terms, allowing the most specific GO terms to be highlighted in the conversion to html. | |
| meme2alph | Extract the sequence alphabet definition from a MEME Motif Format file (e.g., MEME or DREME output). | |
| meme2images | Create motif logos from a MEME Motif Format file (e.g., MEME or DREME output). | |
| meme-get-motif | Extract specified motifs from a MEME text (.txt) format file. | |
| meme-rename | Easily rename MEME Suite HTML files to unique names incorporating the path name (rather than "meme.html"). | |
| motif-shuffle-columns | Shuffle the columns of each motif in a file of motifs in MEME motif format. | |
| pmb_bf | Calculate the statistical power of phylogentic motif models. | |
| psp-gen | Generate position-specific priors from positive (likely to contain a feature of interest) and negative (unlikely to contain a feature of interest) sequences for use as an additional input to MEME. | |
| purge | Remove highly similar members of a set of sequences. | |
| qvalue | Compute q-values from p-values. | |
| reconcile-tree-alignment | Given a tree and an alignment, identify the intersection of the sets of sequence IDs and leaf labels. Trim the extra sequences and leaves and print the resulting alignment and tree. | |
| reduce-alignment | Extract specified columns from a multiple alignment. | |
| remove-alignment-gaps | Remove from an alignment all columns that correspond to a gap in a specified species. | |
| shadow | Perform phylogenetic shadowing on a given DNA alignment, using a given tree. | |
| update-sequence-db | Create or update the sequence databases for a MEME Suite web server. | |
| File Formats | ||
| MEME Motif | The motif format which is supported by the MEME Suite. | |
| Alphabet Definition | A method for defining custom alphabets. | |
| Background Model | Background frequencies for DNA or protein sequences. | |
| Peptide-Spectra Match | Peptides identified from tandem mass spectra. | |
| Position-Specific Priors (PSP) | Priors (weights) on each position in each input sequence that can bias the search for motifs by MEME. | |
| Dirichlet Mixtures | A Dirichlet mixture file specifies residues' tendencies to align with one another, and is the basis for scoring columns of aligned residues in MEME and GLAM2. | |
| FASTA Sequence | DNA or protein sequences. | |
| ClustalW Alignment | A multiple alignment of DNA or protein sequences. | |
| Foreign Motif Formats | Motif formats that can be converted into MEME motifs using the motif format conversion scripts available when you install the MEME Suite on your own computer. | |
| GLAM2 Alphabet | A custom sequence alphabet for GLAM2. This can be used to provide alternate alphabets other than the standard DNA and protein. | |
| GO DAG | A file format which stores the structure of the Gene Ontology so it can be used to improve GOMo output. | |
| AME Output Formats | The file formats output by the AME tool. | |
| CentriMo Output Formats | The file formats output by the CentriMo tool. | |
| FIMO Output Formats | The file formats output by the FIMO tool. | |
| GOMo Output Formats | The file formats output by the GOMo tool. | |
| MEME-ChIP Output Formats | The file formats output by the MEME-ChIP tool. | |
| MCAST Output Formats | The file formats output by the MCAST tool. | |
| MoMo Output Formats | The file formats output by the MoMo tool. | |
| SpaMo Output Formats | The file formats output by the SpaMo tool. | |
| Tomtom Output Formats | The file formats output by the Tomtom tool. | |
| Guides and Tutorials | ||
| Web Service Access | How to access MEME Suite web services from Perl or Python scripts. | |
| Installation | How to install a local copy of the MEME Suite. | |
| Release notes | A list of changes included in the latest release. |
Maintenance and development of the MEME Suite is funded by grant R01 GM103544 from the National Institutes of Health.
The MEME Suite web portal also receives support from Google.


HELLO,
Full Stack Developer
Full Stack Developer having experience in MEAN Stack. Computer programming is my core field with specialization in Web Development. Having expertise in following languages, tools and technologies.
- Front End Development
- HTML5, CSS3 and JavaScript
- JQuery and Bootstrap 4
- Angular JS
- Back End Development
- MongoDB for Database
- Express.js
- Node.js
- Python
Contact Me
EDUCATION
Lambton College
Web Development
Web Development
Jan 2017 - Jan 2019
Student of Computer Programming with specialization of Web Development. This course also includes the Database Designing using various languages.
EXPERIENCE
Upwork
Front End Developer
Front End Developer
Jan 2017 - May 2017
Responsibilites Creation of Website Design using Front End Development tools and technologies. It also includes the conversion photoshop design to real working website.
INFO
| Name | Jatinder Singh |
| Age | 19 |
| Address | 73 Kingknoll Drive, ON |
|<EMAIL_ADDRESS>| |
| Phone | +1<PHONE_NUMBER> |
| https://www.linkedin.com/in/jsbirdi0001/ | |
| Blog | http://jsbirdi0001.github.io/blog |
PROJECTS
I hereby declare that above mentioned information is true on the behelf of the knowledge and belief
Jatinder Singh


Library: XML
Package: DOM
Header: Poco/DOM/DOMImplementation.h
Description
The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model. In this implementation, DOMImplementation is implemented as a singleton.
Member Summary
Member Functions: createDocument, createDocumentType, hasFeature, instance
Constructors
DOMImplementation
Creates the DOMImplementation.
Destructor
~DOMImplementation
Destroys the DOMImplementation.
Member Functions
createDocument
Document * createDocument(
const XMLString & namespaceURI,
const XMLString & qualifiedName,
DocumentType * doctype
) const;
Creates an XML Document object of the specified type with its document element.
Note: You can also create a Document directly using the new operator.
createDocumentType
DocumentType * createDocumentType(
const XMLString & name,
const XMLString & publicId,
const XMLString & systemId
) const;
Creates an empty DocumentType node. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur.
hasFeature
bool hasFeature(
const XMLString & feature,
const XMLString & version
) const;
Tests if the DOM implementation implements a specific feature.
The only supported features are "XML", version "1.0" and "Core", "Events", "MutationEvents" and "Traversal", version "2.0".
instance
static const DOMImplementation & instance();
Returns a reference to the default DOMImplementation object.


About
Device
Device Name: DEVICE_NAME
Device Code: DEVICE_CODE
Device Name: DEVICE_NAME
Device Code: DEVICE_CODE
Hardware
Board: BOARD
Device ID:
Board: BOARD
Device ID:
Build
Repository: UPDATER_USER/UPDATER_REPO
Environment:
Version: BUILD_TAG
Number:
Timestamp:
Repository: UPDATER_USER/UPDATER_REPO
Environment:
Version: BUILD_TAG
Number:
Timestamp:


Migrations in Rails 3.1 has moved the #up and #down methods to instance methods instead of class methods. This just feels better to me when writing migrations.
{% highlight ruby linenos %} class MyAwesomeMigration < ActiveRecord::Migration def up # some change you want to make goes here end def down # revert the change you made in the up action end end{% endhighlight %}Then, the Rails team took it one step further. Since most migrations are just doing the reverse in the down action as what was done in the up action they have introduced the #change action. When defined in your migration this combines both the up and down actions into a single method call.
I. Heart. This.
It always felt like 90% of the migrations that I was writing didn't need a separate definition for the down action. I wanted Rails to just figure out that "if I'm creating a table in the up, then drop it in the down" or "if I'm adding a column then remove it" or "if I'm changing a column then change it back". Well, now that happens for us thanks to the new ActiveRecord::Migration::CommandRecorder class. I've added a few examples to show you how simple your migrations can now be.
{% highlight ruby linenos %} # Add/Drop a table class MyAwesomeMigration < ActiveRecord::Migration def change create_table(:users) do |t| t.string :first_name t.string :last_name t.timestamps end end end # Add/Remove a table column class MyAwesomeMigration < ActiveRecord::Migration def change add_column :users, :birthdate, :date end end # Rename a column in a table class MyAwesomeMigration < ActiveRecord::Migration def change rename_column :users, :birthdate, :birthday # This one is a bit interesting because when the reverse is called # the arguments you specify are simply reversed. So this would be the "down" # action # # rename_column :users, :birthday, :birthdate end end{% endhighlight %}Obviously, not everything can be reversed. For example, how would you logically reverse removing a column? At first you might think "that's easy, just call add_column on the down action". The only problem with that is when you call `remove_column' you don't specify the type for the column. That means when the `add_column' action is called it will fail. Not to worry, Rails will alert you if you have tried to do something it has deemed irreversible. An `IrreversibleMigration' exception will be raised.
Here is a list of the actions that are auto-magically reversed. The reverse action is given inside the parenthesis:
- add_column (remove_column)
- add_index (remove_index)
- add_timestamps (remove_timestamps)
- create_table (drop_table)
- remove_timestamps (add_timestamps)
- rename_column
- rename_index
- rename_table


| 893 | (A) | that waspasyane was went to werre one the Iewes |
| 901 | (C) | That vaspasiane was gone . to werre on þe Iewes |
| 885 | (D) | That vaspasian was went to werre on þe iewis |
| 862 | (E) | waspasyan wente to werre on þe iewys |
| (Ex) | ---- no text ---- | |
| 917 | (L) | þat waspasian was went to werry on þe Iewes |
| 835 | (P) | þat waspasyan was went to wer on þe Iues |
| 871 | (U) | That Vespasian is went / to weren on the iewes |
| (V) | ---- no text ---- |


Stuff
This page will grow as we add more and more components from Bootstrap...
About me
Hello and Welcome to my HTML page.
My name is Mena Shafik .
Currently I'm enrolled in Mobile Computing(Computer Science) Bachelor's degree 4 year program.
Here are Links to the Sheridan Homepage and our Class Plan and they can also be located in the navigation bar.
Recent News
Added a resume page
Currently working on a new bar bar idea that might be cool
Please give more tips on how I can improve this.
Contact info
email: shafikm@sheridancollege.ca


This example does some
monkey patching
. Now it is possible to add new rules controlling the disabled attribute. For example a field might stay disabled although it is visible.
Back to User Agent Man
visibleIf
article
Information
Please enter in the following information
Test :
Select One ...
Choice A
Choice B
Additional Information
Please enter some additional information
Features :
Feature 1
Feature 2
Feature 3
Don't change this :


Mansfield Park (1999) Reviewed by Eugene Novikov http://www.ultimate-movie.com/ Member: Online Film Critics Society
"How long must you stay?" "I don't know. How long must you stay?"
Starring Frances O'Conner, Jonny Lee Miller, Embeth Davidtz, Alessandro Nivola, Harold Pinter, Lindsay Duncan. Rated PG-13.
Jane Austen has her own subgenre, with 16 movies adapted from her novels since 1940. Aside from Clueless, however, there hasn't been much creative variety in the films; they've been more or less similar in setting and style. Like John Grisham films, Jane Austen, genius as her work is, gets old after a while. We've been needing a director to do something new with one of her novels, to go where no one has gone before. That wish will not be granted by Patricia Rozema's Mansfield Park, a reasonably entertaining, altogether unoriginal film version of one of Austen's least populist works.
The much analyzed protagonist of the story is Fanny Price who was given away by her well-intentioned but poverty-stricken mother to live in Mansfield Park, her pretentious aunt's wealthy household. She is shunned and treated like a servant by everyone except Edmund, one of her cousins. Over the years, Edmund and Fanny develop a close, but platonic relationship; he is her first defender, she is his first confidant and vice versa.
Matters are complicated by the arrival of Henry, a good-looking aristocrat who takes an immediate interest in Fanny. He courts her and proposes marriage, but Fanny doesn't trust him and, though interested, is very hesitant to commit to him, even pulling a 19th century version of The Runaway Bride on the poor chap. Sir Thomas, the head of Fanny's household, insists that she mary the desirable Henry, threatening to kick her out of Mansfield Park should she refuse.
Frances O'Conner, in a lovely performance and a difficult role, plays Fanny, a complex and demanding character which O'Conner pulls off deftly.  Lindsay Duncan has a fairly thankless part as the conniving, despicable Lady Bertram but she succeeds with repulsive perfection. The only weak link in the cast (and of course, a chain is only as strong as its weakest link) is Alessandro Nivola whose Henry is dull and standard, undermining the dilemma at the heart of the movie: from Nivola's portrayal it isn't difficult to see why Fanny never went ga-ga over the guy.
Rozema's film is funny, melodramatic, and enjoyable. The pace is reasonably fast, the direction is able and the mood is nothing short of crowd-pleasing.  Everything is dandy. Everything is also tiresomely ordinary. There is not a speck of originality in this film; the setting and the script have been done and redone countless times, even if the story itself has been left untouched (sans a 1983 tv mini-series). Things that we see for the first time in the movie already feel repetitive because we've seen them so many times in movies past. This is your basic British melodrama à la Jane Eyre and Sense and Sensibility, with virtually no variations on the formula.
Jane Austen deserves a revival. She is a wonderful novelist who needs a filmmaker to breathe fresh life into her work. Mansfield Park is a perfectly good adaptation, but it's trite. She is suffering from John Grisham syndrome.
Grade: C+
©1999 Eugene Novikov
Sent via Deja.com http://www.deja.com/ Before you buy.
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


RESTEasy Tracing
Choose the HTTP method to invoke:
GET
POST
PUT
Submit
Clear
HTTP Method:
Invoked:
Response:
Header Name
Header Value


Node React Dashboard is developed and maintained by Repozitory. If you are interested in getting custom dashboard for your startup
Contact Us
React Dashboard with NodeJS


VOLCANO A film review by Scott Renshaw Copyright 1997 Scott Renshaw
(20th Century Fox) Starring: Tommy Lee Jones, Anne Heche, Gaby Hoffman, Don Cheadle. Screenplay: Jerome Armstrong and Billy Ray. Producers: Neal H. Moritz and Andrew Z. Davis. Director: Mick Jackson. MPAA Rating: PG-13 (profanity, violence, adult themes) Running Time: 103 minutes. Reviewed by Scott Renshaw.
It's hard to believe it has been over two and a half months since the last volcano movie hit North American screens; it seems like only, gosh, seven or eight weeks. 20th Century Fox is banking on the fact that lava's lovelier the second time around, rolling out VOLCANO as an April preview to the summer movie season, but whether or not it works depends on what you're looking for in your disaster movies.  VOLCANO is less chained to convention, a bit more clever, and boasts a more talented cast. It is also more about spectacle than suspense, a very impressive production which is easier to enjoy from a detached distance than it is to get caught up in.
Tommy Lee Jones stars as Mike Roark, a supervisor for Los Angeles' Office of Emergency Management who is supposed to be on vacation with his daughter Kelly (Gaby Hoffman). That is before a moderate earthquake hits, and before an incident involving the death of several utilities workers suggests an unusual underground heat source. Seismologist Dr. Amy Barnes (Anne Heche) has a theory, but no one believes it -- that is, until the La Brea Tar Pits turn into a fountain of magma spewing destruction all over Wilshire Boulevard. As the sea of lava begins its inexorable march, Roark tries to figure out some way to stop it or re-direct its course. Meanwhile, Dr. Barnes suggests that there may be another more powerful eruption yet to come, and tries to figure out where and when it might hit.
There are certain elements you have come to expect in a film of this kind, and VOLCANO delivers all of them: intransigent bureaucrats who end up making a bad situation worse, a hero whose personal life is given equal footing with large-scale destruction, pets which make improbable escapes. Fortunately, the script by Jerome Armstrong and Billy Ray offers a few variations on those themes along the way. The intransigent bureaucrat, instead of becoming the guy whose inevitable death is a cause for cheers, gets a shot at redemption; those amazing animals are given a satirical poke in a feel-good TV news piece about "the other victims." The dialogue sometimes does get stilted and heavy-handed, and a few of the sub-plots -- including one involving a self-absorbed real estate developer (John Corbett) -- are abandoned mid-stream without any fanfare. Apparently someone realized that a fast pace and minimal exposition make for a better disaster.
That doesn't prevent the writers from attempting some clumsy stabs at social commentary, which are notable largely because they are among the few attempts at making the film specific to L.A. As dopey as the tag line "The Coast is Toast" may be, it showed that the marketing people understood one of the more appealing elements of VOLCANO's premise: people want to get a perverse charge out of watching Tinseltown become Tindertown. VOLCANO could have used more of a sense of place, more recognizable landmarks like the Angelyne billboard turned into briquets. Sure, it's wonderful that racially-fragmented Los Angelenos become one big ashen can't-we-all-just-get-along family when forced to work together for the common weal, but be honest. Wouldn't you rather see lava creeping up on a trademark L.A. traffic jam or chasing an army of suddenly less mellow in-line skaters through Santa Monica, instead of crawling like fluorescent tapioca down Wilshire?
Which is not to say that the fluorescent tapioca in question isn't extremely impressive. In fact, there are a lot of impressive visuals in VOLCANO, including tactically launched lava bombs and a dizzying array of explosions. The pyrotechnicians earn every cent of their pay in VOLCANO, but the imagery could have been accompanied by more tense set pieces.  However, that's one of the rare moments when anyone seems to be in any genuine peril. The lava gets rolling, it destroys a bunch of buildings, folks try to figure out how to stop it, and then they try to figure out _another_ way to stop it. VOLCANO loses a lot of steam after Mount Wilshire blows her top, but there's just enough magnificent magma to carry it through until Randy Newman sings "I Love L.A." over the closing credits. I love L.A., too, though I might have preferred it even more well-done.
On the Renshaw scale of 0 to 10 lava stories: 6.
Visit Scott Renshaw's MoviePage http://www-leland.stanford.edu/~srenshaw Subscribe to receive reviews directly via email See details on the MoviePage
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


Luxury Lamps
Best quality hand crafted lamps
Lamp 1
Lamp 2
Lamp 3
Lamp 4
Lamp 5
Lamp 6
Lamp 7
Lamp 8
Lamp 9
Lamp 10
Lamp 11
Lamp 12
Lamp 13
Lamp 14
Lamp 15
Best quality hand crafted lamps
Lamp 1
Lamp 2
Lamp 3
Lamp 4
Lamp 5
Lamp 6
Lamp 7
Lamp 8
Lamp 9
Lamp 10
Lamp 11
Lamp 12
Lamp 13
Lamp 14
Lamp 15


2048 for Medieval Music Nerds.
New GameHow to play: Use your arrow keys to move the tiles. When two tiles with the same note value touch, they merge into one!. Join the notes from white minim to white maxima and then again over black notes and get to the Black Maxima tile!.
Forked by Michael Scott Cuthbert of MIT, from the fork ("Breve") by Nicolas Froment from MuseScore.
Original 2048 game made by Gabriele Cirulli.


WITNESS LIST Committee of the Whole Senate Committee May 2, 2003 - 9:00A HB 5 AGAINST: Calvert, Lorelei (Texas Monthly), Austin, TX ON: Gregg, Brock (Association of Texas Professional Educators), Austin, TX Hartman, Eric (Texas Federation of Teachers), Austin, TX Hollingsworth, Jr., Lonnie (Texas Classroom Teachers Association), Austin, TX Moorhead, Bee (Texas Impact), Austin, TX Thompson, David (Self), Houston, TX Registering, but not testifying: For: Hatheway, H. A. (Self), Austin, TX On: Anderson, David (Texas Education Agency), Austin, TX Providing written testimony: Against: Fondren, Gene (Texas Automobile Dealers Association), Austin, TX SB 2 FOR: Dierselle, Kenneth (Texas Farm Bureau), San Angelo, TX Grusendorf, William C. (Bill) (Texas Association of Rural Schools), San Saba, TX Merrell, Leonard (Fast Growth/Texas Association of School Administrators/Katy ISD), Houston, TX Reed, Cyrus (Texas Center for Policy Studies), Austin, TX AGAINST: Baggett, Donnis (Texas Daily NewspaperAssociation and Texas Press Association), Bryan, TX Calvert, Lorelei (Texas Monthly), Austin, TX Gardner, Winston (Broadcasters), Orlando, FL McClure, Tim (GSD&M Advertising), Austin, TX Riddering, Hannah (Self), Austin, TX Stone, Richard (Texas Press Association/Texas Daily Newspaper Association), Cameron, TX Streit, Brad (KLTV and Texas Association of Broadcasters), Tyler, TX ON: Allaway, Bill (Texas Taxpayers & Research Association), Austin, TX Allen, George (Texas Apartment Association), Austin, TX Clark, Catherine (Texas Association of School Boards), Austin, TX Gregg, Brock (Association of Texas Professional Educators), Austin, TX Hartman, Eric (Texas Federation of Teachers), Austin, TX Hollingsworth, Jr., Lonnie (Texas Classroom Teachers Association), Austin, TX Kelly, Jack (Texas State Teachers Association), Dripping Springs, TX McCown, F. Scott (Center for Public Policy Priorities), Austin, TX McCraw, Ken (Texas Association of Mid-size Schools), Lamesa, TX Moak, Lynn (Moak, Casey & Associates), Austin, TX Moorhead, Bee (Texas Impact), Austin, TX Pena, Martin (South Texas Association of Schools), Edinburg, TX Pierce, Wayne (Equity Center), Pflugerville, TX Sockwell, Keith (Chapter 41 School Coalition - Northwest ISD), Trophy Club, TX Thompson, David (Self), Houston, TX Registering, but not testifying: For: Hatheway, H. A. (Self), Austin, TX Against: Castillo, Yvonne (Texas Society of Architects), Austin, TX Collins, Judy (Self), Austin, TX Swinney, Kirk (Self), Austin, TX VanDelinder, David (Independent Insurance Agents of Texas), Austin, TX On: Anderson, David (Texas Education Agency), Austin, TX Providing written testimony: For: Jackson, Richie (Texas Restaurant Association), Austin, TX Against: Courtney, Chuck (Texas Retailers Association), Austin, TX Fondren, Gene (Texas Automobile Dealers Association), Austin, TX SJR 1 FOR: Dierselle, Kenneth (Texas Farm Bureau), San Angelo, TX Hollingsworth, Jr., Lonnie (Texas Classroom Teachers Association), Austin, TX AGAINST: Calvert, Lorelei (Texas Monthly), Austin, TX Gardner, Winston (Self), Orlando, FL Streit, Brad (KLTV & Texas Association of Broadcasters), Tylr, TX ON: Allaway, Bill (Texas Taxpayers & Research Association), Austin, TX Allen, George (Texas Apartment Association), Austin, TX Gregg, Brock (Association of Texas Professional Educators), Austin, TX Hartman, Eric (Texas Federation of Teachers), Austin, TX Kelly, Jack (Texas State Teachers Association), Dripping Springs, TX McCown, F. Scott (Center for Public Policy Priorities), Austin, TX Moak, Lynn (Moak, Casey & Associates), Austin, TX Moorhead, Bee (Texas Impact), Austin, TX Thompson, David (Self), Houston, TX Registering, but not testifying: For: Hatheway, H. A. (Self), Austin, TX On: Anderson, David (Texas Education Agency), Austin, TX LeBas, James (State Comptroller's Office), Austin, TX Providing written testimony: Against: Courtney, Chuck (Texas Retailers Association), Austin, TX Fondren, Gene (Texas Automobile Dealers Association), Austin, TX


Flexible token replay animation for process maps created by bupaR using SVG animations.
Flexible token replay animation for process maps created through the processmapR package from the bupaR suite, which uses DiagrammeR and viz.js library to render process maps using GraphViz. As alternative renderer Leaflet with fixed coordinates for activities is also supported.
ProcessanimateR provides a htmlwidget using SVG animations (SMIL) to create the animation. Sizes, colors, and many more aspects of the token shapes are customizable based on trace, event attributes, or a secondary data frame if an attribute does not change according to the original event log.
WARNING: There are breaking changes in the API of this package between v0.3.0 and v1.0.0
A stable version of ProcessanimateR can be installed from CRAN:
install.packages("processanimateR")
You can also use the development or specific released version by using the remotes package. Note that the current development version may break without warning.
# install the remotes package
source("https://install-github.me/r-lib/remotes")
# use remotes to install the latest version of processanimateR
remotes::install_github("bupaverse/processanimateR")
# or install a specific tag
<EMAIL_ADDRESS>We use the patients
event log provided by the eventdataR
package.
A basic animation with static color and token size:
animate_process(patients)
Default token color, size, or image can be changed as follows:
animate_process(example_log, mapping = token_aes(size = token_scale(12), shape = "rect"))
animate_process(example_log, mapping = token_aes(color = token_scale("red")))
The example animation on the top of this site:
animate_process(patients, mode = "relative", jitter = 10, legend = "color",
mapping = token_aes(color = token_scale("employee",
scale = "ordinal",
range = RColorBrewer::brewer.pal(7, "Paired"))))
Tokens can also be assigned images, for example:
animate_process(example_log,
mapping = token_aes(shape = "image",
size = token_scale(10),
image = token_scale("https://upload.wikimedia.org/wikipedia/commons/5/5f/Pacman.gif")))
More advanced usage examples can be found here.
This package makes use of the following libraries:
We use SemVer for versioning. For the versions available, see the tags on this repository.
This software is licensed under the MIT License - see the LICENSE file for details.
This software was partly supported by the HUMAN project, which has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement no. 723737 (HUMAN)


Lizard Shocked as Sees Itself in Mirror
A lizard is an unusual animal that has provoked strong opinions and reactions in humans over centuries. It has been revered, hated, been printed on the body, painted on the walls of houses and worshiped.
Mirror Test is an experiment developed in 1970 by psychologist Gordon Gallup Jr. to determine if animals have the ability to recognize themselves in a mirror.
In this video lizard sees itself in the mirror and its reaction looks weird.


Charity Provides Board Games to Israeli Children in Bomb Shelters
by Video ManagerBoomerang has launched a drive to provide board games to Israeli children in bomb shelters during rocket fire.
Boomerang has launched a drive to provide board games to Israeli children in bomb shelters during rocket fire.


BEING JOHN MALKOVICH A film review by Steve Rhodes Copyright 1999 Steve Rhodes RATING (0 TO ****): *** 1/2
Husband and wife, Craig and Lotte Schwartz, have something in common -- they both love Maxine, played with cocky sexual tension by indie star Catherine Keener (YOUR FRIENDS & NEIGHBORS). This would-be ménage à trois is complicated in that Maxine shares Lotte's passion but not Craig's. Furthermore, only when Lotte is firmed ensconced in the mind of John Malkovich, played by the one and only, does Maxine reciprocate Lotte's love. Whew. Is this one wacky setup or what?
John Cusack, a comedic master of both action and reaction shots (most actors excel at only one), plays Craig. His wife, Lotte, is played with offbeat panache by a glamorous actress successfully made to look plain and completely different. Since I didn't recognize her, I'm not naming her here in hopes that you will be just as surprised as I was.
The absolutely hilarious and completely off-the-wall movie, BEING JOHN MALKOVICH by director Spike Jonze and writer Charlie Kaufman, takes one surprising step after another. With its Escher print of a story, the energetic movie winds and twists with great glee.
As the story starts, Craig, a puppeteer, is having trouble making a living. Answering a want ad, he decides to put his nimble fingers to work as a fast filer in an office.
The "Alice in Wonderland" type office is located on the 7 1/2th floor of a skyscraper. To get there, as any of the building's occupants can show you, all you need do is punch the emergency button on the elevator just after the seventh floor. The crowbar, conveniently located for your opening pleasure in the corner of the elevator, is used to pry open the elevator doors.
Once on the infamous, half-sized floor, Craig finds everyone stooping over as they walk. Sitting, however, poses no difficulties since the furniture is all of normal size. Passing the hiring test by telling the difference between a Dr. Seuss letter and a real one, Craig starts working at the world's oddest office. Maxine is one of his coworkers, and one of the floor's saner inhabitants.
Maxine, who really doesn't think much of Craig no matter how much he hits on her, does agree to go out with him for a drink. "So what do you do?" she asks as a way to make some small talk and in hopes that he'll prove to have a more promising future that he would appear to have. "I'm a puppeteer," he tells her. "Check!" she barks out. The next day she walks away from him complaining that "you play with dolls."
Their relationship changes when he finds a hidden hole behind a filing cabinet. It turns out to be a portal into John Malkovich's mind. Craig makes the first visit, which turns out to last a standard 15 minutes. When he tells Maxine about his discovery, she turns it into a business opportunity that would rival an Internet IPO. She has people lining up to be the famous actor. (A running joke is that most people have no idea who he is, nor what any of his movies are. The most common misconception is that he played "that jewel thief.")
Malkovich is great, finding one way after another to poke fun at himself. Looking beefy and bald, even Craig in Malkovich's body complains, "why couldn't I have found the portal to a younger body." And if you think the great actor's time is all spent in intellectual pursuits, you'll be surprised to see him discussing bath towel colors with a catalogue sales rep on the phone, as he looks with displeasure at the leftover Chinese food in his fridge.
There are several good cameos. Charlie Sheen, playing a parody of himself, serves as Malkovich's friend and advisor. He offers such thoughts as, "truth is for suckers, Johnny-boy." The more Malkovich denigrates Maxine, the more Sheen wants to have sex with her. Sheen's hair toward the end is embarrassingly and hilariously awful. Brad Pitt stops by for a one-second, open-mouthed gawk.
You might ask yourself the question of "what happens when a man goes through his own portal?" Malkovich does. I'm not about to reveal the answer but be prepared to laugh and laugh hard.
So where do you land when your 15 minutes on the Malkovich-mind roller coaster is up? Like a new born colt falling to the ground, you are promptly deposited alongside the New Jersey Turnpike, right by some classically ugly oil refineries. Don't ask; I don't know. The picture never explains why it works this way, but it's funny, no matter how often they show it. Just go with the flow. Don't question; just laugh and enjoy it. Still, I would have liked a small mention in the credits that somewhere in their subconscious the film must have been inspired by Lewis Carroll.
BEING JOHN MALKOVICH runs 1:52. It is rated R for sex and language and would be fine for teenagers.
Email<EMAIL_ADDRESS>Web: http://www.InternetReviews.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Welcome to Cal Printing
Welcome to Cal Printing! We are a full-service Printing Company with 29 years of experience printing high quality full color, professional materials. We offer 100% satisfaction guarantee on all our products and free shipping. Use our automated, streamlined online ordering system or contact us for personalized customer service.
Product discription 1.
Product discription 2.
Product discription 3


Cori, I've been...
Non-Fiending 💯
Working hard 💪
Respectful AF 😈
Click me
🍀 can i hit your pen plz 🍀
Just once fr fr 🙏
🤔 Still not convinced?
Jeez i thought this site would do it 😂
Like if u agree 👍
R.I.P 20 mins of my time☠


Click on button and see an example in your console Click on 🛈 inside the button to go to documentations. Note that the list is generated from the keys of the console object


| Interval-class {lubridate} | R Documentation |
Interval is an S4 class that extends the Timespan class. An Interval object records one or more spans of time. Intervals record these timespans as a sequence of seconds that begin at a specified date. Since intervals are anchored to a precise moment of time, they can accurately be converted to Period or Duration class objects. This is because we can observe the length in seconds of each period that begins on a specific date. Contrast this to a generalized period, which may not have a consistent length in seconds (e.g. the number of seconds in a year will change if it is a leap year).
Intervals can be both negative and positive. Negative intervals progress backwards from the start date; positive intervals progress forwards.
Interval class objects have two slots: .Data, a numeric object equal to the number of seconds in the interval; and start, a POSIXct object that specifies the time when the interval starts.


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| com.oregonscientific.* |
|---|
| com.oregonscientific.meep.msm.MessageService | ||
|---|---|---|
public static final String |
EXTRA_MESSAGE |
"message" |
public static final String |
EXTRA_SERVER_CONNECTED |
"connected" |
public static final String |
MESSAGE_RECEIVED_ACTION |
"com.oregonscientific.meep.msm.MESSAGE_RECEIVED" |
public static final String |
SERVER_CONNECTION_STATE_CHANGED_ACTION |
"com.oregonscientific.meep.msm.SERVER_CONNECTION_STATE_CHANGED" |
| com.oregonscientific.meep.msm.ServerConnectionDelegate | ||
|---|---|---|
public static final long |
MAX_IDLE_TIME |
60000L |
public static final long |
MAX_RECONNECT_TIME |
500L |
public static final long |
MIN_IDLE_TIME |
10000L |
| com.oregonscientific.meep.recommendation.RecommendationService | ||
|---|---|---|
public static final String |
TYPE_BROWSER |
"browser" |
public static final String |
TYPE_YOUTUBE |
"youtube" |
| com.oregonscientific.meep.system.CommandHistory | ||
|---|---|---|
public static final String |
COMMAND_FIELD_NAME |
"command" |
public static final String |
ID_FIELD_NAME |
"id" |
public static final String |
RECEIVE_TIME_FIELD_NAME |
"receiveTime" |
public static final String |
USER_FIELD_NAME |
"user" |
| com.oregonscientific.meep.view.MenuItem | ||
|---|---|---|
protected static final int |
BOTTOM |
3 |
protected static final int |
LEFT |
0 |
protected static final int |
RIGHT |
1 |
protected static final int |
TOP |
2 |
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |


Home
Orders
Home
Orders
Logout
Upload Design
Design Name
Item Type
Tarpaulin
Sticker
Tshirt
Signage
Digital Printing
Category
Upload Design
Upload Design


@(message: String,totalAssetList:TotalAssets)
Lenders require information about other assets to verify down-payment or net worth information.


There are three different primitive data types available in JavaScript:
1. Numbers, e.g. 1337, 27.50 etc.
2. Strings of text e.g. "This text is a string" etc.
3. Boolean e.g. true or false.
Furthermore, JavaScript supports two important data types, null and undefined. Javascript additionally support a data type known as object.
Like all programming languages, JavaScript uses variables to sore information that can be referenced and manipulated in a computer program. Variables are very important and helpful as they allow for a way of labeling data with a descriptive name, so our programs can be easily read and understood by others. To declare a variable in JavaScript, use the var keyword as shown in the example below:
See the Pen Declare JavaScript Variables by Plus Tutorials (@PlusTutorials) on CodePen.
Variable initialization takes place when we store a value in a variable as shown in the following example:
See the Pen JavaScript Variable Initialization by Plus Tutorials (@PlusTutorials) on CodePen.
The variable scope refers to the location where it is defined. There are two scopes available for JavaScript variables:
1. Global Variables - are variables that can be defined anywhere in the JavaScript code.
2. Local Variables - are variables that are defined within a function.
It is important to note that a local variable overrides a global variable with the same name when initialized within the body of a function as shown in the example below:
See the Pen JavaScript Scope Variables by Plus Tutorials (@PlusTutorials) on CodePen.
| abstract | else | instanceof | switch |
| boolean | enum | int | synchronized |
| break | export | interface | this |
| byte | extends | long | throw |
| case | false | native | throw |
| catch | false | native | throws |
| char | finally | null | true |
| class | float | package | try |
| const | for | private | typeof |
| continue | function | protected | var |
| debugger | goto | public | void |
| default | if | return | volatile |
| delete | implements | short | while |
| do | import | static | with |
| double | in | super |
© Copyright 2019. All rights reserved.


All Classes
-
All Classes Interface Summary Class Summary Enum Summary Exception Summary Class Description BufferedIStream This class allows you to use an input stream while recording the last N values from the stream It extends from IStream, so it also workes with the existing IStream classesConstructionError Exception to be thrown when a parameter in construction is given an invalid valueCSVElement Stores the data for each element in a custom class.CSVIStream Class Writer allows you to read input from an IStream into a CSV file Class Reader is an IStream that reads from CSV file They extend from IStream, so they also work with the existing IStream classesCSVIStream.Reader This CSVIStream Reader lets you replay a CSV file as if it was anyother IStreamCSVIStream.Writer This CSVIStream writer let an IStream pass through while recording the values of the IStream into a CSV file.CSVReader Read CSV Files with a bunch of epic features.CSVType Contains all the information needed for each of the csv files to work.CSVWriter CSVWriter class that allows you to write to a file in the format of a CSV.DerivativeFilter This class lets you rate limit a stream of inputsFilteredIStream Takes a Stream and a StreamFilter and makes a FilteredStream This could be used to automatically filter controller inputsFRCLogger A class that will let you log any class that implements loggable.FRCLogger.Loggable Implementable interface with getLog() function.Gamepad An class for using gamepads with different interfaces.Information Holds information about stuylibIntegralFilter This class lets you take the integral of an IStream using a filterIStream A stream of doubles that is accessed with the .get() functionIStreamFilter This lets us make sub-classes that change can modify values in this wayIStreamFilterGroup A simple class that lets you combine multiple stream filters into one stream filterLambdaButton This class lets you make a wpi button with any function.LambdaButton.ButtonCheck Lets us recieve a function to use as a buttonLegacyGamepad Deprecated. LegacyGamepad.DPadButton Deprecated. LegacyGamepad.DPadButton.Direction LegacyGamepad.GamepadSwitchMode LegacyGamepad.LeftTriggerButton Deprecated. LegacyGamepad.RightTriggerButton Deprecated. Limelight This is a class that lets you interface with the limelight network table.Limelight.CameraStream Limelight.CamMode Limelight.LEDMode Limelight.SnapshotMode Logitech Implementation of Logitech Controller and its 2 Modes for the Gamepad ClassLogitech.DMode There is a switch on the back of the controller this is for when the switch is in the D positionLogitech.XMode There is a switch on the back of the controller this is for when the switch is in the X positionMovingAverage Simple implementation of an Simple Moving AverageNetKeyboard This class lets you send and recieve keyboard information over network tables Every other class will interact with the network keyboards through this classNetKeyGamepad This class takes data from a Network Keyboard and puts it into a gamepadNetKeyListener A KeyListener that uploads all of the key strokes to a network table where they can then be recieved and put into the robot This would not be used on the robot, but should be used on the users computer Make an AWT window to use this listenerNetKeyWindow This is a simple class that opens a Java AWT window, which has a KeyListener that uploads keyboard information to a network tableNetworkTableWrapper The NetworkTableWrapper is a very fast way to easily interface with a network table.PollingIStream Takes an IStream and an IStreamFilter and makes a PollingIStream A PollingIStream calles .get() every x milliseconds instead of when the user calls getPS4 Implementation of the PS4 for the Gamepad ClassRateLimit This class lets you rate limit a stream of inputsRollingAverage Simple implementation of an Exponential Moving AverageSLMath SLMath (StuyLib Math) is a class containing many algorithms that are useful for developing robot code.SLMathFilter A set of filters that uses algorithms from InputScaler that can be used as a StreamFilter.Solve3DResult Class that is used to return solve 3D results from the limelightTimedRateLimit This class lets you rate limit a stream of inputs where the values are limited based on time passedVector2D Simple coordinate class that defines many helpful functions likeVersion This class holds version information that can be printed and compartedWPIGamepad WPI Gamepad extends Gamepad and adds functions that makes interacting with the underlying Joystick class easy.


Welcome to the third project of the Machine Learning Engineer Nanodegree! In this notebook, some template code has already been provided for you, and it will be your job to implement the additional functionality necessary to successfully complete this project. Sections that begin with 'Implementation' in the header indicate that the following block of code will require additional functionality which you must provide. Instructions will be provided for each section and the specifics of the implementation are marked in the code block with a 'TODO'
statement. Please be sure to read the instructions carefully!
In addition to implementing code, there will be questions that you must answer which relate to the project and your implementation. Each section where you will answer a question is preceded by a 'Question X' header. Carefully read each question and provide thorough answers in the following text boxes that begin with 'Answer:'. Your project submission will be evaluated based on your answers to each of the questions and the implementation you provide.
Note: Code and Markdown cells can be executed using the Shift + Enter keyboard shortcut. In addition, Markdown cells can be edited by typically double-clicking the cell to enter edit mode.
In this project, you will analyze a dataset containing data on various customers' annual spending amounts (reported in monetary units) of diverse product categories for internal structure. One goal of this project is to best describe the variation in the different types of customers that a wholesale distributor interacts with. Doing so would equip the distributor with insight into how to best structure their delivery service to meet the needs of each customer.
The dataset for this project can be found on the UCI Machine Learning Repository. For the purposes of this project, the features 'Channel'
and 'Region'
will be excluded in the analysis — with focus instead on the six product categories recorded for customers.
Run the code block below to load the wholesale customers dataset, along with a few of the necessary Python libraries required for this project. You will know the dataset loaded successfully if the size of the dataset is reported.
# Import libraries necessary for this project
import numpy as np
import pandas as pd
from IPython.display import display # Allows the use of display() for DataFrames
# Import supplementary visualizations code visuals.py
import visuals as vs
# Pretty display for notebooks
%matplotlib inline
# Load the wholesale customers dataset
try:
data = pd.read_csv("customers.csv")
data.drop(['Region', 'Channel'], axis = 1, inplace = True)
print "Wholesale customers dataset has {} samples with {} features each.".format(*data.shape)
except:
print "Dataset could not be loaded. Is the dataset missing?"
In this section, you will begin exploring the data through visualizations and code to understand how each feature is related to the others. You will observe a statistical description of the dataset, consider the relevance of each feature, and select a few sample data points from the dataset which you will track through the course of this project.
Run the code block below to observe a statistical description of the dataset. Note that the dataset is composed of six important product categories: 'Fresh', 'Milk', 'Grocery', 'Frozen', 'Detergents_Paper', and 'Delicatessen'. Consider what each category represents in terms of products you could purchase.
# Display a description of the dataset
display(data.describe())
To get a better understanding of the customers and how their data will transform through the analysis, it would be best to select a few sample data points and explore them in more detail. In the code block below, add three indices of your choice to the indices
list which will represent the customers to track. It is suggested to try different sets of samples until you obtain customers that vary significantly from one another.
# TODO: Select three indices of your choice you wish to sample from the dataset
indices = [20,201,320]
# Create a DataFrame of the chosen samples
samples = pd.DataFrame(data.loc[indices], columns = data.keys()).reset_index(drop = True)
print "Chosen samples of wholesale customers dataset:"
display(samples)
Consider the total purchase cost of each product category and the statistical description of the dataset above for your sample customers.
Hint: Examples of establishments include places like markets, cafes, delis, wholesale retailers, among many others. Avoid using names for establishments, such as saying "McDonalds" when describing a sample customer as a restaurant. You can use the mean values for reference to compare your samples with. The mean values are as follows:
Knowing this, how do your samples compare? Does that help in driving your insight into what kind of establishments they might be?
Answer: Customer 1 is in the upper quartile with regard to fresh products, and about average with all other products. This customer is likey a restaurant known for using fresh ingredients.
Customer 2 is near the bottom quartile with regard to fresh products, more than one standard deviation above the mean in milk, roughly 2 standard deviations above the mean in grocery and detergenss/paper, and about average in frozen and delicatessen. This customer is likely a supermarket, or wholesale retailer, that does not have a large inventory of fresh products.
Customer 3 is in the bottom quartile for fresh products, grocery, frozen, and detergents/paper, and at the median for milk and delicatessen. This customer is likely a small-to-mid-sized deli that also has a dessert menu.
One interesting thought to consider is if one (or more) of the six product categories is actually relevant for understanding customer purchasing. That is to say, is it possible to determine whether customers purchasing some amount of one category of products will necessarily purchase some proportional amount of another category of products? We can make this determination quite easily by training a supervised regression learner on a subset of the data with one feature removed, and then score how well that model can predict the removed feature.
In the code block below, you will need to implement the following:
new_data
a copy of the data by removing a feature of your choice using the DataFrame.drop
function.sklearn.cross_validation.train_test_split
to split the dataset into training and testing sets.test_size
of 0.25
and set a random_state
.random_state
, and fit the learner to the training data.score
function.# TODO: Make a copy of the DataFrame, using the 'drop' function to drop the given feature
feature = 'Detergents_Paper'
new_data = data.drop([feature],axis=1)
# TODO: Split the data into training and testing sets(0.25) using the given feature as the target
from sklearn.cross_validation import train_test_split
# Set a random state.
X_train, X_test, y_train, y_test = train_test_split(new_data,data.loc[:,feature],test_size=0.25,random_state=1)
# TODO: Create a decision tree regressor and fit it to the training set
from sklearn.tree import DecisionTreeRegressor
regressor = DecisionTreeRegressor(random_state=1,max_depth=5).fit(X_train,y_train)
# TODO: Report the score of the prediction using the testing set
y_pred = regressor.predict(X_test)
from sklearn.metrics import r2_score
score = r2_score(y_test,y_pred)
print score
Hint: The coefficient of determination, R^2
, is scored between 0 and 1, with 1 being a perfect fit. A negative R^2
implies the model fails to fit the data. If you get a low score for a particular feature, that lends us to beleive that that feature point is hard to predict using the other features, thereby making it an important feature to consider when considering relevance.
Answer: Predicting "Detergents and Paper" from the other features resulted in a r^2 score of 0.839, meaning roughly 84% of the variance in "Detergents and Paper" was able to be captured from the other features. As a results,customer spending habits will likely be able to identified without the inclusino of this feature.
To get a better understanding of the dataset, we can construct a scatter matrix of each of the six product features present in the data. If you found that the feature you attempted to predict above is relevant for identifying a specific customer, then the scatter matrix below may not show any correlation between that feature and the others. Conversely, if you believe that feature is not relevant for identifying a specific customer, the scatter matrix might show a correlation between that feature and another feature in the data. Run the code block below to produce a scatter matrix.
# Produce a scatter matrix for each pair of features in the data
pd.scatter_matrix(data, alpha = 0.3, figsize = (16,10), diagonal = 'kde');
#data.corr()
#import seaborn
#seaborn.heatmap(data.corr())
Hint: Is the data normally distributed? Where do most of the data points lie? You can use corr() to get the feature correlations and then visualize them using a heatmap(the data that would be fed into the heatmap would be the correlation values, for eg: data.corr()
) to gain further insight.
Answer: As can be seen in the diagonals on the scatter matrix, the features are not normally distributed, but more weighted towards the minimum than the maximum. This is also evident in the statistical description presented earlier: for each feature the median was significantly less than the mean. Thus, there are a few very large values that skew the data by raising the average.
The scatter plot of grocery vs detergents/paper (and vice versa) show a near linear relationship between the two features (which explains the ability to predict detergents/paper from the data set in the previous section). The output from data.corr() showed a 92% correlation bewteen these two features.
Grocery and Milk have a correlation of 72%. The scatter plot shows too many outliers to get a good correlation. Perhaps with outlier removal, a better correlation will appear.
In this section, you will preprocess the data to create a better representation of customers by performing a scaling on the data and detecting (and optionally removing) outliers. Preprocessing data is often times a critical step in assuring that results you obtain from your analysis are significant and meaningful.
If data is not normally distributed, especially if the mean and median vary significantly (indicating a large skew), it is most often appropriate to apply a non-linear scaling — particularly for financial data. One way to achieve this scaling is by using a Box-Cox test, which calculates the best power transformation of the data that reduces skewness. A simpler approach which can work in most cases would be applying the natural logarithm.
In the code block below, you will need to implement the following:
log_data
after applying logarithmic scaling. Use the np.log
function for this.log_samples
after applying logarithmic scaling. Again, use np.log
.# TODO: Scale the data using the natural logarithm
log_data = np.log(data)
# TODO: Scale the sample data using the natural logarithm
log_samples = np.log(samples)
# Produce a scatter matrix for each pair of newly-transformed features
pd.scatter_matrix(log_data, alpha = 0.3, figsize = (14,8), diagonal = 'kde');
After applying a natural logarithm scaling to the data, the distribution of each feature should appear much more normal. For any pairs of features you may have identified earlier as being correlated, observe here whether that correlation is still present (and whether it is now stronger or weaker than before).
Run the code below to see how the sample data has changed after having the natural logarithm applied to it.
# Display the log-transformed sample data
#display(log_samples)
log_data.corr()
Detecting outliers in the data is extremely important in the data preprocessing step of any analysis. The presence of outliers can often skew results which take into consideration these data points. There are many "rules of thumb" for what constitutes an outlier in a dataset. Here, we will use Tukey's Method for identfying outliers: An outlier step is calculated as 1.5 times the interquartile range (IQR). A data point with a feature that is beyond an outlier step outside of the IQR for that feature is considered abnormal.
In the code block below, you will need to implement the following:
Q1
. Use np.percentile
for this.Q3
. Again, use np.percentile
.step
.outliers
list.NOTE: If you choose to remove any outliers, ensure that the sample data does not contain any of these points!
Once you have performed this implementation, the dataset will be stored in the variable good_data
.
# For each feature find the data points with extreme high or low values
outliers = np.array([0])
for feature in log_data.keys():
# TODO: Calculate Q1 (25th percentile of the data) for the given feature
Q1 = np.percentile(log_data[feature],25)
# TODO: Calculate Q3 (75th percentile of the data) for the given feature
Q3 = np.percentile(log_data[feature],75)
# TODO: Use the interquartile range to calculate an outlier step (1.5 times the interquartile range)
step = 1.5*(Q3-Q1)
# Display the outliers
print "Data points considered outliers for the feature '{}':".format(feature)
ols = log_data[~((log_data[feature] >= Q1 - step) & (log_data[feature] <= Q3 + step))]
display(ols)
outliers = np.hstack((outliers,ols.index.values))
# OPTIONAL: Select the indices for data points you wish to remove
outliers = np.unique(outliers)
outliers = outliers[1:]
# Remove the outliers, if any were specified
good_data = log_data.drop(log_data.index[outliers]).reset_index(drop = True)
outliers
list to be removed, explain why.Hint: If you have datapoints that are outliers in multiple categories think about why that may be and if they warrant removal. Also note how k-means is affected by outliers and whether or not this plays a factor in your analysis of whether or not to remove them.
Answer: Customers 154, 65, 75, 66, and 128 were outliers in multiple categories. Outliers will draw the centroids in k-means away from the most dense clustering of the clusters. If an outlier exists in one feature, it will skew the centroid in towards the outlier in said outlier's dimension. If a sample contains an outlier in multiple features, it till skew the centroid not just in one dimension, but in the in multiple dimensions. Outliers may provide some insight into how the data is related. However, to get an initial picture of the data, outliers are should be removed. If the need arises, they can be added back in to get a more complete view of the dataset.
In this section you will use principal component analysis (PCA) to draw conclusions about the underlying structure of the wholesale customer data. Since using PCA on a dataset calculates the dimensions which best maximize variance, we will find which compound combinations of features best describe customers.
Now that the data has been scaled to a more normal distribution and has had any necessary outliers removed, we can now apply PCA to the good_data
to discover which dimensions about the data best maximize the variance of features involved. In addition to finding these dimensions, PCA will also report the explained variance ratio of each dimension — how much variance within the data is explained by that dimension alone. Note that a component (dimension) from PCA can be considered a new "feature" of the space, however it is a composition of the original features present in the data.
In the code block below, you will need to implement the following:
sklearn.decomposition.PCA
and assign the results of fitting PCA in six dimensions with good_data
to pca
.log_samples
using pca.transform
, and assign the results to pca_samples
.# TODO: Apply PCA by fitting the good data with the same number of dimensions as features
from sklearn.decomposition import PCA
pca = PCA(n_components=good_data.shape[1],random_state=1).fit(good_data)
# TODO: Transform log_samples using the PCA fit above
pca_samples = pca.transform(log_samples)
# Generate PCA results plot
pca_results = vs.pca_results(good_data, pca)
np.cumsum(pca.explained_variance_ratio_)
Hint: A positive increase in a specific dimension corresponds with an increase of the positive-weighted features and a decrease of the negative-weighted features. The rate of increase or decrease is based on the individual feature weights.
Answer: The first two principal components explain 72.5% of the variance in the data, and the first four principal components explain 92.8% of the total variance.
Looking at just the first 4 principal components, it can be seen that 92.8% of the variance can be explained by primarily looking at customer spending in Detergents/Paper, Fresh, Frozen, and Grocery.
Run the code below to see how the log-transformed sample data has changed after having a PCA transformation applied to it in six dimensions. Observe the numerical value for the first four dimensions of the sample points. Consider if this is consistent with your initial interpretation of the sample points.
# Display sample log-data after having a PCA transformation applied
display(pd.DataFrame(np.round(pca_samples, 4), columns = pca_results.index.values))
When using principal component analysis, one of the main goals is to reduce the dimensionality of the data — in effect, reducing the complexity of the problem. Dimensionality reduction comes at a cost: Fewer dimensions used implies less of the total variance in the data is being explained. Because of this, the cumulative explained variance ratio is extremely important for knowing how many dimensions are necessary for the problem. Additionally, if a signifiant amount of variance is explained by only two or three dimensions, the reduced data can be visualized afterwards.
In the code block below, you will need to implement the following:
good_data
to pca
.good_data
using pca.transform
, and assign the results to reduced_data
.log_samples
using pca.transform
, and assign the results to pca_samples
.# TODO: Apply PCA by fitting the good data with only two dimensions
pca = PCA(n_components=2,random_state=1).fit(good_data)
vs.pca_results(good_data, pca)
# TODO: Transform the good data using the PCA fit above
reduced_data = pca.transform(good_data)
# TODO: Transform log_samples using the PCA fit above
pca_samples = pca.transform(log_samples)
# Create a DataFrame for the reduced data
reduced_data = pd.DataFrame(reduced_data, columns = ['Dimension 1', 'Dimension 2'])
Run the code below to see how the log-transformed sample data has changed after having a PCA transformation applied to it using only two dimensions. Observe how the values for the first two dimensions remains unchanged when compared to a PCA transformation in six dimensions.
# Display sample log-data after applying PCA transformation in two dimensions
display(pd.DataFrame(np.round(pca_samples, 4), columns = ['Dimension 1', 'Dimension 2']))
A biplot is a scatterplot where each data point is represented by its scores along the principal components. The axes are the principal components (in this case Dimension 1
and Dimension 2
). In addition, the biplot shows the projection of the original features along the components. A biplot can help us interpret the reduced dimensions of the data, and discover relationships between the principal components and original features.
Run the code cell below to produce a biplot of the reduced-dimension data.
# Create a biplot
vs.biplot(good_data, reduced_data, pca)
Once we have the original feature projections (in red), it is easier to interpret the relative position of each data point in the scatterplot. For instance, a point the lower right corner of the figure will likely correspond to a customer that spends a lot on 'Milk'
, 'Grocery'
and 'Detergents_Paper'
, but not so much on the other product categories.
From the biplot, which of the original features are most strongly correlated with the first component? What about those that are associated with the second component? Do these observations agree with the pca_results plot you obtained earlier?
In this section, you will choose to use either a K-Means clustering algorithm or a Gaussian Mixture Model clustering algorithm to identify the various customer segments hidden in the data. You will then recover specific data points from the clusters to understand their significance by transforming them back into their original dimension and scale.
Hint: Think about the differences between hard clustering and soft clustering and which would be appropriate for our dataset.
Answer: Both K-means and Gaussian Mixture models look to find the best centroid to divide the data into a fixed number of segments. K-means is the most widely used clustering algorithm due to it's simplicity. However, K-means makes the assumption that a given point is either in one cluster or another, while gaussian mixture considers the probability that a data point is in one segment verses another and uses the variance of each cluster to ascertain the cluster a point is most likely to belong to. For clusters that are very different in size, gaussian mixture model can be more accurate than K-means.
Considering how skewed the data is (even after feature scaling), the best clusters in the dataset may not be uniform in size and variance. To account for this, the gaussian mixture model will be used.
Depending on the problem, the number of clusters that you expect to be in the data may already be known. When the number of clusters is not known a priori, there is no guarantee that a given number of clusters best segments the data, since it is unclear what structure exists in the data — if any. However, we can quantify the "goodness" of a clustering by calculating each data point's silhouette coefficient. The silhouette coefficient for a data point measures how similar it is to its assigned cluster from -1 (dissimilar) to 1 (similar). Calculating the mean silhouette coefficient provides for a simple scoring method of a given clustering.
In the code block below, you will need to implement the following:
reduced_data
and assign it to clusterer
.reduced_data
using clusterer.predict
and assign them to preds
.centers
.pca_samples
and assign them sample_preds
.sklearn.metrics.silhouette_score
and calculate the silhouette score of reduced_data
against preds
.score
and print the result.from sklearn.mixture import GaussianMixture as EM
from sklearn.metrics import silhouette_score as sScore
x=2
# TODO: Apply your clustering algorithm of choice to the reduced data
clusterer = EM(n_components=int(x),random_state=1).fit(reduced_data)
# TODO: Predict the cluster for each data point
preds = clusterer.predict(reduced_data)
# TODO: Find the cluster centers
centers = clusterer.means_
# TODO: Predict the cluster for each transformed sample data point
sample_preds = clusterer.predict(pca_samples)
# TODO: Calculate the mean silhouette coefficient for the number of clusters chosen
score = sScore(reduced_data,preds)
print "Score for %d Clusters: %.3f"%(x,score)
Answer: 2 clusters resulted in the best silhouette score of 0.447. The results from the clusters tried are displayed below:
Once you've chosen the optimal number of clusters for your clustering algorithm using the scoring metric above, you can now visualize the results by executing the code block below. Note that, for experimentation purposes, you are welcome to adjust the number of clusters for your clustering algorithm to see various visualizations. The final visualization provided should, however, correspond with the optimal number of clusters.
# Display the results of the clustering from implementation
vs.cluster_results(reduced_data, preds, centers, pca_samples)
Each cluster present in the visualization above has a central point. These centers (or means) are not specifically data points from the data, but rather the averages of all the data points predicted in the respective clusters. For the problem of creating customer segments, a cluster's center point corresponds to the average customer of that segment. Since the data is currently reduced in dimension and scaled by a logarithm, we can recover the representative customer spending from these data points by applying the inverse transformations.
In the code block below, you will need to implement the following:
centers
using pca.inverse_transform
and assign the new centers to log_centers
.np.log
to log_centers
using np.exp
and assign the true centers to true_centers
.# TODO: Inverse transform the centers
log_centers = pca.inverse_transform(centers)
# TODO: Exponentiate the centers
true_centers = np.exp(log_centers)
# Display the true centers
segments = ['Segment {}'.format(i) for i in range(0,len(centers))]
true_centers = pd.DataFrame(np.round(true_centers), columns = data.keys())
true_centers.index = segments
display(true_centers)
data.describe()
Hint: A customer who is assigned to 'Cluster X'
should best identify with the establishments represented by the feature set of 'Segment X'
. Think about what each segment represents in terms their values for the feature points chosen. Reference these values with the mean values to get some perspective into what kind of establishment they represent.
Answer: The quartile each segment belongs to relative to spending per catergory is illustrated below:
| . | Fresh | Milk | Grocery | Frozen | Detergents\Paper | Delicatessen |
|---|---|---|---|---|---|---|
| Segement 0 | 2 Qt | 4 Qt | 4 Qt | 2 QT | 4 QT | 3 QT |
| Segement 1 | 3 Qt | 2 Qt | 2 QT | 3 QT | 2 QT | 2 QT |
Segment 0 spends more on milk, groceries, detergents, and delicatessen than segment 1; segment 1 spends more on fresh and frozen than segment 0. In categories where segment 0 spends more, the difference is mostly 2 quartiles, while for catergories where segment 1 spends more, the difference is only 1 quartile. This suggests that the relative purchasing sizes of segment 0 exceeds that of segment 1.
This information suggests customers that are mapped to cluster 0 are relatively large entities that spend more on goods that are likely to be sold (groceries, paper, soaps, deli meat, milk) and at a volume that suggests bulk purchases. Supermarkets and grocery stores would likely fall into this cluster. Customers mapped to cluster 1 are smaller customers that spend more on items that are likely to be prepared (fresh goods and frozen goods). Restaurants would likely fall into this cluster.
Run the code block below to find which cluster each sample point is predicted to be.
# Display the predictions
for i, pred in enumerate(sample_preds):
print "Sample point", i, "predicted to be in Cluster", pred
Answer: 1 - R 2- S 3 - R The clustering algorithm suggests that customers 1 and 2 are supermarkets, and customer 3 is a restaurant. In Question 1, it was predicted that customer 1 and 3 are restaurants, and customer 2 is a supermarket. 2 out of the three predictions agree with the findings of the clustering algorithm.
In this final section, you will investigate ways that you can make use of the clustered data. First, you will consider how the different groups of customers, the customer segments, may be affected differently by a specific delivery scheme. Next, you will consider how giving a label to each customer (which segment that customer belongs to) can provide for additional features about the customer data. Finally, you will compare the customer segments to a hidden variable present in the data, to see whether the clustering identified certain relationships.
Companies will often run A/B tests when making small changes to their products or services to determine whether making that change will affect its customers positively or negatively. The wholesale distributor is considering changing its delivery service from currently 5 days a week to 3 days a week. However, the distributor will only make this change in delivery service for customers that react positively.
Hint: Can we assume the change affects all customers equally? How can we determine which group of customers it affects the most?
Answer: Make the change for the half (or any subset) of the customers belonging to each of the segments. The customer segmentation implies that there are two distinct groups among the customers, each with a different set of needs. By testing the delivery schedule with an A/B test for each of the segments, the distributor can test the new distribution schedule on both customer segments, and discern whether or not to extend the new distribution schedule to the entire segment.
Additional structure is derived from originally unlabeled data when using clustering techniques. Since each customer has a customer segment it best identifies with (depending on the clustering algorithm applied), we can consider 'customer segment' as an engineered feature for the data. Assume the wholesale distributor recently acquired ten new customers and each provided estimates for anticipated annual spending of each product category. Knowing these estimates, the wholesale distributor wants to classify each new customer to a customer segment to determine the most appropriate delivery service.
Hint: A supervised learner could be used to train on the original customers. What would be the target variable?
Answer: Train a supervised classifier on the original data that is labeled via clustering. Once the classifier is trained and performs well on cross validation and test sets, use the classifier on the new customers to determine which segment they most likely belong in.
At the beginning of this project, it was discussed that the 'Channel'
and 'Region'
features would be excluded from the dataset so that the customer product categories were emphasized in the analysis. By reintroducing the 'Channel'
feature to the dataset, an interesting structure emerges when considering the same PCA dimensionality reduction applied earlier to the original dataset.
Run the code block below to see how each data point is labeled either 'HoReCa'
(Hotel/Restaurant/Cafe) or 'Retail'
the reduced space. In addition, you will find the sample points are circled in the plot, which will identify their labeling.
# Display the clustering results based on 'Channel' data
vs.channel_results(reduced_data, outliers, pca_samples)
Answer: The clustering algorithm works very will with segmenting the Hotel/Restaurant/Cafe customers and Retailer customers. These labels fit near-perfectly with my previous definition of the customer segments. I used the term 'supermarket' instead of 'retailer', and limited customer segment 1 to only restaurants.
Note: Once you have completed all of the code implementations and successfully answered each question above, you may finalize your work by exporting the iPython Notebook as an HTML document. You can do this by using the menu above and navigating to
File -> Download as -> HTML (.html). Include the finished document along with this notebook as your submission.


DfE enquiries
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
News story
A comment from the Education Secretary on A levels.
In the next fortnight there will be many more opportunities to applaud the talent, ambition and achievement of our young people.
Thousands of them will find that they have surpassed their own expectations and that years of hard work has paid off. They will secure the A level results they dreamt of and a university place or apprenticeship will be theirs.
This week of all weeks, they deserve to savour that success. Our society has not always valued academic achievement as it should. In the past, access to excellence was rationed with a majority of young people banished from the education system in their teens. University was assumed to be a minority pursuit. Influential voices still argue that having half our children go on to higher education is a mistake; that university expansion has gone too far; that more students must settle for less. But these critics never say whose children should be denied the chance to shine. And they certainly never assume it should be their own.
It is one of the great joys of my job that so many young people refuse to be held back by the enemies of promise. In more and more schools excellence is becoming a universal expectation, academic study a driving purpose. Whether it is Burlington Danes Academy, West London, Perry Beeches Academy, Birmingham, the marvellous Woolwich Polytechnic School for Boys or the inspirational Paddington Academy, comprehensive schools with disadvantaged intakes are producing amazing academic results. Students from communities that were written off a generation ago are now making it to Russell Group universities in their hundreds.
Some of these schools are criticised for their remorseless emphasis on academic excellence – and especially their success in traditional subjects such as English, maths, physics, chemistry, biology, history, geography and modern and ancient languages. The line of attack is as familiar to me as the annual debate about whether standards are rising. These schools are Gradgrindian; they are exam factories.
What the critics ignore, of course, is that academic rigour is liberating, not limiting. Students with good passes, especially in traditional subjects, have more opportunities in life.
Mercifully, a new generation of heads and teachers have fought back and given a new generation of state school students the chance to compete for glittering prizes. Thanks to great heads such as Sir Dan Moynihan, Dame Sue John, David Hampson, Rachel de Souza, Mike Griffiths, Alice Hudson and many others, whose schools outperform the rest, the argument for uncompromising emphasis on academic excellence has been won.
Which is why tomorrow, and next week when the GCSE results come out, attention should be directed to the secrets of these heads’ success, and their students’ amazing achievements.
Our young people are as capable of academic excellence as anyone. They need to be. Because the world is getting more competitive and they are up against billions of others in the race for jobs and university places. That is why we must make sure that our exam system, the training ground on which they prepare for the adult world, can match the world’s best.
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Website: www.education.gov.uk/help/contactus
Published: 15 August 2012


Here, I will use JQuery to manipulate the CSS and make an animation to the box. Click the button to try it!
Click the Buttons!


Quick Start to the Sauce Labs iOS Real Device Cloud
We're proud to present the new Sauce Labs Real Device Cloud. Now, you can test your apps and websites on actual iOS devices like the iPhone 6.
We can do it because we've hooked real iOS devices up to the cloud, and made them run your tests just like iOS simulators... almost.
To get you started, we've put together some sample tests, with a sample app, that you can try -- right now -- with your own Sauce Labs account.
Table of Contents
Running the example tests
Sauce Labs works with Selenium libraries in any language, but the examples here are (for now) just in Python. So you'll need to be familiar with running scripts on the command line, and have Python 2.x or better installed.
To get these scripts to work, first you'll need a couple of environment variables.
Environment variables
SAUCE_USERNAME
should be the
username you use to log into https://saucelabs.com/.
SAUCE_ACCESS_KEY
should be the "access key" that Sauce assigned to you. To find it, first log into
your account on the Sauce Labs website.
- If you're using the new interface (it looks blue), click on your user account in the bottom left-hand corner. This should pop open a menu. Click on User Settings. This opens your User Settings page. Scroll down to find your Access Key.
- In the old interface (it looks more red and yellow), the Access Key is in the grey column on the left hand side.
Linux or Mac OS X users
Type these commands:
export SAUCE_USERNAME=your_username
export SAUCE_ACCESS_KEY=your_access_key
You might want to add these lines to your shell's startup profile, which for most people
is in their home directory under .bash_profile
.
Windows users
Type these commands:
set SAUCE_USERNAME=your_username
set SAUCE_ACCESS_KEY=your_access_key
You might want to add this to your default environment variables.
Install test libraries
If you use Sauce already, you almost certainly have this stuff, but in case you are
on a fresh machine: in the shell, enter the directory where you installed these files.
And then, install dependencies with pip install -r requirements.txt
.
How to run the tests
Log into your account on Sauce Labs. It's not necessary, but it's just interesting to watch the tests progress.
In a shell, enter the directory containing the test files. To run the tests, just type nosetests -vv
.
nosetests
will find anything that looks like a test and run it. It may take a while before you
see anything, but soon you'll see tests running, in your shell and in the web interface for your account!
How to write your own tests
Hopefully that worked (if it didn't, see the contact info below) and you're interested in writing your own tests now. Let's have a look at these example tests for clues about how to write your own.
Web tests
To start, let's look at test_web.py
, and see what's happening.
test_web
peforms a simple test of a web page, on two different platforms; an iPhone 6 simulator, and
an iPhone 6. The @on_platforms
decorator is just a handy way of running the same test on various platforms.
As you can see, the capabilities
for a real device are very similar to those for a simulator.
The only difference is that instead of saying "deviceName": "iPhone 6"
, you use "deviceName": "iPhone 6 Device"
.
And that's just about it. There isn't much that's different for a web test between platforms.
The one thing to watch out for is that we haven't yet released Sauce Connect for iOS Real Devices. But it's on the way! Check with Sauce Labs for updates.
App tests
Pop open the file test_app.py
and have a look!
This performs a really simple test on a simple app. The app has two views, and the test just clicks on one button and checks if the view has changed.
You specify a real device in your capabilities just like the web test - "deviceName": "iPhone 6 Device"
.
You put the app in "app"
, but there are a few things to watch out for:
Building
Up till now you've probably only been uploading simulator apps to Sauce Labs. But if you run your app on a real iOS device, it has to be compiled and archived specially for one.
We can't go into a full discussion of how to compile iOS apps, but here are some tips to get you started:
- You can make a
.app
directory or an.ipa
. (See the Uploading section). - If you are using Apple's development IDE, XCode, you will have to create a "scheme" which archives the application to a file. Then use that as your app file. Here's where to start in Apple's documentation:
-
If you are building with the command-line tool,
xcodebuild
, the arguments should include:-arch armv7 -sdk iphoneos
This StackOverflow post, xcodebuild simulator or device? may also help.
Uploading
Sauce Labs can accept your app in two formats.
- As an IPA archive, whose filename must end in
.ipa
; or - A zipped
.app
directory, whose filename must end in.zip
.
The big difference from simulator tests is that you have to upload a real device iOS app to
Sauce Storage first. And
then, to test the app you just uploaded, use a sauce-storage:
URL as the app
property in the capabilities.
For instance, if your app is called your_app.zip
, you would upload it to Sauce Storage, and then in the capabilities for
your test you would use app: "sauce-storage:your_app.zip"
.
Sauce Storage is a convenient place to temporarily store files that your tests will need. Rather than waste time and bandwidth transferring the file over to us for every test, you can just upload it to us once, in a secure, private area.
If you want to upload the app yourself ahead of time, the saucestorage
helper library, included here, could be of use. Or,
use a simple shell command with curl
. See the Sauce Storage API documentation.
If you write tests in Python, we've made it extra easy with the helpers in this package. sauce_storage_upload("path/to/your_app.zip")
will upload
the file and return the correct sauce-storage:
URL.
Provisioning
Here's a thing you don't have to worry about, but in case you have questions:
You may already be aware that iOS apps in development won't run on just any device. They need to be "provisioned" for that device, first. But you don't have to do anything special to ensure your apps are "provisioned" for our iOS Devices. We've taken care of all that by re-provisioning your apps for our devices, on the fly.
Long story short: if you can run your app on an iOS real device, so can we.
Where to find out more
We're still producing supporting materials for the iOS Real Device Cloud, so if you have any questions contact Chiarng Lin or Neil Manvar.


--- layout: default title: Home --- Welcome to Zhuobin's online space. You will find math handouts and other useful information for my lectures at Jinan University.


The purpose of this exercise is to gain experience with html and its formatting. This includes learning about things like:
Here's a link to a website where you can draw fun art. like in the images on this site


Log in
/
Sign up
Pool n Ride
Home
Rides
Ride Now
About Us
Contact
Sanskar Gupta
Web Designer
Team Lead
Tanishq Kashyap
UI Designer
Member
Chetas Shree.M
Web Devloper
Member
Vartika Yaduvanshi
Web Designer
Member


{% autoescape true %}
Welcome back, {{username}}. The links below will allow you to browse your currently purchased learning modules or you can browse for new learning modules