Google Design Challenge
- Name
- WaterlooMaint
- Type
- Google Design Challenge(Individual)
- Tools
- Illustrator, Figma
- Duration
- A week
- My Role
- User research, Wireframes, Prototypes and visual design
What is the problem? (Prompt)
Improve the upkeep of campus facilities by creating a new system for reporting any facilities that may need maintenance or repair. Design an experience that allows students to report building or equipment issues on campus. Consider the process of those filing the report and of those receiving and taking action on the issues.
How does the current system work? (Research)
I decided to approach the problem by really understanding it first. I spoke with people at the service desk, student union, library receptions, etc. Turn out, what I heard the most is:
“I’m not exactly sure how it works, but you can probably talk to …”
If even the staff does not know the process, it would only be harder for the students.
Who are the people involved ?
Research on the students
“I never bother reporting it because I assume it would eventually be fixed.” - Kelly (4th year AFM student)
“I don’t really know how to report it, there are usually other chairs that work anyway.” - Han (2nd year CS student)
“Mostly just lazy, it is too much work.” - Jenny (3rd year Math student)
Problems I indentified after my research
- 1. Too much paperwork
- 2. Unsure which department to reach
- 3. No staff around / not business hour
- 4. Too much work describing locations and the issues
- 5. Methods of reporting can only be found through googling
How can these problems be solved?
- How might we make the report process clear with least actions required?
- How might we ensure all reports are being received and handled properly?
- How might we reduce the paperwork without losing the management quality?
Brainstorming
- QR Code
- Location ID
- Instant Feedback
- Parking lot report for free ticket
- Virtual Report
- Photo/video description
- Admin Setting
- Assigning feature
- Annual Report
- Chat Room
Solution
User flow of the old system
User flow of the improved system
How it works?
Wireframes
Link to wireframe file in FigmaPrototypes
Step 1 : QR code for students to report
- Student / staff scan QR Code with location ID
- Confirm location
- Select broken equipment/facility
- Add description (optional)
- Add photo (optional)
- Add email for update (optional)
- Submit!
Step 2 : Mobile App for staffs
- Staff received student reports
- Review and send reports to Plant Operation
- - Report on the spot
- - Instant report
- - Status Tracking
- - Paperless form
Animated demo
Step 3 :Desktop for plant operation
A management desktop software for plant operations to better organize, assign work, and keep track of the reports.
- - Annual Report
- - Team performance
- - Which equipment brand to avoid purchasing (if constant repair needed)
- - Which building needs more maintenance
Step 4: Automated emails sent to repair workers
- - Repair Workers received automatic email from WaterlooMaint
- - Go fix the facility
- - Sign report through link in email
- - All done!
Link to Prototypes in file in Figma
Design decisions
Why chose yellow as the primary colour?
- Yellow and black are the two colours that represent University of Waterloo.
- Choosing such colour palette help build
- Sense of familiarity
- Trust between the platform and users
- I have also used material design as a guide to choose the shade of yellow
Why having the burger menu instead of a tab bar?
- Through my research, I realized not all staffs are tech-savvy.
- I decided to keep the interface simple by having only the receive and send report functions.
Other taps are available through the burger menu rather than a tab bar menu as they are not essential for day-to-day use.
Changes I made from wireframes to prototypes
- Sense of familiarity
- Trust between the platform and users
- Through my research, I realized not all staffs are tech-savvy.
- I decided to keep the interface simple by having only the receive and send report functions. Other taps are available through the burger menu rather than a tab bar menu as they are not essential for day-to-day use.
Changes I made from wireframes to prototypes
It was a tough decision to make getting rid of the wheel and placing the camera button on the left side of the screen.
The left interface seems cooler, I figured the mockup on the right is more intuitive and and easier to navigate.
To be improved
If I have more time, I would try to improve the following things:
- - the flow of scheduling and assigning to worker
- - The detailed data visualization of the statistics page
- - A case study on where the QR codes should be placed (E.g Line-ups, study table, etc)
- - Improve the UI as I ended up spending most time doing the research


Home
(current)
Link
Disabled
Dropdown
Action
Another action
Something else here
Templates
1. Seeling Car
Create
2. Selling a flat
Create
3. Company starting
Create
My documents
1. Volkswagen Passat
Seeling Car
Open
×
2. Opel Astra
Seeling Car
Open
×
3. BMW X5
Seeling Car
Open
×


{% extends "register/base.html" %} {% block content %}
A password reset email has been sent Please reset from the link in the email


Dear {{Name}},
Your data was successfully imported.
With best regards.
This system was created with {{ProductUri}}


Videos
About
Contact
Kathryn's Video Portfolio
Witness the greatest videos you have ever set eyes on


The radical of n, rad(n), is the product of distinct prime factors of n. For example, 504 = 23 32 7, so rad(504) = 2 3 7 = 42.
If we calculate rad(n) for 1 n 10, then sort them on rad(n), and sorting on n if the radical values are equal, we get:
|
Unsorted |
Sorted |
||||
|
n |
rad(n) |
|
n |
rad(n) |
k |
|
1 |
1 |
1 |
1 |
1 |
|
|
2 |
2 |
2 |
2 |
2 |
|
|
3 |
3 |
4 |
2 |
3 |
|
|
4 |
2 |
8 |
2 |
4 |
|
|
5 |
5 |
3 |
3 |
5 |
|
|
6 |
6 |
9 |
3 |
6 |
|
|
7 |
7 |
5 |
5 |
7 |
|
|
8 |
2 |
6 |
6 |
8 |
|
|
9 |
3 |
7 |
7 |
9 |
|
|
10 |
10 |
10 |
10 |
10 |
Let E(k) be the kth element in the sorted n column; for example, E(4) = 8 and E(6) = 9.
If rad(n) is sorted for 1 n 100000, find E(10000).


vue-snip Max lines: Snipping method: css js Card width: Other options: Snip the card text Show floated element {{ code }} What is Vue.js? {{ displayText }} {{ displayText }}


measure_activity.Rd
map_go_annot() annotates genes with Gene Ontology terms including less specific terms. It automatically loads correct OrgDb package given taxonomy_id
. Then it selects GOALL annotations for genes provided in keys
, filter by ontology branch and evidence codes. Finally it maps GO term names using GO.db and returns annotations in list and data.table formats. This function can be used to retrieve other gene annotations from OrgDb (e.g OMIM, PFAM) but those will not be mapped to readable names.
filter_go_annot() filters GO annotations by ontology file, GO branch, number of genes annotated
measure_activity() annotates genes with GO terms and measures their activities
load_go_ontology() load GO slim ontology file and return file path
map_gwas_annot() Load known GWAS loci for all phenotypes in GWAS Catalog. For each the keys
find which phenotypes it is associated with using genes mapped by GWAS Catalog.
map_promoter_tf() load data mapping TF->target gene regulation via co-occurence of multiple motifs for the same TF in promoters (courtesy of Krzysztof Polanski who generated this resource). This TF datasets does not produce useful results with > 5 scRNA-seq datasets, so more bespoke approach is needed, and TF-target mapping can be provided with "custom" option of measure_activity().
map_go_annot(taxonomy_id = 9606, keys = c("TP53", "ALB"), columns = c("GOALL"), keytype = "ALIAS", ontology_type = c("BP", "MF", "CC"), evidence_code = "all", localHub = FALSE, return_org_db = FALSE, ann_hub_cache = AnnotationHub::getAnnotationHubOption("CACHE")) filter_go_annot(annot, ontology_file = NULL, lower = 1, upper = Inf, ontology_type = c("BP", "MF", "CC")) measure_activity(expr_mat, which = c("BP", "MF", "CC", "gwas", "custom")[1], activity_method = c("AUCell", "pseudoinverse")[1], keys = rownames(expr_mat), keytype = "ALIAS", ontology_file = NULL, taxonomy_id = 10090, evidence_code = "all", localHub = FALSE, ann_hub_cache = AnnotationHub::getAnnotationHubOption("CACHE"), lower = 1, upper = Inf, variant_context = NULL, return_as_matrix = FALSE, annot_dt = NULL, assay_name = "logcounts", aucell_options = list(aucMaxRank = nrow(expr_mat) * 0.05, binary = F, nCores = 3, plotStats = TRUE)) load_go_ontology(ont_dir = "./data/", ont_file = "goslim_generic.obo") map_gwas_annot(taxonomy_id = 9606, keys = c("TP53", "ZZZ3"), keytype = "SYMBOL", localHub = FALSE, ann_hub_cache = AnnotationHub::getAnnotationHubOption("CACHE"), gwas_url = "https://www.ebi.ac.uk/gwas/api/search/downloads/alternative", gwas_file = "gwas_catalog_v1.0.2-associations_e93_r2019-01-31.tsv", lower = 1, upper = Inf, variant_context = NULL) map_promoter_tf(keys = c("TP53", "ZZZ3"), keytype = "SYMBOL", lower = 1, upper = Inf)
| taxonomy_id | Taxonomy id of your species. 9606 is human, 10090 is mouse. Find your species id using taxonomy search by UniProt: https://www.uniprot.org/taxonomy/. |
|---|---|
| keys | gene or protein identifiers of |
| columns | columns to retrieve. Default is GOALL: GO Identifiers (includes less specific terms), colsAndKeytypes. |
| keytype | type of |
| ontology_type | specify which branch of gene ontology to retrieve annotations from. |
| evidence_code | specify which evidence should have been used to annotate genes with GO terms. Use |
| localHub | set localHub = FALSE for working offline. Details AnnotationHub. |
| return_org_db | return OrgDb database link instead of gene annotations. |
| ann_hub_cache | If needed, set location of local AnnotationHub cache to specific directory by providing it here. To view where cache is currently located use getAnnotationHubOption("CACHE") |
| annot | GO annotations, output of map_go_annot() |
| ontology_file | path (url) to ontology file in obo format |
| lower | lower limit on size of gene sets (inclusive) |
| upper | upper limit on size of gene sets (exclusive) |
| expr_mat | expression matrix (genes in rows, cells in columns) or one of: dgCMatrix, ExpressionSet, and SummarizedExperiment or SingleCellExperiment both of which require assay_name. |
| which | which set activities to measure? Currently implemented "BP", "MF", "CC" gene ontology subsets. Use "gwas" for constructing gene sets with gwas_catalog v1.0.2. GWAS option works only with human hgnc identifiers. TF data is added supplied with the package and works only for human data, only SYMBOL and ENSEMBL can be used as keytype. Use "custom" to provide your own gene sets in |
| activity_method | find activities using find_set_activity_AUCell or find_set_activity_pseudoinv? |
| variant_context | select traits (which = "gwas") based on variant context (coding, intronic, UTR, intergenic). Find availlable options by running |
| return_as_matrix | return matrix (TRUE) or data.table (FALSE) |
| annot_dt | data.table, data.frame or matrix containing custom gene set annotations. The 1st column should contain gene set identifier or name, the 2nd column should contain gene identifiers matching |
| assay_name | name of assay in SummarizedExperiment or SingleCellExperiment, normally counts or logcounts |
| aucell_options | additional options specific to AUCell, details: find_set_activity_AUCell |
| ont_dir | directory where to save ontology |
| ont_file | which ontology file to load? |
| gwas_url | where to download annotations? Useful for other versions of GWAS Catalog. |
| gwas_file | name of the file where to store GWAS Catalog data locally (in ann_hub_cache directory). |
list (S3 class ParetoTI_annot) containing GO annotations in list and data.table formats, and OrgDb database link.
GO consortium annotates genes with the most specific terms so there is a need to propagate annotations to less specific parent terms. For example, "apoptotic process in response to mitochondrial fragmentation" (GO:0140208) is an "apoptotic process" (GO:0006915). Conceptually, if gene functions in the first it also functions in the second but it is only directly annotated by the first term. So, using GO annotations for functional enrichment requires propagating annotations to less specific terms.
annot = map_go_annot(taxonomy_id = 9606, keys = c("TP53", "ALB", "GPX1"), columns = c("GOALL"), keytype = "ALIAS", ontology_type = c("BP", "MF", "CC"))#>#>#>#>#>#>#>#>#> #>#>#> #> #> #>#>#> #>#>#> #> #> #> #> #> #> #>#>#>#> #> #> #>#>#>#> #>#>#> #>#>#> #>#> #>#>#> #>annot2 = filter_go_annot(annot, ontology_file = "http://www.geneontology.org/ontology/subsets/goslim_generic.obo", lower = 50, upper = 2000, ontology_type = "BP") activ = measure_activity(expr_mat, which = "BP", taxonomy_id = 9606, keytype = "ALIAS", ontology_file = load_go_ontology("./data/", "goslim_generic.obo"))#>#>#>#>#> Error in rownames(expr_mat): object 'expr_mat' not found


