text:
History of the Materials
The Indonesian Way was initially developed by Dr. George Quinn from the Australian National University. In 2009 Dr. Quinn and Dr. Uli Kozok from the University of Hawai'i at Manoa reached an agreement to further develop Dr. Quinn's materials which initially consisted of 94 lessons. Some lessons that had become too large had to be restructured resulting in 108 lesson. To these 108 lessons Dr. Kozok's team added another 5 lessons resulting in a total of currently 113 lessons.
Assisted by a US Department of Education International Research and Studies grant (award no. P017A090375, start date: 1 Sept 2009, end date: 1 Sept. 2012) Dr. Kozok's team began its work in 2009. During a workshop in July 2010 (attended by Dr. Uli Kozok, Maren Behrend, Christella Cindy, Nelly Martin, Riana Helen Agnesia, and Riza Lestari) and a second workshop in May-August 2011 (attended by Dr. Uli Kozok, Christella Cindy, and Hesti Ratna Hapsari) the main body of the materials was completed.
The lessons were complimented with several hundred drawings (by Sebikom Comics, Yogyakarta, and Dina Tania, Jakarta), dozens of photographs, hundreds of sound files, three videos, and about 1500 interactive exercises. Every lesson features a word list, and digital vocabulary flash cards, and many lessons are complimented by grammar explanations, and cultural notes. For more effective vocabulary learning the spaced repetition software Anki was integrated, and the Web Audio Utility serves as a tool to actively practice speaking.
All 113 lessons were further complimented with detailed lesson plans with a variety of activities to promote interaction and communication such as information gap tasks, class surveys, conversation grid activities, games, debates, and a wide arrange of other communicative activities. To conduct these activities each lesson is supplemented with student handouts, and most lessons are further complimented with additional sound files for in-class use, slide shows, picture cards, etc. These complimentary materials were developed primarily by the foreign language methodologist Maren Behrend (Auckland).
A print-edition of The Indonesia Way was added by Dr U Kozok and Yuni Hariyanti in May 2014.
The following individuals, most of them former Fulbright IIE Foreign Language Teaching Assistants (FLTA) at the University of Hawaii, need to be acknowledged: Christela Cindy (2009-10 FLTA who also attended both workshops in 2010 and 2011), Helen Riana Agnesia and Riza Lestari (2007/08 FLTA who also attended the 2010 workshop), Hesti Ratna Hapsari (2005/06 FLTA who also attended 2011 workshop), Nelly Martin (2006/07 FLTA who also attended 2010 workshop), Vika Fitrianasari (2010/11 FLTA), Cahayani Agustiningrum (2011/12 FLTA), Arum Hadi Mulyono (2012/13 FLTA), and Yuni Hariyanti (2013/14 FLTA).
The teacher notes were developed by the foreign language methodologist Maren Behrend (Auckland).
Too many individuals to be acknowledged individually lent their voices for the several hundred sound files that were recorded between 2009 and 2012, but the most prominent voices are that of Vika Fitriansari and Hesti Ratna Hapsari.
Most of the illustrations were drawn by the skilled staff of Sebikom in Yogyakarta, and also by Dina Tania from Jakarta.
Future Plans
- Updating all latihan (exercises). The exercises were developed using the now outdated software Hotpotatoes. The main problem with Hotpotatoe is its reliance on Flash which is not supported by iOS.
- The Teacher Notes, originally witten in English, should be translated into Indonesian. After all, most instructors are native speakers of Indonesian, and not English.
- Mobile applications are planned for Android and iOS
- Planned are also e-books in the EPUB and AZW (for Amazon Kindle) formats.
- We are also planning to add 7 more lessons to the currently existing 113 lessons.


