text:
Posts Tagged 'folk music revival'
Harry Smith and the Music that Changed the World
Harry Smith is not even mentioned in the Grove Dictionary of Music, but he may have been the biggest influence on popular music of the past half century. And he was not even a musician. A true eccentric, Smith was a resident of New York's Greenwich Village for most of his life. He was an artist, […]


text:
As a writer, I truly enjoyed seeing how the book's author, Barb Rosenstock, located such a kid-friendly fact within the volumes contained in the life of this famous man of Colonial-American history. And I loved how, in turn, she spun that event into a lively story that kids can relate to--wishing to swim like a fish. Rosenstock's clever use of alliteration throughout the entire book is a bonus that makes for an enjoyable read-aloud.
The illustrator, , does a fabulous job weaving historical facts into the book. (Love those shoes and clothes!) And the color palette gives the book a historical feel. My favorite illustration? Seeing Ben, submerged up to his nose, with his swim-fins on and three fish fleeing from him with bug-eyed wonder! S.D. Schindler
T he book's layout, wonderfully designed (and published) by Calkin's Creek, is gorgeous! The text often gives a sense of water moving. And I think it's quite clever how the big, blue font hints of Ben's later-learned skill of printing.
BEN FRANKLIN'S BIG SPLASH; THE MOSTLY TRUE STORY OF HIS FIRST INVENTION is one picture-book biography that I'm sure kids in every elementary classroom will enjoy.

subset: commoncrawl


text:
By: Wes Erikson
Fisherman Wes Erikson shares his experiences fishing under strict Canadian discard legislation to demonstrate how the Common Fisheries Policy landing obligation can result in sustainably managed and economically viable European fisheries.
My story:
I have not missed a fishing season since I was five-years old. At that time, anyone could go fishing commercially; all you needed was a boat and a strong back (my grandfather used to say a weak mind helped!). Fishing with my father and grandfather at age 16, I skippered a 14-metre salmon troller and at 20, in 1987, I purchased my first vessel – a 15 metre halibut/salmon vessel. When I became a vessel owner, I decided it was important to get involved in the fisheries advisory process, and I remain involved to this day.
My fishery has evolved and matured as a result of concerns that fishermen have regarding safety, illegal activities, and price. Managers, scientists, and ENGOs have added to this with issues surrounding monitoring, accountability, discards, MPA's, seabird avoidance, and more. Sometimes change was forced upon us, and it is worth noting that fishermen can navigate cannily around any rule. We are natural problem solvers. We have to be, because lost lives and financial ruin are a very possible outcome of problems that arise in our field. This is one of the reasons why "only fishermen can talk to fishermen."
Co-management gave us the opportunity to be involved in decision making and regulation changes; real co-management, not just talking to fishermen. This requires time, trust, and allowing both parties to make mistakes and learn from them. The industry was given the chance to grow and mature, but growing up is not easy. None of this was easy. In fact, many changes seemed impossible.
In 2002, the Canadian government asked the participants of the groundfish fishery to integrate and account for all rockfish – 7 sectors, 4 gear types. The fear here was that if we could not figure out how to achieve these objectives, they would. The system we designed had to be affordable and workable for both the smallest boat in the fleet (5m) and the largest (60m), and seven fisheries, all with various catches, needed to combine and become fully accountable. Some species–of which there were over 72 to manage with up to 5 management areas per species– were jointly managed between Canada and the USA.
What we did:
We began by selecting an independent professional facilitator and developing guiding principles for how the process would work. As we started this new pilot fishery, I was terrified. The annual individual vessel allowance of some bottleneck species were less than I had discarded on any given day. On top of that, the quota for these species were owned by less than 80 individuals, one of whom speculated on quota just before this initiative was implemented, owned ten percent, and was planning on leasing these scarce species for a premium.
In light of this seemingly unworkable situation, we went fishing anyway. We're fishermen. It's what we do. In the first year, we left over fifty percent of those bottleneck species in the water, and the quota owners were left holding onto over half of this so-called valuable quota. Fishermen began cooperating and communicating almost immediately in order to avoid species with low TACs, and if you are a fisherman, then you will understand that this is revolutionary. Since 2006, we have under-harvested every species as a fleet, including the bottleneck species.
Over 300 Canadian vessels participate in the integrated groundfish fishery, under one management plan, with catch shares, an allocation based management tool, for all species and vessels; although each sector had a very different catch share design. Each vessel is accountable for all of its catch, regardless of whether it is retained or released, with logbooks being audited against video footage and compared to the offload. Now that we can trust the data, our logbooks are being used in science and management studies, because the data provides information on total catch mortality– retained and released.
How we did it:
The most important guideline in fisheries management design is to clearly define your objectives, before you identify your participants and begin a consultative process. With enough incentive, any problem can be solved. The four most important components of this fishery are:
- The removal of competition, or, preventing the race for fish
- Individual accountability
- Transferability
- Monitoring
Transferability is an important feature of this management system. It supports selective fishing, staying within allocations, staying safe, and allowing industry to adjust to resource and market dynamics. Vessels are allowed to carry over some level of quota underages and overages from one year to the next, which encourages vessels to fish below their allocation.
There is no guarantee of success here. However, I do know that without these elements in my fishery, we were headed for failure. Many of us now will survive and thrive because the system gives us the flexibility to adjust, take measured risks, and gather the support we need to execute new plans. This has allowed for better working relationships with everyone involved, and we will continue to evolve and mature over time, because this system allows us the flexibility to innovate.


text:
This is part of NRN's special coverage of the 2011 Multi-Unit Foodservice Operator conference, or MUFSO. The conference is taking place Sept. 25-27 at the Gaylord Texan in Grapevine, Texas. Follow all coverage on NRN's "At the Show" section, check out the NRN blog, Reporter's Notebook, and Tweet with us using #MUFSO.
This post is part of NRN's newsroom blog, Reporter's Notebook.
2011 NRN Golden Chain award winner Steve Romaniello has been an important part of Roark Capital Group's foodservice acquisition spree in recent years, including this year's purchase of a controlling interest in Arby's from the organization now known as The Wendy's Co. Romaniello recently spoke with NRN about Arby's as part of a larger discussion dealing with his role at Roark, where he is a managing director and chairman of the Atlanta-based company's Focus Brands and Wingstop holdings.
Reported North American same-store sales at Arby's fell 5.8 percent and 8.8 percent in fiscal 2010 and 2009, respectively. The number of systemwide restaurants fell 2.8 percent, to 3,649 units, between the end of 2008 and end of 2010. And, given the deal that brought Arby's to Roark, it would appear that whatever synergies or benefits were expected from the 2008 combination of Arby's and Wendy's under the former Wendy's/Arby's Group Inc. never materialized or did not manifest themselves to the degree originally imagined by the architects of that two-is-better strategy.
NRN: Why was Arby's a good acquisition for Roark?
Romaniello: We think Arby's is an iconic brand and very well known and very well liked, with a great deal of consumer appeal. It is a brand that owns something: it owns roast beef. It is known for roast beef and it has a very distinctive position. When you consider it against some of our competitors in the sandwich space, it is among the largest in that space.
It has the ability to roast and slice proteins and the benefit of a drive-thru. It has many, many years in these locations and some terrific real estate. There are still some very great people working at the company who are committed to the brand and its success and the base of franchisees is phenomenal. They've been around for a while, they love the brand and know its history and appreciate it, and they share our belief it can be great again.
We were excited about the opportunity with Arby's and we do think there is path to reestablish the brand as a premiere brand, as it once was. Those things that I mentioned -- assets that are very difficult to recreate -- will be those things that we will attempt, in conjunction with management and franchisees, to leverage to bring us back to where we should be.
All the Golden Chain honorees, as well as Pioneer, Norman and Operator of the Year designees, will be feted Monday night during an "Industry Celebration & Awards Recognition" event at MUFSO, at the Gaylord Texan resort in Grapevine, Texas.
Read a profile of Romaniello among the many profiles of 2011 Golden Chain winners in NRN or as part of NRN.com's coverage of Golden Chain and MUFSO 2011
Contact Alan Liddle at [email protected].


text:
FOR IMMEDIATE RELEASE October 9, 2007
Quick Links
The Connecticut Supreme Court will travel to Southern Connecticut State University (SCSU) on Wednesday, Oct. 17, to hear arguments in two cases, one civil and one criminal. The arguments will take place in the Grand Ballroom of the Michael J. Adanti Student Center.
The Court's appearance at SCSU is part of an ongoing educational initiative of the Connecticut Judicial Branch to introduce students, educators, and the general public to the role and responsibilities of the appellate court system. This program began over 20 years ago and the visit marks the second time that the Justices have held arguments at a Connecticut State University institution. Last October, the Justices traveled to Eastern Connecticut State University and heard oral arguments.
Chief Justice Chase T. Rogers said: "The 'Supreme Court on Tour' program presents a unique opportunity for students to learn about the appellate court system. We look forward to visiting Southern Connecticut State University for the first time, and appreciate the hospitality that has been extended to us as we prepare for our visit."
"We are delighted to host the highest court in the state of Connecticut on campus," said SCSU President Cheryl J. Norton. "This is a tremendous educational opportunity – not only for our students, but for all students in the Greater New Haven area. It is not every day that people get a chance to see the state Supreme Court in action. We would encourage high schools and colleges throughout the area to send a group of students so that they can witness the proceedings of the court. We also welcome individuals from the general public."
The civil case, Sally A. Allen v. Jessica Cox, will be heard at 10 a.m., and the criminal case, State v. Larry Davis, will start at 12 noon. Arguments in each case will last approximately one hour. For more information about the cases, please visit the Judicial Branch's website at www.jud.ct.gov.
Volunteer attorneys will meet with students before the oral arguments to introduce them to the cases that will be argued. Attorneys Mark A. Milano and Stephen G. Murphy, Jr., both former Supreme Court law clerks, will conduct these sessions. A question-and-answer period with the attorneys involved in each case will follow each argument.
News media organizations may record, broadcast, televise, and photograph the oral arguments in compliance with the rules governing cameras in the Supreme Court and the protocol adopted by the Court, which is available on the Judicial Branch's website. In particular, please note that the protocol requires media outlets to make pooling arrangements among themselves if there are multiple requests to videotape, broadcast, televise, record or photograph the same argument. In addition, news media organizations may photograph the question-and-answer periods. The Court requests that news media planning on recording, broadcasting, televising or photographing the oral arguments, or photographing the question and answer period, please contact Jim Senich (860-757-2270) by Monday, Oct. 15th.
The following items may not be brought into the courtroom: cameras, video equipment (unless by a media representative as the pool), bladed or pointed items, weapons, and food and beverages. To help the screening process and movement in and out of the Grand Ballroom, it is recommended that guests not bring briefcases, backpacks, pocketbooks, or bags.
Attorneys | Case Look-up | Courts | Directories | Educational Resources | E-Services | Español | FAQ's | Juror Information | Media | Opinions | Opportunities | Self-Help | Home
Common Legal Words | Contact Us | Site Map | Website Polices and Disclaimers
Copyright © 2016, State of Connecticut Judicial Branch