{Title} Close Title {Title} Released {Released} Runtime {Runtime} Genre {Genre} Director {Director} Writer {Writer} Actors {Actors} Plot {Plot}


Currently studying a Masters in E-business at Newcastle University, graduating in 2017. Previously an IT Consultant and Web/Software Developer with experience in various businesses and projects.
Download C.V.
You can view/download my C.V. by clicking the link below


https://github.com/apache/tomcat-training
Tag for content as at start of course
New tag for any errata
<EMAIL_ADDRESS>http://tomcat.apache.org/presentations.html
http://tomcat.apache.org/conference.html


Photographs in Chicago Water Walk are courtesy of Irene Miles and Gregg Woodward.
Exceptions:
Sanitary and Ship Canal construction cranes, Chicago History Museum, I C H i - 0 5 8 5 9
Illinois Central Railroad north of Harrison Street toward Van Buren Street Station and viaduct, Chicago History Museum, I C H i - 3 4 6 6 1
Arial view of Northerly Island and lagoon at the Century for Progress International Exposition world’s fair, Chicago History Museum, I C H i - 3 1 1 1 7
View from lake of crowds and launches at east end of Municipal Pier, Chicago History Museum, I C H i - 1 9 5 7 8
Lumber schooner on the Chicago River, Chicago History Museum, I C H i - 0 5 4 1 5
Shore of Lake Michigan from 23rd Street, Chicago History Museum, I C H i - 0 3 2 1 1
Northerly Island Park site strategy, Chicago Park District
N. Michigan Avenue Du Sable Bridge, Chicagoloopbridges.org
Jumping Asian carp, Jonathan Freedman, Illinois Natural History Survey
Zebra mussel, Michigan Sea Grant
Lake trout, Michigan Sea Grant
Michigan Avenue at Grant Park 1890, Newberry Library
Eurasian water mil-foil, Robert L. Johnson, Cornell University, Bugwood.org
Shipwreck EB Allen in upper Lake Huron, Thunder Bay National Marine Sanctuary
Diversion of Chicago waterways, United States Geological Survey
Deep Tunnel at Thornton, Metropolitan Water Reclamation District of Great Chicago
Tributary of South Branch, Metropolitan Water Reclamation District of Great Chicago


The Voyages of Doctor Dolittle
by Hugh Lofting
Part 5, Chapter 1: A Great Moment
Additional Information
- Year Published: 1922
- Language: English
- Country of Origin: England
- Source: Lofting, H. (1922). The Voyages of Doctor Dolittle. London, England: Lippincott Publishing.
-
Readability:
- Flesch–Kincaid Level: 4.2
- Word Count: 1,724
- Genre: Fantasy
- Keywords: 20th century literature, british literature, children's literature
- ✎ Cite This
Downloads
The next part of our problem was the hardest of all: how to roll aside, pull down or break open, that gigantic slab. As we gazed up at it towering above our heads, it looked indeed a hopeless task for our tiny strength.
But the sounds of life from inside the mountain had put new heart in us. And in a moment we were all scrambling around trying to find any opening or crevice which would give us something to work on. Chee-Chee scaled up the sheer wall of the slab and examined the top of it where it leaned against the mountain's side; I uprooted bushes and stripped off hanging creepers that might conceal a weak place; the Doctor got more leaves and composed new picture-letters for the Jabizri to take in if he should turn up again; whilst Polynesia carried up a handful of nuts and pushed them into the beetle's hole, one by one, for the prisoners inside to eat.
"Nuts are so nourishing," she said.
But Jip it was who, scratching at the foot of the slab like a good ratter, made the discovery which led to our final success.
 You never saw such easy digging. I guess the cave behind must be just too high up for the Indians to reach the earth with their hands, or they could have scraped a way out long ago. If we can only scratch the earth-bed away from under, the slab might drop a little. Then maybe the Indians can climb out over the top."
The Doctor hurried to examine the place where Jip had dug.
"Why, yes," he said, "if we can get the earth away from under this front edge, the slab is standing up so straight, we might even make it fall right down in this direction. It's well worth trying. Let's get at it, quick."
We had no tools but the sticks and slivers of stone which we could find around. A strange sight we must have looked, the whole crew of us squatting down on our heels, scratching and burrowing at the foot of the mountain, like six badgers in a row.
After about an hour, during which in spite of the cold the sweat fell from our foreheads in all directions, the Doctor said,
"Be ready to jump from under, clear out of the way, if she shows signs of moving. If this slab falls on anybody, it will squash him flatter than a pancake."
Presently there was a grating, grinding sound.
"Look out!" yelled John Dolittle, "here she comes!—Scatter!"
We ran for our lives, outwards, toward the sides. The big rock slid gently down, about a foot, into the trough which we had made beneath it. For a moment I was disappointed, for like that, it was as hopeless as before—no signs of a cave-mouth showing above it. But as I looked upward, I saw the top coming very slowly away from the mountainside. We had unbalanced it below. As it moved apart from the face of the mountain, sounds of human voices, crying gladly in a strange tongue, issued from behind. Faster and faster the top swung forward, downward. Then, with a roaring crash which shook the whole mountain-range beneath our feet, it struck the earth and cracked in halves.
How can I describe to any one that first meeting between the two greatest naturalists the world ever knew, Long Arrow, the son of Golden Arrow and John Dolittle, M.D., of Puddleby-on-the-Marsh? The scene rises before me now, plain and clear in every detail, though it took place so many, many years ago. But when I come to write of it, words seem such poor things with which to tell you of that great occasion.
I know that the Doctor, whose life was surely full enough of big happenings, always counted the setting free of the Indian scientist as the greatest thing he ever did. For my part, knowing how much this meeting must mean to him, I was on pins and needles of expectation and curiosity as the great stone finally thundered down at our feet and we gazed across it to see what lay behind.
 In the centre of this opening stood an enormous red Indian, seven feet tall, handsome, muscular, slim and naked—but for a beaded cloth about his middle and an eagle's feather in his hair. He held one hand across his face to shield his eyes from the blinding sun which he had not seen in many days.
"It is he!" I heard the Doctor whisper at my elbow. "I know him by his great height and the scar upon his chin."
And he stepped forward slowly across the fallen stone with his hand outstretched to the red man.
Presently the Indian uncovered his eyes. And I saw that they had a curious piercing gleam in them—like the eyes of an eagle, but kinder and more gentle. He slowly raised his right arm, the rest of him still and motionless like a statue, and took the Doctor's hand in his. It was a great moment. Polynesia nodded to me in a knowing, satisfied kind of way. And I heard old Bumpo sniffle sentimentally. Then the Doctor tried to speak to Long Arrow. But the Indian knew no English of course, and the Doctor knew no Indian. Presently, to my surprise, I heard the Doctor trying him in different animal languages.
"How do you do?" he said in dog-talk; "I am glad to see you," in horse-signs; "How long have you been buried?" in deer-language. Still the Indian made no move but stood there, straight and stiff, understanding not a word.
The Doctor tried again, in several other animal dialects. But with no result.
Till at last he came to the language of eagles.
"Great Red-Skin," he said in the fierce screams and short grunts that the big birds use, "never have I been so glad in all my life as I am to-day to find you still alive."
In a flash Long Arrow's stony face lit up with a smile of understanding; and back came the answer in eagle-tongue,
"Mighty White Man, I owe my life to you. For the remainder of my days I am your servant to command."
Afterwards Long Arrow told us that this was the only bird or animal language that he had ever been able to learn. But that he had not spoken it in a long time, for no eagles ever came to this island.
Then the Doctor signaled to Bumpo who came forward with the nuts and water. But Long Arrow neither ate nor drank. Taking the supplies with a nod of thanks, he turned and carried them into the inner dimness of the cave. We followed him.
Inside we found nine other Indians, men, women and boys, lying on the rock floor in a dreadful state of thinness and exhaustion.
 Quickly the Doctor went round them all and listened to their hearts. They were all alive; but one woman was too weak even to stand upon her feet.
At a word from the Doctor, Chee-Chee and Polynesia sped off into the jungles after more fruit and water.
While Long Arrow was handing round what food we had to his starving friends, we suddenly heard a sound outside the cave. Turning about we saw, clustered at the entrance, the band of Indians who had met us so inhospitably at the beach.
They peered into the dark cave cautiously at first. But as soon as they saw Long Arrow and the other Indians with us, they came rushing in, laughing, clapping their hands with joy and jabbering away at a tremendous rate.
Long Arrow explained to the Doctor that the nine Indians we had found in the cave with him were two families who had accompanied him into the mountains to help him gather medicine-plants. And while they had been searching for a kind of moss—good for indigestion—which grows only inside of damp caves, the great rock slab had slid down and shut them in. Then for two weeks they had lived on the medicine-moss and such fresh water as could be found dripping from the damp walls of the cave. The other Indians on the island had given them up for lost and mourned them as dead; and they were now very surprised and happy to find their relatives alive.
When Long Arrow turned to the newcomers and told them in their own language that it was the white man who had found and freed their relatives, they gathered round John Dolittle, all talking at once and beating their breasts.
Long Arrow said they were apologizing and trying to tell the Doctor how sorry they were that they had seemed unfriendly to him at the beach. They had never seen a white man before and had really been afraid of him—especially when they saw him conversing with the porpoises. They had thought he was the Devil, they said.
Then they went outside and looked at the great stone we had thrown down, big as a meadow; and they walked round and round it, pointing to the break running through the middle and wondering how the trick of felling it was done.
Travelers who have since visited Spidermonkey Island tell me that that huge stone slab is now one of the regular sights of the island. And that the Indian guides, when showing it to visitors, always tell THEIR story of how it came there. They say that when the Doctor found that the rocks had entrapped his friend, Long Arrow, he was so angry that he ripped the mountain in halves with his bare hands and let him out.


FROM THE DESK OF Mrs Yinus Sulihatu BANK OF AFRICA [BOA] OUAGADOUGOU, BURKINA FASO<EMAIL_ADDRESS>TOP SECRET Dear friend, Compliments, Salam Alaykum! I am the manager of bill and exchange at the foreign remittance department of BANK OF AFRICA. I am writting to seek your coperation over this business deal. In my department, I discovered an abandoned sum of$30.million USD(THIRTYmillion US dollars)only , in an account that belongs to one of our foreign customers who died along with his entire family in a plane crash that took place in Kenya,East Africa,the Late DR. GEORGE BRUMLEY,a citizen of Atlanta,United States of America but naturalised in Burkinafaso,West Africa and contractor with ECOWAS,(ECONOMIC COMMUNITY OF WEST AFRICAN STATES) . Since we got information about his death, we have been expecting his next of kin to come over and claim his money because it cannot be released unless somebody applies for it as next of kin or relation to the deceased as indicated in our banking guidelines but unfortunately , all his supposed next of kin or relation died alongside with him at the plane crash leaving nobody behind for the claim. It is therefore upon this discovery that I now decided to makethis businness proposal to you and release the money to you via your foreign bank account as the next of kin or relation to the deceased for safety and subsequent disbursement since nobody is coming for it and this money Could go into the Bank treasury as unclaimed Bill. The Banking law and guideline here stipulates that if such money remainedunclamed after four years, the money will betransfered into the Bank treasury as unclaimed fund.The request for your assistance and maximum co-operation as a foreign citizen to stand as the next of kin in this business is occasioned by the fact that the deceased customer was a foreigner and a Burkinabe cannot stand as next of kin to a foreigner. 40 % of this money will be for you as my foreign partner, inrespect to the provision of a foreign account. 10 %will be set aside for expences incured during the business and 50 % would be for me.There after I will come over to your country for disbursement accoding to the percentages indicated. Therefore to enable the immediate trnansfer of this fund to you as arranged,you must apply first to the bank as the relation or next of kin to the deceased,indicating your claims and wherein the money will be remitted . Upon receipt of your reply, I will send to you by fax or email the text of application which you will fill and submit to the office of the foreign remittance director of the bank of africa. I will not fail to bring to your notice that this transaction is stricly confidential and i will use my position in this Bank to effect a hitch free transfer of the fund. You should contact me immediately as soon as you receive this letter. Trusting to hear from you immediately. Please , visit the website below for more informations about the Plane Crash and the tragic death of the deceased and his entire family, Late DR. GEORGE BRUMLEY. http://www.cnn.com/2003/WORLD/africa/07/20/kenya.crash/index.html Your’s faithfully, Mrs Yinus Sulihatu Bill AND EXCHANGE MANAGER, BANK OF AFRICA<EMAIL_ADDRESS>_________________________________________________________________ Découvrez Windows Live Messenger : le futur de MSN Messenger ! www.windowslivemessenger.fr