text: No recent wiki edits to this page. The 'Crash Time' series is known as 'Alarm für Cobra 11' (literally 'Alarm for Cobra 11) in Germany, where it is most well known. The series takes place behind the wheel of different automobiles based on real-life designs, where you must complete missions. Cobra 11 is a German autobahn police unit, and many of the missions in the games take place on the highway. The game follows two main characters: Ben and Semir. All three of the games in the franchise that have yet been released have a demo available on the Xbox LIVE Marketplace. The Crash Time franchise is developed by Synetic GmbH, and published by RTL Playtainment. The games are quite unique; if the player has their 360 language setting as German, the original title will be shown and the games will play in German, but any other language yields English on both the Gamercard and in-game. Cars in the game have detailed damage models, and are based on real designs, but are not licensed. Car badges are replaced with a logo reading 'C11' - short for Cobra 11. Television Tie-InCrash Time is actually a tie in with a popular German program, entitled Alarm für Cobra 11 - Die Autobahnpolizei, or 'Alarm for Cobra 11 - The Highway Police'. It is published by a branch of the German media company RTL, called 'Playtainment'. It is one of the RTL game labels, and is used for games which tie in with other media, such as television and films. CharactersThe game uses characters from the real German program: Semir, Chris, and Ben are all in the programme, but Chris is killed. Chris can be seen during Crash Time: Autobahn Pursuit, driving a car resembling a Mercedes-Benz CLK. Semir is one of the staple characters, who was later accompanied by Ben Jaeger.

subset: commoncrawl


text:
|Village of
Lake Linden
Fire Department
Fees & Services
Contact Us
Whether vacationing, visiting, living nearby or just passing through take some time to see what our friendly town has to offer. Located 10 miles north of the Portage Lift Bridge on M-26 along the shores of Torch Lake, we offer a variety of attractions, facilities and recreational activities for the whole family.
Adjacent to the park is a large, modern docking facility with a boat launch and ample docking space with electricity available on some slips. There is a roomy parking area to leave your trailer and vehicle while you are on the water. Torch Lake has access to the Portage Canal and Lake Superior for those looking to fish the Big Lake.
20 full hook-up sites ($20 per night, $100 per week) includes electric, water, use of dump station and shower/restroom facility.
6 rustic sites ($8 per night) includes the use of the shower/restroom facility.
Reservations: Reservations can be made up to 6 months in advance by calling the village clerk's office (906-296-9911), but drive-ins are welcome if sites are available. Cancellations must be done through the village clerk's office.
July 4th Week: Contact the clerks office, 906-296-9911 or via , email to be put on the waiting list.
Swimming Area
The beach near the campground is available to the public and is not exclusive to campers. Please be advised, there is no lifeguard so swimming is at your own risk. A small, covered pavilion is available for picnics and parties. Use of the pavilion is only restricted when privately reserved and will be posted during those times. Otherwise feel free to use it as you like. To reserve the pavilion contact the clerks office, 296-9911 or via , email.
The campground rest rooms are for campers use only, but there are public rest rooms in the Upper Park Pavilion (just a short walk across the foot bridge.) A lot near the beach provides plenty of parking space.
Please, no dogs on the beach! Dogs are permitted access to the water along the nature trail.
The village park proper contains a wide array of facilities, picnic areas and playground equipment available to all. The sports enthusiast can enjoy, the baseball field, basketball and tennis courts and horseshoe pits while the youngsters have hours of fun on the swings, merry-go-round, slides, climbing wall and huge tot-lot play area. Covered picnic tables allow for shaded areas during hot summer days. The pavilion can also be used for a larger gathering, as well. To reserve the pavilion contact the clerks office, 296-9911 or via , email. It is also just a short walk to the beach for a refreshing swim.
Nature Trail
A 2.5 mile nature trail circles the village sands for bicycle and pedestrian use as well as snowshoeing and cross-country skiing. The trail is accessible by the general public - Motorized vehicles of any type of are prohibited on the trail. Excellent canoeing along the nearby Traprock River accessible from Torch Lake.
| last updated: 05/11/10
Information contained on this website is updated frequently but may not be as current as information at the Village Hall.
Therefore, information contained herein is for informational purposes only and should be verified by contacting the
Village Clerk's Office at 906-296-9911 or visiting at 401 Calumet Street, Lake Linden, MI 49945.


text:
Location: Balzac's in the Distillery District | Guests: 85 | Date: April 13, 2013 | Budget: $28,000 Read the rest of this entry »
Read the rest of this entry »
TORONTO LIFE HOME July 29, 2015 The Magazine | Digital Edition | Subscribe | Newsletters | Contests | Mobile App | Toronto Restaurant Search
A compendium of the latest store openings, hottest parties and runway shows and all the buzzy fashion gossip. Sign up for the Style newsletter for weekly updates
Location: Balzac's in the Distillery District | Guests: 85 | Date: April 13, 2013 | Budget: $28,000 Read the rest of this entry »
Read the rest of this entry »
Read the rest of this entry »
Location: Steam Whistle Brewery | Guests: 89 | Date: November 12, 2012
Read the rest of this entry »
Read the rest of this entry »
Location: Arta Gallery in the Distillery District | Guests: 102 | Date: September 22, 2012
Read the rest of this entry »
Location: Puck's Farm in Schomberg, Ontario | Guests: 200 | Date: September 15, 2012 | Budget: $28,000
Read the rest of this entry »
Location: Metropolitan United Church and Canoe | Guests: 120 | Date: October 20, 2012
Read the rest of this entry »
Location: The Burroughes Building | Guests: 150 |Date: June 8, 2013 | Budget: $100,000+
Location: Sherwood Inn in Muskoka | Guests: 112 | Date: May 25, 2013 | Budget: $25,000
Location: St. Lawrence Hall | Guests: 150 | Date: November 24, 2012 Read the rest of this entry »
Read the rest of this entry »
Location: Trinity Chapel and the Gardiner Museum | Guests: 96 | Date: June 8, 2013
Art Gallery of Ontario
317 Dundas St. W. (at McCaul St.), 416-979-6634
For a truly magnificent celebration, Frank Gehry's transformed AGO offers an awe-inspiring event space. On the third floor of the south tower, the 7,200-square-foot Baillie Court affords panoramic city views on one end and overlooks the gallery's iconic spiral staircase on the other. Designed in modern glass and Douglas fir, the room can be divided as needed and seats up to 300. Executive chef Anne Yarymowich works with couples on customized menus, and a small army of professional event staff ensures the experience is as effortless as it is unique. Baillie Court rental includes a one-year membership to the AGO for the newlyweds. The Walker Court is available to rent outside of gallery hours in conjunction with a reception in Baillie Court.
Partners Vanessa Heins and Jess Baumung use their doubles act to get multiple perspectives on the client's big day, producing stylish, candid images backed up by Heins's experience in editorial photography and Baumung's background in live-music shots. They only do 20 weddings a year, so book early. From $3,500. By appointment.
Bloom the Flower Company
1009 Yonge St. (at Crescent Rd.), 416-324-9900
Event planner–cum–floral designer Paul Girling set out to bring inspiring flower design to Rosedale. The shop is famous for its jaw-dropping window arrangements, which feature unconventional elements like green roses, proteas, kiwi branches, asparagus and brussels sprouts. Bouquets start at $35, but average $150 for brides and $80 for bridesmaids. Centrepieces are $75–$600 plus delivery and set-up. Full service available. Closed Sunday.
Carte Blanche Design
35 Collahie St. (at Gladstone Ave.), 416-885-5399
Customized invitations allow the bride and groom to show off their personal style, but graphic designer M. J. Fontaine also has prototypes on hand to get the creative juices flowing. She specializes in creating
a specific look to be used throughout the special day. For an art deco wedding, she created a period monogram and all the printed materials (including seating board and gift tags). She also does thermal engraving. From $7 per custom invitation set. By appointment.
60 Sumach St. (at Queen St. E.), 416-323-3353
Wedding coordinator Tara O'Grady is known for her unflaggingly good taste. Bliss's staff of four consult from their downtown studio, pulling off six-tent high-society extravaganzas, small out-of-town gatherings in Niagara-on-the-Lake and chic urban restaurant weddings at places like Canoe. Clients' budgets range from $50,000 to $250,000. Wedding day service from $2,500. Full service from $5,000. By appointment.
Bakerbots Baking
Trained as a visual artist as well as a baker, Rosanne Pezzelli loves to experiment with non-traditional shapes and sculptural forms (a cake that looks like a geisha, for example). Her sense of whimsy is evident in a simple cream-coloured three-tier with a handful of pastel macarons tumbling down the side. A stunning white cake with a sugar bow edged in black showcases beautiful restraint. Each cake—made with eggs, milk, butter and Belgian chocolate—features at least two layers, with possible fillings including chocolate-hazelnut buttercream or cream cheese frosting. Cakes from $1,000. By appointment.
© 2015. All Rights reserved. Reproduction in whole or in part strictly prohibited. Toronto Life is a registered trademark of Toronto Life Publishing Company Limited


text:
In an interview with Telemundo, President Obama said that he did not consider Egypt an ally or an enemy. He may want to confirm that with the State Department, which still appears to have Egypt designated as a major non-NATO ally (MMNA). That designation gives it special status under the Foreign Assistance Act and the Arms Export Control Act:
The following countries have been designated as major non-NATO allies: Argentina, Australia, Bahrain, Egypt, Israel, Japan, Jordan, Kuwait, Morocco, New Zealand, Pakistan, the Philippines, Thailand, and Republic of Korea. Taiwan shall be treated as though it were designated a major non-NATO ally (as defined in section 644(q) of the Foreign Assistance Act of 1961 (22 U.S.C. 2403(q)).
If Egypt is not an ally, can Obama explain why the U.S. continues to support the country via military cooperation and foreign aid? And can he also explain when exactly Egypt dropped from "ally" status? As recently as March 23, White House spokesman Jay Carney referred to the country as "an important ally in the region" during a press briefing. When was the severing point? Before or after Morsi's election?
UPDATE: Josh Rogin spoke to National Security Council spokesman Tommy Vietor, who slammed critics for "reading way too much into" Obama's comments, and said Egypt's status as a Major Non-NATO Ally hasn't been changed:
White House spokesman Tommy Vietor told The Cable Thursday that the administration is not signaling a change in that status.
"I think folks are reading way too much into this," Vietor said. "'Ally' is a legal term of art. We don't have a mutual defense treaty with Egypt like we do with our NATO allies. But as the president has said, Egypt is longstanding and close partner of the United States, and we have built on that foundation by supporting Egypt's transition to democracy and working with the new government."
That doesn't exactly clarify the situation.


text:
Fresh from Pepe Reina's heroics at Wigan on Saturday we have put together 10 fantastic saves for LFC TV Online subscribers to watch now.
From Ray Clemence making a pivotal stop in the 1977 European Cup final, to Bruce Grobbelaar's agility against Graeme Sharp in the 1986 FA Cup final and Jerzy Dudek's astonishing point blank save in Istanbul to deny Shevchenko, enjoy some terrific goalkeeping at its very best.
Click play below to watch the clip.
You can get audio commentary, goals, highlights and analysis of all first-team matches, live press conferences, LFC TV, top 100 features, live youth football, exclusive interviews from Melwood and loads more from just £2.99 per month with an LFC TV Online subscription. Sign up or find out more>>
Tagged: 10 of the best , 10 of the best saves , clemence , goalkeeper , goalkeepers , pepe reina , ray clemence , reina
Submit your views in the box below. Alternatively, you can debate these issues with fellow fans on our Message Boards or blog about them on The Kop
The views expressed here are not those of Liverpool Football Club (read more)


text:
Free and Open to the Public
Posted: October 28, 2011
The eighth annual Kanawaksooma (Quiet Thunder) Celebration is coming to Mt. Hood Community College (MHCC) Saturday, Nov. 12, noon to 10 p.m. This cultural celebration offers traditional Native American music, dance, crafts, food and cultural enrichment for the whole family.
Chako Kum Tux, MHCC's Native American student club, welcomes the public to this free event. The powwow will be held at the MHCC gym, located on the Gresham Campus, 26000 SE Stark St. (enter on 17th St). Parking is free at all lots by the gym.
Individuals requiring accommodations due to a disability should contact the MHCC Disability Services Office at 503-491-6923 or 503-491-7670 (TDD).
For more information, please contact Elizabeth Perry, 503-491-6972 or email@example.com


text:
Please Login to TravelSmart Club or Register with TravelSmart Club to enable this function.
Help grow and support the Caravanning Industry.
Contact us for all your business or personal Insurance needs.
To promote and advance the Caravan Park Industry
ComprehensiveOnline Directory.for EverythingNZ Holiday Park,RV and CampingRelated!
Promote your Caravan Park, Business or Attraction here!Ads stay on our site permanently for a one-off cost.Multiple ad packages are available.Call us NOW!1800 605 198


text:
Address: 2000 BRITTAIN ROAD,, Akron, OH, 44310
- Hours:
- 10:00 - 21:00 ( Mon - Sat ) 12:00 - 18:00 ( Sun )
Chapel Hill Mall is a one-story, 860,000 sq ft enclosed mall located at 2000 Brittain Road in Akron, Ohio. Built by Richard (R.B.) Bucholzer and Forest City Enterprises, it opened on October 12, 1967. They continued to own the mall until 2004, when it was sold to the Chattanooga, Tennessee company CBL & Associates Properties, Inc..History
Chapel Hill Mall sits on land once owned by Richard Bucholzer's father, J.J. Bucholzer. During the Great Depression, J.J. Bucholzer became owner of a Hower's department store in downtown Akron. The Bucholzers knew Akron would grow to the north, and they felt that a Hower's store should be located on their land. It later became evident that even larger opportunities existed, and the natural choice was a climate-controlled shopping mall. Bucholzer teamed up with Forest City Enterprises to build Akron's first indoor mall. Plans were ready by 1963, but before the mall opened, DeBartolo Corporation built Summit Mall on the west side of Akron.
Source of name: In the 1930s, young Richard Bucholzer found what appeared to be an old Indian council circle on his father's land. Because of this, Bucholzer named the development "Chapel Hill".Anchors
Macy's (Formerly Kaufmann's, 165,184 sq. ft.)
JC Penney (194,126 sq. ft.)
Sears (200,014 sq. ft.); (Sears opened in 1966, before the entire mall was opened.)
The mall also includes:
Old Navy
Steve & Barry's University Sportswear
Comment for this newsletter
Mall newsletters
Last Call for Bunny Photos!
- @ Chapel Hills Mall (OH)
- 2011-04-22
The Easter Bunny is Hopping Into Town!
- @ Chapel Hills Mall (OH)
- 2011-04-02
Spring Savings at Chapel Hill Mall!
- @ Chapel Hills Mall (OH)
- 2011-03-22
Opening TODAY at Chapel Hill Mall!
- @ Chapel Hills Mall (OH)
- 2011-02-23
Best Buy Mobile Opening Soon!
- @ Chapel Hills Mall (OH)
- 2011-02-20


text:
Perhaps no issue deserves our respect and attention more than the one on whether to expand Medicaid in the commonwealth. There are strong ideas on both sides of an issue that impacts virtually everyone in Virginia.
Over the last month, we have run half a dozen letters and columns expressing a range of views on the issue. Much of the debate has centered on Gov. Terry McAuliffe, who won election on a promise to expand Medicaid coverage to as many as 400,000 uninsured Virginians.
While Virginia is one of the nation's wealthiest states, it ranks among the lowest — 48th — in per capita spending for Medicaid. The sad fact is that almost one in eight Virginians lack health insurance. Partisan opposition to expanding Medicaid now paints the uninsured into a corner. It is time for Virginia to find its way out.
Although Republicans who control the Virginia House of Delegates make a fair argument that the Affordable Health Care Act has had its share of problems and could leave the state with an expensive bill, support for expanding Medicaid now comes from almost every other corner. The state's Chamber of Commerce supports a form of expansion, as do our local hospitals and many throughout the state. In addition to providing health care for the state's uninsured, the very thought that Virginia would refuse to accept billions of dollars in federal Medicaid funds — dollars we send to Washington — seems unfathomable.
"Without a serious effort to close the coverage gap, Virginians will send nearly $30 billion in taxes, fees and healthcare provider cuts on a one-way trip across the Potomac River to Washington, D.C.," Knox Singleton, the CEO of Inova Health System noted on these pages in February. "Adding insult to injury, more than a third of those taxes, fees and cuts will come from businesses, taxpayers and hospitals in Northern Virginia. A Virginia solution to the coverage gap will bring those funds back to the commonwealth where they belong."
For all the partisan maneuvering around Medicaid, one political voice has risen above the fray to offer a common sense solution. It belongs to Del. Tom Rust (R-Dist. 86), who provides a thorough analysis of the Medicaid issue on his website (tomrust.org/2014/02/28/the-rust-report-february-28-2014/#sthash.MkgIDhUa.dpuf). Breaking ranks with every other Republican in the House, Rust believes Virginia's lawmakers should approve Medicaid expansion with a healthcare marketplace that responds to the state's neediest residents.
"Is it perfect?" Del. Rust asks. "No, but we simply cannot afford to continue to give the federal government any more of our money and get nothing in return."
We concur. Virginia would be foolish to give back federal money. The only issue should be making the system work for the people in the state who need it most.


text:
The King's Monarchs begin Division III play on Saturday when they host William Paterson.
Jeff Knarr returns for his 4th season as the Monarchs head coach. Last season, a young King's team went 2-8, but an influx of size, speed and most of all experience should make for a bounce-back year.


text:
Bake the Book: Spicy Pumpkin Seed Pecan Brittle
Even though Edible DIY presents this as more of an autumn treat, there's no reason to confine the flavors of cinnamon, fleur de sel, and a kick of cayenne to one season. Liven up winter's monotony with the sweetly spicy crunch of this brittle. More


text:
Huller's Black Forest
German American Restaurant
7713 St. Andrews Rd..
Irmo, SC 29063
Lexington County
803-781-0026 (phone)
803-781-0203 (fax)
Find out more about Huller's Black Forest.
Enjoy a variety of delicious specialties.
Catering for all occasions.
Visit our full service butcher shop and deli.
See our current hours of operation.
Check here for our daily specials.
To Our Friends and Customers . . .
Follow us on Twitter


text:
Click Here to Watch the Whole Video in HD at Defiant Boyz
We are famous for bringing you hot skaters, twinks, and straight boys exploring their first male-to-male action. Now we bring our entire video collection to the web with DefiantBoyz.
Curtis and Torque Strike a Convincing Skater Pose, Dragging In the Boards and Porn. Both Work Up Nice Bulges, as They Get a Little Comfortable. When They Strip Off Their Sweaty Shirts, Curtis Admires Torque's Tats. When Curtis Is the First Down to His Boxers, Torque Helpfully Strips Them Off Before Taking Curtis Still Soft Cock Into His Mouth. R
Pixels: 320X240 | Bitrate: 350K
Pixels: 640X480 | Bitrate: 700K


text:
After a contentious meeting in which North Charleston Councilman Bobby Jameson believes he was publicly embarrassed, Jameson has told the mayor and colleagues that he will no longer attend City Council meetings.
Jameson apparently does not plan to resign his council seat, with two years remaining on his third term in office.
Mayor Keith Summey said he hopes Jameson will reconsider his plan to stop attending the meetings after this week. Summey was on vacation last week and missed the Sept. 19 meeting when a vote on a zoning issue upset Jameson.
"He's been a good councilman for 10 years," Summey said. "I told him that if he were to do this, it could be seen negatively.
"It will all blow over," Summey said. "I think some feelings were hurt."
At issue last week was a plan to build a Sunoco gas station next to homes in the Deer Park neighborhood, in Jameson's district. Jameson supported zoning and land-use changes needed for the gas station and convenience store, and typically on a zoning issue, other members of council would go along with the desire of the member representing the district.
However, the Sunoco rezoning was voted down 6-3, and Jameson blamed Councilman Ron Brinson, whose brother and sister-in-law live in Deer Park. Brinson has denied attempting to sway other members of council, and said he hopes Jameson will remain involved on council.
"This is about doing the right thing for the people," Brinson said. "This is about maintaining the dignity of City Council."
Jameson said Friday that the zoning vote outcome "embarrassed me, and it embarrassed me for my city, in front of people who were ready to invest $4 million in my city."
He said Brinson "messed things up" and "hasn't been on council long enough to know the rules of the game." Jameson also directed some frustration at constituents; some neighborhood residents had spoken against the Sunoco plan at two council meetings.
In an e-mail obtained by The Post and Courier, Jameson said residents of his City Council District 3 should direct future concerns about zoning and land use to Brinson or his relatives, because "they seem to know what is best for my area."
"I am no longer going to waste my time and effort working for people who have no appreciation for all that I have done for this community over the past 17 years," Jameson wrote, referring to his time on City Council and his time as a neighborhood council leader.
Deer Park Neighborhood Council President Beth Evans said she hopes Jameson will continue to represent the area's interests.
"I've been told that he'll no longer attend meetings at City Hall, and will no longer attend Deer Park neighborhood meetings," she said. "My concern is that, if it is true, how will the residents of District 3 be represented for the next two years?"
Jameson did not respond to calls and emails seeking comment Monday or Tuesday.
Councilwoman Rhonda Jerome, who is Jameson's sister, said that like the mayor, she has urged Jameson to continue serving and attending meetings.
"I think, in his heart, he's dead serious," she said Tuesday. "I'm working on him, because I want him to finish out his two years the right way."
"He does have a temper, but we all do," Jerome said.
Reach David Slade at 937-5552 or Twitter @DSladeNews.
Notice about comments:
The Post and Courier is pleased to offer readers the enhanced ability to comment on stories. Some of the comments may be reprinted elsewhere in the site or in the newspaper. We ask that you refrain from profanity, hate speech, personal comments and remarks that are off point.
We do not edit user submitted statements and we cannot promise that readers will not occasionally find offensive or inaccurate comments posted in the comments area. If you find a comment that is objectionable, please click the X that appears in the upper right corner when you hover over a comment. This will send the comment to Facebook for review. Please be reminded, however, that in accordance with our Terms of Use and federal law, we are under no obligation to remove any third party comments posted on our website. Read our full terms and conditions.


text:
A componentization schema representing files from which an operating system or other software product is built. According to the schema, a component object represents one or more of the files. The component object has a manifest that identifies the component and specifies any dependencies between the component and other objects. Grouping objects according to the dependencies specified in manifests permits building the software product. A feature object defined by at least one component object represents a feature of the software product and a product object defined by at least one feature object represents the software product.
1. A method of building a software product from a plurality of files, said method comprising:
organizing the files into objects, a plurality of said objects being representative of components, said components each including at least one of the files;
identifying each of the components with a manifest associated therewith;
specifying, with the manifests, one or more dependencies between the components and other objects; and
grouping the objects according to the dependencies specified in the manifests to build the software product.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
16. The method of
17. One or more computer-readable media have computer-executable instructions for performing the method of
18. One or more computer-readable media having objects stored thereon for use in building a software product from a plurality of files, said computer-readable media comprising:
a plurality of component objects, said component objects each including one or more of the files and a manifest associated therewith, said manifest containing metadata identifying the component objects and specifying dependencies between the component objects and one or more other objects; and
at least one feature object corresponding to a feature of the software product, said feature object including one or more selected objects grouped according to the dependencies specified in the manifests.
19. The computer-readable media of
20. The computer-readable media of
21. The computer-readable media of
22. The computer-readable media of
23. The computer-readable media of
24. The computer-readable media of
25. The computer-readable media of
26. The computer-readable media of
27. The computer-readable media of
28. The computer-readable media of
29. The computer-readable media of
30. A componentization schema comprising:
a component object for representing one or more files from which a software product is built, said component object having a manifest associated therewith, said manifest identifying the component object and specifying one or more dependencies between the component object and at least one other object;
a feature object for representing a feature of the software product, said feature object being defined by at least one component object; and
a product object for representing the software product, said product object being defined by at least feature object.
31. The schema of
32. The schema of
33. The schema of
34. The schema of
35. The schema of
36. The schema of
37. The schema of
38. The schema of
39. The schema of
[0001] Embodiments of the present invention relate to the field of software architecture. In particular, embodiments of this invention relate to a componentized architecture for a software product, including an operating system.
[0002] As software products become larger and more complex, it is increasingly more difficult to create new products based on existing software products and to service these products as demanded by market and competitive needs. An operating system (OS) is an example of a relatively large, complex software product.
[0003] The operating system manages and schedules the resources of a computer or device in which it resides, and provides various function modules and interfaces that may be used by applications to accomplish various tasks. A conventional computer generally executes its operating system to manage various aspects of the computer as it is running. For example, the operating system is typically responsible for managing access to storage devices as well as input and/or output devices, and controlling the execution of one or more additional applications. Installation usually occurs before the computer executes the operating system (e.g., by copying multiple files from a distribution medium such as a CDROM onto a hard disk of the computer).
[0004] A conventional operating system has a large number of files (e.g., thousands) for instructions and/or data. Such instructions, when executed by the computer, provide the operating system's functionality. In addition to the large number of files, the operating system usually has a large number of dependencies among files. For instance, many files may require the installation of one or more other files for their intended functionality to be carried out. Although the operating system's manufacturer may know of such dependencies at the time of installation, it can be difficult for a user, administrator, or other software developer to learn about these dependencies. This can prove troublesome, as software developers may not know what data or instructions in other files affect the particular file(s) with which they are concerned. Similarly, an administrator or user troubleshooting a malfunctioning computer may not know which files are applicable to the problem without knowledge of the dependencies.
[0005] Moreover, a typical operating system is generally monolithic in nature. Those skilled in the art are familiar with conventional operating systems, in which both server and client OS products are built from a giant central file that contains all of the binary files. In this example, a setup executable must specify which files are included in the different products. Thus, relationships between various parts of each product are difficult to understand. This lack of information hinders the ability to service pieces of an operating system during its lifecycle. In other words, it becomes more difficult for developers and others to keep track of all the different modules and files of the operating system to ensure that they will work properly together and individually as the operating system becomes bigger and more complicated.
[0006] As an example, a particular OS product may be sold as a "home" version while a premium product with additional features may be sold as a "professional" version. In this instance, the home and professional products will often include branding information and other references interspersed throughout the many binary files making up the respective products. Unfortunately, creation and servicing of products is extremely laborious and requires extensive testing due to relationships between binary files and the existence of these branding references (each of which must be changed for a new product).
[0007] The operating system may be modified (e.g., updated or serviced) in any of a wide variety of manners, such as by adding or replacing one or more particular binary files, by any of a wide variety of people (e.g., a user, administrator, software developer other than the operating system developer, etc.). When such modifications occur, it increases the difficulty of identifying dependencies among files existing on the computer. For example, a change to a single file may necessitate a change to other dependent files. Further, it becomes even more difficult to troubleshoot a malfunctioning computer or update the operating system because the user or administrator cannot easily know exactly what functionality is or should be installed on the computer.
[0008] Accordingly, software componentization is desired to address one or more of these and other disadvantages and to allow, among other things, building improved operating systems.
[0009] Embodiments of the invention overcome one or more deficiencies in the prior art by representing a software product, such as an operating system, as a collection of components. An aspect of the invention includes introducing several abstractions to build the software product in a componentized way. In this manner, embodiments of the invention facilitate creation of new products based on the componentized product and servicing the product. The component definition may be used to describe application components generally, i.e., any application can be described using this component definition. In the alternative, the component definition may be used to describe operating system components more specifically. Moreover, the features of the present invention described herein are less laborious and easier to implement than currently available techniques as well as being economically feasible and commercially practical.
[0010] Briefly described, a method embodying aspects of the invention builds a software product from a plurality of files. The method includes organizing the files into objects. In this instance, a plurality of the objects are representative of components and the components each include at least one of the files. The method also includes identifying each component with a manifest and specifying, with the manifests, one or more dependencies between the components and other objects. Grouping the objects according to the dependencies specified in the manifests permits building the software product.
[0011] Another embodiment of the invention relates to one or more computer-readable media. Objects stored on the media, including a plurality of component objects, are used to build a software product from a plurality of files. Each component object includes one or more of the files and a manifest. The manifest contains metadata identifying the component objects and specifying dependencies between the component objects and one or more other objects. The media also includes at least one feature object corresponding to a feature of the software product. The feature object includes one or more selected objects grouped according to the dependencies specified in the manifests.
[0012] In yet another embodiment, a componentization schema represents one or more files from which a software product is built with a component object. A manifest associated with the component object identifies it and specifies one or more dependencies between the component object and at least one other object. The schema also includes a feature object and a product object. The feature object, which is defined by at least one component object, represents a feature of the software product. The product object, which is defined by at least one feature object, represents the software product.
[0013] Computer-readable media having computer-executable instructions for performing methods of componentization embody further aspects of the invention.
[0014] Alternatively, the invention may comprise various other methods and apparatuses.
[0015] Other features will be in part apparent and in part pointed out hereinafter.
[0016]FIG. 1 is a block diagram illustrating an exemplary computer according to embodiments of the present invention.
[0017]FIG. 2 is an exemplary block diagram illustrating a component and corresponding manifest of FIG. 1.
[0018]FIG. 3 to FIG. 8 illustrate an exemplary component definition schema according to embodiments of the present invention.
[0019]FIG. 9 to FIG. 12 further illustrate objects of the component definition schema of FIGS. 3-8.
[0020]FIG. 13 illustrates an exemplary design process according to embodiments of the present invention for selecting components to be included in a software product.
[0021]FIG. 14 illustrates an exemplary programming object model according to embodiments of the present invention.
[0022]FIG. 15 is a block diagram illustrating an exemplary componentization architecture for use with the component definition schema of FIGS. 3-8.
[0023]FIG. 16 is a block diagram illustrating exemplary components of a computer for use FIG. 1.
[0024] Corresponding reference characters indicate corresponding parts throughout the drawings.
[0025] Referring now to the drawings, FIG. 1 illustrates an exemplary computing device 150 in accordance with certain embodiments of the invention. The computing device 150 is illustrated as having a software product such as operating system 152 and one or more application programs 154.
[0026] Operating system 152 is the fundamental software control program for computing device 150, performing various functions including providing a user interface, managing the execution of one or more applications 154, and controlling the input of data from and output of data to various input/output (I/O) devices. Application programs 154 represent one or more of a wide variety of software application programs that may be executed on computing device 150. Examples of such application programs 154 include educational programs, reference programs, productivity programs (e.g., word processors, spreadsheets, databases), recreational programs, utility programs (e.g., communications programs), etc. Application programs 154 may be installed on computing device 150 by the user, or alternatively pre-installed by the manufacturer and/or distributor of computing device 150.
[0027] The operating system 152 of FIG. 1 separates its functionality into multiple components 156 such as component #1 through component #N in the illustrated embodiment. Each component 156 has a corresponding manifest 158 such as manifest #1 through manifest #N, respectively. The components 156 include a collection of one or more files (or file identifiers). The files may include software instructions such as an executable file, a dynamic-link library (DLL), or a component object module (COM). The files may also include data for use by one or more of the components 156. In one implementation, the files (e.g., data and/or instructions) corresponding to particular functionality of the operating system 152 are grouped together in the same component 156. For example, there may be a games component, a communications component, and a file system component. The grouping of files that result in the componentization may be static or alternatively may change over time. In one example, updates to operating system 152 may result in selected files from certain components 156 being removed and added to other components 156.
[0028] Referring further to FIG. 1, each manifest 158 includes information describing the corresponding component 156. Any of a wide variety of metadata regarding the corresponding component 156 may be included in each manifest 158. In one implementation, the manifest 158 identifies the version of the corresponding component 156 as well as which other components 156, if any, the corresponding component 156 is dependent on. By way of example, in order for one or more files in component 156 to properly execute, one or more other files (e.g., a DLL file) from another component may need to be installed on computing device 150. In this example, manifest 158 would indicate that component 156 depends on the other component.
[0029] Due to the complexity and size of existing operating systems, it is becoming increasingly difficult to create new products to meet market or competitive needs. Today's operating systems are more monolithic in nature and, thus, it can be difficult to understand the relationships between various constituent parts. The lack of this information makes servicing an operating system very difficult during the lifecycle of the product. To overcome these and other problems, embodiments of the present invention componentize the operating system. In other words, the invention permits representing a software product as a collection of components. Aspects of the invention involve several abstractions used to build an operating system in a componentized way to facilitate creation of new products and servicing the existing product. The abstractions can be applied to any software product including application programs and any operating system.
[0030] A component definition schema exemplifying aspects of the invention introduces several abstractions, namely, components (also referred to as assemblies), categories, features, packages, products, and SKUs (stock keeping units). In this instance, component 156 represents a reusable, sharable, self-describing atomic unit of distribution, servicing, and/or binding. It is the most basic abstraction that describes the component itself and all relevant information (i.e., metadata) used for installing, servicing, and/or binding to necessary resources in a declarative manner.
[0031] As described in greater detail below with respect to one embodiment of the invention, a category object 162 (see FIG. 4) represents a mechanism to group a common set of components 156; a feature object 164 (see FIG. 5) represents a composition of components 156 and/or features 164 and is used as a building block for creating a product object 166 (see FIG. 7); and a package object 168 (see FIG. 6) represents a composition of components 156, features 164, categories 162, and/or other packages 168. As an example, the package object 168 is used to group a set of components 156 for administrative purposes. Further, the product object 166 in this embodiment represents a top level composition of features 164 and/or components 156 and a SKU object 170 (see FIG. 8) represents a shipping mechanism for products 166 (e.g., one SKU 170 may contain multiple products 166).
[0032] The component definition described herein may also be used to describe application components generally rather than operating system components specifically. In other words, any application may be described using this component definition.
[0033] The componentization architecture according to embodiments of the invention defines the concepts, component repository, and programming model for managing components both during design-time and run-time. There are several strategic benefits of componentization including agility, speed, supportability, and increased revenue opportunities. Creating a new software product, represented by a product or SKU object, is made much easier, even across client and server lines. It is a relatively simple task of selecting the right components and providing some additional configuration to build a new product. The agility in creating new products in a relatively short time provides the ability to compete efficiently and avoid missing a market opportunity. For example, it is possible to offer additional components to later add to a current product, which allows a customer to upgrade to a premium product, which increases the overall number of licenses, etc. All of these additional activities may result in additional revenues for the products.
[0034] Componentization also facilitates reducing the number of product images that an original equipment manufacturer (OEM) or corporation must maintain, which can lead to great cost savings. According to at least one embodiment of the invention, most of the component information is declarative such that components can be installed in an offline manner. This reduces the time it takes to install the whole product on a target device and results in great cost reductions for OEMs, corporations, end users and the like as well as increased customer satisfaction.
[0035] Those skilled in the art recognize the importance of service as part of the product cycle. Servicing a componentized product according to embodiments of the invention is relatively simple because it is easy to assess the impact of the changes based on the declarative information provided by each component. It is also much easier to test the components in a more isolated environment to improve the testing efficiency. In turn, this reduces the overall fragility in the software product.
[0036] The component definition schema described herein covers the information that component 156 describes in order to install, upgrade service, and bind to appropriate resources. In this regard, FIG. 2 illustrates exemplary component 156 and corresponding manifest 158 in accordance with certain embodiments of the invention. According to embodiments of the invention, each component 156 is represented by a corresponding manifest 158. Component 156 includes at least one file 174 and may optionally include more than one (n) files. Although illustrated as files in FIG. 2, component 156 may alternatively include pointers or other identifiers of one or more of files 174 rather than the actual files.
[0037] The component 156 corresponds to manifest 158. In the illustrated example, manifest 158 includes a component identifier that identifies component 156 (e.g., by name or some other unique identifier). This correspondence can alternatively be maintained in different manners, such as inclusion of an identifier (not shown) of manifest 158 in component 156, storage of both component 156 and manifest 158 (or identifiers thereof) in a data structure that maintains an inherent correspondence between component 156 and manifest 158, etc. Manifest 158 may be an extensible markup language (XML) document.
[0038] As shown in the exemplary listing of FIG. 2, manifest 158 also includes a dependent component list that identifies zero or more components that component 156 is dependent on. The identified dependent components are those components that also need to be installed as part of the operating system image in order for component 156 to function properly. In the illustrated example, the identifiers identify components that are necessary for component 156 to function properly, but alternatively may include components that should be included (i.e., components preferred by component 156 to have as part of the operating system but which are not necessary). In addition to identity and dependencies, manifest 156 in this example also describes a number of other details of component 156, namely, general information (including owner, tester, developer, description, etc.), resources (including files, registry information, etc.), settings (configuration), memberships, and other information.
[0039] The manifest 158 in an alternative embodiment may also include a priority order and a version indicator to aid in installation and/or upgrading.
[0040] Alternatively, some or all of the information maintained in manifest 158 may be maintained in different locations. By way of example, some or all of the information may be incorporated into component 156 of FIG. 1.
[0041] The example of APPENDIX A further illustrates aspects of the invention with respect to manifest 158.
[0042] The following description provides further details regarding the major abstractions used in a componentization architecture exemplifying aspects of the invention.
[0043] As described above, the object referred to as component 156 (or assembly) represents a reusable or sharable self-describing atomic unit of distribution, servicing, and binding. In the embodiment of FIG. 3, components 156 may depend on other components 156 and/or features 164 to run, i.e., they exhibit dependencies relative to these other objects. Components 156 may also be members of different open groups, namely, categories 162. In this instance, a developer-friendly, extensible, multi-part property "bag" referred to as "identity" identifies each component 156. The component identity has the following attributes, for example: name, version, processor architecture, language (e.g., "us-eng" or "jpn"), build type (e.g., free or debug), and originator's identification. The name attribute takes the form of a locale independent string that describes the particular component 156 in one embodiment. A four-part version number, which generally follows a "major.minor.build.revision" format, for example, is provided by the version attribute of the identity. Cryptographically secure information that allows the component identity to be secure is found in the originator's ID attribute of the identity.
[0044] As set forth above, each component 156 is made up of one or more files as well as an associated manifest 158. Manifest 158 describes the details of component 156, as shown in FIG. 3. In the embodiment of FIG. 3, the object referred to as component or assembly may have dependencies with respect to another component 156, a category 162, and/or a feature 164.
[0045] The category object 162 shown in FIG. 4 defines an open group in which membership information is present with the member of the category rather than being present in a category manifest. For example, one category 162 may be established to group one or more components 156 related to text editors such as Notepad and Wordpad. Categories 162 are also identified using an identity mechanism similar to that of components 156. In one embodiment, categories 162 have details such as identity, general information, and other information.
[0046] Referring now to FIG. 5, the feature object 164 represents a composition of components 156 and/or other features 164. Features 164 are used as software product building blocks and can be added or removed from installation. Rather than depending upon other objects, features 164 have inclusive relationships with respect to components 156, other features 164, and categories 162. In other words, features 164 do not have dependencies according to this embodiment. As an example, one feature object 164 represents a consolidated Web browser feature and another feature object 164 represents a media player application, both of which are shipped with an operating system. Feature 164 consists of identity, general information (e.g., owner, tester, developer, description, etc.), memberships, compositions, and other information. In one embodiment of the invention, the feature identity is similar to the component identity in structure and is used to identify each feature 164. Features 164 may be members of multiple different categories 162 (see FIG. 4).
[0047]FIG. 6 diagrammatically illustrates the package object 168. As shown, package 168 is a composition of components 156, features 164, categories 162, and other packages 168. In contrast to categories 162, packages 168 are closed groups. Packages 168 are primarily used for administrative purposes. For example, a home version of an OS may be shipped with four different packages 168 indicated by "cab1", "cab2", "cab3" and "cab4". The package objects 168 in this example are groups formed for setup purposes. Packages 168 specify dependencies only on other packages 168 in the embodiment of FIG. 6. Each package 168 according to the componentization definitions described herein consists of details such as identity, general information, membership, compositions, dependencies, and other information.
[0048] The product object 166 of FIG. 7 represents a top level composition of features 164 and/or components 156. It also has properties that are used to configure the composed features 164 and components 156. According to embodiments of the invention, a product designer selects features 164 for product 166 (see FIG. 13). The product object 166 contains details on identity, general information, compositions, and other information.
[0049] Referring now to FIG. 8, SKU object 170 represents the shipping medium for products 166 (i.e., what products are included on a disc for shipping). Suitable shipping media include floppies or compact discs and web download cabinet files. Also, SKU 170 may consist of more than one product 164 (see FIG. 13). At least one embodiment of the invention generates a SKU manifest using a SKU designer tool. Similarly to the other abstractions described above, SKU 170 contains identity, general information, products, and other information.
[0050]FIG. 9 to FIG. 12 are further illustrative of an exemplary relationships between component 156 and other objects. In particular, FIG. 9 shows that component 156 may be dependent on one or more of the binary files found in one or more categories 162, one or more features 164, and/or one or more other components 156. In addition, component 156 may declare membership in category 162. In the exemplary relationship diagram of FIG. 10, category 162 may be used to group one or more features 164, one or more components 156, and/or one or more packages 168. As described above, the category object 162 represents an open group into which other objects declare their membership. FIG. 11 further illustrates that feature 164 includes one or more other features 164 and/or components 156 and that feature 164 may declare membership in one or more of the categories 162. Referring now to FIG. 12, package 168 represents a grouping of one or more other packages 168, categories 162, features 164, and/or components 156. In this instance, package 168 may belong to an open group such as category 162 or depend from a closed group such as another package 168.
[0051]FIG. 13 provides an example of grouping various components 156 of OS binary files to define features 164. The features 164 are then grouped to define products 166, which are in turn included for shipping with SKU 170. Different computers may have different operating system images that are based on the same operating system. For example, different OEMs may customize the same operating system in different ways (e.g., so that the operating system boots with an initial screen identifying the OEM, different default settings may be used, etc.). Different functionality may also be included (e.g., screen savers, backgrounds or themes, software applications such as communications programs, games, etc.). This additional functionality can be provided by the OEM, or alternatively other manufacturers or distributors. Thus, many different components may be part of the operating system of which only a subset are actually installed on a particular computer as an operating system image. An OEM-specific component and manifest set, on the other hand, includes additional components that can be installed by the OEM as part of the operating system image.
[0052] The operating system can be updated for any of a wide variety of reasons. By way of example, bug fixes to certain files of certain components may be available, new functionality (e.g., replacement or additional files) in a component may be available, new components may be available, etc.
[0053] Additionally, a new component may be installed as part of the operating system along side a previous component rather than replacing it. This allows different applications to use whichever version of the component they prefer (or are programmed to use).
[0054] By way of example, an OEM may offer various basic computer configurations corresponding to home use, business use, server use, and so forth. Each one of the configurations in this example is based on the same operating system but includes different functionality. Additional networking and communications functionality may be included in the server configuration that is not included in either the home or business configurations, and additional games or audio playback functionality may be included in the home configuration that is not included in the business or server configurations. FIG. 13 shows an exemplary premium product that includes a basic home product.
[0055] In one embodiment, building the software product is the act of creating a run-time image from a repository of components mentioned in a product object. Building generally occurs in an offline manner, i.e., a run-time image for machine X is created on machine Y. Dependencies are fully resolved from the top level product. Once the dependencies are resolved, each node in the dependency tree is installed to the target. Target denotes the installation that is being created in an offline manner. Installation of each component involves installing each resource (e.g., registry keys and files) that is part of the component and putting an entry in the installed component repository to track the installed components.
[0056]FIG. 14 shows first level abstractions of the programming model according to embodiments of the invention. In particular, the exemplary diagram illustrates different first level objects (or classes), using, for example, Unified Modeling Language (UML). The objects are exposed to programmers using UML in this example. Each of the interfaces directly maps to the first level concepts of the componentization.
[0057] The operating system installation process is simplified greatly by the componentization of the operating system. OEM-specific functionality can be easily added to a computer by including the appropriate component and corresponding manifest. Further, updates to the operating system for improved functionality, bug fixes, and the like can be easily incorporated into the installation process by simply replacing the corresponding components. Alternatively, an additional update component and manifest set may be available to an operating system installation station that includes such updates.
[0058]FIG. 15 illustrates exemplary componentization architecture for use with the invention. The extensible architecture shown in FIG. 15 permits the building of an OS installation, including installing and uninstalling components, and enables product/SKU agility. Moreover, the architecture provides infrastructure for servicing a running OS and an OS image, provides an inventory of OS components; and lives on the installed system. The componentization architecture provides a generalized framework for creation and management of components. It also allows for building a run-time image from a configuration in a generic manner. A component management interface (CMI) is the programming model interface that may be used by different consumers to access functionality exposed by the componentization architecture. The tools can be generally divided into the following classes: design-time tools; run-time tools; and build-time tools. Design-time tools are the tools used at the design time (e.g., a component designer to design or create components and target designer to design or create a configuration). Run-time tools are used to manage the existing components on a run-time image (installation). This might include functionality such as an option component manager (OCM), which manages the components installed on a system. Another example of a run-time tool can be a servicing client that talks with a remote server to get component updates and updates the components installed on an installation. Build-time tools are used in the build lab. They are primarily used to create a run-time image from a configuration.
[0059] As shown in FIG. 15, CMI has a core layer and a utility layer. The CMI core layer consists of different blocks of functionality that are generally exposed and consumed as well known interfaces. This layer consists of a core CMI object model, a repository and file repository, and serializer/de-serializer. The core CMI object model block exposes multiple different first class abstractions as interfaces to CMI clients for ease of programming. They generally reflect componentization abstractions in a relatively easy to use format. For example, IAssembly abstracts the "component" concept. The abstractions in this embodiment do not have any functionality associated with them. They are a collection of attributes that can be retrieved and set through the methods exposed on the abstractions. The following list includes some of the abstractions that are exposed through an interface in the core CMI object model: IAssembly; IFeature; ICategory; IPackage; IProduct; ISku; IConfiguration; IRepository.
[0060] A component repository in the example of FIG. 15 is used for managing components that are present in one of the repositories. As described above, each component has metadata (i.e., information about the data) and the actual data (i.e., files of a component). Metadata is accessible through a metadata repository interface (IRepository) whereas data is accessible through a file repository interface (IFileRepository). In one embodiment, the metadata repository interface is implemented using a relational database to store and index the metadata of components. The file repository interface allows clients to get to the component data (files) in a consistent way.
[0061] The component metadata and data interfaces are split under the component repository interface in FIG. 15 to allow for different pluggable metadata repository implementations based on different scenarios. For example, on a design machine one could use a SQL metadata repository since available storage and memory might not be constrained but on a run-time system metadata repository might be backed by a small footprint database (e.g., registry) to take care of tight memory requirements.
[0062] A serializer and deserializer interface allows first class objects in CMI to be serialized to and deserialized from a text file. For example, an XML serializer and deserializer reads and writes XML files. The serializer and deserializer generally read and write out carriers and configurations as described below.
[0063] The files that carry any of the first class abstractions in serialized format are referred to as either carriers or manifests. The carriers provide a means of populating the component repository data, i.e., tools create or edit a serialized instance of component in a carrier file and the component repository interface allows for the import of the carrier into the component repository.
[0064] The primary advantage of using a carrier for information exchange is that it allows the tools to be decoupled from the component repository. Another advantage is that while importing the carrier information, the data can be imported into the component repository in a more consistent (or complete) format. The serializer and deserializer interface segregation also allows for other kinds of carriers (e.g., INF) to be implemented.
[0065] Configuration is a serialized representation of the CMI's IConfiguration object, which represents a collection of components and settings used to build a run-time image. The reason configuration is serialized in a separate file rather than a carrier file is that configuration cannot be imported into the database.
[0066] The CMI utility layer consists of blocks of functionality that frequently changes. The blocks of functionality are exposed and consumed as well known interfaces in the embodiment of FIG. 15. The utility layer includes blocks for an installer, an upgrader, a dependency resolver, the CMI object model, and clients. The installer block has the logic for installing (or building) and removing a particular componentization abstraction exposed by the core layer. For example, IAssembly is installed and removed from the OS installation in an online or offline manner. The logic of installing and removing assemblies is present in this block. All the core abstractions are installed and removed using "IInstallable" interface. The implementation of these methods changes for each core abstraction. For example, for assembly there will be an installer abstraction called "IAssemblyInstaller". IAssemblyInstaller aggregates "IAssembly" interface and implements "IInstallable" to install and uninstall an assembly instance.
[0067] This type of particular functionality binding with core abstractions allows the implementation of assembly install logic to change as needed without affecting the core IAssembly interface. The same holds true for other core abstractions also.
[0068] The upgrader block has the logic for upgrading and downgrading a particular core abstraction on a windows installation. For example, IAssembly is upgraded or downgraded from the OS installation in an online or offline manner. The logic of upgrading and downgrading assemblies is present in this block. All the core abstractions are upgraded and downgraded using "IUpgradable" interface.
[0069] There is a separate implementation of these methods for each core abstraction. Since install and uninstall functionality is needed during the upgrade process, "IUpgradable" inherits from "IInstallable" to re-use the existing functionality of install and uninstall. For example, the assembly has an upgrader abstraction called "IAssemblyUpgrader". IAssemblyUpgrader aggregates "IAssembly", "IAssemblyInstaller" and implements "IUpgradable" to upgrade and downgrade an assembly instance on a windows installation. Again, this kind of binding allows the implementation of assembly upgrade logic to change as needed without affecting the core IAssembly interface and install or uninstall logic. The same holds true for upgrade functionality of other core abstractions also.
[0070] The dependency resolver block implements the dependency resolution logic for a particular core abstraction. In this instance, for each core abstraction this block has logic in terms of dependency resolution either in an automated or manual fashion. The dependency resolver is extensible for the client programs to extend the default dependency resolution functionality as needed in a particular client context. This block's functionality is exposed through "IDependencyResolver" interface. The method of resolving dependencies returns a tree of CMI objects or instance objects based on the scenario where it is being used. Dependency resolution is generally done with respect to a configuration or a repository according to at least one embodiment of the invention. The repository can be either installable or installed repository.
[0071] Generally, on run-time systems, dependency resolutions happen against an installed repository and existing configuration, whereas in a design-time scenario the dependency resolution happens against an installable repository and a current configuration which is being edited.
[0072] The CMI object model is an aggregated form of CMI core object model and different pieces of functionality exposed in the utility layer. The core CMI object model is also exposed out for authoring tools to manipulate the abstractions directly while serializing and de-serializing the carriers (or manifests).
[0073] One of the key things to notice in the above architecture is that the same programming model is advantageously exposed for design-time, run-time and build-time scenarios. This helps in keeping the object model consistent with respect to different requirements and helps in programmer's productivity. This also helps in re-using a single implementation of CMI to be used for different scenarios such as design and run-time and is therefore more maintainable in comparison to different implementation for design-time and run-time scenarios.
[0074]FIG. 16 shows one example of a general purpose computing device in the form of a computer 70. In one embodiment of the invention, a computer such as the computer 70 is suitable for use as computer 150.
[0075] In the illustrated embodiments, computer 70 has one or more processors or processing units 72 and a system memory 74. In the illustrated embodiment, a system bus 76 couples various system components including the system memory 74 to the processors 72. The bus 76 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
[0076] The computer 70 typically has at least some form of computer readable media. Computer readable media, which include both volatile and nonvolatile media, removable and non-removable media, may be any available medium that can be accessed by computer 70. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. For example, computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can accessed by computer 70. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media, are examples of communication media. Combinations of the any of the above are also included within the scope of computer readable media.
[0077] The system memory 74 includes computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory. In the illustrated embodiment, system memory 74 includes read only memory (ROM) 78 and random access memory (RAM) 80. A basic input/output system 82 (BIOS), containing the basic routines that help to transfer information between elements within computer 70, such as during startup, is typically stored in ROM 78. The RAM 80 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 72. By way of example, and not limitation, FIG. 16 illustrates operating system 84, application programs 86, other program modules 88, and program data 90.
[0078] The computer 70 may also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, FIG. 16 illustrates a hard disk drive 94 that reads from or writes to non-removable, nonvolatile magnetic media. FIG. 16 also shows a magnetic disk drive 96 that reads from or writes to a removable, nonvolatile magnetic disk 98, and an optical disk drive 100 that reads from or writes to a removable, nonvolatile optical disk 102 such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 84, and magnetic disk drive 96 and optical disk drive 100 are typically connected to the system bus 76 by a non-volatile memory interface, such as interface 106.
[0079] The drives or other mass storage devices and their associated computer storage media discussed above and illustrated in FIG. 16, provide storage of computer readable instructions, data structures, program modules and other data for the computer 70. In FIG. 16, for example, hard disk drive 94 is illustrated as storing operating system 110, application programs 112, other program modules 114, and program data 116. Note that these components can either be the same as or different from operating system 84, application programs 86, other program modules 88, and program data 90. Operating system 110, application programs 112, other program modules 114, and program data 116 are given different numbers here to illustrate that, at a minimum, they are different copies.
[0080] A user may enter commands and information into computer 70 through input devices or user interface selection devices such as a keyboard 120 and a pointing device 122 (e.g., a mouse, trackball, pen, or touch pad). Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are connected to processing unit 72 through a user input interface 124 that is coupled to system bus 76, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB). A monitor 128 or other type of display device is also connected to system bus 76 via an interface, such as a video interface 130. In addition to the monitor 128, computers often include other peripheral output devices (not shown) such as a printer and speakers, which may be connected through an output peripheral interface (not shown).
[0081] The computer 70 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 134. The remote computer 134 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 70. The logical connections depicted in FIG. 16 include a local area network (LAN) 136 and a wide area network (WAN) 138, but may also include other networks. LAN 136 and/or WAN 138 can be a wired network, a wireless network, a combination thereof, and so on. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and global computer networks (e.g., the Internet).
[0082] When used in a local area networking environment, computer 70 is connected to the LAN 136 through a network interface or adapter 140. When used in a wide area networking environment, computer 70 typically includes a modem 142 or other means for establishing communications over the WAN 138, such as the Internet. The modem 142, which may be internal or external, is connected to system bus 76 via the user input interface 134, or other appropriate mechanism. In a networked environment, program modules depicted relative to computer 70, or portions thereof, may be stored in a remote memory storage device (not shown). By way of example, and not limitation, FIG. 16 illustrates remote application programs 144 as residing on the memory device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
[0083] Generally, the data processors of computer 70 are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer. Programs and operating systems are typically distributed, for example, on floppy disks or CD-ROMs. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory. The invention described herein includes these and other various types of computer-readable storage media when such media contain instructions or programs for implementing the steps described herein in conjunction with a microprocessor or other data processor. The invention also includes the computer itself when programmed according to the methods and techniques described herein.
[0084] For purposes of illustration, programs and other executable program components, such as the operating system, are illustrated herein as discrete blocks. It is recognized, however, that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer.
[0085] Although described in connection with an exemplary computing system environment, including computer 70, the invention is operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics including mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
[0086] Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
[0087] In operation, computer 70 executes computer-executable instructions such as those described herein organize the files into objects. In this instance, at least some of the objects are representative of components and the components each include at least one of the files. In accordance with the computer-executable instructions, a manifest identifies each component and specifies any dependencies between the component and other objects. Grouping the objects according to the dependencies specified in the manifests permits building the software product.
[0088] Those skilled in the art will note that the order of execution or performance of the methods illustrated and described herein is not essential, unless otherwise specified. That is, it is contemplated by the inventors that elements of the methods may be performed in any order, unless otherwise specified, and that the methods may include more or less elements than those disclosed herein.
[0089] Information in this document, including uniform resource locator and other Internet web site references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, e-mail address, logo, person, place or event is intended or should be inferred.
[0090] When introducing elements of the present invention or the embodiments thereof, the articles "a," "an," "the," and "said" are intended to mean that there are one or more of the elements. The terms "comprising," "including," and "having" are intended to be inclusive and mean that there may be additional elements other than the listed elements.
[0091] In view of the above, it will be seen that the several objects of the invention are achieved and other advantageous results attained.
[0092] For example, embodiments of the present invention are scalable and extensible. The component repository may be able to track relatively few components (e.g., hundreds) on a run-time system to a relatively huge number of components (e.g., hundreds of thousands) on a design-time system. The schema embodied by the invention is also extensible enough so that additional metadata and new components can be added by different product divisions and third parties. The programming model is extensible enough so that people can add functionality to the core componentization framework in a consistent manner to extend it.
[0093] As various changes could be made in the above constructions and methods without departing from the scope of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
[0094] Data Storage and Format: Authoring tools create the component, feature, category, package, product and SKU. In this example, they are represented in an XML file (called a carrier or manifest). Each carrier contains only one instance of features or categories or packages or products or SKUs. An example of a notepad manifest follows:
Patent Citations
Referenced by
Legal Events
Original Image


text:
Search the collections
Refine your search
Filter results by item typeClear Filters
Max Stermole, Tunneler, Snowy Mountains (1910-?)
Image: Medal - Snowy Mountains Scheme, Australia, 1958
Source: Museum Victoria
A In 1956-57, Max Stermole worked as a tunnel digger on the Snowy Mountains Hydro Electric Scheme for American firm Kaiser Walsh Perini Raymond, a consortium of large American construction companies. The firm built the Tumut Pond Dam (one of the most visually dramatic structures in the Scheme), the Tumut 1 Pressure Tunnel and Surge Tank (leading to Tumut 1 Power Station), the Eucumbene-Tumut Tunnel and the Eucumbene Dam (the largest in the system). KWPR were one of two main contractors in the first stage of the scheme, the other being a French consortium. Max, along with about 14 other men, was awarded a medal as World Tunnel Record Holder (NU 42218) by the company in 1958.They tunnelled 474 feet in one week in the Tumut Tunnel.
(showing 1 - 1) 1 items
Medal - Snowy Mountains Scheme, Australia, 1956
Snowy Mountains Scheme KWPR World Tunnel Record Holder Medal awarded to Max Stermole in 1956. Max migrated to Australia from Austria in 1949 with two of his sons Erhard and Joze, after ...Images: 4


text:
Cab (Single)
by Train
Released: Nov 2005
Label: Columbia
Train invoke shades of Steely Dan right down to the Walter Becker/Donald Fagen-esque harmonies. "Cab" is a gentle, piano-laced rocker whose stunning arrangements highlight singer Patrick Monahan's emotional lyrics. Combined, these elements create such an evocative tale of loneliness that it sucks you right into the high drama.


text:
OTTAWA, Canada—Nadine and Bianca Grenier, two sisters who are both visual artists, attended Shen Yun Performing Arts Saturday afternoon at the National Arts Centre and gave rave reviews of the renowned classical Chinese dance and music production.
New York-based Shen Yun was established in 2006 with a mission to revive 5,000 years of divinely inspired Chinese culture.
Bianca, who also does animation, found every aspect of the show highly inspiring, from the colours and digital backdrops to the dancers and the costumes.
"The vibrancy and just the flow of it was amazing," she said. "It gives so much inspiration to go home and draw, it was great."
Digital backdrops transport the audience to other worlds, providing animated settings that bring the dances to life, as performers on the stage seemingly fly into the scenery and back.
"How the dancers interacted with the backdrop was perfectly in time. I was rather amazed and it was very well done," Bianca said.
Shen Yun also features a unique orchestra that combines traditional Western and Chinese instruments.
Bianca said she would love to listen to the music at home.
"It was gorgeous," she said. "Very beautiful, and just the whole Chinese culture, everything was just brought to life and I loved it."
She said she would tell her friends that Shen Yun is "amazing and astounding."
"Definitely go see it because the colours are great, just everything is great," Bianca said.
Nadine, who is planning to return to school to study psychology, was equally impressed by the show.
"I absolutely loved it. It was breathtaking. The colours and the costumes were just out of this world."
The mainstay of Shen Yun is classical Chinese dance, an art form developed over China's 5,000 years of history. The continually evolving dance system is one of the most complex and comprehensive in the world, and those with an eye for dance express amazement at the agility, character, and technique of the dancers.
The performances feature a collection of stories told through classical Chinese dance as well as ethnic or folk dances, as well as solo singers singing Chinese lyrics in the bel canto vocal style.
"The music was beautiful," Nadine said, adding that she is "a huge fan" of the erhu—which has been called the "Chinese violin"—one of the traditional Chinese instruments showcased by Shen Yun.
The calibre of the dances also stood out for her.
"I can see the technical difficulty [of the dancing] was very high," she said, adding that "the storytelling as well was very well done."
"Everything was just brought to life and I loved it," Nadine said.
Reporting by NTD Television and Pam McLennan.
New York-based Shen Yun Performing Arts has three touring companies that perform simultaneously around the world. Shen Yun's New York Company will be in Ottawa until Dec. 30 before going on to Montreal, Toronto, and other cities in eastern Canada.
For more information, visit ShenYunPerformingArts.org
The Epoch Times publishes in 35 countries and in 20 languages. Subscribe to our e-newsletter.


text:
Visit the official website for Low and Behold and order the DVD now!
Based on real events, Low and Behold tells the story of Turner Stull, a young insurance claims adjuster in post-Katrina New Orleans who risks his job to help a local man, Nixon, find his lost dog. As this unlikely pair traverses the city, Turner comes to discover that some damage is immeasurable. Filmed on location in New Orleans only months after Hurricane Katrina, Low and Behold blurs the line between reality and fiction, creating a mosaic of images, faces, and voices that together make for a unique cinematic experience.
Low and Behold premiered at the Sundance Film Festival in 2007, and subsequently won awards at film festivals around the US, including Best Film at the New Orleans Film Festival, Sidewalk Moving Picture Festival, Bend Film Festival, On Location: Memphis, and Rome International Film Festival (in Rome, Georgia). Godshall also won Best Director at the Sidewalk Moving Picture Festival, and actor Eddie Rouse won Best Supporting Actor at the Bend Film Festival.
Directed by Zack Godshall
Written by Barlow Jacobs & Zack Godshall
Produced by Barlow Jacobs, Sarah Hendler & Colby Johnson
Starring Barlow Jacobs, Eddie Rouse & Robert Longstreet
Cinematography by Daryn Deluco
Edited by Travis Sittard
Music by Michael Blum, Alfredo Nogeira & Mason Neely
Sound by Trey Ledford
USA, 89 minutes. ©2007 Blindwall Pictures


text:
Excommunication Issues: Altar Men Episode 6
By 0 Comments|
Father Baker brings the Altar Men to a local bar for a chat about their future with the Church. But when the Altar Men realize he means to kick them out, they do their best to prove they have lives outside of being altar boys.
← Previous Story The Levity Algorithm for Google Apps – New Feature from Google


text:
The final super sized episode of M.A.O.S. Declassified has arrived online featuring a panel discussion with Chloe Bennet, Elizabeth Henstridge, Iain De Caestecker, producer Gary Brown and Marvel executive Megan Thomas Bradner. The impact of this week's season finale is discussed, fan questions are answered and game of S.H.I.E.L.D. charades is played.
I wish these were available to people outside of the United States. It's a real bummer seeing GIFs of moments between the cast and then trying to watch the video but not being able to because nobody outside of the US can watch it.
I love this show ! Im so glad it was a very long season. I was so sad when it ended . Cant wait for next season!!!
Love -A
I really liked these season. I can wait till the next season comes ! Im not lying I broke the table whan I new its coming next year.


text:
Published on Sunday, February 16 2014 08:18
Taylor Radio Headlines In The Tree House! Sat., Feb. 15, 7:30 pm
Spirit Hound Distillers, 4196 Ute Highway (66), 303-823-5696
Comida Food Truck will be serving their tasty eats & we will have a new Lover's Punch that will keep you warm from head to toe!
And always, on Thursdays we host Open Mic Night & Potluck starting at 7 p.m.
Login to read more: For Both Lovers & Haters
Published on Wednesday, January 15 2014 13:18
Roads Traveled With Linda L. Osmundson
My husband Bob and I flew to San Diego a day early for our scheduled Sea of Cortez cruise aboard the MS Statandam. Good thing. Denver's predicted snow storm blew in that night and blanketed DIA causing flight delays the next morning. We might have, as the saying goes, "Missed the boat!" That said, I never let any of the 557 crew
Login to read more: Traveling In Luxury – The First Day
Purchase A Subscription: Traveling In Luxury – The First Day
Published on Tuesday, October 22 2013 17:25
Few animals evoke Colorado's rugged and unforgiving mountains like the Rocky Mountain bighorn sheep. Yet the vertical terrain that keeps sheep safe from predators also limits opportunities for Coloradans to view and appreciate Colorado's state animal. A happy exception for wildlife watchers is Georgetown, where the Town of Georgetown, the Georgetown Trust and Gateway Visitor Center, and Colorado Parks and Wildlife (CPW) are finalizing preparations for the 8th Annual Georgetown Bighorn Sheep Festival. The festival is timed to coincide with
Login to read more: Georgetown Bighorn Sheep Festival Promises Fall Fun
Purchase A Subscription: Georgetown Bighorn Sheep Festival Promises Fall Fun
Published on Wednesday, January 15 2014 12:40
The Library is offering a new community LEGO club to explore creative possibilities with LEGOs. A weekly challenge will be offered as well as opportunity to simply play and create with LEGOs
The club will meet on Wednesdays, 3:30 - 5 pm at the Walter Self Center.
Login to read more: New Library Program - Lego Club
Published on Thursday, September 26 2013 11:06
By Lyons Bluesologist, David McIntyre
Not to state the obvious, but what a mess. I am one of the lucky ones living on higher ground in Lyons. There are so many friends and peers in Lyons in very bad shape it continues to tug at my heart.
Login to read more: Living In The Aftermath of an 500 year flood-Lyons Strong
Purchase A Subscription: Living In The Aftermath of an 500 year flood-Lyons Strong
Published on Thursday, October 24 2013 07:56
Barry Jon Kelly, better known to his Lyons community as "Bearcat," passed away on Thursday, October 17, at Longmont United Hospital, surrounded by family and friends. He was 66 years young and will be missed by all.
Login to read more: Barry Jon Kelly, "Bearcat"
Published on Thursday, July 04 2013 04:54
Editor's Note: Lyons resident Kelly Yelverton recently graduated from college in Washington state. To celebrate her accomplishment, she and a friend have decided to paddle their sea kayaks on a 1200-mile journey through the Inside Passage to Alaska. She will be sending written updates and photos of her adventure throughout the summer.
Paddling is all about rhythm.
Login to read more: Paddling To Alaska -III


text:
"The Club" is an online newsletter for all student organizations. Each month we will feature student organizations, advisors, and leaders, helpful tips for running your organization, and upcoming events and opportunities. This is a great place to showcase your group's achievements and let others know how they can get involved, as well as learn about what other orgs have to offer.
Got something you'd like to share- upcoming events, outstanding advisors/members- or topics you'd like to learn more about? Email Ali Feris at email@example.com, and we'll include it in upcoming issues.
Click each link to view "The Club"