text:
Short Formal Black Dresses There are 49 products.
Short Formal Black Dresses
Free shipping on short formal black dresses at GemGrace.com. Affordable women's formal dresses come in every color and size. Enjoy pro custom-made service today!
Stand out from any crowd in an evening gown that makes you confident, sexy, special and graceful. Our formal gowns and dresses include styles shown in magazines, worn by celebrities, and many of our best sellers.
GemGrace understands that each woman is unique and, therefore, we've create a collection full of varying necklines, silhouettes, fabrics, and colors to best showcase your individual style and beauty. There are mermaid dresses with sexy hourglass shape and long elegant evening dresses in solid colors and gorgeous prints. For a sexy evening dress that will make you stand out from the crowd, select a sequin, beaded or split evening dress. From classic black, white and red evening dresses for nighttime balls or black-tie weddings to floral print for daytime party, you'll find the ideal look for any event.
Our custom dresses are available in sizes 2-26, each designed to fit a variety of shapes from petite to plus size. Browse online find the long evening gown that will make you glow throughout the night.


text:
Part 1 - Chapter 11 - Experiments
"The first of June! The Kings are off to the seashore tomorrow, and I'm free. Three months' vacation--how I shall enjoy it!" exclaimed Meg, coming home one warm day to find Jo laid upon the sofa in an unusual state of exhaustion, while Beth took off her dusty boots, and Amy made lemonade for the refreshment of the whole party.
"Aunt March went today, for which, oh, be joyful!" said Jo. "I was mortally afraid she'd ask me to go with her. If she had, I should have felt as if I ought to do it, but Plumfield is about as gay as a churchyard, you know, and I'd rather be excused. We had a flurry getting the old lady off, and I had a fright every time she spoke to me, for I was in such a hurry to be through that I was uncommonly helpful and sweet, and feared she'd find it impossible to part from me. I quaked till she was fairly in the carriage, and had a final fright, for as it drove of, she popped out her head, saying, 'Josyphine, won't you--?' I didn't hear any more, for I basely turned and fled. I did actually run, and whisked round the corner where I felt safe."
"Poor old Jo! She came in looking as if bears were after her," said Beth, as she cuddled her sister's feet with a motherly air.
"Aunt March is a regular samphire, is she not?" observed Amy, tasting her mixture critically.
"She means vampire, not seaweed, but it doesn't matter. It's too warm to be particular about one's parts of speech," murmured Jo.
"What shall you do all your vacation?" asked Amy, changing the subject with tact.
"I shall lie abed late, and do nothing," replied Meg, from the depths of the rocking chair. "I've been routed up early all winter and had to spend my days working for other people, so now I'm going to rest and revel to my heart's content."
"No," said Jo, "that dozy way wouldn't suit me. I've laid in a heap of books, and I'm going to improve my shining hours reading on my perch in the old apple tree, when I'm not having l----"
"Don't say 'larks!'" implored Amy, as a return snub for the 'samphire' correction.
"I'll say 'nightingales' then, with Laurie. That's proper and appropriate, since he's a warbler."
"Don't let us do any lessons, Beth, for a while, but play all the time and rest, as the girls mean to," proposed Amy.
"Well, I will, if Mother doesn't mind. I want to learn some new songs, and my children need fitting up for the summer. They are dreadfully out of order and really suffering for clothes."
"May we, Mother?" asked Meg, turning to Mrs. March, who sat sewing in what they called 'Marmee's corner'.
"You may try your experiment for a week and see how you like it. I think by Saturday night you will find that all play and no work is as bad as all work and no play."
"Oh, dear, no! It will be delicious, I'm sure," said Meg complacently.
"I now propose a toast, as my 'friend and pardner, Sairy Gamp', says. Fun forever, and no grubbing!" cried Jo, rising, glass in hand, as the lemonade went round.
They all drank it merrily, and began the experiment by lounging for the rest of the day. Next morning, Meg did not appear till ten o'clock. Her solitary breakfast did not taste good, and the room seemed lonely and untidy, for Jo had not filled the vases, Beth had not dusted, and Amy's books lay scattered about. Nothing was neat and pleasant but 'Marmee's corner', which looked as usual. And there Meg sat, to 'rest and read', which meant to yawn and imagine what pretty summer dresses she would get with her salary. Jo spent the morning on the river with Laurie and the afternoon reading and crying over _The Wide, Wide World_, up in the apple tree. Beth began by rummaging everything out of the big closet where her family resided, but getting tired before half done, she left her establishment topsy-turvy and went to her music, rejoicing that she had no dishes to wash. Amy arranged her bower, put on her best white frock, smoothed her curls, and sat down to draw under the honeysuckle, hoping someone would see and inquire who the young artist was. As no one appeared but an inquisitive daddy-longlegs, who examined her work with interest, she went to walk, got caught in a shower, and came home dripping.
At teatime they compared notes, and all agreed that it had been a delightful, though unusually long day. Meg, who went shopping in the afternoon and got a 'sweet blue muslin', had discovered, after she had cut the breadths off, that it wouldn't wash, which mishap made her slightly cross. Jo had burned the skin off her nose boating, and got a raging headache by reading too long. Beth was worried by the confusion of her closet and the difficulty of learning three or four songs at once, and Amy deeply regretted the damage done her frock, for Katy Brown's party was to be the next day and now like Flora McFlimsey, she had 'nothing to wear'. But these were mere trifles, and they assured their mother that the experiment was working finely. She smiled, said nothing, and with Hannah's help did their neglected work, keeping home pleasant and the domestic machinery running smoothly. It was astonishing what a peculiar and uncomfortable state of things was produced by the 'resting and reveling' process. The days kept getting longer and longer, the weather was unusually variable and so were tempers; an unsettled feeling possessed everyone, and Satan found plenty of mischief for the idle hands to do. As the height of luxury, Meg put out some of her sewing, and then found time hang so heavily, that she fell to snipping and spoiling her clothes in her attempts to furbish them up a la Moffat. Jo read till her eyes gave out and she was sick of books, got so fidgety that even good-natured Laurie had a quarrel with her, and so reduced in spirits that she desperately wished she had gone with Aunt March. Beth got on pretty well, for she was constantly forgetting that it was to be all play and no work, and fell back into her old ways now and then. But something in the air affected her, and more than once her tranquility was much disturbed, so much so that on one occasion she actually shook poor dear Joanna and told her she was 'a fright'. Amy fared worst of all, for her resources were small, and when her sisters left her to amuse herself, she soon found that accomplished and important little self a great burden. She didn't like dolls, fairy tales were childish, and one couldn't draw all the time. Tea parties didn't amount to much, neither did picnics, unless very well conducted. "If one could have a fine house, full of nice girls, or go traveling, the summer would be delightful, but to stay at home with three selfish sisters and a grown-up boy was enough to try the patience of a Boaz," complained Miss Malaprop, after several days devoted to pleasure, fretting, and ennui.
No one would own that they were tired of the experiment, but by Friday night each acknowledged to herself that she was glad the week was nearly done. Hoping to impress the lesson more deeply, Mrs. March, who had a good deal of humor, resolved to finish off the trial in an appropriate manner, so she gave Hannah a holiday and let the girls enjoy the full effect of the play system.
When they got up on Saturday morning, there was no fire in the kitchen, no breakfast in the dining room, and no mother anywhere to be seen.
"Mercy on us! What has happened?" cried Jo, staring about her in dismay.
Meg ran upstairs and soon came back again, looking relieved but rather bewildered, and a little ashamed.
"Mother isn't sick, only very tired, and she says she is going to stay quietly in her room all day and let us do the best we can. It's a very queer thing for her to do, she doesn't act a bit like herself. But she says it has been a hard week for her, so we mustn't grumble but take care of ourselves."
"That's easy enough, and I like the idea, I'm aching for something to do, that is, some new amusement, you know," added Jo quickly.
In fact it was an immense relief to them all to have a little work, and they took hold with a will, but soon realized the truth of Hannah's saying, "Housekeeping ain't no joke." There was plenty of food in the larder, and while Beth and Amy set the table, Meg and Jo got breakfast, wondering as they did why servants ever talked about hard work.
"I shall take some up to Mother, though she said we were not to think of her, for she'd take care of herself," said Meg, who presided and felt quite matronly behind the teapot.
So a tray was fitted out before anyone began, and taken up with the cook's compliments. The boiled tea was very bitter, the omelet scorched, and the biscuits speckled with saleratus, but Mrs. March received her repast with thanks and laughed heartily over it after Jo was gone.
"Poor little souls, they will have a hard time, I'm afraid, but they won't suffer, and it will do them good," she said, producing the more palatable viands with which she had provided herself, and disposing of the bad breakfast, so that their feelings might not be hurt, a motherly little deception for which they were grateful.
Many were the complaints below, and great the chagrin of the head cook at her failures. "Never mind, I'll get the dinner and be servant, you be mistress, keep your hands nice, see company, and give orders," said Jo, who knew still less than Meg about culinary affairs.
This obliging offer was gladly accepted, and Margaret retired to the parlor, which she hastily put in order by whisking the litter under the sofa and shutting the blinds to save the trouble of dusting. Jo, with perfect faith in her own powers and a friendly desire to make up the quarrel, immediately put a note in the office, inviting Laurie to dinner.
"You'd better see what you have got before you think of having company," said Meg, when informed of the hospitable but rash act.
"Oh, there's corned beef and plenty of poatoes, and I shall get some asparagus and a lobster, 'for a relish', as Hannah says. We'll have lettuce and make a salad. I don't know how, but the book tells. I'll have blanc mange and strawberries for dessert, and coffee too, if you want to be elegant."
"Don't try too many messes, Jo, for you can't make anything but gingerbread and molasses candy fit to eat. I wash my hands of the dinner party, and since you have asked Laurie on your own responsibility, you may just take care of him."
"I don't want you to do anything but be civil to him and help to the pudding. You'll give me your advice if I get in a muddle, won't you?" asked Jo, rather hurt.
"Yes, but I don't know much, except about bread and a few trifles. You had better ask Mother's leave before you order anything," returned Meg prudently.
"Of course I shall. I'm not a fool." And Jo went off in a huff at the doubts expressed of her powers.
"Get what you like, and don't disturb me. I'm going out to dinner and can't worry about things at home," said Mrs. March, when Jo spoke to her. "I never enjoyed housekeeping, and I'm going to take a vacation today, and read, write, go visiting, and amuse myself."
The unusual spectacle of her busy mother rocking comfortably and reading early in the morning made Jo feel as if some unnatural phenomenon had occurred, for an eclipse, an earthquake, or a volcanic eruption would hardly have seemed stranger.
"Everything is out of sorts, somehow," she said to herself, going downstairs. "There's Beth crying, that's a sure sign that something is wrong in this family. If Amy is bothering, I'll shake her."
Feeling very much out of sorts herself, Jo hurried into the parlor to find Beth sobbing over Pip, the canary, who lay dead in the cage with his little claws pathetically extended, as if imploring the food for want of which he had died.
"It's all my fault, I forgot him, there isn't a seed or a drop left. Oh, Pip! Oh, Pip! How could I be so cruel to you?" cried Beth, taking the poor thing in her hands and trying to restore him.
Jo peeped into his half-open eye, felt his little heart, and finding him stiff and cold, shook her head, and offered her domino box for a coffin.
"Put him in the oven, and maybe he will get warm and revive," said Amy hopefully.
"He's been starved, and he shan't be baked now he's dead. I'll make him a shroud, and he shall be buried in the garden, and I'll never have another bird, never, my Pip! for I am too bad to own one," murmured Beth, sitting on the floor with her pet folded in her hands.
"The funeral shall be this afternoon, and we will all go. Now, don't cry, Bethy. It's a pity, but nothing goes right this week, and Pip has had the worst of the experiment. Make the shroud, and lay him in my box, and after the dinner party, we'll have a nice little funeral," said Jo, beginning to feel as if she had undertaken a good deal.
Leaving the others to console Beth, she departed to the kitchen, which was in a most discouraging state of confusion. Putting on a big apron, she fell to work and got the dishes piled up ready for washing, when she discovered that the fire was out.
"Here's a sweet prospect!" muttered Jo, slamming the stove door open, and poking vigorously among the cinders.
Having rekindled the fire, she thought she would go to market while the water heated. The walk revived her spirits, and flattering herself that she had made good bargains, she trudged home again, after buying a very young lobster, some very old asparagus, and two boxes of acid strawberries. By the time she got cleared up, the dinner arrived and the stove was red-hot. Hannah had left a pan of bread to rise, Meg had worked it up early, set it on the hearth for a second rising, and forgotten it. Meg was entertaining Sallie Gardiner in the parlor, when the door flew open and a floury, crocky, flushed, and disheveled figure appeared, demanding tartly . . .
"I say, isn't bread 'riz' enough when it runs over the pans?"
Sallie began to laugh, but Meg nodded and lifted her eyebrows as high as they would go, which caused the apparition to vanish and put the sour bread into the oven without further delay. Mrs. March went out, after peeping here and there to see how matters went, also saying a word of comfort to Beth, who sat making a winding sheet, while the dear departed lay in state in the domino box. A strange sense of helplessness fell upon the girls as the gray bonnet vanished round the corner, and despair seized them when a few minutes later Miss Crocker appeared, and said she'd come to dinner. Now this lady was a thin, yellow spinster, with a sharp nose and inquisitive eyes, who saw everything and gossiped about all she saw. They disliked her, but had been taught to be kind to her, simply because she was old and poor and had few friends. So Meg gave her the easy chair and tried to entertain her, while she asked questions, critsized everything, and told stories of the people whom she knew.
Language cannot describe the anxieties, experiences, and exertions which Jo underwent that morning, and the dinner she served up became a standing joke. Fearing to ask any more advice, she did her best alone, and discovered that something more than energy and good will is necessary to make a cook. She boiled the asparagus for an hour and was grieved to find the heads cooked off and the stalks harder than ever. The bread burned black; for the salad dressing so aggravated her that she could not make it fit to eat. The lobster was a scarlet mystery to her, but she hammered and poked till it was unshelled and its meager proportions concealed in a grove of lettuce leaves. The potatoes had to be hurried, not to keep the asparagus waiting, and were not done at the last. The blanc mange was lumpy, and the strawberries not as ripe as they looked, having been skilfully 'deaconed'.
"Well, they can eat beef and bread and butter, if they are hungry, only it's mortifying to have to spend your whole morning for nothing," thought Jo, as she rang the bell half an hour later than usual, and stood, hot, tired, and dispirited, surveying the feast spread before Laurie, accustomed to all sorts of elegance, and Miss Crocker, whose tattling tongue would report them far and wide.
Poor Jo would gladly have gone under the table, as one thing after another was tasted and left, while Amy giggled, Meg looked distressed, Miss Crocker pursed her lips, and Laurie talked and laughed with all his might to give a cheerful tone to the festive scene. Jo's one strong point was the fruit, for she had sugared it well, and had a pitcher of rich cream to eat with it. Her hot cheeks cooled a trifle, and she drew a long breath as the pretty glass plates went round, and everyone looked graciously at the little rosy islands floating in a sea of cream. Miss Crocker tasted first, made a wry face, and drank some water hastily. Jo, who refused, thinking there might not be enough, for they dwindled sadly after the picking over, glanced at Laurie, but he was eating away manfully, though there was a slight pucker about his mouth and he kept his eye fixed on his plate. Amy, who was fond of delicate fare, took a heaping spoonful, choked, hid her face in her napkin, and left the table precipitately.
"Oh, what is it?" exclaimed Jo, trembling.
"Salt instead of sugar, and the cream is sour," replied Meg with a tragic gesture.
Jo uttered a groan and fell back in her chair, remembering that she had given a last hasty powdering to the berries out of one of the two boxes on the kitchen table, and had neglected to put the milk in the refrigerator. She turned scarlet and was on the verge of crying, when she met Laurie's eyes, which would look merry in spite of his heroic efforts. The comical side of the affair suddenly struck her, and she laughed till the tears ran down her cheeks. So did everyone else, even 'Croaker' as the girls called the old lady, and the unfortunate dinner ended gaily, with bread and butter, olives and fun.
"I haven't strength of mind enough to clear up now, so we will sober ourselves with a funeral," said Jo, as they rose, and Miss Crocker made ready to go, being eager to tell the new story at another friend's dinner table.
They did sober themselves for Beth's sake. Laurie dug a grave under the ferns in the grove, little Pip was laid in, with many tears by his tender-hearted mistress, and covered with moss, while a wreath of violets and chickweed was hung on the stone which bore his epitaph, composed by Jo while she struggled with the dinner.
At the conclusion of the ceremonies, Beth retired to her room, overcome with emotion and lobster, but there was no place of repose, for the beds were not made, and she found her grief much assuaged by beating up the pillows and putting things in order. Meg helped Jo clear away the remains of the feast, which took half the afternoon and left them so tired that they agreed to be contented with tea and toast for supper.
Laurie took Amy to drive, which was a deed of charity, for the sour cream seemed to have had a bad effect upon her temper. Mrs. March came home to find the three older girls hard at work in the middle of the afternoon, and a glance at the closet gave her an idea of the success of one part of the experiment.
Before the housewives could rest, several people called, and there was a scramble to get ready to see them. Then tea must be got, errands done, and one or two necessary bits of sewing neglected until the last minute. As twilight fell, dewy and still, one by one they gathered on the porch where the June roses were budding beautifully, and each groaned or sighed as she sat down, as if tired or troubled.
"What a dreadful day this has been!" began Jo, usually the first to speak.
"It has seemed shorter than usual, but so uncomfortable," said Meg.
"Not a bit like home," added Amy.
"It can't seem so without Marmee and little Pip," sighed Beth, glancing with full eyes at the empty cage above her head.
"Here's Mother, dear, and you shall have another bird tomorrow, if you want it."
As she spoke, Mrs. March came and took her place among them, looking as if her holiday had not been much pleasanter than theirs.
"Are you satisfied with your experiment, girls, or do you want another week of it?" she asked, as Beth nestled up to her and the rest turned toward her with brightening faces, as flowers turn toward the sun.
"I don't!" cried Jo decidedly.
"Nor I," echoed the others.
"You think then, that it is better to have a few duties and live a little for others, do you?"
"Lounging and larking doesn't pay," observed Jo, shaking her head. "I'm tired of it and mean to go to work at something right off."
"Suppose you learn plain cooking. That's a useful accomplishment, which no woman should be without," said Mrs. March, laughing inaudibly at the recollection of Jo's dinner party, for she had met Miss Crocker and heard her account of it.
"Mother, did you go away and let everything be, just to see how we'd get on?" cried Meg, who had had suspicions all day.
"Yes, I wanted you to see how the comfort of all depends on each doing her share faithfully. While Hannah and I did your work, you got on pretty well, though I don't think you were very happy or amiable. So I thought, as a little lesson, I would show you what happens when everyone thinks only of herself. Don't you feel that it is pleasanter to help one another, to have daily duties which make leisure sweet when it comes, and to bear and forbear, that home may be comfortable and lovely to us all?"
"We do, Mother, we do!" cried the girls.
"Then let me advise you to take up your little burdens again, for though they seem heavy sometimes, they are good for us, and lighten as we learn to carry them. Work is wholesome, and there is plenty for everyone. It keeps us from ennui and mischief, is good for health and spirits, and gives us a sense of power and independence better than money or fashion."
"We'll work like bees, and love it too, see if we don't," said Jo. "I'll learn plain cooking for my holiday task, and the next dinner party I have shall be a success."
"I'll make the set of shirts for father, instead of letting you do it, Marmee. I can and I will, though I'm not fond of sewing. That will be better than fussing over my own things, which are plenty nice enough as they are." said Meg.
"I'll do my lessons every day, and not spend so much time with my music and dolls. I am a stupid thing, and ought to be studying, not playing," was Beth's resolution, while Amy followed their example by heroically declaring, "I shall learn to make buttonholes, and attend to my parts of speech."
"Very good! Then I am quite satisfied with the experiment, and fancy that we shall not have to repeat it, only don't go to the other extreme and delve like slaves. Have regular hours for work and play, make each day both useful and pleasant, and prove that you understand the worth of time by employing it well. Then youth will be delightful, old age will bring few regrets, and life become a beautiful success, in spite of poverty."
"We'll remember, Mother!" and they did.
Here lies Pip March,
Who died the 7th of June;
Loved and lamented sore,
And not forgotten soon.