This function is often used in conjunction with Pic.Height to obtain the dimensions of a picture loaded using Pic.FileNew.
var pic : int := Pic.FileNew ("lighthouse.jpg")
var width : int := Pic.Width (pic)
var height : int := Pic.Height (pic)
var x, y : int := 0
loop
exit when y > maxy
loop
exit when x > maxx
Pic.Draw (pic, x, y, picCopy)
x := x + width
end loop
x := 0
y := y + height
end loop
This means that you can only call the function by calling Pic.Width, not by calling Width.


Conference program
Jump directly to the Saturday
or Sunday program!
Saturday, May 17
| Time | Event |
| 9:45 | Space opens; breakfast; mingling |
| 10:30-11:15 |
|
| 11:15-11:30 | Break! |
| 11:30-12:15 |
|
| 12:15-1:15 | Unconferencing! |
| 1:15-2:30 | Lunch! |
| 2:30-4:00 |
- How I used my knowledge of code (and
music!) to help fight fires!,
by Bjorn
Roche
- Tasty Stacks!,
by Chloe
Weil
- Spying on your programs with
strace!!!,
by Julia
Evans
15 minute break!
- High Schoolers vs. Robots!!!!,
by Jennifer
Shin
- Computer vision and archeology!: Can
computers assemble ceramic artifacts?, by
Kamelia
Aryafar
|
| 4:00-4:30 | Break! |
| 4:30-5:30 |
- A 1,500 line (!!) switch statement powers
your Python!,
by Allison
Kaptur
- Just LOOK at the humongous type that
Hindley-Milner infers for this tiny program!,
by Aki
Yamada
- Continuations; or, how to travel through
time!,
by Michael
Arntzenius
- Weaving and Programming: More Related Than
You (Probably) Realize!,
by Allie
Jones
|
| 5:30-5:45 | Closing remarks! |
| 5:45 | Optional: find your dinner group! |
Sunday, May 18
| Time | Event |
| 9:45 | Space opens; breakfast; mingling |
| 10:30-11:15 |
- Opening remarks
- Keynote
talk: Camille
Fournier, How to Stay in Love with
Programming
|
| 11:15-11:30 | Break! |
| 11:30-12:15 |
- Serial! It's what's for breakfast., by Lisa Neigut
- Understanding Garbage Collection, through
Visualizing a One Pass Real-Time Generational
Mark-Sweep Garbage Collector!,
by Andrew
Gwozdziewycz
- L'Artiste et Le Programmeur!,
by Emily
Reese
|
| 12:15-1:15 | Unconferencing! |
| 1:15-2:15 | Lunch! |
| 2:15-3:45 |
- Making music with floppy drives! An
exercise in yak shaving,
by Rafik
Draoui
- The terrible Yook monster! Slayed by the
grandson of Master Prolog!,
by Guillaume
Marceau
- Map, Reduce, Awk!,
by Mark
Wunsch
15 minute break!
|
| 3:45-4:30 | Ice cream!!!! |
| 4:30-5:30 |
|
| 5:30 | Closing remarks! |
!!Con wouldn't have been possible
without the support of our fabulous sponsors!!


PicoContainer can add behaviors to components automatically during instantiation.
Behaviors are delivered by passing a BehaviorFactory reference into the PicoContainer instance on construction. For the most part BehaviorFactories are completely stateless, and the Behavior instances they make are not.
DefaultPicoContainer can take a behavior factory instance in its constructor:
pico = new DefaultPicoContainer(new BehaviorClass()); pico.addComponent(Foo.class); // other components added Foo foo = pico.getcomponent(Foo.class) // Foo instance will be affected by an additonal behavior.
Or it can take behaviours that wrap each other:
pico = new DefaultPicoContainer(new BehaviorClass().wrap(new AnotherBehaviorClass())); pico.addComponent(Foo.class); // other components added Foo foo = pico.getcomponent(Foo.class) // Foo instance will be affected by two additonal behaviors.
Behaviors can be signalled by properties per component:
pico = new DefaultPicoContainer(); pico.as(SOME_BEHAVIOR).addComponent(Foo.class); // the behavior has a property marking it, and the default component facory understands that property // other components added Foo foo = pico.getcomponent(Foo.class) // Foo instance will be affected by an additonal behavior.
You can build a container with the applicable property:
pico = new PicoBuilder().withXXXBehavior().build(); pico.addComponent(Foo.class); // other components added Foo foo = pico.getcomponent(Foo.class) // Foo instance will be affected by an additonal behavior.
Behaviors can be chained together by PicoBuilder:
import static org.picocontainer.behaviors.Behaviors.xxxxxxx; import static org.picocontainer.behaviors.Behaviors.yyyyyyy; ... pico = new PicoBuilder().withBehaviors(xxxxxxx(), yyyyyyy()).build(); pico.addComponent(Foo.class); // other components added Foo foo = pico.getcomponent(Foo.class) // Foo instance will be affected by two additonal behaviors.
Caching is where PicoContainer ensures that the same component instance is returned for second and subsequent getComponent() invocations. See the Caching behavior page. Other Dependency Injection Containers call this Singleton behavior.
Hiding Implementations is where PicoContainer ensures that the component that implements a abstract type can only be used as that abstract type by components that depend on it. Casting back to the implementation is vetoed. See the Hiding behavior page.
Synchronizing and Locking are variations on where PicoContainer ensures that components can used in a thread-safe way. See the Thread Safety behavior page.
AOP Style Interception is where PicoContainer can invoke functionality before or after component method execution. See the Interception behavior page.


Road and bridge projects are expected to make up one of the biggest chunks of the jobs created in the stimulus package. Below, you’ll find a chart of more than 5,800 projects that have been approved by the U.S. Department of Transportation. Once given the green light, states can put the projects out to bid, contract them and begin construction work. So far, about 2,300 projects are under way.
Help us find out how much progress has been made on these projects by participating in our Stimulus Spot Check.
For more on the stimulus, check out our blog and resource page.
| State | Urban Area | Project Description | Improvement Type | ARRA Funds Obligated |
|---|---|---|---|---|
| KANSAS | KANSAS CITY (MO) | US-69 CORRIDOR: FROM I-435 N TO .5 KM N OF 95TH ST IN OVERLAND PARK | Pavement Widening | $31,966,459 |
| KANSAS | KANSAS CITY (MO) | US-69 CORRIDOR: FROM .5 KM N OF 95TH ST N TO I-35 & I-35 N TO 75TH ST IN OVERLAND PARK/ LENEXA | Pavement Widening | $51,977,796 |
| KANSAS | CORR: K-61 FROM RN-MP CO LN NE TO APPX .2 MI NE OF CHISOLM RD | Pavement Widening | $36,046,133 | |
| KANSAS | CORR: K-61 FROM APPX .2 MI NE OF CHISOLM RD NE TO 4-LN | Pavement Widening | $36,839,656 | |
| KANSAS | KANSAS CITY (MO) | KANSAS CITY METROPOLITAN AREA - JOHNSON & WYANDOTTE COUNTIES | Other | $1,000,000 |
| KANSAS | KANSAS CITY (MO) | COLLEGE BLVD FROM PFLUMM RD TO US-69 IN OVERLAND PARK | Pavement Widening | $1,000,000 |
| KANSAS | WICHITA | ANDOVER RD FROM HARRY ST TO 1100' S OF US-54 IN ANDOVER | Pavement Widening | $1,234,800 |
| KANSAS | WICHITA | BROADWAY BR OVER CHISHOLM CR IN PARK CITY | Other | $63,000 |
| KANSAS | WICHITA | W GRAND AVE FROM MERIDIAN AVE TO N MAIN ST IN HAYSVILLE | Other | $18,000 |
| KANSAS | LAWRENCE | INTERSECTION @ N 2ND ST & LOCUST ST IN LAWRENCE | Safety/Traffic Management | $2,000,000 |
| KANSAS | KANSAS CITY (MO) | TONGANOXIE: US-24 @ NORTHSTAR DR | Pavement Improvement | $23,800 |
| KANSAS | 4TH AVE (RS-809) FROM US-75 TO WOOD ST IN CANEY | Pavement Improvement | $177,500 | |
| KANSAS | NATIONAL ST FROM LINKER ST TO WALL ST IN FORT SCOTT | Pavement Improvement | $228,180 | |
| KANSAS | 8TH ST FROM N CITY LIMITS TO MAIN ST IN OSAWATOMIE | Pavement Improvement | $118,380 | |
| KANSAS | BROADWAY ST FROM CENTENNIAL TO WILLIAMS IN PITTSBURG | Pavement Improvement | $265,500 | |
| KENTUCKY | JACKSON-CAMPTON: FROM 0.43 M N OF KY 15 AT JACKSON TO 0.31 M S OF STILL HOUSE HOLLOW. (G&D) | Pavement Improvement | $21,960,000 | |
| KENTUCKY | PROVIDE LEFT TURN LANE ON KY-15 @ WEST END OF WHITESBURG BYPASS. | Safety/Traffic Management | $1,589,000 | |
| KENTUCKY | TOMPKINSVILLE - KY-90 (PRIORITY SECTION 1): FROM 0.34MI SOUTH OF BUSHONG ROAD EXTENDING NORTHERLY TO 0.68MI SOUTH OF CYCLONE ROAD (GRADE DRAIN & INC. SURFACE). (02CCR)(2002BOP)(SEE 3-276.11 FOR 2005HP | Pavement Improvement | $9,590,000 | |
| KENTUCKY | REPAIR AND GRIND PAVEMENT ON I-24 EB & WB FROM 0.5 MILE E KY-293 (MP 45.133) IN LYON COUNTY TO KY-139 (MP 65.300) IN CALDWELL COUNTY. | Pavement Improvement | $12,226,812 | |
| KENTUCKY | CINCINNATI (OH) | PARIS-COVINGTON RD; RECONSTRUCT FROM SOUTH OF KY-154 TO CAMPBELL COUNTY PARK. | Pavement Widening | $29,120,000 |
| KENTUCKY | CINCINNATI (OH) | RECONSTRUCT 12TH ST. FR I-75 TO SCOTT STREET (OKI T.I.P.) | Pavement Improvement | $8,761,860 |
| KENTUCKY | 12th St (KY 1120) in Covington from Russell St to Scott Street. Grade, Drain, and Surface for Roadway Reconstruction. | Pavement Improvement | $1,000,000 | |
| KENTUCKY | REHABILITATE I-65, REPAIR AND GRIND PAVEMENT FROM MP 128.13 (FERN VALLEY ROAD) TO MP 131.89. | Pavement Improvement | $18,000,000 | |
| KENTUCKY | US 68/KY 80; LAND BETWEEN THE LAKES. CONVERT DESIGN/BUILD COSTS TO FEDERAL FUNDS | Pavement Widening | $30,000,000 | |
| KENTUCKY | BARDSTOWN-SPRINGFIELD; CONSTRUCT SPRINGFIELD NORTHWEST BYPASS. (02CCR)(06CCR) | New Construction | $15,938,900 | |
| KENTUCKY | RECONSTRUCT US-150/STANFORD-MT. VERNON ROAD FROM CRAB ORCHARD TO BRODHEAD. (06CCN)(FUNDING SWAP WITH 8-163.10 AS SHOWN IN 2006SYP) | Pavement Improvement | $32,182,400 | |
| KENTUCKY | MILL 1" THIN OVERLAY ON I-264 EB & WB FROM MP 22.61 TO I-71 (MP 22.97). | Pavement Improvement | $306,623 | |
| KENTUCKY | SOUTH STREETS AVENUE SIDEWALK PROJECT- REPLACEMENT OF OLD, DETERIORATING SIDEWALKS AND EXPANSION OF THE CURRENT SIDEWALK SYSTEM. CURB AND GUTTER WILL BE ADDED. BEAUTIFICATION PROJECTS WILL ALSO BE | Pavement Improvement | $196,000 | |
| KENTUCKY | POLK STREET EXTENSION PROJECT - PROJECT WILL ENABLE STUDENTS TO WALK OR BICYCLE TO 4 AREA SCHOOLS VIA SIDEWALK CONSTRUCTION,TRAFFIC CALMING MEASURES AND PEDESTRIAN AND BICYCLE CROSSING IMPROVEMENTS. | Transportation Enhancements | $247,000 | |
| KENTUCKY | MORGANFIELD WALKING AND BICYCLE TRAIL - ADD BICYCLE RACKS AND SIGNAGE, DESIGNATION OF BICYCLE LANES CONSTRUCTION OF BICYCLE AND WALKING TRAIL SYSTEM AND AESTHETIC IMPROVEMENTS. | Transportation Enhancements | $55,500 | |
| KENTUCKY | KY HISTORICAL SOCIETY HISTORIC MARKERS PHASE III - REPAIR OR REPLACEMENT OF DAMAGED HISTORICAL MARKERS. | Transportation Enhancements | $64,000 | |
| KENTUCKY | EMINENCE PEDESTRIAN WALKWAY - REPLACEMENT OF DETERIORATED SIDEWALKS THROUGH DOWNTOWN EMINENCE. | Transportation Enhancements | $82,500 | |
| KENTUCKY | US 31 W SIDEWALK PROJECT - INSTALLATION OF SIDEWALKS ALONG US 31 W. | Transportation Enhancements | $68,000 | |
| KENTUCKY | PEDESTRIAN FACILITY PROJECT -REPLACEMENT OF AGING, CRACKED AND BUCKLED SIDEWALKS IN DOWNTOWN HARTFORD. | Transportation Enhancements | $120,000 | |
| KENTUCKY | OLD CROFTON HOTEL BUILDING RESTORATION - RESTORE THE OLD CROFTON HOTEL, WHICH WILL SERVE AS A WELCOME CENTER. THIS HISTORIC STRUCTURE WAS BUILT IN 1904. | Other | $300,000 | |
| KENTUCKY | CLINTON SIDEWALK REHAB & BEAUTIFICATION- REPLACE SIDEWALKS & IMPROVE LANDSCAPING ALONG NORTH WASHINGTON ST (US51) FROM CLAY ST TO NORTH ST, JEFFERSON ST FROM JACKSON ST TO CLAY ST, AND CLAY ST (KY123/ | Transportation Enhancements | $38,000 | |
| KENTUCKY | PUBLIC SQUARE UNDERGROUND ELECTRICAL SERVICE - INSTALLATION OF UNDERGROUND ELECTRICAL SERVICE TO PROVIDE ENHANCED LIGHTING AND INSTALLATION OF BRICK PAVERS. | Transportation Enhancements | $12,500 | |
| KENTUCKY | BARLOW SIDEWALK PROJECT - REPLACEMENT OF DETERIORATED SIDEWALKS. | Transportation Enhancements | $54,000 | |
| KENTUCKY | PRESTONSBURG CONNECTIVITY PROJECT- DESIGN AND CONSTRUCTION OF A SIDEWALK TO CONNECT KY 1428 TO KY 321 NEAR THE ENTRANCE OF BIG SANDY COMMUNITY AND TECHNICAL COLLEGE. | Transportation Enhancements | $11,500 | |
| KENTUCKY | CONSTRUCT NEW CONNECTOR FROM US-68/NORTHERN BYPASS TO INDUSTRIAL DRIVE IN LEBANON. (04CCR) | New Construction | $4,000,000 | |
| KENTUCKY | EASTERN PARKWAY AT 3RD STREET - TRAFFIC AND PEDESTRIAN SAFETY IMPROVEMENTS ON EASTERN PARKWAY NEAR THIRD STREET. | Safety/Traffic Management | $1,600,000 | |
| KENTUCKY | LEXINGTON-FAYETTE | BIG BARN TRANSPORTATION MUSEUM RESTORATION - STABILIZATION OF THE HISTORIC ÒBIG BARNÓ FOR THE CREATION OF A VISITOR CENTER AND CARRIAGE MUSEUM WITHIN THE STRUCTURE. | Transportation Enhancements | $964,000 |
| KENTUCKY | WILKINSON BLVD. BIKE/PED FACILITIES - CREATION OF BICYCLE AND PEDESTRIAN FACILITIES ALONG THE KY RIVER AND WILKINSON BLVD FROM RIVERVIEW PARK TO FAIR OAKS LANE. | Pavement Improvement | $314,500 | |
| KENTUCKY | GLASGOW OUTER LOOP FR US-68 TO THE LOUIE B. NUNN PARKWAY EAST OF GLASGOW. | New Construction | $17,200,000 | |
| KENTUCKY | STREETSCAPE IMPROVEMENT PROJECT PHASE III - REPLACEMENT OF DETERIORATING SIDEWALKS AND INSTALLATION OF PEDESTRIAN CROSSWALKS, CURB RAMPS, DECORATIVE LIGHT FIXTURES AND BENCHES TO BEAUTIFY THE AREA. | Transportation Enhancements | $273,000 | |
| KENTUCKY | RELOCATE US-60 BYPASS EAST OF OWENSBORO (EAST COUNTY CORRIDOR) PRIORITY SECTION: FROM REID ROAD EAST TO EXISTING US 60 EAST OF OWENSBORO. (98KYD)(2005HPP-KY158)(SEE 2-287.51 FOR FS"COMPONENT)" | Pavement Improvement | $27,200,000 | |
| KENTUCKY | TATES CREEK TRAIL PROJECT- CONSTRUCT A SIDEWALK ALONG THE OLD ABANDONED RINEY B RAIL THAT RUNS ALONG KY 169. | Transportation Enhancements | $157,500 | |
| KENTUCKY | HOSPITAL DRIVE SIDEWALK PROJECT - CONSTRUCTION OF 1700 LINEAR FEET OF SIDEWALK WITH CURB AND GUTTERING ALONG HOSPITAL DRIVE. THE NEW SIDEWALKS WILL CONNECT WITH US 60 SIDEWALKS. | Transportation Enhancements | $103,500 | |
| KENTUCKY | US 431 BEAUTIFICATION PROJECT THIS PROJECT WILL MAKE AESTHETIC IMPROVEMENTS TO A ONE-MILE STRETCH OF US 431. ENHANCEMENTS WILL INCLUDE WELCOME SIGNS AND LANDSCAPING. | Transportation Enhancements | $24,000 | |
| KENTUCKY | LOUISVILLE (IN) | KY-61 BEGINS SOUTH OF JOHN HARPER HIGHWAY (BROOKS ROAD) AND ENDS AT THE EXISTING 4-LANE SECTION SOUTH OF CARDINAL AVENUE. (2006BOPC) | Pavement Widening | $7,410,000 |
| KENTUCKY | WIDENING OF KY-245 FROM KY-332 NORTH OF BARDSTOWN TO THE FLAGET HOSPITAL SITE. (2002BOPC) | Pavement Widening | $5,100,000 | |
| KENTUCKY | US-27 TO I-75 (SECTION 4A SURFACING); FROM CORNBREAD BRANCH NEAR OLD JELLICO ROAD EAST TO BRIER CREEK BRIDGE. (2006BOPC) | Pavement Improvement | $6,020,000 | |
| KENTUCKY | NEW CONNECTOR FROM KY-6 @ WOODBINE TO THE CORBIN BYPASS. (06CCR) | New Construction | $4,790,000 | |
| KENTUCKY | REHAB PAVEMENT AND BRIDGE DECK ON US-127 BIG SUGAR CREEK BRIDGE (B08): REMOVE BRUSH BLOCK AND PLINTH WALLS AND PLACE A NEW DECK WITH BARRIER WALLS ON EXISTING BRIDGE DECK (2006BOPC) | Bridge Improvement | $268,968 | |
| KENTUCKY | US25 @ KY1156 CONSTRUCT LEFT TURN LANES (B/C=2.1) (D-DISTRICT C-CONTRACTOR) (2002BOP) | Safety/Traffic Management | $910,000 | |
| KENTUCKY | FRANKFORT-LEXINGTON US 421 LEESTOWN ROAD; WIDEN TO 5-LANES FR WEST OF US-60 TO 1600' EAST OF CHENAULT INDUSTRIAL ROAD. (SECTION 1) | Pavement Widening | $10,400,000 | |
| KENTUCKY | GERMANTOWN STREETSCAPE PROJECT PHASE II - ONGOING STREETSCAPE PROJECT BY CONTINUING SIDEWALK REPLACEMENT ALONG KY 10. INCLUDING LANDSCAPING AND SCENIC BEAUTIFICATION. | Transportation Enhancements | $62,200 | |
| KENTUCKY | PAVEMENT REHABILITATION ON THE WESTERN KENTUCKY PARKWAY. (BREAKOUT FROM 99-278.14) | Pavement Improvement | $1,100,000 | |
| LOUISIANA | New Interstate Construction | New Construction | $9,000,000 | |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $1,737,971 | |
| LOUISIANA | NEW ORLEANS | Intersection modification | Pavement Widening | $68,575,860 |
| LOUISIANA | SHREVEPORT | New Interstate Construction | Pavement Improvement | $33,616,296 |
| LOUISIANA | LAKE CHARLES | Pavement Rehabilitation | Pavement Improvement | $21,549,428 |
| LOUISIANA | Landscaping, beautification project | Transportation Enhancements | $107,310 | |
| LOUISIANA | Rehabilitation of two existing lanes on TIMED 4-lane project | Pavement Improvement | $2,744,414 | |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $571,465 | |
| LOUISIANA | Rehabilitation of two existing lanes on TIMED 4-lane project | Pavement Improvement | $5,178,546 | |
| LOUISIANA | Construction of a new vertical life bridge to replace a 55 yr. old pontoon bridge | Bridge Replacement | $32,878,408 | |
| LOUISIANA | NEW ORLEANS | Reconstruction of existing roadway | Pavement Improvement | $12,010,598 |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $517,173 | |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $342,619 | |
| LOUISIANA | NEW ORLEANS | Bicycle and Pedestrian Paths | Transportation Enhancements | $869,940 |
| LOUISIANA | Construction of sidewalks along side of travel lanes of bridge | Bridge Replacement | $2,526,798 | |
| LOUISIANA | SLIDELL | Intersection improvements, turn lanes, ramp widening | Pavement Improvement | $5,831,124 |
| LOUISIANA | SLIDELL | Intersection improvements, turn lanes, ramp widening | Pavement Improvement | $1,848,392 |
| LOUISIANA | MANDEVILLE-COVINGTON | Intersection improvements, turn lanes, ramp widening | Pavement Improvement | $5,852,429 |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $1,049,379 | |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $473,481 | |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $628,958 | |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $508,305 | |
| LOUISIANA | NEW ORLEANS | Reconstruction of existing roadway | Pavement Improvement | $9,612,000 |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $412,700 | |
| LOUISIANA | Bridge Replacement Project | Bridge Replacement | $481,159 | |
| LOUISIANA | ALEXANDRIA | Reconstruction of two-lane roadway and new bridge to be constructed. | Pavement Improvement | $9,098,200 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $112,059 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $1,165,067 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $1,178,816 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $1,196,976 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $998,661 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $1,982,061 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks | Transportation Enhancements | $963,914 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $476,905 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $32,628 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $1,015,893 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $16,837 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $21,377 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $1,575,665 |
| LOUISIANA | NEW ORLEANS | Construction of sidewalks, shared use bike lanes, dedicated use bike lanes, landscaping (trees), stiping, symbols, signs | Transportation Enhancements | $9,100 |
| LOUISIANA | Construction of four kiosks in Vivian, Plain Dealing, Sarepta, and Homer | Transportation Enhancements | $201,104 | |
| MAINE | Highway Reconstruction: Beginning 0.33 of a mile northerly of Route 196 and extending northeasterly 6.75 miles to the Maine Turnpike Overpass. | Pavement Improvement | $12,838,260 | |
| MAINE | Bridge Replacement: Veranda Street Overpass Bridge (#5052) over Canadian Railroad, located 0.30 of a mile northerly of Washington Street. | Bridge Improvement | $1,473,064 | |
| MAINE | Highway Reconstruction: Beginning at the Rabbit Road and extending southeasterly 2.67 miles to 0.15 of a mile northerly of the Old Bangor Road. | Pavement Improvement | $7,883,762 | |
| MAINE | PORTLAND | Bicycle/Pedestrian Facility Improvement: This project will design an extension of the Portland Trails system through the Bayside area of Portland along the abandoned Union Branch Rail Line extending | Transportation Enhancements | $800,000 |
| MAINE | Bridge Replacement: Knights Hill Bridge(# 3194) over Meservy Brook and located 0.17 of a mile northerly of Route 173. | Bridge Improvement | $265,000 | |
| MAINE | Intersection Improvement with a signal: Located at the intersection of Center Street, Joline Street, and Stetson Street. | Safety/Traffic Management | $532,135 | |
| MAINE | Highway Reconstruction: Beginning at Route 4 and extending northerly 2.39 miles to Upper Street. | Pavement Improvement | $3,665,356 | |
| MAINE | Highway Reconstruction: Beginning at Center Street and extending westerly 0.18 of a mile to Turner Street. | Pavement Improvement | $379,538 | |
| MAINE | Highway reconstruction: Beginning at the convergence of the ramps to Main Street, extending 0.51 miles easterly to Robinson Gardens. Project will include construction of left-turn storage lanes at cer | Pavement Improvement | $2,106,788 | |
| MAINE | Highway Resurfacing: Beginning at Main Street (Route 9) and extending westerly 0.97 of a mile to 0.10 of a mile easterly of Marshall Avenue. | Pavement Improvement | $583,689 | |
| MAINE | Highway Resurfacing: Beginning at Parkside and extending 0.95 of a mile to Alfred Street. | Pavement Improvement | $429,554 | |
| MAINE | Intersection Improvement with signal: Located at the intersection of Auburn Street and Lyseth Moore Drive. | Safety/Traffic Management | $224,761 | |
| MAINE | Highway Improvements: Beginning 0.03 of a mile northerly of Park Street and extending 1.00 miles to 0.34 of a mile southerly of Hillview Avenue. | Pavement Improvement | $238,464 | |
| MAINE | Eastern Trail, Bike/Pedestrian trail from Rt. 111 in Biddeford to Route 35 in Kennebunk. | Transportation Enhancements | $1,075,563 | |
| MAINE | Highway Resurfacing: Beginning at Franklin Arterial and extending 0.29 of a mile to Elm Street. | Pavement Improvement | $170,419 | |
| MAINE | Highway Resurfacing: Beginning at Saco Street and extending 0.88 of a mile to Spring Street. Includes shoulder resurfacing. | Pavement Improvement | $512,908 | |
| MAINE | Highway Resurfacing: Beginning at North Street and extending 1.11 miles to Pine Ridge Road. | Pavement Improvement | $264,904 | |
| MAINE | Highway Resurfacing: Beginning at the Westbrook town line and extending 0.74 of a mile to the Leighton Road. The project will include drainage and the installation of curbing. | Pavement Improvement | $461,242 | |
| MAINE | Highway Resurfacing: Beginning at the Westbrook town line and extending 0.89 miles to Congress Street. Project includes alteration of 24 catch basins and replacement of approximately 1,000 feet of bi | Pavement Improvement | $293,979 | |
| MAINE | Highway Reconstruction: Beginning at southerly end of Exit 28 Off-ramp and extending northerly 23.88 miles to the Maine Turnpike toll booth. Rehabilitation includes concrete rubblization, new pavement | Pavement Improvement | $35,500,000 | |
| MAINE | Other Highway Maintenance: Topsham to Gardiner, I-295 NB, design cross overs to maintain traffic for mainline work for PIN 15114.50; one crossover in Topsham & one in Gardiner. | Safety/Traffic Management | $1,682,707 | |
| MAINE | Steel Culvert Bridge Replacement: Salt Bay Bridge (#5974) over Salt Bay, located on the Damariscotta-Nobleboro town line. | Bridge Replacement | $439,459 | |
| MAINE | Bridge Rehabilitation: Bridge Superstructure Replacement-Second Street Bridge (#0565) over Maine Central Railroad, located 0.71 of a mile northerly of Wilson Lane. | Bridge Replacement | $1,032,549 | |
| MAINE | Bridge Deck Replacement: Lincoln Spur Bridge (#6074), located over Interstate 95, northbound and southbound. | Bridge Improvement | $1,349,425 | |
| MAINE | Intersection Improvements without signal: Bypass lane construction located at the intersection of Route 1 and the Ashville Road. | Safety/Traffic Management | $226,133 | |
| MAINE | Highway Resurfacing: Beginning 0.82 of a mile north of Christian Hill Road and extending northerly 1.66 miles to 0.12 of a mile south of West Lovell Road. | Pavement Improvement | $339,759 | |
| MAINE | Highway Resurfacing: Beginning at Shore Road and extending northerly 0.90 miles to 0.17 of a mile northerly of Woodland Road. | Pavement Improvement | $285,272 | |
| MAINE | Highway Resurfacing: Beginning 0.16 of a mile north of Route 35 and extending northerly 6.50 miles to 0.94 of a mile south of the Standish-Sebago town line. | Pavement Improvement | $1,163,709 | |
| MAINE | Highway Resurfacing: Beginning at Route 11 and extending northerly 1.16 miles. | Pavement Improvement | $368,114 | |
| MAINE | Highway Resurfacing: Beginning at Route 201 and extending northerly 0.65 of a mile to 0.19 of a mile northerly of Pishon Ferry Road. | Pavement Improvement | $102,978 | |
| MAINE | Highway Resurfacing: Beginning 0.03 of a mile northerly of Greeley Street and extending northerly 0.85 of a mile to 0.30 of a mile northerly of Municipal Drive. | Pavement Improvement | $173,248 | |
| MAINE | Highway Resurfacing: Beginning at Oak Street and extending easterly 0.37 of a mile to Route 11. | Pavement Improvement | $98,187 | |
| MAINE | Highway Resurfacing: Beginning 0.05 of a mile westerly of the Chelsea-Randolph town line and extending easterly 3.67 miles to 0.10 of a mile easterly of the Augusta-Chelsea town line. | Pavement Improvement | $601,652 | |
| MAINE | Highway Resurfacing: Beginning at Main Street and extending easterly 0.46 of a mile to College Avenue. | Pavement Improvement | $108,519 | |
| MAINE | Highway Resurfacing: Beginning 0.03 of a mile south of Route 16 and extending northerly 1.26 miles. | Pavement Improvement | $272,734 | |
| MAINE | Highway Resurfacing: Beginning 2.19 miles westerly of the Long Pond Twp town line and extending easterly 2.19 miles. | Pavement Improvement | $397,790 | |
| MAINE | Highway Resurfacing: Beginning 0.05 of a mile westerly of the Sapling Township-Big Moose Township town line and extending easterly 6.10 miles to 0.46 of a mile westerly of Ski Resort Road. | Pavement Improvement | $917,345 | |
| MAINE | Highway Resurfacing: Beginning at Somerset Avenue and extending northerly 6.27 miles to 0.03 of a mile northerly of Ford Hill Road. | Pavement Improvement | $1,134,140 | |
| MAINE | Highway Resurfacing: Beginning 0.29 of a mile southerly of the Hamlin town line and extending northerly 5.69 miles to 1.18 miles southerly of Albert Cyr Road. | Pavement Improvement | $1,585,264 | |
| MAINE | Highway Resurfacing: Beginning at Center Street and extending northerly 1.08 miles to 0.30 of a mile southerly of Mount Auburn Avenue. | Pavement Improvement | $381,206 | |
| MAINE | Highway Resurfacing: Beginning at Cobbossee Avenue and extending easterly 1.10 miles to Route 201. | Pavement Improvement | $303,254 | |
| MAINE | Highway Resurfacing: Beginning 0.17 of a mile westerly of the Huntington Hill Road and extending easterly 3.99 miles to 0.06 of a mile westerly of the Bog Hill Road. | Pavement Improvement | $714,526 | |
| MAINE | Highway Resurfacing: Beginning at Route 23 and extending northerly 4.46 miles to 0.01 of a mile northerly of Winter Street. | Pavement Improvement | $952,097 | |
| MAINE | Highway Resurfacing: Beginning 0.42 of a mile westerly of the I-95 Exit 102 On-ramp and extending easterly 1.69 miles to 0.11 of a mile westerly of the West Gardiner-Gardiner town line. | Pavement Improvement | $710,244 | |
| MAINE | Highway Resurfacing: Beginning 1.87 miles west of Routes 104/139 and extending westerly 4.75 miles to 0.16 of a mile west of Bigelow Hill Road. | Pavement Improvement | $1,006,211 | |
| MAINE | Highway Resurfacing: Beginning 0.38 of a mile southerly of York Hill Road and extending northerly 2.65 miles to Route 2. | Pavement Improvement | $606,208 | |
| MAINE | Highway Resurfacing: Beginning at the Interstate 95 southbound Exit 185 ramps and extending northerly 0.65 of a mile to Grandview Avenue. | Pavement Improvement | $185,817 | |
| MAINE | Highway Resurfacing: Beginning 0.10 miles southerly of the intersection of Mt. Hope and extending northerly 0.76 miles to 0.17 of a mile north of the Sylvan Road. | Pavement Improvement | $467,598 | |
| MAINE | Highway Resurfacing: Beginning 0.37 of a mile northerly of Chase Mills Road and extending northerly 1.00 mile to 0.47 of a mile northerly of the Whiting town line. | Pavement Improvement | $265,079 | |
| MAINE | Highway Resurfacing: Beginning at North Main Street and extending northerly 0.19 of a mile to Somerset Avenue. | Pavement Improvement | $47,567 | |
| MAINE | Highway Resurfacing: Beginning at Minot Avenue and extending northerly 0.68 of a mile to Lisbon Street. | Pavement Improvement | $279,516 | |
| MAINE | Highway Resurfacing: Beginning at High Street and extending northerly 0.51 of a mile to Court Street. | Pavement Improvement | $204,503 | |
| MAINE | Culvert Repair: Culvert replacement, located near Exit #22. | Bridge Improvement | $275,000 | |
| MAINE | Highway Resurfacing: Beginning at Warren Avenue and extending northerly 1.15 miles to Castine Avenue. | Pavement Improvement | $653,796 | |
| MAINE | Highway Resurfacing: Beginning 0.13 of a mile north of the Washington Avenue Southbound on-ramp and extending southerly 0.42 of a mile. | Pavement Improvement | $225,915 | |
| MAINE | Highway Resurfacing: Beginning 0.08 of a mile northerly of Eddy Road and extending northerly 1.02 miles to 0.05 of a mile northerly of Cochran Road. | Pavement Improvement | $512,452 | |
| MAINE | Highway Resurfacing: Beginning 3.74 miles southerly of the The Forks Plantation town line and extending northerly 3.77 miles. | Pavement Improvement | $787,207 | |
| MAINE | Curb to Curb Mill & Fill 1 1/4 inch; 500 feet west of the bridge to Prescott Street; Route 2/4/27 intersection to Hill Street. Mill & Fill 1 1/4 inch; Hill Street to High Street; Prescott Street to 3 | Pavement Improvement | $422,428 | |
| MAINE | Highway Resurfacing: Beginning 0.26 of a mile northerly of Sandy Stream Road and extending northerly 13.65 miles to 0.01 of a mile southerly of the Canadian border. | Pavement Improvement | $2,471,123 | |
| MAINE | Highway Resurfacing: Beginning 0.16 of a mile southerly of the Parlin Pond Township town line and extending northerly 13.62 miles to 2.60 miles northerly of the Parlin Pond Township-Jackman town line | Pavement Improvement | $2,504,120 | |
| MAINE | Highway Resurfacing: Beginning 325' easterly of the I-95 northbound Exit 185 ramps and extending northerly 0.23 of a mile to the I-95 southbound Exit 185 ramps. | Pavement Improvement | $89,609 | |
| MAINE | Highway Resurfacing: Beginning at Western Avenue and extending northerly 4.02 miles to the Interstate 395 Exit 2 eastbound ramps. | Pavement Improvement | $1,262,169 | |
| MAINE | Highway Resurfacing: Beginning at the Mattamiscontis TWP town line and extending southerly 10.37 miles to 0.55 of a mile southerly of the Exit 217 on-ramp. | Pavement Improvement | $4,007,667 | |
| MAINE | Highway Resurfacing: Beginning at the T2 R8 NWP town line and extending southerly 7.06 miles to the Mattamiscontis TWP town line. | Pavement Improvement | $2,608,467 | |
| MAINE | Bridge Substructure Rehabilitation: Sedgwick Bridge (#3257) over Eggemoggin Reach, located on the Deer Isle-Sedgwick town line. | Bridge Improvement | $8,571,897 | |
| MAINE | Replacement of Spruce Head Bridge (5578) over Atlantic Ocean, located 0.65 of a mile southerly of Route 73. | Bridge Replacement | $2,906,091 | |
| MAINE | Highway Resurfacing: Beginning 0.55 of a mile southerly of the Exit 217 On-ramp and extending southerly 15.60 miles to the Alton/Old Town town line. | Pavement Improvement | $4,513,577 | |
| MAINE | Highway Resurfacing: Beginning at the T2 R9 NWP town line and extending southerly 8.22 miles to the T2 R8 NWP town line. | Pavement Improvement | $2,542,725 | |
| MAINE | Highway Resurfacing: Beginning at the intersection of Route 1 and extending easterly approximately 6.7 miles. | Pavement Improvement | $3,397,597 | |
| MAINE | Capital retrofits and infrastructure improvements that enhance quality treatment of stormwater runoff in an urban impaired stream watershed as recommended by the Long Creek Watershed Planning Initiati | Other | $2,046,998 | |
| MAINE | Dover-Foxcroft, State Route 15, Highway Improvements | Pavement Improvement | $2,851,000 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,657,659 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,612,059 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,623,563 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,616,619 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,828,636 | |
| MARYLAND | Signalization | Safety/Traffic Management | $5,287,442 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,299,728 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,314,963 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,309,460 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,288,732 | |
| MARYLAND | Lighting | Safety/Traffic Management | $11,093,131 | |
| MARYLAND | Sidewalks | Pavement Improvement | $2,377,547 | |
| MARYLAND | Sidewalks | Pavement Improvement | $3,612,818 | |
| MARYLAND | Sidewalks | Pavement Improvement | $2,302,300 | |
| MARYLAND | Sidewalks | Pavement Improvement | $2,936,648 | |
| MARYLAND | Sidewalks | Pavement Improvement | $1,794,107 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,205,364 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,320,897 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,291,662 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,328,142 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $379,808 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $299,042 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $268,485 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $341,541 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $297,440 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $498,332 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,297,378 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,612,278 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,612,522 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,277,771 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,592,808 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,576,033 | |
| MARYLAND | Resurfacing | Pavement Improvement | $5,152,037 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,576,062 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,576,062 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,287,492 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,592,808 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,284,068 | |
| MARYLAND | Resurfacing | Pavement Improvement | $4,591,671 | |
| MARYLAND | Safety | Pavement Improvement | $1,344,595 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,308,339 | |
| MARYLAND | WASHINGTON (DC-MD-VA) | Clean/Paint Bridges | Bridge Improvement | $1,714,856 |
| MARYLAND | WASHINGTON (DC-MD-VA) | Clean/Paint Bridges | Bridge Improvement | $2,130,066 |
| MARYLAND | Guardrail | Safety/Traffic Management | $833,976 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $833,976 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $1,904,760 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $852,738 | |
| MARYLAND | Signing | Safety/Traffic Management | $5,075,685 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $2,083,487 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $3,013,319 | |
| MARYLAND | Signalization | Safety/Traffic Management | $1,824,752 | |
| MARYLAND | Signing | Safety/Traffic Management | $3,672,297 | |
| MARYLAND | Signalization | Safety/Traffic Management | $6,672,881 | |
| MARYLAND | Signalization | Safety/Traffic Management | $1,939,995 | |
| MARYLAND | Signing | Safety/Traffic Management | $6,495,427 | |
| MARYLAND | DISTRICT 4 & 7 - VARIOUS LOCATIONS - WETLAND AND TREE PLANTINGS | Transportation Enhancements | $558,489 | |
| MARYLAND | Signing | Safety/Traffic Management | $2,284,082 | |
| MARYLAND | Landscaping | Transportation Enhancements | $280,400 | |
| MARYLAND | Landscaping | Transportation Enhancements | $266,341 | |
| MARYLAND | Landscaping | Transportation Enhancements | $334,101 | |
| MARYLAND | FREDERICK | Landscaping | Transportation Enhancements | $543,309 |
| MARYLAND | Safety and Resurfacing | Pavement Improvement | $3,695,543 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $1,471,190 | |
| MARYLAND | Guardrail | Safety/Traffic Management | $7,049,583 | |
| MARYLAND | Landscaping | Transportation Enhancements | $339,191 | |
| MARYLAND | Safety and Resurfacing | Pavement Improvement | $3,642,258 | |
| MARYLAND | Safety & Resurfacing | Pavement Improvement | $4,338,694 | |
| MARYLAND | WASHINGTON (DC-MD-VA) | Landscaping | Transportation Enhancements | $542,560 |
| MARYLAND | Landscaping | Transportation Enhancements | $676,104 | |
| MARYLAND | Safety & Resurfacing | Pavement Improvement | $1,143,318 | |
| MARYLAND | Resurfacing | Pavement Improvement | $2,602,428 | |
| MARYLAND | Geometric Improvements | Pavement Improvement | $1,866,782 | |
| MARYLAND | BALTIMORE,MD | Safety & Resurfacing | Pavement Improvement | $5,173,792 |
| MARYLAND | WASHINGTON (DC-MD-VA) | Bridge Replacement | Bridge Replacement | $1,521,908 |
| MARYLAND | BALTIMORE,MD | Rehabitation | Pavement Improvement | $7,082,521 |
| MARYLAND | Ridesharing Facilities | Pavement Widening | $316,386 | |
| MARYLAND | Landscaping | Transportation Enhancements | $111,097 | |
| MARYLAND | Resurfacing | Pavement Improvement | $1,193,354 | |
| MARYLAND | Safety & Resurfacing | Pavement Improvement | $3,206,058 | |
| MARYLAND | Safety and Resurfacing | Pavement Improvement | $1,325,696 |
Source: FDIC


Text Manipulation Documentation
Important functions in the text-manipulation module
Important Interfaces and Classes
- TextBuffer
- Creates the abstraction around the text manipulation
- This is the type that is returned when createBuffer function is called
- MutableTextRange
- Provides a mutable TextRange, allowing for ranges to be changed
- TextPosition
- Defines a position in a TextBuffer. This is a component used in TextRanges
- ImmutableTextRange
- Provides an immutable TextRange (Cannot be changed)


This app is just so lorem ipsum.
Global
Stabile
Connected
HD
More figures
Different languages
Hear the information
Cloud


1. Contain a list of parameters
2. Control structures
3. Group expreessions
1. Accessing properties in an object
2. Acessing elements in an array
1. Define the start and end of a fuunction
2. Separate blocks of cod within a function
3. Declare an object
These seem to be the same as they both are used to create a string


Many watch lovers are familiar with the fact that Rolex uses a type of steel that no one else uses. Stainless steel is not all the same. Steel comes in various types and grades... and most steel watches are made from a type of stainless steel called 316L. Today, all the steel in Rolex watches is made from 904L steel, and as far as we know, pretty much no one else does.
Given everything Rolex has done over the years it shouldn't come as a surprise that they have an internal Research & Development department. However, Rolex takes it well beyond that. Rolex has not one, but several different types of extremely well-equipped professional science labs at their various facilities. The purpose of these labs isn't just to research new watches and things that may go into watches, but also to research more effective and efficient manufacturing techniques. One way of looking at Rolex is that they are an extremely competent and almost obsessively organized manufacturing company - that just happens to make timepieces.
It has been said that Rolex has preposterous standards for the materials it buys from its suppliers. This includes things like metals as well as precious stones such as diamonds, rubies, and emeralds. Rolex has a massive gemological department whose goal it is to buy, test, arrange, and set diamonds and other precious stones in a range of Rolex models. One of the things they do is check incoming stones to ensure that they are real. Using x-rays for example, they can test diamonds to ensure they aren't fake.
One of biggest misconceptions about Rolex is that machines build their watches. The rumor is so pervasive that even people at aBlogtoWatch believed it to be mostly true. This is because traditionally Rolex didn't communicate much on this topic. Well the truth is that Rolex watches are given all the hands-on human attention that you'd like to expect from a fine Swiss made watch.
The philosophy at Rolex seems to be very pragmatic, if a human does it better, then let a human do it, if a machine does it better, then let a machine do it. In fact the reason more watchmakers don't use machines is two-fold. First of all machines are huge investments and in many instances keeping people around to do it is less expensive. Second, they don't have the production demands that Rolex does. In fact, Rolex is fortunate to have the ability to equip its facilities with robotic help where needed.
An advertisement for Rolex long ago claimed that it takes about a year to make a single Rolex watch. As suspicious as that sounds, it is true even today. Rolex produces almost a million watches a year, but surprisingly, no shortcuts are taken in the manufacturing process from what I could observe (and I've been to a lot of watch manufactures). Rolex is however interested in quality and efficiency. Basically, the entire company seems focused on producing the best watches, and continually seeing how they can make them better..


WEEK 2 SATURDAY
Year 1 (Year 2)
FIRST READING Hebrews 9:2-3.11-14
A reading from the Letter to the Hebrews
Brethren: A tent was prepared, the outer one, in
which were the lampstand and the table and the bread
of the Presence; it is called the
The word of the Lord
RESPONSORIAL PSALM Psalm 47:2-3.6-7.8-9 (R. 6)
R. God goes up with shouts of joy. The Lord goes up with trumpet blast.
All peoples, clap your
hands. Cry to God with shouts of joy! For the LORD, the Most High, is awesome,
the great king over all the earth.
R. God goes up with shouts of joy. The Lord goes up
with trumpet blast.
God goes up with shouts of joy. The LORD goes up
with trumpet blast. Sing praise for God; sing praise! Sing praise to our king;
sing praise!
R. God goes up with shouts of joy. The Lord goes up
with trumpet blast.
God is king of all the earth. Sing praise with all
your skill. God reigns over the nations. God sits upon his holy throne.
R. God goes up with shouts of joy. The Lord goes up
with trumpet blast.
FIRST READING 2 Samuel 1:1-4.11-12.19.23-27
A reading from the first Book of Samuel
In those days: After the death of Saul, when David
had returned from the slaughter of the Amalekites,
David remained two days in Ziklag; and on the third
day, behold, a man came from Saul's camp, with his clothes rent and earth upon
his head. And when he came to David, he fell to the ground and did obeisance.
David said to him, "Where do you come from?" And he said to him,
"I have escaped from the camp of
The word of the Lord
RESPONSORIAL PSALM Psalm 80:2-3.5-7 (R. 4b)
R. Let your face shine on us, Lord, and we shall be saved.
O shepherd of
R. Let your face shine on us, Lord, and we shall be
saved.
How long, O LORD, God of hosts, will you be angry at
the prayer of your people? You have fed them with tears for their bread, an
abundance of tears for their drink. You have made us the taunt of our
neighbours; our foes mock us among themselves.
R. Let your face shine on us, Lord, and we shall be
saved.
R. Alleluia. Open our hearts, O Lord, that we may give heed to the words of your Son. R. Alleluia.
GOSPEL Mark 3:20-21
A reading from the holy Gospel according to Mark
In that time: Jesus went home with his disciples;
and the crowd came together again, so that they could not even eat. And when
his friends heard it, they went out to seize him, for they said, "He is
beside himself."
The Gospel of the Lord


{% include "include/contextmenu.xml" %}
{{o.FULLNAME}}
Log out
+
section
Viewer based on
Exhibit
and design inspired by
Picker


| 1 | /* =========================================================== | |
| 2 | * JFreeChart : a free chart library for the Java(tm) platform | |
| 3 | * =========================================================== | |
| 4 | * | |
| 5 | * (C) Copyright 2000-2008, by Object Refinery Limited and Contributors. | |
| 6 | * | |
| 7 | * Project Info: http://www.jfree.org/jfreechart/index.html | |
| 8 | * | |
| 9 | * This library is free software; you can redistribute it and/or modify it | |
| 10 | * under the terms of the GNU Lesser General Public License as published by | |
| 11 | * the Free Software Foundation; either version 2.1 of the License, or | |
| 12 | * (at your option) any later version. | |
| 13 | * | |
| 14 | * This library is distributed in the hope that it will be useful, but | |
| 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
| 16 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |
| 17 | * License for more details. | |
| 18 | * | |
| 19 | * You should have received a copy of the GNU Lesser General Public | |
| 20 | * License along with this library; if not, write to the Free Software | |
| 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | |
| 22 | * USA. | |
| 23 | * | |
| 24 | * [Java is a trademark or registered trademark of Sun Microsystems, Inc. | |
| 25 | * in the United States and other countries.] | |
| 26 | * | |
| 27 | * ---------------------- | |
| 28 | * StandardDialFrame.java | |
| 29 | * ---------------------- | |
| 30 | * (C) Copyright 2006-2008, by Object Refinery Limited. | |
| 31 | * | |
| 32 | * Original Author: David Gilbert (for Object Refinery Limited); | |
| 33 | * Contributor(s): -; | |
| 34 | * | |
| 35 | * Changes | |
| 36 | * ------- | |
| 37 | * 03-Nov-2006 : Version 1 (DG); | |
| 38 | * 08-Mar-2007 : Fix in hashCode() (DG); | |
| 39 | * 21-Jun-2007 : Removed JCommon dependencies (DG); | |
| 40 | * | |
| 41 | */ | |
| 42 | ||
| 43 | package org.jfree.chart.plot.dial; | |
| 44 | ||
| 45 | import java.awt.BasicStroke; | |
| 46 | import java.awt.Color; | |
| 47 | import java.awt.Graphics2D; | |
| 48 | import java.awt.Paint; | |
| 49 | import java.awt.Shape; | |
| 50 | import java.awt.Stroke; | |
| 51 | import java.awt.geom.Area; | |
| 52 | import java.awt.geom.Ellipse2D; | |
| 53 | import java.awt.geom.Rectangle2D; | |
| 54 | import java.io.IOException; | |
| 55 | import java.io.ObjectInputStream; | |
| 56 | import java.io.ObjectOutputStream; | |
| 57 | import java.io.Serializable; | |
| 58 | ||
| 59 | import org.jfree.chart.util.HashUtilities; | |
| 60 | import org.jfree.chart.util.PaintUtilities; | |
| 61 | import org.jfree.chart.util.PublicCloneable; | |
| 62 | import org.jfree.chart.util.SerialUtilities; | |
| 63 | ||
| 64 | /** | |
| 65 | * A simple circular frame for the {@link DialPlot} class. | |
| 66 | * | |
| 67 | * @since 1.0.7 | |
| 68 | */ | |
| 69 | public class StandardDialFrame extends AbstractDialLayer implements DialFrame, | |
| 70 | Cloneable, PublicCloneable, Serializable { | |
| 71 | ||
| 72 | /** For serialization. */ | |
| 73 | static final long serialVersionUID =<PHONE_NUMBER>507121596L; | |
| 74 | ||
| 75 | /** The outer radius, relative to the framing rectangle. */ | |
| 76 | private double radius; | |
| 77 | ||
| 78 | /** | |
| 79 | * The color used for the front of the panel. This field is transient | |
| 80 | * because it requires special handling for serialization. | |
| 81 | */ | |
| 82 | private transient Paint backgroundPaint; | |
| 83 | ||
| 84 | /** | |
| 85 | * The color used for the border around the window. This field is transient | |
| 86 | * because it requires special handling for serialization. | |
| 87 | */ | |
| 88 | private transient Paint foregroundPaint; | |
| 89 | ||
| 90 | /** | |
| 91 | * The stroke for drawing the frame outline. This field is transient | |
| 92 | * because it requires special handling for serialization. | |
| 93 | */ | |
| 94 | private transient Stroke stroke; | |
| 95 | ||
| 96 | /** | |
| 97 | * Creates a new instance of StandardDialFrame. | |
| 98 | */ | |
| 99 | public StandardDialFrame() { | |
| 100 | this.backgroundPaint = Color.gray; | |
| 101 | this.foregroundPaint = Color.black; | |
| 102 | this.stroke = new BasicStroke(2.0f); | |
| 103 | this.radius = 0.95; | |
| 104 | } | |
| 105 | ||
| 106 | /** | |
| 107 | * Returns the radius, relative to the framing rectangle. | |
| 108 | * | |
| 109 | * @return The radius. | |
| 110 | * | |
| 111 | * @see #setRadius(double) | |
| 112 | */ | |
| 113 | public double getRadius() { | |
| 114 |
1
1. getRadius : replaced return of double value with -(x + 1) for org/jfree/chart/plot/dial/StandardDialFrame::getRadius → NO_COVERAGE |
return this.radius; |
| 115 | } | |
| 116 | ||
| 117 | /** | |
| 118 | * Sets the radius and sends a {@link DialLayerChangeEvent} to all | |
| 119 | * registered listeners. | |
| 120 | * | |
| 121 | * @param radius the radius (must be positive). | |
| 122 | * | |
| 123 | * @see #getRadius() | |
| 124 | */ | |
| 125 | public void setRadius(double radius) { | |
| 126 |
2
1. setRadius : changed conditional boundary → SURVIVED 2. setRadius : negated conditional → KILLED |
if (radius <= 0) { |
| 127 | throw new IllegalArgumentException( | |
| 128 | "The 'radius' must be positive."); | |
| 129 | } | |
| 130 | this.radius = radius; | |
| 131 |
1
1. setRadius : removed call to org/jfree/chart/plot/dial/StandardDialFrame::notifyListeners → SURVIVED |
notifyListeners(new DialLayerChangeEvent(this)); |
| 132 | } | |
| 133 | ||
| 134 | /** | |
| 135 | * Returns the background paint. | |
| 136 | * | |
| 137 | * @return The background paint (never null). | |
| 138 | * | |
| 139 | * @see #setBackgroundPaint(Paint) | |
| 140 | */ | |
| 141 | public Paint getBackgroundPaint() { | |
| 142 |
1
1. getBackgroundPaint : mutated return of Object value for org/jfree/chart/plot/dial/StandardDialFrame::getBackgroundPaint to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return this.backgroundPaint; |
| 143 | } | |
| 144 | ||
| 145 | /** | |
| 146 | * Sets the background paint and sends a {@link DialLayerChangeEvent} to | |
| 147 | * all registered listeners. | |
| 148 | * | |
| 149 | * @param paint the paint (null not permitted). | |
| 150 | * | |
| 151 | * @see #getBackgroundPaint() | |
| 152 | */ | |
| 153 | public void setBackgroundPaint(Paint paint) { | |
| 154 |
1
1. setBackgroundPaint : negated conditional → KILLED |
if (paint == null) { |
| 155 | throw new IllegalArgumentException("Null 'paint' argument."); | |
| 156 | } | |
| 157 | this.backgroundPaint = paint; | |
| 158 |
1
1. setBackgroundPaint : removed call to org/jfree/chart/plot/dial/StandardDialFrame::notifyListeners → SURVIVED |
notifyListeners(new DialLayerChangeEvent(this)); |
| 159 | } | |
| 160 | ||
| 161 | /** | |
| 162 | * Returns the foreground paint. | |
| 163 | * | |
| 164 | * @return The foreground paint (never null). | |
| 165 | * | |
| 166 | * @see #setForegroundPaint(Paint) | |
| 167 | */ | |
| 168 | public Paint getForegroundPaint() { | |
| 169 |
1
1. getForegroundPaint : mutated return of Object value for org/jfree/chart/plot/dial/StandardDialFrame::getForegroundPaint to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return this.foregroundPaint; |
| 170 | } | |
| 171 | ||
| 172 | /** | |
| 173 | * Sets the foreground paint and sends a {@link DialLayerChangeEvent} to | |
| 174 | * all registered listeners. | |
| 175 | * | |
| 176 | * @param paint the paint (null not permitted). | |
| 177 | * | |
| 178 | * @see #getForegroundPaint() | |
| 179 | */ | |
| 180 | public void setForegroundPaint(Paint paint) { | |
| 181 |
1
1. setForegroundPaint : negated conditional → KILLED |
if (paint == null) { |
| 182 | throw new IllegalArgumentException("Null 'paint' argument."); | |
| 183 | } | |
| 184 | this.foregroundPaint = paint; | |
| 185 |
1
1. setForegroundPaint : removed call to org/jfree/chart/plot/dial/StandardDialFrame::notifyListeners → SURVIVED |
notifyListeners(new DialLayerChangeEvent(this)); |
| 186 | } | |
| 187 | ||
| 188 | /** | |
| 189 | * Returns the stroke for the frame. | |
| 190 | * | |
| 191 | * @return The stroke (never null). | |
| 192 | * | |
| 193 | * @see #setStroke(Stroke) | |
| 194 | */ | |
| 195 | public Stroke getStroke() { | |
| 196 |
1
1. getStroke : mutated return of Object value for org/jfree/chart/plot/dial/StandardDialFrame::getStroke to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return this.stroke; |
| 197 | } | |
| 198 | ||
| 199 | /** | |
| 200 | * Sets the stroke and sends a {@link DialLayerChangeEvent} to all | |
| 201 | * registered listeners. | |
| 202 | * | |
| 203 | * @param stroke the stroke (null not permitted). | |
| 204 | * | |
| 205 | * @see #getStroke() | |
| 206 | */ | |
| 207 | public void setStroke(Stroke stroke) { | |
| 208 |
1
1. setStroke : negated conditional → KILLED |
if (stroke == null) { |
| 209 | throw new IllegalArgumentException("Null 'stroke' argument."); | |
| 210 | } | |
| 211 | this.stroke = stroke; | |
| 212 |
1
1. setStroke : removed call to org/jfree/chart/plot/dial/StandardDialFrame::notifyListeners → SURVIVED |
notifyListeners(new DialLayerChangeEvent(this)); |
| 213 | } | |
| 214 | ||
| 215 | /** | |
| 216 | * Returns the shape for the window for this dial. Some dial layers will | |
| 217 | * request that their drawing be clipped within this window. | |
| 218 | * | |
| 219 | * @param frame the reference frame (null not permitted). | |
| 220 | * | |
| 221 | * @return The shape of the dial's window. | |
| 222 | */ | |
| 223 | public Shape getWindow(Rectangle2D frame) { | |
| 224 | Rectangle2D f = DialPlot.rectangleByRadius(frame, this.radius, | |
| 225 | this.radius); | |
| 226 |
1
1. getWindow : mutated return of Object value for org/jfree/chart/plot/dial/StandardDialFrame::getWindow to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return new Ellipse2D.Double(f.getX(), f.getY(), f.getWidth(), |
| 227 | f.getHeight()); | |
| 228 | } | |
| 229 | ||
| 230 | /** | |
| 231 | * Returns false to indicate that this dial layer is not | |
| 232 | * clipped to the dial window. | |
| 233 | * | |
| 234 | * @return A boolean. | |
| 235 | */ | |
| 236 | public boolean isClippedToWindow() { | |
| 237 |
1
1. isClippedToWindow : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 238 | } | |
| 239 | ||
| 240 | /** | |
| 241 | * Draws the frame. This method is called by the {@link DialPlot} class, | |
| 242 | * you shouldn't need to call it directly. | |
| 243 | * | |
| 244 | * @param g2 the graphics target (null not permitted). | |
| 245 | * @param plot the plot (null not permitted). | |
| 246 | * @param frame the frame (null not permitted). | |
| 247 | * @param view the view (null not permitted). | |
| 248 | */ | |
| 249 | public void draw(Graphics2D g2, DialPlot plot, Rectangle2D frame, | |
| 250 | Rectangle2D view) { | |
| 251 | ||
| 252 | Shape window = getWindow(frame); | |
| 253 | ||
| 254 |
2
1. draw : Replaced double addition with subtraction → NO_COVERAGE 2. draw : Replaced double addition with subtraction → NO_COVERAGE |
Rectangle2D f = DialPlot.rectangleByRadius(frame, this.radius + 0.02, |
| 255 | this.radius + 0.02); | |
| 256 | Ellipse2D e = new Ellipse2D.Double(f.getX(), f.getY(), f.getWidth(), | |
| 257 | f.getHeight()); | |
| 258 | ||
| 259 | Area area = new Area(e); | |
| 260 | Area area2 = new Area(window); | |
| 261 |
1
1. draw : removed call to java/awt/geom/Area::subtract → NO_COVERAGE |
area.subtract(area2); |
| 262 |
1
1. draw : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(this.backgroundPaint); |
| 263 |
1
1. draw : removed call to java/awt/Graphics2D::fill → NO_COVERAGE |
g2.fill(area); |
| 264 | ||
| 265 |
1
1. draw : removed call to java/awt/Graphics2D::setStroke → NO_COVERAGE |
g2.setStroke(this.stroke); |
| 266 |
1
1. draw : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(this.foregroundPaint); |
| 267 |
1
1. draw : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(window); |
| 268 |
1
1. draw : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(e); |
| 269 | } | |
| 270 | ||
| 271 | /** | |
| 272 | * Tests this instance for equality with an arbitrary object. | |
| 273 | * | |
| 274 | * @param obj the object (null permitted). | |
| 275 | * | |
| 276 | * @return A boolean. | |
| 277 | */ | |
| 278 | public boolean equals(Object obj) { | |
| 279 |
1
1. equals : negated conditional → KILLED |
if (obj == this) { |
| 280 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return true; |
| 281 | } | |
| 282 |
1
1. equals : negated conditional → KILLED |
if (!(obj instanceof StandardDialFrame)) { |
| 283 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 284 | } | |
| 285 | StandardDialFrame that = (StandardDialFrame) obj; | |
| 286 |
1
1. equals : negated conditional → KILLED |
if (!PaintUtilities.equal(this.backgroundPaint, that.backgroundPaint)) { |
| 287 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 288 | } | |
| 289 |
1
1. equals : negated conditional → KILLED |
if (!PaintUtilities.equal(this.foregroundPaint, that.foregroundPaint)) { |
| 290 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 291 | } | |
| 292 |
1
1. equals : negated conditional → KILLED |
if (this.radius != that.radius) { |
| 293 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 294 | } | |
| 295 |
1
1. equals : negated conditional → KILLED |
if (!this.stroke.equals(that.stroke)) { |
| 296 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 297 | } | |
| 298 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return super.equals(obj); |
| 299 | } | |
| 300 | ||
| 301 | /** | |
| 302 | * Returns a hash code for this instance. | |
| 303 | * | |
| 304 | * @return The hash code. | |
| 305 | */ | |
| 306 | public int hashCode() { | |
| 307 | int result = 193; | |
| 308 | long temp = Double.doubleToLongBits(this.radius); | |
| 309 |
4
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced Unsigned Shift Right with Shift Left → SURVIVED 3. hashCode : Replaced XOR with AND → SURVIVED 4. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + (int) (temp ^ (temp >>> 32)); |
| 310 |
2
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + HashUtilities.hashCodeForPaint( |
| 311 | this.backgroundPaint); | |
| 312 |
2
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + HashUtilities.hashCodeForPaint( |
| 313 | this.foregroundPaint); | |
| 314 |
2
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + this.stroke.hashCode(); |
| 315 |
1
1. hashCode : replaced return of integer sized value with (x == 0 ? 1 : 0) → SURVIVED |
return result; |
| 316 | } | |
| 317 | ||
| 318 | /** | |
| 319 | * Returns a clone of this instance. | |
| 320 | * | |
| 321 | * @return A clone. | |
| 322 | * | |
| 323 | * @throws CloneNotSupportedException if any of the frame's attributes | |
| 324 | * cannot be cloned. | |
| 325 | */ | |
| 326 | public Object clone() throws CloneNotSupportedException { | |
| 327 |
1
1. clone : mutated return of Object value for org/jfree/chart/plot/dial/StandardDialFrame::clone to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return super.clone(); |
| 328 | } | |
| 329 | ||
| 330 | /** | |
| 331 | * Provides serialization support. | |
| 332 | * | |
| 333 | * @param stream the output stream. | |
| 334 | * | |
| 335 | * @throws IOException if there is an I/O error. | |
| 336 | */ | |
| 337 | private void writeObject(ObjectOutputStream stream) throws IOException { | |
| 338 |
1
1. writeObject : removed call to java/io/ObjectOutputStream::defaultWriteObject → KILLED |
stream.defaultWriteObject(); |
| 339 |
1
1. writeObject : removed call to org/jfree/chart/util/SerialUtilities::writePaint → KILLED |
SerialUtilities.writePaint(this.backgroundPaint, stream); |
| 340 |
1
1. writeObject : removed call to org/jfree/chart/util/SerialUtilities::writePaint → KILLED |
SerialUtilities.writePaint(this.foregroundPaint, stream); |
| 341 |
1
1. writeObject : removed call to org/jfree/chart/util/SerialUtilities::writeStroke → KILLED |
SerialUtilities.writeStroke(this.stroke, stream); |
| 342 | } | |
| 343 | ||
| 344 | /** | |
| 345 | * Provides serialization support. | |
| 346 | * | |
| 347 | * @param stream the input stream. | |
| 348 | * | |
| 349 | * @throws IOException if there is an I/O error. | |
| 350 | * @throws ClassNotFoundException if there is a classpath problem. | |
| 351 | */ | |
| 352 | private void readObject(ObjectInputStream stream) | |
| 353 | throws IOException, ClassNotFoundException { | |
| 354 |
1
1. readObject : removed call to java/io/ObjectInputStream::defaultReadObject → KILLED |
stream.defaultReadObject(); |
| 355 | this.backgroundPaint = SerialUtilities.readPaint(stream); | |
| 356 | this.foregroundPaint = SerialUtilities.readPaint(stream); | |
| 357 | this.stroke = SerialUtilities.readStroke(stream); | |
| 358 | } | |
| 359 | ||
| 360 | } | |
Mutations | ||
| 114 |
1.1 |
|
| 126 |
1.1 2.2 |
|
| 131 |
1.1 |
|
| 142 |
1.1 |
|
| 154 |
1.1 |
|
| 158 |
1.1 |
|
| 169 |
1.1 |
|
| 181 |
1.1 |
|
| 185 |
1.1 |
|
| 196 |
1.1 |
|
| 208 |
1.1 |
|
| 212 |
1.1 |
|
| 226 |
1.1 |
|
| 237 |
1.1 |
|
| 254 |
1.1 2.2 |
|
| 261 |
1.1 |
|
| 262 |
1.1 |
|
| 263 |
1.1 |
|
| 265 |
1.1 |
|
| 266 |
1.1 |
|
| 267 |
1.1 |
|
| 268 |
1.1 |
|
| 279 |
1.1 |
|
| 280 |
1.1 |
|
| 282 |
1.1 |
|
| 283 |
1.1 |
|
| 286 |
1.1 |
|
| 287 |
1.1 |
|
| 289 |
1.1 |
|
| 290 |
1.1 |
|
| 292 |
1.1 |
|
| 293 |
1.1 |
|
| 295 |
1.1 |
|
| 296 |
1.1 |
|
| 298 |
1.1 |
|
| 309 |
1.1 2.2 3.3 4.4 |
|
| 310 |
1.1 2.2 |
|
| 312 |
1.1 2.2 |
|
| 314 |
1.1 2.2 |
|
| 315 |
1.1 |
|
| 327 |
1.1 |
|
| 338 |
1.1 |
|
| 339 |
1.1 |
|
| 340 |
1.1 |
|
| 341 |
1.1 |
|
| 354 |
1.1 |


jQuery UI Timepicker (By François Gélinas)
What is this?
This is a jQuery UI time picker plugin build to match with other official jQuery UI widgets like the date picker.
Based on the existing date picker, this plugin will integrate nicely with your form and use your selected jQuery UI theme.
The plugin is very easy to integrate in your form for you time (hours / minutes) inputs.
Usage:
$('#timepicker').timepicker({ // Options timeSeparator: ':', // The character to use to separate hours and minutes. (default: ':') showLeadingZero: true, // Define whether or not to show a leading zero for hours < 10. (default: true) showMinutesLeadingZero: true, // Define whether or not to show a leading zero for minutes < 10. (default: true) showPeriod: false, // Define whether or not to show AM/PM with selected time. (default: false) showPeriodLabels: true, // Define if the AM/PM labels on the left are displayed. (default: true) altField: '#alternate_input', // Define an alternate input to parse selected time to defaultTime: '12:34', // Define a default time to use if displayed inline or input is empty zIndex: null, // Overwrite the default zIndex used by the time picker // trigger options showOn: 'focus', // Define when the timepicker is shown. // 'focus': when the input gets focus, 'button' when the button trigger element is clicked, // 'both': when the input gets focus and when the button is clicked. button: null, // jQuery selector that acts as button trigger. ex: '#trigger_button' // Localization hourText: 'Hour', // Define the locale text for "Hours" minuteText: 'Minute', // Define the locale text for "Minute" amPmText: ['AM', 'PM'], // Define the locale text for periods // Events onSelect: onSelectCallback, // Define a callback function when an hour / minutes is selected. onClose: onCloseCallback, // Define a callback function when the timepicker is closed. onHourShow: onHourShow, // Define a callback to enable / disable certain hours. ex: function onHourShow(hour) onMinuteShow: onMinuteShow, // Define a callback to enable / disable certain minutes. ex: function onMinuteShow(hour, minute) // custom hours and minutes hours: { starts: 0, // first displayed hour ends: 23 // last displayed hour }, minutes: { starts: 0, // first displayed minute ends: 55, // last displayed minute interval: 5 // interval of displayed minutes }, rows: 4 // number of rows for the input tables, minimum 2, makes more sense if you use multiple of 2 });
Examples :
Default time picker :
[Show code]
Time picker with period (AM/PM) in input and with hours leading 0s :
[Show code]
Time picker without period in text input and without hours leading 0s :
[Show code]
Time picker with labels in another language (Français) :
[Show code]
Time picker with restricted (disabled) hours / minutes. 8:30 PM to 6:30 AM disabled :
[Show code]
Define when the time picker is shown with the showOn option and set a trigger element with the button option
[Show code]
Time picker without the AM/PM labels on the left (showPeriodLabels option set to false:
[Show code]
Custom defined hours range (Business hours 6am to 9pm) and minutes increment set to 15 instead of 5
onSelect (hours and minutes both trigger event) and onClose events :
[Show code]
Requirements :
- jQuery 1.5.1 (probably works with previous versions)
- jQuery UI Core (included in jquery-ui-x.x.x.custom.min.js)
- jQuery UI Theme.css (included in jquery-ui-x.x.x.custom.css)
- jquery.ui.timepicker.js
- jquery-ui-timepicker.css
New! New! TimePicker is now 100% more social, on GitHub @ http://github.com/fgelinas/timepicker.
Get the release package here : jquery-ui-timepicker-0.2.2.zip
Releases :
- 0.2.2 - June 16, 2011
- Fixed a "console.log" line that I forgot to remove before release 0.2.1. (Thanks Derek Lavine)
- 0.2.1 - June 8, 2011
- Timepicker does not give the focus back to the input any more after time selection. This is similar to the datepicker behaviour and is more natural to the user because it shows the dialog again when the user click on the input again, as expected.
- Added options to customize the hours and minutes ranges and interval for more customization.
- 0.2 - May 28, 2011
- In the last release, I messed up versions and lost some changes so I'm fixing all this up with release 0.2
- 0.1.2 - May 26, 2011
- Fixed a bug with inline timepickers that would append a #timepickr hashtag when selecting hours and minutes.
- Fixed z-index problem with IE6 (Thanks Graham Bentley)
- Added selection of highlighted text when enter is pressed on the input field (Thanks Glen Chiacchieri)
- Adjusted some focus problems, now the input gets the focus back when the used click on hours / minutes.
- 0.1.something aka the lost release - around April 11
- Fixed a bug for when input Id had a dot in it, it was getting double escaped when it should not. (Thanks Zdenek Machac)
- So in 0.1.1 I created a bug that made timepicker changes the location hash, well now it's fixed. (Thanks Lucas Falk)
- 0.1.1 - April 6, 2011
- Changed the cells click and dblclick binding for faster rendering in IE6/7 (Thanks Blair Parsons)
- Fixed a class naming bug created in 0.1.0 (Thanks Morlion Peter)
- 0.1.0 - March 23, 2011
- Fixed some bugs with version 0.0.9
- 0.0.9 - March 22, 2011
- Added zIndex option (Thanks Frank Enderle)
- Added showPeriodLabels option (default: true) to show/hide AM/PM labels on the left (thanks Frank Enderle)
- Added showOn ['focus'|'button'|'both'] and button options for alternate trigger method
- 0.0.8 - February 17, 2011
- Fixed close event not triggered when switching to another input with time picker (thanks Stuart Gregg)
- 0.0.7 - February 10, 2011
- Added function to set time after initialisation :$('#timepicker').timepicker('setTime',newTime);
- Added support for disabled period of time : onHourShow and onMinuteShow (thanks Rene Felgenträger)
- 0.0.6 - January 19, 2011
- Replaced some div with tables to : fix some display bugs in IE7, fix inline display and fix my headhake.
- Added standard "change" event being triggered on the input when the content changes. (Thanks Rasmus Schultz)
- Added support for inline timePicker, attached to div or span.
- Added altField that receive the parsed time value when selected time changes.
- Added defaultTime value to use when input field is missing (inline) or input value is empty. If defaultTime is missing then current time is used.
- 0.0.5 - January 18, 2011
- Now updating time picker selected value when manually typing in the text field (thanks Rasmus Schultz)
Another step toward inline time picker ? - Fixed : with showPeriod: true and showLeadingZero: true, PM hours did not show leading zeros (thanks Chandler May)
- Fixed : with showPeriod: true and showLeadingZero: true, Selecting 12 AM shows as 00 AM in the input field, also parsing 12AM did not work correctly (thanks Rasmus Schultz)
- 0.0.4 - January 10, 2011
- Changed showLeadingZero to affect only hours, added showMinutesLeadingZero for minutes display.
- Changed the default value of timeSeparator from 'h' to ':'.
- Removed width:100% on tables in the css, caused a bug in some browsers.
- 0.0.3 - January 8, 2011
- Fixed a bug with the widget not displaying with some jQuery UI 1.8.7 css. (Thanks Alexander Fietz)
- Fixed a display bug on page load, a small empty div was visible at the bottom of pages. (Thanks Gertjan van Roekel)
- Modified the jquery-ui-timepicker.css to make the widget more dynamic to style and sizes changes.
- 0.0.2 - January 4, 2011
- Added showPeriod: period (AM/PM) in input and showLeadingZero: to control display of number < 10. (big thanks Steve Commisso)
- 0.0.1 - December 2010
- First release
To Do :
- Change the code style to use the jQuery widget framework.
- Detect a second click on the same cell and close the picker (ie: the user selected hours and do not want to select different minutes or vice versa, and click twice on the same cell instead) This is already simulated with the handling of the double click.
--
Francois Gelinas