text:
Configuration File¶
- Author:
Thomas Bonfort
- Contact:
tbonfort at terriscope.fr
The configuration file determines how mod-mapcache will serve incoming requests. It is an XML file comprising a list of entries, as outlined here:
The MapCache configuration file is only read when the Apache web server starts and the MapCache module is loaded. If you modify this file you will have to restart Apache for the changes to take effect.
A source is a service mod-mapcache can query to obtain image data. This is typically a WMS server accessible by a URL. (There are currently only WMS, WMTS and mapfile as sources, though others may be added later if the need arises, see Data Sources).
<source name="vmap0" type="wms">
Extra parameters that will be added to the GetMap request. You can
specify any parameter here, e.g. VERSION if you want to override the
version of the WMS request.
The LAYERS parameter is mandatory.
Usual parameters here are FORMAT, or MAP if using MapServer.
<!-- HTTP URL and parameters to be used when making WMS requests -->
<!-- URL of the WMS service, without any parameters -->
HTTP headers added to the request. Make sure you know what you are
doing when adding headers here, as they take precedence over any
default headers curl will be adding to the request.
Typical headers that can be added here are User-Agent and Referer.
When adding a <key>value</key> element here, the request to the WMS
source will contain the
key: value\r\n
HTTP header.
You may also forward a header from the incoming client request using
the <MyHeader>{X-Header-To-Forward}<MyHeader> syntax.
<!-- Timeout in seconds before bailing out from a request -->
The name and type attributes are straightforward: type is "wms", and name is the key by which this source will be referenced; <url> is the HTTP location where the service can be accessed; and <wmsparams> is a list of parameters that will be added to the WMS request. You should probably at the very least add the FORMAT and LAYERS parameters. By convention(?), WMS parameters are uppercase, and you should respect this convention in your configuration file.
This is where you can also override some default WMS parameters if needed. By default, the parameters that will be used are: <REQUEST>GetMap</REQUEST> <SERVICE>WMS</SERVICE> <STYLES></STYLES> <VERSION>1.1.0</VERSION>
A cache is a location where received tiles will be stored.
<cache name="disk" type="disk">
<!-- base
Absolute filesystem path where the tile structure will be stored.
This directory needs to be readable and writable by the user running
<!-- symlink_blank
Enable blank (i.e. uniform color) tile detection. Blank tiles will be
detected at creation time and linked to a single blank tile on disk
to preserve disk space.
<cache name="tmpl" type="disk" layout="template">
<!-- template
String template that will be used to map a tile (by tileset, grid
name, dimension, format, x, y, and z) to a filename on the filesystem.
The following replacements are performed:
- {tileset} : the tileset name
- {grid} : the grid name
- {dim} : string concatenating the tile's dimension
- {ext} : tile's image-format filename extension
- {x},{y},{z} : tile's x,y,z values
- {inv_x},{inv_y},{inv_z} : inverted x,y,z values
(For inverted x,y,z values, (inv_x = level->maxx - x - 1). This is
mainly used to support grids where one axis is inverted (e.g. the
Google schema) and you want to create on offline cache.)
* Note that this type of cache does not support blank-tile detection
and symlinking.
* Warning: It is up to you to make sure that the template you choose
creates a unique filename for your given tilesets (e.g. do not omit
the {grid} parameter if your tilesets reference multiple grids.)
Failure to do so will result in filename collisions!
<!-- memcache cache
Entry accepts multiple <server> entries.
Requires a fairly recent apr-util library and headers.
<cache name="memcache" type="memcache">
<!-- sqlite cache
Requires building with "with-sqlite".
<cache name="sqlite" type="sqlite3">
<!-- dbfile
Absolute filename path of the SQLite database file to use.
This file needs to be readable and writable by the user running the
MapCache instance.
<cache name="mbtiles" type="mbtiles">
A format is an image format that will be used to return tile data to clients, and to store tile data on disk.
<format name="PNGQ_FAST" type ="PNG">
<!-- compression
PNG compression: best or fast
Note that "best" compression is CPU intensive for little gain over
the default default compression obtained by leaving out this tag.
<!-- colors
If supplied, this enables PNG quantization which reduces the number
of colors in an image to attain higher compression. This operation is
destructive, and can cause artifacts in the stored image.
The number of colors can be between 2 and 256.
<format name="myjpeg" type ="JPEG">
<!-- quality
JPEG compression quality, ranging from 0 to 100.
95 produces high quality images with few visual artifacts. Values
under around 80 produce small images but with visible artifacts.
<!-- photometric
Photometric interpretation of the bands created in the JPEG image.
Default is "ycbcr", which produces the smallest images. Can also be
"rgb", which usually results in x2 or x3 image sizes.
<format name="PNG_BEST" type ="PNG">
<format name="mixed" type="MIXED">
A grid is the matrix that maps tiles onto an area, and consists of a spatial reference, a geographic extent, resolutions, and tile sizes.
Mandatory Configuration Options¶
<size>: The width and height of an individual tile, in pixels. Must be specified as positive integers separated by a space character. The most common tile size is:
<size>256 256</size>
<extent>: The geographical extent covered by the grid, in ground units (e.g. meters, degrees, feet, etc.). Must be specified as 4 floating point numbers separated by spaces, ordered as minx, miny, maxx, maxy.
MapCache expects all of its extents to be given in lonlat, and does the translation to latlon at request time if needed.
The (minx,miny) point defines the origin of the grid, i.e. the pixel at the bottom left of the bottom-left most tile is always placed on the (minx,miny) geographical point.
The (maxx,maxy) point is used to determine how many tiles there are for each zoom level.
<extent>-180 -90 180 90</extent>
<srs>: The projection of the grid, usually given by it EPSG identifier. This value isn't used directly by MapCache to compute reprojections; it is only used to look up which grid to use when receiving WMS requests.
This is the value that is passed on to the source when requesting a tile that is not already cached for the current grid. You must make sure that the source that is queried is capable of returning image data for this SRS.
<units>: The ground units used by the grid's projection. This entry is not used directly by MapCache aside from calculating scales for the WMTS capabilities document. Allowed values are:
m : meters
dd : decimal degrees
ft : feet
<resolutions>: This is a list of resolutions for each of the zoom levels defined by the grid. This must be supplied as a list of positive floating point values, separated by spaces and ordered from largest to smallest. The largest value will correspond to the grid's zoom level 0. Resolutions are expressed in "units-per-pixel", depending on the unit used by the grid (e.g. resolutions are in meters per pixel for most grids used in webmapping).
<resolutions>0.703125000000000 0.351562500000000 0.175781250000000 8.78906250000000e-2 4.39453125000000e-2 2.19726562500000e-2 1.09863281250000e-2 5.49316406250000e-3 2.74658203125000e-3 1.37329101562500e-3 6.86645507812500e-4 3.43322753906250e-4 1.71661376953125e-4 8.58306884765625e-5 4.29153442382812e-5 2.14576721191406e-5 1.07288360595703e-5 5.36441802978516e-6</resolutions>
Optional Configuration Options¶
<srsalias>: This tag can be specified multiple times, and allows the user to add multiple SRS entries for a given grid. This is especially useful if the EPSG id for a given projection has evolved over time, or to support catalogs other than the EPSG one (which is the only catalog supported by the WMS specification).
<srs>EPSG:310024802</srs> <srsalias>IGNF:GEOPORTALFXX</srsalias> <srsalias>EPSG:310024001</srsalias>
<title>: The name of the grid, in human readable form. Appears in the capabilities documents.
<title>This grid covers the area blah blah blah</title>
<WellKnownScaleSet>: See the WMTS keyword. This will add a WellKnownScaleSet entry to the WMTS capabilities document. It is up to the user to make sure that the supplied resolutions for the grid actually match the pre-defined WellKnownScaleSet.
<origin>: Specifies the origin of the grid. Valid values are top-left, bottom-left, top-right and bottom-right.
If not used, the grid will have the bottom-left corner as reference point.
Preconfigured Grids¶
There are three predefined grids you can use without defining them in the mapcache.xml file:
The "WGS84" grid corresponds to a grid where the whole world is rendered on two 256x256-pixel tiles at level 0 (i.e. the (-180,-90,180,90) extent fits on a 512x256 image). It goes down to zoom level 17.
<grid name="WGS84"> <metadata> <title>GoogleCRS84Quad</title> <WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleCRS84Quad</WellKnownScaleSet> </metadata> <extent>-180 -90 180 90</extent> <srs>EPSG:4326</srs> <units>dd</units> <size>256 256</size> <resolutions>0.703125000000000 0.351562500000000 0.175781250000000 8.78906250000000e-2 4.39453125000000e-2 2.19726562500000e-2 1.09863281250000e-2 5.49316406250000e-3 2.74658203125000e-3 1.37329101562500e-3 6.86645507812500e-4 3.43322753906250e-4 1.71661376953125e-4 8.58306884765625e-5 4.29153442382812e-5 2.14576721191406e-5 1.07288360595703e-5 5.36441802978516e-6</resolutions> </grid>
The "g" grid may be used to overlay tiles on top of GoogleMaps, and is the default tiling scheme used in webmapping applications. This grid goes down to zoom level 18. Level 0 is a single 256x256 tile. This grid's default SRS is EPSG:900913, which is non-standard but in wider use than than its official EPSG:3857 entry.
<grid name="g"> <metadata> <title>GoogleMapsCompatible</title> <WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible</WellKnownScaleSet> </metadata> <extent>-20037508.3427892480 -20037508.3427892480 20037508.3427892480 20037508.3427892480</extent> <srs>EPSG:900913</srs> <srsalias>EPSG:3857</srsalias> <units>m</units> <size>256 256</size> <resolutions>156543.0339280410 78271.51696402048 39135.75848201023 19567.87924100512 9783.939620502561 4891.969810251280 2445.984905125640 1222.992452562820 611.4962262814100 305.7481131407048 152.8740565703525 76.43702828517624 38.21851414258813 19.10925707129406 9.554628535647032 4.777314267823516 2.388657133911758 1.194328566955879 0.5971642834779395</resolutions> </grid>
The "GoogleMapsCompatible" grid is nearly identical to the "g" grid, except that its default SRS is EPSG:3857 instead of EPSG:900913.
<grid name="GoogleMapsCompatible"> <metadata> <title>GoogleMapsCompatible</title> <WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible</WellKnownScaleSet> </metadata> <extent>-20037508.3427892480 -20037508.3427892480 20037508.3427892480 20037508.3427892480</extent> <srs>EPSG:3857</srs> <srsalias>EPSG:900913</srsalias> <units>m</units> <size>256 256</size> <resolutions>156543.0339280410 78271.51696402048 39135.75848201023 19567.87924100512 9783.939620502561 4891.969810251280 2445.984905125640 1222.992452562820 611.4962262814100 305.7481131407048 152.8740565703525 76.43702828517624 38.21851414258813 19.10925707129406 9.554628535647032 4.777314267823516 2.388657133911758 1.194328566955879 0.5971642834779395</resolutions> </grid>
A tileset is the essential configuration item for mod-mapcache, and corresponds to a set of tiles coming from a source, stored in a cache, and returned to the client in a given format.
<tileset name="test">
<!-- source
The "name" attribute of a preconfigured <source>.
If the tileset does not contain a <source> element, then it is
considered read-only and its cache will never be updated. In this
case, your seeder and webserver would have slightly different
mapcache.xml files.
Blank tiles may be dealt with by setting the <errors> directive to
<!-- cache
The "name" attribute of a preconfigured <cache>
<!-- grid
The "name" attribute of a preconfigured <grid>.
You can also use the following notation to limit the area that will
be cached and served to clients:
<grid restricted_extent="-10 40 10 50">WGS84</grid>
This is better than using a grid with a limited extent, as in this
way the tiles that are already cached are not invalidated should you
want to modify the restricted extent in the future. When using the
restricted_extent attribute, you should give the corresponding
information to the client that will be using the service.
You can also limit the zoom levels that are cached/accessible by
using the `minzoom` and `maxzoom` attributes.
Moreover, a tolerance of five tiles is added by default to the
specified restricted_extent. This tolerance can be manually set with
`tolerance` attribute.
A grid may reference a ruleset to impose certain behaviour:
<grid ruleset="rules">4326</grid>
NOTE: When adding a <grid> element, you *MUST* make sure that the
source you have selected is able to return images in the grid's SRS.
<grid restricted_extent="-10 40 10 50" minzoom="4" maxzoom="17">WGS84</grid>
<grid ruleset="rules">4326</grid>
<!-- You may store hidden intermediate levels of tiles to enable higher
quality output when reassembling tiles. This may be needed when
caching maps containing labels to avoid the text from becoming too
small or too blurry when requesting resolutions that are far away
from the native grid resolutions.
Supposing grid "mygrid" consists of 256x256 pixel tiles, with
resolutions r1,r2,r3,r4,...rn, MapCache will populate a hidden grid
called "mygrid_intermediate_0.5" containing tiles of size
256+256*0.5=384 with resolutions r1+(r2-r1)*0.5, r2+(r3-r2)*0.5, ...
r(n-1)+(r(n)-r(n-1)*0.5. That is, a tile with a given extent will be
stored once in a 256x256 tile, and once in a 384x384 one.
This intermediate grid is private to MapCache and will not be exposed
to tiled requests. It will only be used for WMS requests that require
horizontal assembling.
<grid use_wms_intermediate_resolutions="true">mygrid</grid>
<!-- metadata
Optional metadata tags used for responding to GetCapabilities
requests. You can put anything here, but only the title, abstract and
keywords tags are currently used to populate the GetCapabilities
<title>vmap0 map</title>
<!-- watermark
Optional tag to add a watermark to the tiles *before* storing them to
cache. The supplied image MUST be exactly the same size as the size
as the tiles configured in the <grid>.
The supplied image is read when the configuration is loaded. If you
make changes to the image, they will NOT be reflected in tiles
already stored in the cache, nor on newly stored tiles, until the
server is restarted.
<!-- format
(Optional) format to use when storing a tile. This should be a format
with high compression, e.g. PNG with compression "best", as the
compression operation is only done once at tile creation time. If
omitted, no recompression is applied to the image and mod-mapcache
will store the exact image received from the <source>.
Note that the <format> tag is mandatory if <metatile>, <metabuffer> or
<watermark> are supplied, as in those cases recompression must be
<!-- metatile
Number of columns and rows to use for metatiling. See
<metatile>5 5</metatile>
<!-- metabuffer
Area around the tile or metatile that will be cut off to prevent some
edge artifacts. If this is specified, the configured source must be
instructed not to put any labels inside this area, as otherwise
labels will be truncated. (For MapServer, use the
"labelcache_map_edge_buffer" "-10" metadata entry, along with label
<!-- expires
Optional tile expiration value in seconds. This is expressed as
number of seconds after creation date of the tile. This is the value
that will be set in the HTTP Expires and Cache-Control headers, and
has no effect on the actual expiration of tiles in the caches (see
<auto_expire> for that). Defaults to 300 if unset.
<!-- auto_expire
Tiles older (in seconds) than this value will be re-requested and
updated in the cache. Note that this will only delete tiles from the
cache when they are accessed: You cannot use this configuration to
limit the size of the created cache. Note that, if set, this value
overrides the value given by <expires>. By default tiles don't expire.
<!-- dimensions
Optional dimensions that should be cached.
The order of the <dimension> tags inside the <dimensions> block is
important, as it is used to create the directory structure for the
disk cache. That is, if you change the order of these values, any
tiles that have been previously cached are invalidated: They are not
removed from the cache, but they no longer exist for mod-mapcache.
<!-- values dimension
The example here creates a DIM1 dimension.
* WMS and WMTS clients can now add a &DIM1=value to their request
string. If they don't specify this key/value, the default will
be to use DIM1=foobar.
* The allowed values for DIM1= are foobar (it is important to add
the default value to the allowed values entry), foobarbaz, foo
and bar.
* The value specified for DIM1 will be forwarded to the WMS
* The produced tile will be stored in the file
base/gridname/DIM1/value/xx/xx/xx/xx/xx/xx.png. That is, there
are as many different caches created as there are values in the
<values> tag.
<dimension type="values" name="DIM1" default="foobar">foobar,foobarbaz,foo,bar</dimension>
<!-- regex dimension
The following creates a MAPFILE dimension, for using the same
mod-mapcache tileset with different MapServer mapfiles. The name
of the mapfiles need not be known to mod-mapcache, and can
therefore be created even after mod-mapcache has been started.
When a user passes a MAPFILE=/path/to/mapfile, the string
"/path/to/mapfile" is validated against the supplied (PCRE)
regular expression. The one in this example allows a name composed
of aphanumeric characters separated by slashes (/) and ending in
".map" ( [a-zA-Z0-9\./]*\.map$ ), but will fail if there are two
consecutive dots (..) in the path, to prevent filesystem traversal
( (?!.*\.\.) ).
<dimension type="regex" name="MAPFILE" default="/path/to/mapfile.map">^(?!.*\.\.)[a-zA-Z0-9\./]*\.map$</dimension>
<!-- intervals dimension
The syntax is the same as common-ows, i.e. a comma-separated list
of "min/max/resolution" entries, e.g:
* 0/5000/1000 allows the values 0,1000,2000,3000,4000 and 5000.
* 0/100/0 allows any values between 0 and 100.
* Both values can be combined: 0/5000/1000,0/100/0.
<dimension name="ELEVATION" type="intervals" default="0">0/5000/1000</dimension>
<!-- Coming in a future version: support for ISO8601 date/time dimensions -->
Services are the type of request that mod-mapcache will respond to. You should, of course, enable at least one.
<service type="wms" enabled="true">
This service should actually be called "ogc". It is different from
the other services as it does not listen on the /wms endpoint, but
directly on /. It will intercept WMS GetMap requests that can be
satisfied from configured tilesets, and can optionally forward all
the rest to (an)other server(s).
TODO: This needs way more documenting.
<forwarding_rule name="foo rule">
<!-- full_wms
Configure response to WMS requests that are not aligned to a
tileset's grids. Responding to requests that are not in the SRS of a
configured grid is not supported, but this should never happen as
only the supported SRSs are publicized in the capabilities document.
Allowed values are:
- error : Return a 404 error (default).
- assemble : Build the full image by assembling cached tiles.
- forward : Forward the request to the configured source.
<!-- resample mode
Filter applied when resampling tiles for full WMS requests. Can be
- nearest : Fastest, poor quality.
- bilinear : Slower, higher qulity.
<!-- format
Image format to use when assembling tiles.
<format allow_client_override="true">myjpeg</format>
<service type="wmts" enabled="true"/>
<service type="tms" enabled="true"/>
<service type="kml" enabled="true"/>
<service type="gmaps" enabled="true"/>
<service type="ve" enabled="true"/>
<service type="demo" enabled="true"/>
A ruleset contains a set of rules to impose certain behaviour on zoom levels. It is referenced from a grid element inside a tileset. See tileset for more information.
It is possible to define rules that:
Puts limits on the visible extent of zoom levels.
<ruleset name="rules">
<!-- rule
A rule impose certain behaviour on one or more zoom levels.
There is no limit on the number of rules.
zoom_level attribute contains the levels affected by this rule.
A zoom level can not be referenced by multiple rules.
<rule zoom_level="4 5 6 7">
<!-- visibility
Contains a collection of visible extents.
Tiles inside these extents will be fetched from the cache.
Tiles outside will be created on the fly using configured
color and returned to the client in declared format,
but not stored in the cache.
This does not affect the extent announced to the client,
but will limit the potentially large number of blank tiles
stored in the cache when data only covers small subsets of
the total extent.
hidden_color attribute is the (hex) color (ARGB or RGB) of tiles
outside the visible extents. Default is a fully transparent tile.
<visibility hidden_color="ff000000">
<!-- extent
One or more extents.
Extent must be given in the srs of the referencing grid.
<extent>228355 6085026 953704 7686970</extent>
<rule zoom_level="8 9 10">
<extent>335972 6099021 495792 6166722</extent>
<extent>309336 6166722 644513 6273268</extent>
<!-- default_format
Format to use when a client asks for an image that is dynamically
created from multiple cached tiles. Note that using a PNG format with
"best" compression is not recommended here as it is computationally
expensive. It is better to use a PNG format with "fast"compression here,
unless you have plenty of server CPU power and/or limited bandwidth.
<!-- services
Services that mod-mapcache will respond to. Each service is accessible
at the URL http://host/path/to/mapcache/{service}, e.g.
http://myhost/mapcache/wms for OGC WMS.
<!-- errors
Configure how errors will be reported back to a client:
- log : No error is reported back, except an HTTP error code.
- report : Return the error message to the client in textual format.
- empty_img : Return an empty image to the client. The actual error
code is in the X-Mapcache-Error HTTP header.
- report_img : Return an image with the error text included inside. (Not
implemented yet.)
The default setting is to report the error message back to the user. In
production, you might want to set this to "log" if you're paranoid, or
to "empty_img" if you want to play nice with non-conforming clients.
<locker type="disk"> <!-- this is the default -->
Where to put lockfiles (to block other clients while a metatile is being
rendered). Defaults to /tmp. This location should be writable by the
Apache user.
<retry>0.01</retry> <!-- check back every .01 seconds -->
<timeout>60</timeout> <!-- Consider a lock stale after this many seconds.
May cause issues if WMS rendering time exceeds
this value. -->
For specific information about locking, read this.
<!-- log_level
For CGI/FastCGI only; For the Apache module use the httpd.conf LogLevel
Defines the verbosity of logged information. Valid values are:
- debug
- info
- notice
- warn (default)
- error
- crit
- alert
- emerg
<!-- auto_reload
For FastCGI only. If set to true, the configuration will be
automatically reloaded if the configuration file has changed. Default is
<!-- use multiple threads when fetching multiple tiles (used for wms tile assembling -->
The MapCache metadata section contains source contact information for the MapCache WMTS service. This information maps to specific attributes in the WMTS GetCapabilities response returned by the server. See OGC WMTS Docs for more on WMTS. The entire MapCache metadata section is optional.
The first set of elements is for metadata about this specific server. These elements will appear in the <ows:ServiceIdentification> section of the WMTS GetCapabilities response. Elements in this group include: title, abstract, keyword, fees, and accessconstraints.
<title>: Title of this resource, normally used for display to humans.
<title>World example Web Map Tile Services</title>
<abstract>: Brief narrative description of this resource, normally used for display to humans.
<abstract>Example service that contains tiles of some world layers</abstract>
<keyword>: Commonly used or formalised word(s) or phrase(s) used to describe the subject. Multiple allowed, will appear under <ows:Keywords>.
<keyword>Administrative Boundaries</keyword> <keyword>Geography</keyword>
<fees>: Statement of fess required to use this service.
<fees>No fees for this service</fees>
<accessconstraints>: Statement of fees required to use this service.
<accessconstraints>No fees for this service</accessconstraints>
The second set of elements is for metadata about the organization operating this server. These elements will appear in the <ows:ServiceProvider> section of the WMTS GetCapabilities response. Elements in this group include: providername, providerurl, contactcity, contactstateorprovince, contactpostcode, contactcountry, contactelectronicmailaddres, contactname, contactposition, contactphone, and contactfacsimile.
<providername>: A unique identifier for the service provider organization.
<providername>Facultat de Ciències - UAB - CREAF-MiraMon</providername>
<providerurl>: Reference to the most relevant web site of the service provider.
<contactorganization>: Address line for the location. FYI: This MapCache metadata element is very poorly named, and maps to <ows:DeliveryPoint>.
<contactorganization>Av. de Can Domènech - Edifici F</contactorganization>
<contactcity>: City of the location of the service provider.
<contactstateorprovince>: State or Province of the location of the service provider.
<contactpostcode>: Zip or other postal code of the service provider.
<contactcountry>: Country of the physical address of the service provider.
<contactelectronicmailaddres>: Address of the electronic mailbox of the responsible organization or individual.
<contactname>: Name of the responsible person.
<contactname>Joan Maso Pau</contactname>
<contactposition>: Role or position of the responsible person.
<contactposition>Senior Software Engineer</contactposition>
<contactphone>: Telephone number by which individuals can speak to the responsible organization or individual.
<contactphone>+34 93 581 1312</contactphone>
<contactfacsimile>: Telephone number of a facsimile machine for the responsible organization or individual.
<contactfacsimile>+34 93 581 4151</contactfacsimile>
The next set of elements is specific to metadata for INSPIRE. Elements in this group include: inspire_profile, inspire_metadataurl, defaultlanguage.
<inspire_profile>: Enables INSPIRE extended capabilities. Required for other INSPIRE elements to work.
<inspire_metadataurl>: External XML document or service that provides such an XML document containing metadata for the service.
<defaultlanguage>: The default language of the service.


text:
To make it quick and easy for you to build your GoCardless integration, we maintain libraries in Java, Python, Ruby, PHP, and .NET to talk to our API in those languages without writing lots of boilerplate code.
Setting up your client library
Please find a guide to installing each of our client libraries below:
Creating an access token
To start using the API, you'll need an access token.
First, sign up for an account in our sandbox: the sandbox is our dedicated testing environment where you can build and test your integration without touching real money.
Next, create an access token. Head to https://manage-sandbox.gocardless.com/developers/access-tokens/create, then give your access token a name and make sure you give it read-write access. Click "Create access token", and copy the token to your clipboard.
All sandbox accounts are on our Pro package by default. However, if you need to test payment or mandate references, please send an email to email@example.com with the following information so that we can add a dummy Service User Number (SUN) to your account:
Email address associated with GoCardless account
Name on SUN
Address for SUN
Customer support phone number
Customer support email address
Additionally, if you wish to test an additional scheme, custom notifications, refunds or bulk changes please send a request to firstname.lastname@example.com
Your very first API request
With a client library installed and an access token created, you should now be able make requests to the API. We'd suggest testing this using the example code samples here.


text:
DW Healthcare Partners, a healthcare-focused private equity firm, announced today that it has completed fundraising for its third fund ("DWHP III"), which has closed with $265 million of committed capital, exceeding its original target of $250 million. DWHP III investors are comprised of pension plans, foundations, fund of funds, high net-worth individuals and family trusts.
DWHP Co-Founder and Managing Director, Andrew Carragher said, "Through our partnerships with talented founders and management teams in our portfolio companies, we have been able to sustain a consistent track record of delivering above-average returns to our investors. As a result, we attracted a great deal of interest while fundraising for Fund III and are pleased that we have exceeded our target. We thank all of our limited partners for their commitment to our firm and look forward to forging new partnerships with innovators, founders, and management teams in the healthcare industry".
During the fundraising period, DWHP completed three Fund III investments, totaling approximately $80 million. Through these investments, DWHP has become equity partners with Z-Medica, a leading developer and manufacturer of innovative hemostatic agents, Health & Safety Institute, one of the leading providers of safety and emergency care content and training, and Med-Pharmex, a leading veterinary drug manufacturer.
In conjunction with raising the third fund, the firm has opened an office in Toronto, Canada. This office will enable the firm to cover the Eastern Coast of the United States and Canada more efficiently. The Toronto office is staffed with Co-Founder Andrew Carragher and Managing Director Rod Boone along with six other professionals.
DWHP's Fund III investment strategy mirrors the model of its first two funds, working as a strategic resource to founders to accelerate the growth of their businesses. DWHP's first two funds were $88 million and $162 million in size, and resulted in 16 platform company investments in the medical device, clinical research, wholesale pharmacy and outsourced healthcare service areas. For Fund III, DWHP is seeking investments in companies with EBITDA of $4 million or more. Berchwood Partners served as placement agent for DWHP Fund III.
DW Healthcare Partners is a private equity firm focused exclusively on the healthcare industry. The firm manages over $800 million in committed capital and invests in profitable healthcare companies with proven management teams.
DW Healthcare Partners is led by seasoned healthcare executives with more than 110 years of combined industry experience. The firm provides the capital, strategic guidance, and acquisition expertise to help mid-to-late-stage companies realize their potential for growth.


text:
Gamer Stabbed 22 Times By His Friend After Xbox Chat Goes Bad [VIDEO]
When it comes to video games, sometimes we can get mad, scream and throw the controller at the T.V. But, when you stab your friend 22 times after trying to shoot him? That's taking it a little far.
In an online Xbox game, two friends who lived on the same street were playing each other, as was often the case. But this friendship got stressed when the game got out of control after banter over headsets got heated.
One of the guys challenged his friend to meet him and settle this argument by coming to his house to finish the fight. He then tried to shoot him before stabbing him 22 times.
"He walks up to my room and he points the gun right at me and takes out the clip and shows his bullet, puts it back in the gun, tries to shoot me and he shot it and it went right past my head," 20-year-old Kevin Kemp, speaking about his teenaged former friend.
The teen is facing attempted murder and burglary charges.


text:
One (1) MLB Philadelphia Phillies Edible Icing Design on the Icing Sheet layout of your choice. You will receive one (1) edible icing sheet of featuring the image pictured in the size you choose. You may choose from:
- Quarter Sheet - One 7.5" x 10" Rectangle - perfect for quarter sheet cakes
- Half Sheet - One 10" x 16" Rectangle - perfect for half sheet cakes
- Round Sheet - One 7.5" Circle - perfect for 8-10" cakes, quarter sheet cakes and more
- Cupcake Size - One sheet of twelve (12) 2" circles (no message) - perfect for standard cupcakes
- Cookie Size - One sheet of six (6) 3" circles (no message) - perfect for jumbo cupcakes or large cookies
- Cereal Treat Size - One sheet of ten (10) 3.5" x 1.875" rectangles (no message) - perfect for 1.3 ounce Rice Krispies Treats
- Cake Pop - One sheet of thirty-five (35) 1.25" circles - perfect for cake pops, mini-cupcakes, brownie bites, oreo cookies and more
Image will be produced on the sheet of your choice. Transform your freshly-frosted cake with this too cute icing sheet. Simply peel and place and you've got a cake any birthday star would be proud of!
Once the sheet(s) arrives, just peel the icing layer off the backing sheet and place it on your freshly frosted dessert! So easy!! If you have any problem peeling it off, just pop the entire sheet in the freezer for a few seconds, and it will lift away easily.
The following ingredients are not used – Wheat, Milk, Eggs, Fish, Shell-fish (crustaceans), Peanuts, and/or Tree nuts, Mustard Seed, and Sulfites. Soy Lecithin is used. Edible Image® decorations are gluten free.
Tapioca Starch, Corn Syrup Solids, Microcrystalline Cellulose, Water, Sugar, Glycerine, Polyglycerol Esters, Algin, Potassium Sorbate (preservative), Citric Acid, Modified Corn Starch, Titanium Dioxide, Soy Lecithin.
Contains Soy.
After printing, May Contain
FD&C Blue #1 Lake, Red #40 Lake, Red #3, Yellow #5 Lake, Yellow #6 Lake
Not using your frosting sheets right away? No problem. Edible icing sheets are shelf stable for up to a year. Simply keep the package sealed and unopened and away from direct light until you are ready to use it.
These icing sheets can be applied to most any edible treat. For best results, place them on your freshly-frosted dessert an hour or more before serving. So easy!! If you have any problem peeling it off, just pop the entire sheet in the freezer for a few seconds, and it will lift away easily. If you live in a very humid area, apply heat with a blow dryer to make them easier to remove. Be sure you place them before your frosting "crusts" so that they can be absorbed into the frosting and become a part of the cake. If your frosting has crusted, mist the icing lightly with water to re-moisten it and then apply the icing discs. DO NOT spray the icing discs or the inks could run.
Characters in these images are FREE. You are paying for our services in creating, customizing, and printing them in edible icing for your own PERSONAL use. Images remain property of their respective copyright holders and may NOT be resold. These images are inspired by the ORIGINAL MAKER and remain their property. You are NOT paying for the image, but rather the materials and our time to produce them.
Cake, icing and board not included.
All frosting and ink ingredients are FDA approved, all materials that come in contact with the edible portion of the product are FDA approved.
Due to the custom nature of this item, please allow time for it to be created. While we try to offer rapid processing, it takes time to format and layout custom requests.
We stock all the items we offer allowing us to ship quickly. We will process and ship your order as quickly as possible (typically 1-3 business days). We ship out of Alabama and most orders will arrive to their US destination in 3-5 business days AFTER they ship; however, shipments can take longer. This is an estimate not a guarantee of time frame. Please note that we are NOT responsible for any post office delays. We will do everything in our power to ensure that your order is shipped quickly, but please allow yourself time to receive the item for your party. We do not offer refunds for postal delays.
While most orders do arrive in 3-5 business days, this time frame is not guaranteed. If your need by date falls within this range and is a must, we do offer shipping upgrades for an additional expense.


text: Snoop Dogg/Lion spread some early Christmas cheer on Conan, bringing the host his very own vaporizer for use in enjoying his favorite herbal oils. The choices seem endless, from bubble gum, eucalyptus, cinnamon and something called kush. The gift seemed to be a popular one with the audience and Snoop claimed to use his all the time when relaxing and getting a massage. Could be a nice stocking stuffer for my grandmother and all the stress she's been going through lately. She loves eucalyptus. Aside from giving gifts, Snoop was on hand to promote his new mixtape That's My Work 2 and his new Snoopify app that allows you to spend $100 of real money to buy a fake joint to put into your stupid photographs. The economy is fixed everyone. Herbal oils and fake joints are the answer. Tell 'em how to take these sons a b*tches down.


text:
Vatican City, 22 May 2015 (VIS) – The
Silos School of Thought, Spain, will dedicate its next two
international meetings to the study and dissemination of the thought
and action of Pope Francis. It is the ninth encounter of the School
which, in collaboration with the UNESCO Chair in Spain, and under the
auspices of the Benedictine Abbey of Silos, gathered together figures
from the worlds of science and culture in an atmosphere of respectful
pluralism and convergence in relation to universal values.
In a letter to the Steering Committee
of the School, Cardinal Gianfranco Ravasi, president of the
Pontifical Council for Culture, writes: "In the two years of his
papacy Pope Francis has transformed into a media phenomenon. … And,
however, … beyond these direct, concise, effective, high-impact
phrases we have grown accustomed to, we discover vigorous and
spiritual theological thought. He expresses this theology, with its
Latin American accent and flavour, imbued with wisdom born of
closeness to the people … with his own methods of communication.
His reflection is part of the faith of the people, and this gives
special strength and nuance to his thought. If John Paul II was the
pope of Man, the path of the Church, and Benedict XVI of the word and
the primacy of the search for God, Francis is the pope of the People
of God, recipient and bearer of revelation, called to go forth in
towards an encounter with others, with a message of mercy".
The Ninth Meeting of the School,
entitled "Thought and Action of Pope Francis: a voice for all",
will be divided into two phases. The first, on 6 June, in the Abbey
of Silos, will be based on the paper "Pope Francis: words and
gestures", by Professor Angel Cordovilla Perez, director of the
Department of Dogmatic and Fundamental Theology at the Pontifical
University of Comillas, Madrid, Spain. The session will be chaired by
Professor Manuel Balado Ruiz-Gallegos, director of the Silos School
of Thought.
The second Meeting will be held during
the first trimester of 2016 and will study the conclusions of the
Synod on the family.


text:
What to Know
- The exhibit will pop up at 3 West 57th Street Friday through Sunday
- It will be open from 11 a.m. to 7 p.m.
- Admission is free
"The Daily Show" is unveiling the Donald J. Trump Presidential Twitter Library in Manhattan this weekend -- but it won't last long.
The pop-up exhibit will be at 3 West 57th Street in Manhattan, not far from Trump Tower, Comedy Central announced Tuesday.
"Donald Trump is basically running the entire country with his thumbs," host Trevor Noah told his audience Monday in announcing the library, "We have to make sure these tweets are collected in a setting that they deserve, a place where every American can come and appreciate them."
The president is famous for his use of Twitter, which he says helps him communicate directly with the American people. He often uses the social media platform to blast critics and respond to major global events.
It will feature some of the president's better known one-shots, organized around such categories as "SAD! A Retrospective" and "The Commander-In-Tweet." The "Daily Show" will highlight Trump's insults and contradictions and allow "verified survivors" to remember being on the receiving end of his social media outbursts.
"Donald Trump's tweets are official presidential statements," Noah said. "That's why last week the U.S. military bombed 'Covfefe,' which is actually a small town in Somalia. We thought it was a joke," he quipped.
The exhibit runs Friday through Sunday from 11 a.m. to 7 p.m. Admission is free.


text:
MWC G10 LM Military Watch (Navy Blue Nato Strap)
MWC's standard G10 military watch. Stainless steel case, date window and 50m water resistance.
- 35mm excluding crown and 39mm with crown
- 31.5mm diameter crystal (Glass)
- Strap: 18mm Military Webbing Strap
- Caseback: Screw Down
- Lug Type: Screw in Military Spec lugs
- Lug to lug: 42.5mm
- Water Resistance Rating: 50m / 165ft
- Movement: Quartz
- Thickness: 11mm
- The back of the case bears various contract markings
- The Watch is delivered in its original packaging tin and has a full factory guarantee.


text:
The latest version of MSP430-GCC was released early this year and is now maintained by SOMNIUM Technologies. The lesson on building the toolchain has been updated to work with this release.
Filesystem Basics with the Raspberry Pi
Note: the following post was originally published for Victoria Pi Makers and Friends as part of a presentation I prepared for the group.
In this tutorial we are going to look at the filesystems on the Raspberry Pi and how they are used to boot Linux from an SD card. This is the only officially supported boot method available on the Raspberry Pi and although this is specifically written with the Raspberry Pi in mind, many other boards can function in a similar fashion. To begin, we need to understand the basics of filesystems since the SD card contains several partitions with different types of filesystems. On Linux and Unix operating systems, the df utility can be used to check disk space, mount points and filesystem types, among other things. It is a very useful tool to know what filesystems are available and where each is mounted, as some of these may vary by distribution or platform. Running the df -Th (-Th tells df to display filesystem types and the size in human readable format respectively) command on the Raspberry Pi, we can see that there are several different filesystems mounted.
Understanding the output of df is important to understand how Linux operates. The first thing to note from the output is there is a mount point called /boot. This existence of this mount point indicates that the device most likely booted off a filesystem. In many embedded systems, the operating system boots directly out of raw flash memory. Supporting a filesystem based approach makes it easier to upgrade and harder to brick. The user need only update the files on the SD card, reboot and off it goes. Now, you might be wondering how the Raspberry Pi booted off a filesystem. Well let's take a look.
Filesystems – General Overview
A filesystem is a piece of software, usually part of the OS (but not necessarily) that stores data onto some type of non-volatile memory. It translates generic operating system calls such as open/close/read/write etc… into its own format and then stores the data on the media. There are many different types of filesystems, some of which are designed for general purpose use, while others are for specific types of hardware (i.e. flash, hard disk, etc…) or performance requirements (i.e. servers and data centres).
Let's start by looking at some examples of different media. On embedded systems, the typical memory of choice is flash, so we will concentrate on this. However, there are many types of flash. The two main categories are raw flash and managed flash. In the category of raw flash memory the two most common types are NAND and NOR. These typically come with either a serial interface – such as SPI – or a parallel interface. Although NAND and NOR are fundamentally different technologies, they both work using the concept of sectors or blocks (sector is for NOR, block is for NAND). A block is the smallest section of memory which can be erased at a time. On these types of devices, you cannot write over existing data. When data needs to be written, the block must first be erased which sets all the bits to '1'. Once a the block is erased, data can be written in bytes, words or pages depending on the device.
As you can imagine, writing to a raw memory device requires some additional software to be able handle all these details. This can degrade performance and is extremely complex. To make things worse, erasing a blocks can take a very long time – on the order of seconds.
Example of timing characteristics of a Micron NOR Flash (datasheet)
Finally, both have a limited number of erase cycles. When erased too many times, blocks can go bad and are no longer able to be erased or can corrupt data when it is written or read. On a NOR flash device, this is typically upwards of 100000 erase cycles, while on for some higher density NAND devices it can be as low as 3000 program/erase cycles. The physics behind bad blocks is different between the two technologies, but the point is that special algorithms are required to spread writes across the device so that one specific block is not erased continuously. These algorithms are called wear levelling. Both wear levelling and keeping track of bad blocks is the responsibility of the filesystem. Examples of filesystems for raw flash memory devices are UBIFS, YAFFS.
The other category of flash memory technology is managed memory. While most often the underlying memory is NAND based, these devices manage bad blocks and wear levelling without any software interaction. They have their own memory controller and firmware built into them which does all the wear levelling and bad block management for you. SD cards as well as (e)MMC and USB keys are all examples of managed memory. Because managed memory handles everything flash specific in hardware, you can run any generic filesystem on the device with reasonable confidence.
SD cards typically use the FAT filesystem. FAT stands for file allocation table, which is in reference to the way the filesystem stores metadata for the volume. FAT has a few different flavours which depend on the device size such as FAT16, FAT32 and exFAT. FAT32 is the defacto standard for most bulk memory devices such as USB keys, SD and MMC cards. That is because it is well known and relatively easy to understand and implement, especially for resource constrained environments. FAT is sometimes referred to as vfat, or a DOS filesystem.
The Raspberry Pi Boot Partition
Devices such as the Raspberry Pi don't just boot straight into Linux. They have a bootloader which runs first and loads the operating system. What you might not know though, is that there are actually several stages of bootloader that run, each one responsible for setting up some specific hardware feature in preparation for the next stage. This is very common on other devices in this class such as the Beaglebone. The first stage bootloader is often called the ROM boot because the firmware is burned directly on the chip during manufacturing so it cannot be updated. Hence it makes sense for the chip designers and firmware engineers to support a very well known, widely implemented, easy to implement filesystem such as FAT. The ROM boot on the Raspberry Pi actually runs on the GPU – not the CPU – and its job is to read the SD card's FAT32 filesystem, search for a file called bootcode.bin, load that file into memory (cache at this point), and then run it. Cracking open the /boot directory we saw using df, we can begin to see how the boot process works.
We can see here in in the /boot directory there is the file called bootcode.bin. This is the second stage GPU bootloader. It is responsible for setting up the SDRAM and loading the GPU firmware from the SD card. SDRAM is required at this point most likely because the cache is not big enough to load the GPU firmware. The other component of the bootcode.bin is an ELF loader. This is required because the GPU firmware is start.elf. An ELF file is a type of object file which is created as the out of the compiler. It contains the machine code but also contains information about where to load each section of code into memory.
The GPU firmware is responsible for reading configuration data out of the SD card and loading the kernel. There are several of files in the directory which are part of this process:
- kernel.img: the kernel itself in the zImage file format – a type of compressed image
- fixup.dat: partitions the SDRAM between the GPU and CPU.
- *.dtb: the device tree blobs and overlays (in the overlays directory)
- cmdline.txt: the kernel command line parameters
- config.txt: more OS configuration
We'll go into these in a bit more detail shortly but to finish on up with the GPU firmware, once it has loaded all these files into memory, it then when control is transferred from the GPU to the CPU.
Device tree
All the files with the .dtb extension are device tree blobs (.dtb). The device tree is an open standard which is used to describe the hardware. Using a device tree, there can be a single kernel image compiled which can support multiple boards using the same processor. In older versions of the kernel, there was a C file which described the hardware, meaning the hardware support was compiled directly into the kernel. There are multiple .dtb files to support the multiple revisions and types of Raspberry Pi boards. The bootloader chooses the file that is applicable for the board it is running on and reads the correct device tree out of the SD card. It is then passed to the Linux kernel, which upon boot, loads the appropriate drivers based on what it finds in the device tree. Here is an example device tree file from the Raspberry Pi Model B. Device trees are written in plain text and using the syntax shown in the example. There are many specifications depending on the architecture, driver type, etc… The plain text device tree file that humans write has the extension .dts. It is compiled to a binary .dtb file using a device tree compiler.
Inside the boot directory there is another directory called 'overlays'. This contains a several device tree overlays that can be enabled using the config.txt file. The GPU firmware combines the base device tree blob with any overlays that have been defined in config.txt. This allows you to easily add support for other hardware peripherals, assuming compatible support for them is compiled into the kernel (or included as a kernel modules).
Root Filesystem
There is one more crucial component required by the Linux kernel to boot – the root filesystem (rootfs). The kernel image only includes the low level components – the actual kernel, the drivers and some utilities. By itself, it is pretty much useless. The rootfs contains everything else that we think of when we use a Linux distribution – all the user level features and system utilities. After the kernel loads all the drivers, it looks at the rootfs and calls the init program. Depending on the distribution built, the initialization can change substantially, but basically it will load all the user facing features like the console and command line, user support, a graphical interface if there is one, etc… All the standard Linux utilities we use on a daily bases are built as part of the rootfs.
Going back to our output of df once again, we can see the first entry is /dev/root, which is mounted at /. This is the root filesystem. However, one thing to note here is that /dev/root is not actually a device. The kernel command line parameters tell us the actual device is on /dev/mmcblk0p7, where mmblk0 represents the SD card interface and p7 represents the partition on that device. Remember how we said earlier that the SD card was formatted with FAT32. Well, in reality only one partition was. The NOOBS installer actually partitions the SD card into several partitions. This partition happens to be for the rootfs and is formatted as ext4. Ext4 is a Linux specific filesystem – a journalling filesystem commonly used on almost every mainstream Linux distribution. But this is running on an SD card you say? Yes true, an SD card as we saw earlier is managed memory. Therefore we can treat it just as you would a regular hard drive. In fact, solid state drives (SSD) use the same memory technology as SD cards… there's just much more of it.
So what is in the rootfs? Well the rootfs is defined by the Filesystem Hierarchy Standard (FHS) which was created by the Linux Foundation to help standardize across distributions. Let's have a look:
Below is a brief description of each one, paraphrased from the specification with some of my own commentary:
/bin: directory where system executables (such as commands) go and are available to all users.
/boot: contains all the files required by bootloader to boot the kernel.
/dev: this directory is not actually part of the rootfs, it is created each time on boot and contains files that represent each of the devices which can be accessed in user space (look at the output from df to see that it is a special type of filesystem called devtmpfs).
/etc: where system and application configuration files are stored.
/home: contains another 'private' directory for each user. All of the user's personal files are typically stored in here. My documents, desktop, download etc.. all make up the a user's /home directory.
/lib: the directory where shared libraries and kernel modules are stored. When you compile and need to link in libraries, this is one directory where you would typically point the linker to.
/media: the default mount point for removable devices – for example, if you plug in a USB key
/mnt: Is the default mount point temporary filesystems (i.e. network shares)
/opt: Used to be where some third party applications are installed, supposed to be for add-on applications.
/proc: another virtual directory which is not really part of the root filesystem. In it are files which represent each of the processes in the system.
/root: the home directory for root
/run: a directory for applications to store data during runtime. This is not actually part of the rootfs, it is a temporary directory created at runtime.
/sbin: contains executables like the /bin directory, but these are typically for use only by the system and administrator.
/sys: another virtual filesystem which exposes some of the hardware interfaces in the kernel. It provides a way to see the kernel's configuration of the hardware. Though not recommended, you can access some hardware through this interface (i.e. read/write GPIOs, LEDs, etc)…
/tmp: a temporary filesystem, not actually part of the filesystem. Essentially a RAM disk which can be used by applications and the system to store temporary files
/usr: a directory where user application binaries, libraries, header files and documentation are stored.Typically files in here are all read-only. In some distributions this directory is on a separate partition from the root filesystem.
/var: another directory where application runtime information can be stored so that it doesn't end up in the /usr directory. Normally used for logs, locks. Some functions replaced by the /run directory but kept for compatibility.
An important thing to keep in mind is that different distributions, applications, etc… manage and use these directories differently. It is not always so cut and dry, and to maintain compatibility many distribution maintainers prefer to keep legacy files and directories around rather than deprecating them. The FHS specification contains guidelines on how applications should use these directories, but that doesn't mean all application developers follow them. It is just a guideline and will vary even from version to version of the same distribution or application.
What is important to take away from all this is that the root filesystem is imperative to operation of Linux. You can boot the kernel, but not much will happen afterwards. The filesystem can be built to suit your own needs – include specific utilities, applications, etc.. giving you the freedom to have a really big filesystem – such as Ubuntu's which requires 4GB straight out of the box – to a really small filesystem – I have built one that is approximately 12MB and it's still too big! Either way, its up to you and it's a great exercise to try out, but that's for another tutorial!


text:
Water Soluble Dye - Acid Black 2
Image shown is 0.85g of product in 400g bicarbonate of soda
Form: Granular
CI Name: Acid Black 2
CI Number: 50420
CAS Number: 101357-32-8 , 8005-03-6
Packing: Plastic bag
Batch certified: No
Usage Rate: You may use between 1/8 - 1/4 teaspoon of dye per kg of baking soda, depending on your colour boldness preference.
Blooming your dye: Taking small amount of dye and add just enough water or witch hazel to dissolve the dye powder. You may stir to help dissolving the dye powder.
You then pour the dissolved dye into the baking soda and mix thoroughly until it's evenly coloured.
Always wear gloves as our dyes are very concentrated and will stain your skin.
The dye in powder form might look different from the dissolved dye in water. The most accurate test of what the dye looks like would be in water.
Ideal for bath bombs, bath salt, melt and pour soap, etc.