text:
I love 80's camp probably more than anyone you'll ever meet. Uh, hello, Labyrinth? Clue? THE WITCHES?! (In fairness, The Witches came out in 1990, but it's close enough.)
Growing up, this was my favorite version of Snow White. I could never remember the actual title, though, and thus it's taken me THIS LONG to find it! But, boy howdy. There's songs, a beautiful princess, and a crazy ass queen. Disney movie this is not. (Although it's not as scary as the Grimm Brothers' Snow White: A Tale of Horror, which is now up on Hulu!)
Look at this evil woman. Have you ever seen such fantastically insane headwear? Including that last piece of monstrosity? I bet not. Throughout the movie, she makes a ton of costume changes and goes through a bunch of disguises to try and trick Snow White.
Yeah, that's right. She's dressed like a geisha. It makes more sense if you just watch it.
Anyways, the whole Snow White movie is on Youtube, which is amazing, as well as the Cannon Movie Tales versions of Rumpelstiltskin, The Frog Prince, Sleeping Beauty, etc. Go ahead and sit through 'em. You can thank me later.
One last look at this bia.


text:
Most kids can relate to the irritating routine of leaving a 7 or 8-hour school day, only to arrive home and be expected to do even more work. Is it really that effective in helping them learn?
One teacher doesn't seem to think so. In this now viral image originally posted to Facebook and then reposted on Reddit, a note sent home to parents says the following:
After much research this summer, I am trying something new. Homework will only consist of work that your student did not finish during the school day. There will be no formally assigned homework this year.
Research had been unable to prove that homework improves student performance, Rather, I ask that you spend your evenings doing things that are proven to correlate with student success. Eating dinner as a family, read together, play outside, and get your child to bed early.
I'd imagine most of this teacher's students are on board with this experiment. I know I would be.

subset: commoncrawl


text:
The musings of a metaprogrammer and his love of IL, and all things written on the Common Language Runtime.
Friday, February 1, 2008
The Model, View, and (Virtual) Presenter Pattern
One of the greatest weaknesses of the MVP/MVC pattern is that although the the model is completely separated from the view (and vice-versa), the view in the MVP pattern has to have a concrete dependency on its corresponding Presenter in order to function. At first, there doesn't seem to be a way to completely isolate all three components of the MVP pattern from each other, given that the view has to have a reference to a concrete presenter. The presenter, on the other hand, knows nothing about the concrete view, other than the IView interface that is implemented by the view itself; it's a one way dependency, and yet, something just doesn't 'feel' right here...
The Epiphany
...and then that's when the questions started to hit me: Does the presenter even have to be a concrete presenter at all? Is it possible to replace a concrete presenter with an interface type, and what would that interface look like? Are all presenters the same, or do they just all represent some sort of abstract concept that can't be centralized into a single common class?
My proposal for changing the MVP pattern is this: What if we convert the concept of the presenter from a concrete class to an abstract metaclass? If we change the presenter from a concrete class to an abstract implementation of a concept, we can effectively eliminate the dependency between all three parts of the MVP triad. It might sound complex, but the implementation is actually quite simple. In this variant of the MVP pattern, we can completely eliminate the view's dependency on a concrete presenter by converting the concrete presenter dependency into a collection of interfaces that the view requires in order to function.
A Quixotic Attempt
A naive approach would be to try to find a common interface to be implemented by presenters, but this poses a problem--no two presenters will ever be exactly alike. A presenter that will handle a list view won't always have the same interface as a presenter that handles a date field. In addition, there might be presenters which might hold some business or validation logic that other presenters might not necessarily share. In other words, we're dealing with a situation where each presenter interface allmust be heterogenous for each view type, and that makes it difficult to group all of the presenters into a single interface that could be used by each view type.
Dead End?
At first, it might seem like we have no choice but to make each presenter concrete and customize each one of them to fit their corresponding views--but what if we refactored each one of these concrete presenters into multiple interface dependencies for each view? If you think about it, a concrete presenter is nothing but a collection of different responsibilities assigned to a concrete interface. For example, a DatePresenter class might have a few methods that check if the date value presented in the view is valid. The same DatePresenter class also might have methods which can persist the date value to the database. The crux of the concrete presenter in the MVP pattern is that the date view relies on this same DatePresenter to control its behavior. There's a one-way separation between the view and the presenter, and there has to be a way to completely isolate the presenter from the view itself.
An Unnecessary Coupling
A view (for the most part) doesn't need a reference to a concrete presenter class as much as it needs a reference to the interfaces and responsibilities that each one of those interfaces represent. In fact, if I were to refactor a concrete presenter, extract each one of its interfaces, and have each one of those interfaces represent a responsibility that the target view requires, it almost seems like I've converted the concrete presenter into a de facto service container.
Each presenter responsibility corresponds to a service, and each service corresponds to an interface type. Since no two presenters are alike, one could even say that each presenter has a list of services that it offers to each view. So for me, the next logical question is this: If concrete presenters are nothing but de facto service containers, why not use a real service container (aka IoC container) and ditch the concrete dependency altogether?
If a concrete presenter is actually nothing but a degenerate IoC container in disguise, then I can take each one of the view types and replace their concrete presenter dependencies with a single dependency--a dependency on real IoC container by itself. What makes this interesting is that in this variant of the MVP pattern, the 'P' in the MVP pattern no longer exists as a concrete class. The view's concrete dependency on the presenter has been supplanted by interface dependencies supplied by an IoC container. Using this scheme, the view knows nothing about the actual presenter concrete class, and the presenter knows nothing about the concrete view class. As an added bonus, we can even separate the presenter from the concrete model by having the presenter rely on interfaces supplied by the model, and vice versa. The best part about all this is that (aside from the interface dependencies) all three parts of the MVP triad are completely isolated from one another. The only dependency that all three parts of the MV(P) pattern share is the IoC container itself, and since most IoC containers are easily configurable by design (namely LinFu), this dynamically gives us complete control over all the dependencies of a given application...
Note: So far, all of this is just theory, and I have to write it down somewhere before I forget it. I think this pattern can help quite a lot of people, and hopefully I can test it soon.
9 comments:
This means putting alot more code into your view though which complicates testing. Also since your view likely derives from some type of Form class, this means you have lots of repetitive code which could otherwise exist in presenter base class.ReplyDelete
I use the passive view MVP variant where the model is simply an interface which both the view and presenter must implement. The presenter is the only 'active' component and it can only communicate with the view via the model interface.
The presenters form a heirarchy which ultimately derive from a base presenter which is basically an IoC container with a few extra services and convenience methods.
So this method also gives the ability to use multiple (inherited) presenters for each view, or multiple views such as windows forms and asp.net view from a single presenter or heirarchy of presenters.
Hmmm...well, I knew this would take more than just a passing explanation, so hold that thought for a moment, and I'll go cook an example up :)ReplyDelete
Suffice to say, the approach that I'm describing doesn't add any more code into your views than the current dependencies they have on an existing presenter. The most relevant part about this approach is that from the View's perspective, the Presenter is nothing but a logical collection of presenter interfaces, and the service container is responsible for putting it all together. The details of how the presenters are organized are, in effect, abstracted away by the service container...
Anyway, this is really hard to explain without an example, so excuse me while I go off and make one up... :)
In my MVP pattern the presenter is the only active part. The view is as "humble" as possible and doesn't know the presenter. The view raises events and the presenter listens to them. The view never asks but is always asked by the presenter (through the IViewXYZ interface). The same is true for the Model. The model doesn't know any Presenter(s) but is always asked (for services) by the presenter and replies by raising events to which in turn the presenter listens. So in the end there is NO direct dependency between the 3 parts in the MVP triade. By the way: since I'm using Binsor (Windsor + BOO) to configure my IoC container every thing just "magically" happensReplyDelete
I'm definitely going to have to take a look at the BOO language then. It seems interesting..ReplyDelete
yeah, BOO is great. By using Binsor (by Oren Eini!) I can completely abandon xml-type configuration (dislike the angle braket noise...) and even integrate logic into the config file.ReplyDelete
By the way: when can we expect to get our hands onto your AOP code?
You can take a look at LinFu.AOP here:
great, thanks!ReplyDelete
In the comments of my article about the Presentation Model on CodeProjec, people recommanded LinFu when I said I am looking for a light weight IoC container.ReplyDelete
I followed LinFu article to your blog and found your houghts on MVP which I agreed very much.
How do you think about the Presentation Model pattern?
The Presentation Model looks a lot like a self-contained implementation of the MVC pattern implemented within the view itself. What makes it interesting, however, is that you can implement most of its functionality by using LinFu's universal event handling to synchronize the presentation model and the view. Simple.IOC alone should make wiring everything together amazingly easy.ReplyDelete
In my opinion, the presentation model looks like a different way to organize the MVC/MVP pattern so that the behavior and the state are fused together into one class. I can't say that I agree with this approach, given that the whole point of the MVC/MVP pattern is to separate all three parts from each other so that all of the parts would be easier to maintain. The fusion of the model and behavior might make the code a little too complicated, and unless there's some quantifiable gains to be made from shifting from MVC to the Presentation model, I think I'll stick with the "tried and true" way, which is MVC/MVP. :)


text:
Reference: 694512 / 399 / 9070
pretty girl brand GO manufactured metal ANTIALLERGIC watch free nickel and Palladium plated.
the cuff as design stands for the brand by its entirety to snap.
takes several snap to adjust it easily
Crystal is MINERAL, quartz movement and is water resistant to 3 ATM
is accompanied by a beautiful golden box
Genre: Woman
Brand: Go Girl Only
Outlet price: 48,00€
Discount 30%
Quantity:1 product available
Shipping costs:
6,5 €


text:
GraphicRiver Theatre Icon Flat Line 8926029
Stock Vector \ Conceptual \ Technology \ Web
Chandelier \ Isolated \ Vector \ Curtain \ TragedyTheatre \ Theater \ Theatre
Stock Vector - Theatre Icon Flat Line 8926029 by macrovector @ GraphicRiver
Stock Vector \ Conceptual \ Technology \ Web
Theatre mask curtain chandelier icons set flat line isolated vector illustration. Editable EPS and Render in JPG format
Layered: No; Graphics Files Included: JPG Image, Vector EPS; Minimum Adobe CS Version: CS.
Vietnam Icons Set; Hands Payment Flat Icons Set; Casino Icons Set; Warehouse Icons Flat; Location Flat Icon Set ; Spa Icons Flat; Data Security Line Icons Set.
Keywords: acting, art, binoculars, bouquet, business, chandelier, collection, comedy, computer, drama, harp, icons, inkwell, internet, mask, mobile, opera, phone, pictogram, picture, play, scene, set, shoes, sign, symbol, theater, theatre, theatrical, tragedy.


text:
With more than 40 years experience of design, development and manufacture of bespoke All-Wheel-Drive trucks, Multidrive has pioneered the on and off-highway articulated truck and load ejector markets.
Using the innovative Multidrive Drive-Line technology, designed to drive and steer the trailer tandem axles of articulated vehicles, the Multidrive range of all-wheel-drive trucks and trailers, continue to prove themselves operationally, on some of the world's toughest terrain.
Whether it is a new or used vehicle, Multidrive is renown for its pioneering approach, and our aim is to deliver maximum functionality, operational flexibility and the right value-for-money solution, in order to help our customers solve rising costs and operational incapabilities.
Innovative, our team of engineers and designers can deliver practical and efficient vehicle solutions for use in the toughest all-terrain environments.


text:
Will be spending a weekend in Jackson in late September for a 10-year anniversary getaway (i.e. no kids!) Looking to have one extra-special-delicous-possibly-romantic dinner out. We've stayed in the area several times but always with kids. From searching the board the following look to be some possibilities for our special night out. Husband can be a bit picky so its good to have a good variety on the menu. We also tend to order seafood over, say, steak/chicken, as long as its fresh. Also prefer places that aren't "stuffy" (i.e. don't tell my hubs he has to wear a jacket at dinner). Don't mind a bit of a drive. Which of these would be the best of the best?
Inn at Thorn hill
Notchland Inn
Thompson House Eatery
1785 Inn
The Wentworth


text:
First Tutors helps you to find a home classical civilisation teacher in Hammersmith and across the UK. Private classical civilisation tuition is an excellent way to boost confidence as well as improving grades and doesn't have to be dull! Please use our service to search for Hammersmith classical civilisation tutors and select which best meets your needs.
First Tutors is the only place to discover through one search the most suitable Hammersmith classical civilisation tutors for your needs, helping you find a private Hammersmith classical civilisation tutor for any subject including GCSE English, A-Level Maths or even university Economics. We also help with language tuition, so if you want to learn French, take a Greek course or prepare yourself for German life, we can help - and all in Hammersmith! Our search will order classical civilisation Hammersmith tutors in your area according to their classical civilisation tuition charges and distance from you.
If you are a Hammersmith classical civilisation teacher wanting to offer your local classical civilisation tuition services in Hammersmith or anywhere else across the UK, please register with First Tutors or find out more about what we do here. Private classical civilisation tuition is a great way to re-affirm your classical civilisation knowledge while helping someone else, all in the Hammersmith area!


text:
This is our largest Caravan Cubby and very, very cool. Most adults can stand up in this one. Designed in the style of the classic Australian caravan from the 1940's and 50's.
Your children will have endless adventures traveling to new places and meeting new friends in this gorgeous Caravan Cubby.
Made with high tech aluminium sandwich panels, you get the best of both worlds, the cool vintage look with all of the benefits of durable modern materials. Our cubbies are seriously strong and durable.
Unlike most other cubbies our cubbies come pre painted, with a bench seat and vinyl flooring. All external hinges and screws are stainless steel so will not rust. These cubbies are seriously high quality.
Delivery can take up to 10 working days from the purchase date. Currently we are only delivering within Australia.
Delivery costs (Additional)
Capital cities Metro
Regional Victoria
Regional NSW
Regional Queensland
Regional Western Australia
Western Australia
Pick Up:
Pick up is only available from Melbourne. You will receive an email notification when your Cubby is available to be picked up. Please refer to product packaging dimensions to see if your vehicle is suitable.
Item location:
Mooroolbark, Victoria, Australia
Cubby House Dimensions:
Caravan Cubbies are simple to assemble and come with clear video instructions for easy DIY assembly. It will take approximately 4 to 5 hours with 2 people.
Return Policy:
In the unlikely event that you receive a product with a manufacturing defect and it is unable to be repaired, you can request a replacement for the damaged parts within 14 days.
Return policy details:
We will only except returns on manufacturing defects.


text:
Dinner Menu
Turkish cuisine is considerably more than fast food and kebabs. The chef definitely dispels this prejudice with an elegant medley of healthy and tasty small dishes full of Mediterranean flavors of olive, sesame, parsley, mint, coriander and pepper.
Download/print our dinner menu.
Brunch Menu
Mezè Saturday & Sunday brunches will delight you with friendly atmosphere and a full menu of our traditional Turkish breakfast with pastrami and beef sausages, savory omelets, chicken breast and sirloin steak sandwiches, brunch specials, waffles, salads and fresh fruits.
Download/print our brunch menu.
Tasting Menu
One of the best way to discover our new creations is to order our special Tasting Menu.
Choose five courses among our selection of mezès.
Download/print our tasting menu.
Party Menu (six or more)
For larger events, we've concocted a fixed-price menu offering a very generous sampling of our creations.
Download/print our party menu.
Dessert Menu
There's no time to enjoy hand-stirred full-spiced Turkish coffee and home-made Baklavas.
But try also our traditional oven-baked Kunefe or French-style Profiteroles.
Download/print our dessert menu.
Holiday Party Menu
Corporate events require a great amount of attention to detail and organization, whether on a large or small scale. Our team knows exactly what to do in order to impress your guests.Your coworkers and employees deserve a good time after all the hard work they put in day to day and you deserve that break as well–which is why we can take all the planning off of your hands ).
Contact us for your Holiday Parties.
Your Suggestions…
Please use our Guest Book to send us your requests, comments, complaints, and/or appreciations about Mezè food and wine selection. Your feedback is welcome.


text:
Gotta Catch 'Em All
This week the Central Canal played host to Pokemon hunters from all walks of life. People lined the sidewalks under bridges and visited us, a PokeStop, for perhaps the first time.
Let me briefly explain the game for some non-PokemonGo players. The basics: download the PokemonGo app to your smartphone; create your avatar; walk around your neighborhoods and towns to collect PokeBalls and other helpful tools at PokeStops – the stops are based on cultural institutions and the Historic Marker database; you're off! When a Pokemon is nearby, your phone will buzz and alert you to its presence. Turn on your alternate reality, so you can see the Pokemon as if its right here in our world. The more you catch the higher your play level. You can fight for control of Pokemon Gyms and evolve your Pokemon to make them stronger. Really, this could go on.
All this sounds crazy. And to some extent, it is. But it is fun. How about a Pokemon in 1816, attending the constitutional convention in Corydon? We've seen it. Or what about a Pokemon sitting on the counter while the women in 1948 talk about preserving their produce? Again, we have that.
We hope that even if you only come in for some PokeBalls or to find some Pokemon, that you stop and look around. Maybe you'll decide to come back after Pokemon mania has died down.
Which Pokemon have you found in our building? Tag us in your photos on Instagram (@indianahistory) and Twitter (@IndianaHistory)!
|Chelsea Sutton is communications coordinator at the Indiana Historical Society. She started drinking coffee at age 3 with her dad and always stays up too late reading.


text:
Arizona Diamondbacks vs. Colorado Rockies MLB Pick, Odds, Prediction - 8/31/14
Colorado Rockies (54-81) at Arizona Diamondbacks (56-79)
MLB Baseball: Sunday, August 31, 2014 at 4:10 pm (Chase Field)
Jorge De La Rosa (L) (13-9) (4.273) vs. Chase Anderson (R) (7-6) (3.899)
The Line: Arizona Diamondbacks -116 / Colorado Rockies +106 --- Over/Under: 8.5 See the Latest Odds
The Colorado Rockies and Arizona Diamondbacks will play a rubber game on Sunday afternoon.
The Colorado Rockies have split their last 10 games and are 27 games below a .500 record. The Rockies lack of offense has been killing them, as they've produced three or less runs in six straight games. The Rockies have lost 19 of their last 21 games when being held to three or fewer runs. Charlie Blackmon has an RBI in three straight games and Nolan Arenado has hit in eight of his last 10 games. The Colorado Rockies have an ERA of 4.95, which is dead last in the majors. Jorge De La Rosa gets the ball, and he's 13-9 with a 4.19 ERA and has 114 strikeouts in 154.2 innings. De La Rosa is 8-7 with a 2.83 ERA in 23 career games against the Diamondbacks.
USA TODAY Sports
The Arizona Diamondbacks have lost 10 of their last 13 games and are 23 games below a .500 record. The Diamondbacks pitching staff has been better as of late, allowing three or less runs in seven of their last nine games. Overall, the Arizona Diamondbacks have an ERA of 4.22, which is 25th in the majors, although they've won only five of their last 10 games when allowing three or fewer runs. Offensively, Aaron Hill has gotten on base in seven of his last 10 games and David Peralta has hit in eight of his last 10 games. Starting is Chase Anderson, who is 7-6 with a 3.90 ERA and has 81 strikeouts in 92.1 innings. Anderson is 2-0 with a 1.50 ERA in two career starts against the Rockies.
The Rockies are 0-5 in De La Rosas last 5 road starts and 13-4 in De La Rosas last 17 starts during game 3 of a series. The Diamondbacks are 5-1 in Andersons last 6 starts as a favorite and 1-4 in Andersons last 5 starts overall.
Both teams are terrible, but Anderson has had success this season, while De La Rosa hasn't won on the road in quite some time. Give me the home team for cheap.


text:
Today's blog post was written by Edward M. Richstone. Richstone is a retired school psychologist. He has written articles on a variety of topics for civic organizations and city newspapers.
Viewed at a distance, the birds blend into their surroundings. In public places like parks, the whitish forms are faintly recognizable from afar as commonly occurring pigeons or doves. On a beach, it is likely they are seagulls.
Passersby who are in a rush or in no mood to commune with nature will not think twice about this group of birds. Never mind that these particular creatures are not flitting around, not scrambling for food, and, stranger still, not taking off, startled, on whistling wings.
More attentive observers, however, might approach the birds and discover the reason for their odd stillness. They are not real birds at all, but rather porcelain figures! Each is decorated with a variety of words and pictures. Grounded birds carry custom-built designs on their backs; perched birds, on their bellies.
Like a messenger, each bird tells a story in its own way. We are drawn to a curious display of jumbled images, all in a Delft-like cobalt blue. Fragments of photos enliven content from snippets of handwritten and printed text. Images pertain either to military conflict or to civilian life during war or peacetime. War-related newspaper articles, photos of battles, and memoirs of veterans compete for space on each bird alongside love letters, recipes, and images of children. One of the sharpest of contrasts to be found is a likeness of the artist herself, holding her own toddler, juxtaposed with an image of an Iraqi mother and child caught in a bombing raid.
These lovely, yet unsettling creations of Christy Hengst were exhibited in her hometown of Santa Fe in the courtyard garden of the New Mexico Museum of Art (NMMA), as one of many "bird landings" in 2009. They were recently brought to my attention by NMMA's Librarian/Archivist/Webmaster, Rebecca Potance, when we were exploring subjects for my upcoming blog. Like some currently showcased artists at the museum, Ms. Hengst is well known for her ability to integrate art and viewing space, casting both in a fresh new light. The term, "installation art," is often applied to such projects in formal venues like museums and galleries. In more casual settings like parks and libraries, the label, "site-specific," is often used.


text:
Turbulence Trailer (2011)
01 December 2011 90 mins
When a failing music venue staffed by fools looks set to close, manager Keith launches a last ditch Battle of the Bands competition. More by accident than by design, musical genius is unleashed by a rapping transvestite, some precocious indie rockers and a barmaid with a golden voice, who together try to save the world they love.
Watch the official Turbulence 2011 trailer in HD below or find more Turbulence videos on Vidimovie.


text:
Cute valentine day special love sms for sweetheart
I've never imagined that there can be this day.
A day that love will find its way.
Out of my heart and into your soul.
These feelings I have are beyond my control.
Tags Cute Day for love sms special sweetheart Valentine
On this valentines day send beautiful Valentines day SMS to your husband to show your feelings ...


text:
My wife and I gave birth to our first child back in February and one of the things so was most deprived of during her pregnancy was sushi. I'd like to treat her to an exceptional sushi meal now that she's able to eat this again.
I'm wondering what some good options may be for a good sushi meal. It doesn't have to be uber-expensive, tho I'm open to haunts from all ends of the price spectrum.
During my college days, which weren't so long ago, I would tend to eat at places like Sushi Zen on St. Mark's or Sushi Lounge on the corner of St. Mark's & Avenue A - can't beat their 50% off specials, especially a student and I never got sick. I'll also grab sushi from Whole Foods and most recently, used an offer through Belly to get a free California Roll at Monster Sushi in Chelsea. I know California Rolls aren't anywhere near the upper eschelon of sushi, but the California Roll I had there was probably the best I'd ever had. The rice was warm and the avocado and crab meat were very fresh, while the seaweed had a nice texture. I'd also get sushi from The Lobster Place in the Chelsea Market which I always liked. I don't know whether this is true or not, but the guys working there told me that The Lobster Place and Morimoto both got their fish from the same place, with Morimoto's being much more expensive.
Ok, I'm getting a little off topic here, but in terms of more upscale sushi, I have eaten at Morimoto with my parents and to date, I'd consider that the best I've had.
So, now that you all know what I've had, perhaps some suggestions can be made. I have looked up some places on Yelp, but wanted to reach out to the Chowhound community as well.


text:
5 Reasons You Need to Watch State Champs' Music Video for "Losing Myself"
Months after filming, the long anticipation for State Champs' "Losing Myself" music video finally premiered on MTV's Snapchat Discover channel. If you were contemplating watching it, here are five reasons that will make up your mind.
5. Kyle Thrash is a film directing God.
Seriously, this man is a genius and continues to show his talents working with groups such as Modern Baseball, Real Friends, Coin, and many other popular bands who are trying to snag him to direct their videos. If you're not sold on this idea just from watching the "Losing Myself" video, check out his documentary style video for Microwave's "Vomit".
4. The video is hilarious for State Champs fans and for commoners.
The premise of the video is a cheesy commercial promoting the waterpark, so expect bad puns and exaggerated acting.
3. The majority of the actors are State Champs fans.
Right before the video was shot, the band posted on their social media that they needed extras from around the area. Lucky for us, the video was filmed at Runaway Rapids Waterpark in North Jersey, which is pretty close to Philly. If you're from Philly, Jersey, or New York, you will probably spot some of your pop-punk pals in the video, including me!
2. "Losing Myself" is a jam.
On State Champs' most recent album, Around the World and Back, "Losing Myself" is one of the best songs on the LP and a fan favorite live. If you're not there for the video, the song is a reason you'll keep coming back.
No joke this guy walked around set all day in only a speedo. Watch the video and you'll understand.


text:
BBTC has been a part of the Fairtrade movement since 1995. All of its Tea plantations have adopted the Fairtrade standards and the first Joint Body Fairtrade Foundation was established in 1995.
Presently each of BBTC's plantation groups in India – Mudis, Singampatti, Dunsandle-,have their own Fairtrade Foundation, represented by its work force.
BBTC extends a number of facilities to its work force, such as housing, medical care, maternity and sickness benefits, crèche facilities, schooling, uniforms and many more. Over and above this, the Fairtrade premium money accrued from sales of Fairtrade labelled teas have, over the last 3 decades, been used for activities that benefit the worker and the community. Several initiatives encompassing Social Schemes have been promoted such as Insurance Policies, Computer center, National Savings Certificate, funeral fund and Specialised medical treatment have been extended to our workers.
In line with our concern for the environment, smokeless stoves, pressure cookers, hot boxes and solar lanterns have been provided, in order to conserve fuel and reduce pollution.
With a view to equipping the next generation to spread their wings, funds are utilized to support primary and higher education through the distribution of free notebooks to children and scholarships to all students for higher education.
BBTC's Fairtrade labeled teas are now available in convenient Modern packaging in the Indian market.


text:
- 29 years old
- Date of birth: Oct 8, 1984
- Date of passing: May 26, 2014
|Let the memory of danielle be with us forever
"MY PRAYERS ARE WITH YOU TINA,I HAD NO IDEA THIS HAPPENED AND WHAT YOU HAVE BEEN THROUGH! This is a beautiful tribute! Prayers ,Iam so sorry,"
"Oh man, where do I start?! We have so many memories. Hoyhoyhoy ... :) we have been thru the ups, the downs , the good & the bad... When you left a piece of my heart went with you .. You were the best mother, I remember I'd always tell you that you inspired me to do better. I love you Danielle !"
"So I actually thought of this the other day (because I had on them jeans) ...
I remember when you & heather used to make fun of me every time I had on this one pair of jeans cause I lost so much weight & they was big on me & I was to cheap to buy new ones! But you guys would always so it looked like I shit my self! Lol so one day before you came over I put them jeans on & rolled up t-shirts & stuffed them down my pant so it looked like I had poop in them! Lol I walked past you & you couldn't belive I did that! & couldn't stop laughing!!!! Lol we all miss you so much! Glad your dad gets to see his daughter again!!! & if you see my dad up there tell him I miss & love him & that his grandson looks just like him!!! Love youuu! Rip Dani #neverforgotten"
"Dani not one day has passed without you on my mind and in my heart. You will always be my Big Sister, Best Friend, and Inspiration. Words cant describe how much I love and miss you, and although there are days that it just doesnt seem worth it without you and Daddy here, I know you guys get to be together again, happy and pain free. Your daughters have SO much of you inside of them, so beautiful and kind hearted just like you were...I tell them all the time how much you loved them and how proud you are looking down. Id give anything just to be able to talk to you one last time, there are so many questions and things i worry about...I can still hear your voice perfectly in my head! I love you to the moon, the stars, and all the way back Dani!! Give Dad a hug for me ok?! I hope you DANCING IN THE SKY <3"
"Angelbaby.......there are no words that can express how much lindsey and I love and miss you!! You'd be so proud of lindsey and noella honey. You shine thru both of them in so many ways. I know your daddy is now sitting right along side you , right where he wanted to be, please tell him I love him so very much, and that lindsey and I and our home, will be just fine. Until we can all be together again sweetie, momma loves you with all my heart and soul. Keep on shinning bright like a diamond in the sky with daddy to let us know your watching over us <3"
to visit this memorial:
Subscribe to receive e-mail notifications when others contribute to this memorial.
Have a suggestion for us?


text:
1000 Comic Book Collection Lot Marvel DC Mixed NEW
Sold for:
Start Free Trial
or Sign In to see what it's worth.
- Sold Date:
- Source: eBay
All comics are new, however a few have old store stickers affixed to the back (most do not). None are bagged or boarded.
Item Info
Up for auction are 1000 mixed comics. These are overstock comics originally sold by us - Newbury Comics - in our brick and mortar stores. The collection breaks down to 400 Marvel comics, 400 DC comics, and 200 smaller publisher (Dark Horse, Dynamite, Aspen, Top Cow, Abstract Studio, IDW, After Shock, etc.). As you can see in some of the pictures below, t are a fair amount of duplicates included in the lot. These comics span the last two years, although the majority are from this past year. Unfortunately we cannot take requests to search for specific comics in this lot, sorry.
Domestic (UPS Ground): Please ask for a shipping quote. We estimate it will run between $60 - $120 depending on location.
International: Sorry, because of the weight of this lot we are not shipping this item internationally.
Please contact us with any questions before bidding. Check our feeedback and bid with confidence! Fast shipping!
Created by eBay Blackthorne ver. 184.108.40.206


text:
Brea Place applicant, Hines, has informed the City they are continuing to work
on the plans to address the direction received from the Planning Commission and
the input received from the community. Although they felt they could provide
all the information needed to make the May 23 Planning
Commission meeting, they need additional time to further refine their
plans. When an updated Brea Place plan is submitted we
will let you know. Thank you for your interest in the City of Brea. If
you have any questions you can contact the Planning Division at (714) 990- 7674.


text:
|Publication number
|Publication type
|Application number
|Publication date
|May 9, 1995
|Filing date
|Apr 5, 1993
|Priority date
|Apr 5, 1993
|Fee status
|Also published as
|Publication number
|Andrew G. Heninger, Russell T. Nakano
|Original Assignee
|Taligent, Inc.
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (3), Non-Patent Citations (4), Referenced by (42), Classifications (8), Legal Events (6)
|External Links: USPTO, USPTO Assignment, Espacenet
This application is related to the following U.S. patent applications: (i) the application entitled "Object Oriented Framework System," by Debra L. Orton, David B. Goldsmith, Christopher P. Moeller, and Andrew G. Heninger, filed Dec. 23, 1992, and assigned to Taligent, Inc., the disclosure of which is hereby incorporated by reference; and (ii) the application entitled "Object Oriented Operating System," by Robert Dickinson, filed Jan. 22, 1993, and assigned to Taligent, Inc., the disclosure of which is hereby incorporated by reference.
1. Field of the Invention
This invention generally relates to the loading of shared libraries and more particularly, to the mapping of shared library names with physical shared library locations by the employment of search objects.
2. Background of the Invention
A library represents a collection of data and code stored at a certain location. A library maintains older data items as well as receives new data items. Thus, the number of data items can constantly increase. In addition, existing data items are dynamic and subject to change. Multiple versions of a library may also exist in a computer system.
A library may also be shared. That is, a library may be used concurrently by several applications or processes. Such a library is referred to as a "shared library".
When an application or program is launched, it is necessary to "load" all shared libraries that are necessary to implement the program. A program generally refers to the name of a shared library. Consequently, the shared library referred to within the program, as well as all other shared libraries it depends upon, must be located before loading can occur.
Current computer systems are unable to effectively ascertain the locations of requisite shared libraries from the name referred to by a program. This follows since current computer systems are unable to undertake complex searches for shared library locations. Furthermore, current computer systems are unable to distinguish between versions and copies of shared libraries. Still further, current computer systems are unable to appropriately compensate for the compatibility attributes of different shared libraries. Thus, the prior art that the applicant is aware of provides a system that is insufficiently complex and effective for loading shared libraries.
The present invention overcomes the aforementioned deficiencies of the prior art by providing a method and apparatus that effectively searches for and locates physical shared library locations from shared library names.
The present invention operates by initially determining the names of the shared libraries that are necessary to a program that has been launched. Thereafter, search objects are employed to search for and locate a physical location corresponding to each of the determined names. Multiple search objects can also be formulated within a team. A team refers to an address space and a plurality of threads of execution executing within the address space. This allows for physical locations to be located by employing a collection of search objects in a selected sequential order. For instance, search objects can be consecutively employed in the order in which they were added to the team.
Once the search objects attains an appropriate physical location corresponding to each of the shared library names, each of the shared library names is mapped to its corresponding physical location. Thereafter, the contents of the attained physical shared library locations can be loaded for purposes of the program.
The foregoing and other aspects and advantages of the present invention will be better understood from the following detailed description of the preferred embodiment of the invention with reference to the accompanying drawings, in which:
FIG. 1 is a block diagram of a computer system in accordance with the present invention;
FIG. 2 illustrates a flow chart depicting the logic flow in accordance with the present invention;
FIG. 3 illustrates a class inheritance hierarchy for search objects in accordance with the present invention;
FIG. 4 illustrates a flow chart depicting the search for a named shared library, as followed by a search object, in accordance with the present invention; and
FIG. 5 illustrates an example of shared libraries having varying compatibility numbers, pursuant to an example, in accordance with the present invention.
A representative hardware environment is depicted in FIG. 1, which illustrates a suitable hardware configuration of a workstation 40 in accordance with the present invention. The workstation 40 has a central processing unit 10, such as a conventional microprocessor, and a number of other units interconnected via a system bus 12. The illustrated workstation 40 shown in FIG. 1 includes a Random Access Memory 14 (RAM), a Read Only Memory 16 (ROM), an I/O adapter 18 for connecting peripheral devices such as disk units to the bus 12, a user interface adapter 22 for connecting a keyboard 24, a mouse 26, a speaker 28, a microphone 32, and/or other user interface devices such as a touch screen device (not shown) to the bus 12. The workstation 40 may also have a communications adapter 34 for connecting the workstation 40 to a data processing network 30 and a display adapter 36 connecting the bus 12 to a display device 38.
The present invention preferably operates within an object oriented operating system as described by U.S. patent applications entitled "Object Oriented Framework System," filed Dec. 23, 1992, and "Object Oriented Operating System," filed Jan. 22, 1993. Both such patent applications having been assigned to Taligent, Inc.
The present invention comprises a framework, to be used in conjunction with a computer system at run time of a program, for loading and linking shared libraries with one another. Such framework provides a manner by which a shared library name, as referred to by a program, is linked with the shared libraries from which it depends upon the launching of the program.
Every shared library is identified by a specified name and is located within a designated name space. A shared library is dependent upon, or necessarily linked with, any number of other shared libraries. A shared library load module, corresponding to a particular shared library, stores: (i) the specified name of a particular shared library; and (ii) the specified names of shared libraries from which the particular shared library depends.
Whenever a particular shared library is loaded pursuant to a program, all shared libraries which the particular shared library depends upon must also be loaded. Accordingly, a shared library load module is resorted to in order to ascertain the names of shared libraries to be loaded pursuant to a program. Since the shared library name space is global, each shared library should be given an uncommon name in order to insure that the appropriate shared libraries are linked together. The present invention operates upon the premise that each shared library has such a unique name.
For a program to execute upon launching, a shared library must be linked with other shared libraries. This linking process takes place once the appropriate shared libraries are loaded.
A mechanism, referred to as a loader, initially determines the names of the shared libraries that must be loaded. The loader must thereafter be advised of the physical shared libraries which correspond to the determined shared library names. Locations of physical shared libraries typically include a computer disk, RAM ("random access memory") and ROM ("read only memory"). The loader does not, however, determine where the libraries are located. Instead, the loader uses search objects to determine the location of shared libraries. Search objects map library names to physical shared library locations. The resulting mapping information then enables the loader to load the appropriate shared libraries.
Referring to FIG. 2, a flow chart describing the steps of linking one shared library with another is illustrated. The launching of a program typically requires shared libraries to be loaded and linked with one another. This is indicated by box 202. Thereafter, a determination is made of the names of shared libraries that are necessary to the launched program. This is indicated by box 204. Shared library names that are necessary to a program include those names referred to by a program as well as shared libraries from which the launched program or referenced shared library are dependent upon. Such names are ascertained from the aforementioned shared library load module.
Once the names of the shared libraries are ascertained, search objects are employed to locate the corresponding physical shared library locations that correspond to the names. This is indicated by box 206. Class TLibrarySearcher, as further described below, is a derived class that defines the interface for employed search objects. Given the ascertained names of the shared libraries, a search object attains the physical shared libraries by following the search instructions of the search object.
Attainment of the corresponding physical shared library locations results in mapping as indicated by box 208. Mapping involves designating the shared library names with the attained physical shared library locations. Thereafter, the attained physical shared libraries are loaded and linked with one another. This is indicated by reference numerals 210 and 212, respectively.
Object-orientation is a system technique that consists of a number of objects. Each object, which typically corresponds to a real life entity, offers a number of operations and a state which remembers the state of those operations. For instance, a person object would possess information corresponding to a person such as age, address, telephone number, occupation and so on. Operations are then created to access or affect this information. In addition, operations can be created to perform behavior that does not affect any internal information such as walking.
A class is a definition, a template or a mold to enable the creation of new objects. A class is thus a description of the common characteristics of several objects. The objects comprising a certain class have this template in common. The characteristics of a class may be inherited into a further class referred to as a subclass. A subclass thus inherits the information structure and behavior of a class. Further information and behavior may then be added to the subclass.
Classes lying below a class in the inheritance hierarchy are called descendants of the class. Classes lying above are called ancestors. The usage of the terms descendants and subclasses is thus interchangeable.
Referring to FIG. 3, a hierarchy of search object classes is illustrated. Class MCollectible 300 represents the base class of all search objects. That is, class MCollectible 300 is the class from which all other classes descend from. The two primary descendants of class MCollectible 300 are class TLibrarySearcher 302 and class TTeamHandle 308. Class TLibrarySearcher 302 has two further descendants, class TStandardLibrarySearcher and class TWorkspaceSearcher, as indicated by reference numerals 304 and 306, respectively.
Class TStandardLibrarySearcher 304 defines a default search object which searches for physical shared libraries in a single directory. Since more than one directory is usually necessary to be searched, class TStandardLibrarySearcher 304 is typically incapable of locating all physical shared libraries in a system. Further, class TStandardLibrarySearcher 304 objects do not consider compatibility when faced with multiple copies of a library.
Accordingly, class TWorkspaceSearcher 306 is provided to locate physical shared libraries in lieu of a search object created pursuant to class TStandardLibrarySearcher 304. Class TWorkspaceSearcher 306 permits search objects to be formed from a workstation. Search objects, defined by class TWorkspaceSearcher 306, are capable of searching in more than one directory and are also capable of considering compatibility when necessary.
Objects derived from class TLibrarySearcher 302 can implement an arbitrarily complex search. For instance, such objects can: (i) consult file attributes; (ii) maintain a dictionary or database of libraries; and, (iii) interact with library installation procedures. A subclass of TLibrarySearcher 302, namely class TStandardLibrarySearcher 304 and class TWorkspaceSearcher 306, may also be created so as to check with the system if some version of a shared library is already in use.
Referring to FIG. 4, a flow chart depicting the logic flow of a search for a shared library is illustrated. Initially, a search object is presented with the name of a shared library. From this named shared library that is presented, a search for the location of the shared library is undertaken. This is indicated by reference numeral 400.
A search for the named library will reveal either: (i) multiple copies of the shared libraries; (ii) no location that corresponds to the shared library name; or (iii) one copy of the shared library. These outcomes are indicated by boxes having reference numerals 402, 410, and 420, respectively.
If a shared library is not found, the search object will return "NIL" as indicated by box 412. If only one copy of the shared library is found, that shared library will be returned to the loader as indicated by box 422.
If multiple copies of the shared library are found, however, further analysis is necessary before a copy can be returned. Such further analysis originally commences with a determination of whether the compatibility numbers of the shared library copies can be ascertained. This is indicated by box 404. If the compatibility numbers of the shared library copies can be ascertained, the shared library copy with the highest compatibility number will then be returned. This is indicated by box 406.
If the compatibility number of the shared library copies cannot be ascertained, a further method of selection is necessary. Such further method of selection can include a determination of whether any copies of the shared library are currently loaded elsewhere. Ultimately, the further method should return a selected copy of the shared library as indicated by box 416.
Returned copies of shared libraries, as denoted by boxes 406,416, and 422, are mapped with the shared library name. This is indicated by box 430. Thereafter, the mapped information is disclosed to the loader.
Compatibility is a file system property of shared libraries which are files. Compatibility is measured by a compatibility number wherein a copy of a shared library with the highest compatibility number is likely to be compatible with other dependent shared libraries. Accordingly, a search object returns the copy of a shared library with the highest compatibility number. A search object is always able to do so when a shared library is a file since files always permit access to compatibility numbers. Shared libraries that are not files, however, may not allow access to the compatibility number of a copy. In such a case, the search object will not be able to ascertain the copy with the highest degree of compatibility.
Shared libraries are consecutively loaded where two conditions are met. First, a search object returns the copy with the highest compatibility number. Second, if among the locations where a search object has searched, a consistent set of shared libraries exist that will load.
Referring to FIG. 5, an illustrative example of three libraries with different compatibility numbers is illustrated. Assume three libraries named A, B and C are being loaded. Library A, with compatibility number 1 ("library (A,1)" as indicated by reference numeral 502), depends on library B with compatibility number 2 ("library (B,2)" as indicated by reference numeral 504) and library C with compatibility number 2 ("library (C,2)" as indicated by reference numeral 506). Library B with a compatibility number of 3 ("library (B,3)" as indicated by reference numeral 510) depends on library C with compatibility number 3 ("library (C,3)" as indicated by reference numeral 508). Library (B,2) 504 depends on library (C,2) 506. Library (C,2) 506 and library (C,3) 508 do not, however, depend on any other libraries.
When the loader attempts to load library (A,1) 502, it will also have to load a copy of the libraries which library (A,1) 502 is dependent upon. Loaded copies must possess a compatibility number that is equal to or greater than the compatibility number of the dependent shared library. Accordingly, a loader can load: (i) library (B,2) 504 or library (B,3)510; and (ii) library (C,2) 506 and library (C,3) 508. Library (B,3) 510 must, however, be loaded with library (C,3) 508. Library (C,2) 506 will not suffice to satisfy the dependency of library (B,3) 510.
A search object, or plurality of search objects, will locate library (A,1) 502, library (B,2) 504, library (B,3) 510, library (C,2) 506, and library (C,3) 508. If a search object returns the copy with the greatest compatibility number, it will return library (A, 1) 502, library (B,3) 510, and library (C,3) 508. These three libraries will then load since all dependencies are fulfilled.
If a search object did not return the aforementioned three libraries, loading may not have been possible. For instance, a search object could return library (A,1) 502, library (B,3)510, and library (C,2) 506. In such an instance, the libraries would not load because the dependency of library (B,3) 510 upon library (C,3) 508 is not satisfied. In order to avoid this situation, a search object must return the copy of a library with the highest compatibility number. Of course, this can only be accomplished if the search object can access the compatibility number of a shared library.
Search objects are placed within a team. Each team has a list of one or more search objects which the loader then consults when loading a shared library associated with the team. There is no limit to the number of search objects that can be contained within a team. When a new team is created, a collection of search objects may be passed into a constructor object, as formed within class TTeamHandle (as disclosed within FIG. 3 by reference numeral 308). The collection of search objects is then added to the new team.
Two types of search objects, derived from class TLibrarySearcher 302, exist within a team. First, search objects are added to all teams that are created. These are referred to as "system search objects". Second, search objects can be created that are only added to specified teams. These are referred to as team specific objects. When a team is accessed, both the team specific search objects and the system search objects are streamed into the address space of the team. Hence, TLibrarySearcher 302 subclasses TStandardLibrarySearcher 304 and TWorkspaceSearcher 306, must have streaming operators.
The loader employs the collection of search objects within a team to map library names to library locations or modules. Thereafter, the shared libraries are placed within the address space of the team. The loader preferably employs the search objects in "LIFO order" ("last in, first out"). That is, the search objects are employed in the order with which they were added to the team. Accordingly, the most recently added search object is first employed. Search objects are consecutively employed in LIFO order until a shared library is located. If none of the search objects can locate the shared library, the loader raises an exception since it cannot proceed. In response to the exception, search objects may be added to a team after the team is accessed. However, subsequently added search objects can only locate shared libraries that will be dynamically loaded into the address space of the team after the addition of search objects.
Preferably, the loader employs search objects in LIFO order since it is assumed that the more recently added search objects are intended to override existing search objects. Thus, the collection of team search objects are always employed before any default search object as defined from class TStandardLibrarySearcher 304. For example, there may be two versions of shared library X in the system. A default search object will map library X to a first version of library X. A search object defined by class TWorkspaceSearcher 306 would, however, map to a second version of library X. If the workspace defined search object is employed before the default search object, library X will map to the second version of library X. Accordingly, the correct version of library X will be loaded into the address space of the team since the workspace defined search object is consulted before the system search object.
Alternatively, the same effect is achieved by specifying a temporary team search object. A temporary search object can be specified in a call to "TLibrary::LoadLibrary for library X." The team thus uses the temporary search object for the duration of the call so as to load the proper version of library X. Temporary search objects are especially useful after a team is launched. This is so since temporary search objects do not add to the collection of team search objects. In contrast, the addition of a search object to a team adversely affects the usage of the team with respect to other shared libraries. Thus, a temporary library search object should be utilized when dynamically loading libraries into a running team.
A system search object, which is associated with all teams, is employed by a loader only after all team specific search objects are employed. Thus, search objects are employed in the following order: (i) team specific search objects; (ii) system search objects; and (iii) default search objects. Furthermore, since the present invention employs system objects in LIFO order, an added system search objects only affects the loading of those shared libraries that are created after it was added to the system.
A search object may be added for application with respect to either all teams on a system or a particular team. If a system search object is added for application with respect to all teams (by invoking "TLibrarySearcher::AddSystemSearcher"), the system object will be applied to all subsequently created teams. If, however, a search object is added for application with respect to a team (by the invocation of "TTeamHandle::AddLibrarySearcher"), the newly created search object will be applied only to library searchs by that team.
Preferably, search objects are not permitted to be removed once added to a team. This being so whether the added search object is a team specified search object or a system search object. This restriction follows since a search object is a global resource that is shared by all tasks of a team. Permitting removal of a team search object with respect to one task would adversely affect another task that is dependent upon the search object. For instance, suppose two independent tasks ("task 1" and "task 2") on the same team have the same added search object. In the event that the search object is removed from task 1, task 2 will still assume that the search object is in place. Thus, both tasks should retain an identical list of search objects. Preferably, temporary search objects should be utilized when a search object need only be used with respect to a certain task so as to not require the search object to be added to a team.
The present invention also undertakes an analysis to determine if a search object, that is sought to be added to a team, already exists within the team. If a search object is added to a team where a duplicate of the search objects already resides, the addition of the second copy of the search object will not take place. The duplicate search object already residing within the team is, however, moved to the end of the listing of team library search objects. This follows since search objects at the end of a team's list of search objects are first employed by the team.
The present invention analyzes the search object type to discover duplicate search objects. For instance, the C++ programming language undertakes a comparison through the exercise of an "Is Equal" method. Hence, all TLibrarySearcher 302 subclasses must override the IsEqual method or an equivalent thereof.
A subclass of TLibrarySearcher 302 can be contained within a shared library. However, in order for a loader to find a given shared library, the given library must not contain the TLibrarySearcher 302 subclass necessary to find it. Thus, a TLibrarySearcher 302 subclass must be in a location external to a shared library which must be searched by the TLibrarySearcher 302 subclass. In other words, a shared library which contains a TLibrarySearcher 302 subclass must be in a location place where it can be found without relying on the TLibrarySearcher 302 subclass it contains to locate it.
One way to insure that the loader can find a given shared library, that contains a TLibrarySearcher 302 subclass, is to put the given shared library where a default system search object can locate it. Class TStandardLibrarySearcher 304, which defines the default search object and is associated with every team, can always locate a given shared library. A newly created team can thus rely only on a default system search object until workspace search object, as defined by class TWorkspaceSearcher 306, is added to the team. Whenever a search object is added to a team, the team must load the shared library that contains the search object. This is accomplished by only using system library search objects and team specific search objects, if any, that already have been added to the team.
Preferably, only one copy of a shared library is loaded into the address space of a team. If the loader thus encounters a given shared library more than once when dealing with a single team, it will assume that the currently loaded shared library is correct. Accordingly, the loader will not even employ a search object to locate the duplicate library. If the collection of search objects of a team are modified and "LoadLibrary" is invoked to load a library that is already in the address space of the team, the modified team would return a different version of the library. Thus, the invocation of LoadLibrary will not have the desired effect since the old version of the library will remain in the address space of the team.
Different teams resident on the same workstation may use different copies of the same shared library. Teams which use different copies of the same shared library may not, however, share objects of another team by means of shared memory even though the object class is defined in the shared library. Rather, a given team is limited to the use of those objects associated with the given team. Although teams using different versions of a shared library cannot share objects with one another, teams are permitted to stream objects whose classes are defined in the shared library to each other.
An embodiment of the present invention, developed by the inventor, is provided in the appendix to this application. This is done in order to clarify the detailed logic of the present invention. Critical elements of each portion of the embodiment are also further explained.
__________________________________________________________________________APPENDIX: PREFERRED EMBODIMENT OF THE PRESENTINVENTIONSOURCE CODE:__________________________________________________________________________//Class TLibrarySearcher derived from base class MCollectibleclass TLibrarySearcher : public MCollectible.... public .sub.-- TLibrarySearcher();virtual TMappableDataContainer *CreateContainerAndFindLibrary(constTText&LibraryName,constCompatibilityNumber desiredRelease) =0;virtual Boolean IsEqual(const MCollectible *) const =0;//the following public methods are for use only by the workspace.static voidAddSystemLibrarySearcher(TLibrarySearcher &);static TIterator *CreateSystemLibrarySearcherIterator(); protected: TLibrarySearcher(); TLibrarySearcher(const TLibrarySearcher&);TLibrarySearcher& operator=(const TLibrary Searcher &);virtual TStream& operator>>=(TStream& toWhere) const;virtual TStream& operator<<=(TStream& fromWhere);}//Subclass library searcher used by the run time during system boot.//Not intended for subclassing.classTStandardLibrarySearcher : public TLibrarySearcher{.... public:virtual .sub.-- TStandardLibrarySearcher(); TStandardLibrarySearcher(); TStandardLibrarySearcher(const TStandardLibrarySearcher &);virtual TMappableDataContainer *CreateContainerAndFindLibrary(const TText &libraryName, const CompatabilityNumberdesiredRelease);virtual Boolean IsEqual(const TLibrary Searcher *) const;TStandardLibrarySearcher & operator=(const TStandardLibrarySearcher&);virtual TStream & operator>>=(TStream& toWhere) const;virtual TStream & operator<<=(TStream& fromWhere);}//Excerpt of TTeamHandle. These are the methods of TTeamHandle//that use TLibrary Searcherclass TTeamHandle : public MCollectible{.... TTeamHandle(const TTaskProgram&whatToRun, const TOrderedCollection & library Searchers);virtual void AddLibrarySearcher(TLibrarySearcher &);virtual TIterator *CreateLibrarySearcherIterator();....}__________________________________________________________________________
//Class TLibrarySearcher derived from base class MCollectible
TLibrarySearcher(): Destructor.
TMappable DataContainer*CreateContainerAndFindLibr ary(constTText&libraryName, constCompatibilityNumberdesiredRelease): Search for the library with the specified name; return a TMappableDataContainer for that library. The caller owns the storage for the TMappableDataContainer. If a library searcher finds multiple copies of a shared library, it must decide which copy to return. It should consider which copy(ies) of the library are currently loaded by running teams in its decision. It also should consider the requested compatibility number of the shared library. If the searcher can access the compatibility number a shared library (the compatibility number is a property of shared libraries that are files), it should check that the compatibility number of the shared library it is considering returning is greater than or equal to the desired compatibility number. Return NIL, if the library is not found. This method must be overridden by all TLibrarySearcher subclasses.
Boolean IsEqual(constMCollectible*): Return TRUE if the two library searchers are equivalent; return FALSE if otherwise.
The following methods may be called ONLY by the workspace:
static AddSystemLibrarySearcher(const TLibrarySearcher &): Add a library searcher to the global list of library searchers that are automatically inherited by teams at the time they are created. This function only affects teams that are created after it has been called; it has no effect on any existing teams.
TIterator*CreateSystemLibrarySearcherIterator(): Creates an iterator for the system library searchers. The iterator returns pointers to TLibrarySearcher subclass objects. The caller owns the storage for the iterator. The iterator owns the storage for the TLibrarySearchers it returns. The iterator returns the system library searchers in the order they would be applied. A kIteratorOutOfSync exception is raised if a system library searcher is added by another thread while the current thread is iterating the system library searchers.
//Subclass library searcher used by the run time during system boot. //Not intended for subclassing.
TStandardLibrarySearcher(): Constructor. TStandardLibrarySearcher(): Destructor. TMappable DataContainer*CreateContainerAndFindLibr ary(constTText &libraryName, const CompatibilityNumberdesiredRelease): Search for the library with the specified name in the "Shared Libraries" folder on disk and return a TMappableDataContainer for that library; return NIL, if the library is not found. This library searcher does not consider the requested compatibility number in its decision. The caller owns the storage for the TMappableDataContainer object.
BooleanlsEqual(constMCollectible*): Return TRUE if the two standard library searchers are equivalent; return FALSE otherwise.
While the invention has been described in terms of a preferred embodiment in a specific system environment, those skilled in the art recognize that the invention can be practiced, with modification, in other and different hardware and software environments within the spirit and scope of the appended claims.
|Cited Patent
|Filing date
|Publication date
|Feb 20, 1990
|Sep 21, 1993
|Prime Computer, Inc.
|Method for sequentially registering executable program formats with unresolved pointers by assigning linkage state and invocation state thereof
|Mar 27, 1992
|Dec 28, 1993
|Central Point Software, Inc.
|Management system for memory resident computer programs
|Jun 6, 1989
|Jan 31, 1990
|International Business Machines Corporation
|Virtual lookaside means and method
|Bridge, A., "RTL Routine Finds Symbols and More", Digital Review, vol. 5, Issue No. 4, 1988.
|Bridge, A., RTL Routine Finds Symbols and More , Digital Review, vol. 5, Issue No. 4, 1988.
|Programmer s Journal, vol. 7, No. 2, Apr. 1989, pp. 40 47, R. Duncan OS/2 Dynamic Link Libraries .
|Programmer's Journal, vol. 7, No. 2, Apr. 1989, pp. 40-47, R. Duncan "OS/2 Dynamic Link Libraries".
|Citing Patent
|Filing date
|Publication date
|Apr 5, 1993
|Oct 17, 1995
|Taligent Inc.
|Runtime loader
|Nov 14, 1994
|May 13, 1997
|Object Technology Licensing Corp.
|Method and apparatus for importing and exporting archive files for a graphical user interface
|Jul 3, 1995
|May 27, 1997
|Intel Corporation
|Dynamic link library version negotiation
|Nov 14, 1994
|Jul 29, 1997
|Object Technology Licensing Corp.
|Method and apparatus for dynamic update of an existing object in an object editor
|Jan 26, 1996
|Jun 23, 1998
|U.S. Philips Corporation
|Software configuration in a telecommunication device
|Dec 20, 1995
|Jul 7, 1998
|Sun Microsystems, Inc.
|Compiler system and method for resolving symbolic references to externally located program files
|Nov 13, 1995
|Sep 22, 1998
|Object Technology Licensing Corp.
|Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution
|Mar 22, 1993
|Nov 3, 1998
|Siemens Nixdorf Informationssysteme Aktiengesellschaft
|Reentrant libraries
|Jul 1, 1996
|Dec 8, 1998
|Sun Microsystems, Inc.
|Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
|Oct 31, 1996
|Jul 20, 1999
|Novell, Inc.
|Event notification in a computer system
|Oct 2, 1997
|Nov 9, 1999
|International Business Machines Corporation
|Rule-based engine for transformation of class hierarchy of an object-oriented program
|Jul 1, 1996
|Nov 16, 1999
|Sun Microsystems, Inc.
|Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
|Jul 1, 1996
|Dec 7, 1999
|Sun Microsystems, Inc.
|System, method and article of manufacture for a distributed computer system framework
|Oct 4, 1996
|Jan 25, 2000
|International Business Machines Corporation
|Framework for object-oriented interface to record file data
|Jul 1, 1996
|Mar 14, 2000
|Sun Microsystems, Inc.
|Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
|Sep 30, 1996
|May 23, 2000
|Apple Computer, Inc.
|Dynamic method resolution for native methods in a dynamic object-oriented programming language
|Oct 2, 1997
|May 8, 2001
|International Business Machines Corporation
|Method and device for program transformation using class hierarchy transformation based upon type constraint analysis
|Jun 19, 1995
|Jul 10, 2001
|International Business Machines Corporation
|System and method for providing shared global offset table for common shared library in a computer system
|Jul 1, 1996
|Jul 24, 2001
|Sun Microsystems, Inc.
|Object-oriented system, method and article of manufacture for a client-server failure reporting process
|Jul 1, 1996
|Aug 7, 2001
|Sun Microsystems, Inc.
|Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
|Jul 1, 1996
|Oct 16, 2001
|Sun Microsystems, Inc.
|Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
|Sep 29, 1998
|Nov 6, 2001
|Apple Computer, Inc.
|Method and apparatus for "Just-in-Time" dynamic loading and unloading of computer software libraries
|Jan 27, 1997
|Mar 26, 2002
|International Business Machines Corporation
|Method and system for loading libraries into embedded systems
|Jul 1, 1996
|Jul 23, 2002
|Sun Microsystems, Inc.
|Object-oriented system, method and article of manufacture for a client-server communication framework
|Jul 1, 1996
|Aug 13, 2002
|Sun Microsystems, Inc.
|Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
|Dec 21, 1995
|Feb 25, 2003
|International Business Machines Corporation
|Packaging algorithm for providing object oriented applications having reduced footprints
|Oct 11, 2001
|Sep 21, 2004
|Mitel Corporation
|Transfer of basic knowledge to agents
|Nov 7, 2002
|Aug 1, 2006
|Thomson Global Resources Ag
|Electronic document repository management and access system
|Aug 30, 2001
|Jan 30, 2007
|Apple Computer, Inc.
|Method and apparatus for "just-in-time" dynamic loading and unloading of computer software libraries
|Oct 29, 2007
|Jul 7, 2009
|Nahava Inc.
|Method and apparatus for fundamental operations on token sequences: computing similarity, extracting term values, and searching efficiently
|Sep 20, 2002
|Feb 23, 2010
|Apple Inc.
|Multi-repository display system using separate presentation, adaption and access layers
|May 12, 2006
|May 10, 2011
|Thomson Reuters Global Resources
|Electronic document repository management and access system
|Sep 20, 2002
|Feb 21, 2012
|Apple Inc.
|Multi-repository display system using separate presentation, adaptation and access layers
|Nov 14, 2013
|Jun 16, 2015
|Google Inc.
|Methods and systems for providing compatibility of applications with multiple versions of an operating system
|Feb 12, 2015
|May 24, 2016
|Google Inc.
|Application access to native and bundled libraries
|Sep 20, 2002
|Apr 17, 2003
|Yan Arrouye
|Multi-repository display system using separate presentation, adaptation and access layers
|Sep 20, 2002
|Apr 17, 2003
|Yan Arrouye
|Multi-repository display system using separate presentation, adaptation and access layers
|Aug 30, 2001
|Jan 22, 2004
|Arrouye Yan J.
|Method and apparatus for "just-in-time" dynamic loading and unloading of computer software libraries
|Nov 7, 2002
|May 13, 2004
|Mark Bluhm
|Electronic document repository management and access system
|May 12, 2006
|Dec 28, 2006
|Thomson Global Resources Ag
|Electronic document repository management and access system
|Mar 23, 2011
|Sep 27, 2012
|Dell Products L.P.
|Portable virtual applications
|Jan 26, 1996
|Aug 1, 1996
|Philips Electronics N.V.
|Software configuration in a telecommunication device
|U.S. Classification
|International Classification
|Cooperative Classification
|European Classification
|Apr 5, 1993
Owner name: TALIGENT, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:HENINGER, ANDREW G.;NAKANO, RUSSELL T.;REEL/FRAME:006509/0348
Effective date: 19930402
|Apr 11, 1996
Owner name: OBJECT TECHNOLOGY LICENSING CORP., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TALIGENT, INC.;REEL/FRAME:007886/0500
Effective date: 19960403
|Nov 2, 1998
|Fee payment
Year of fee payment: 4
|Oct 11, 2002
|Fee payment
Year of fee payment: 8
|Oct 13, 2006
|Fee payment
Year of fee payment: 12
|Jan 19, 2010
Owner name: APPLE INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OBJECT TECHNOLOGY LICENSING CORPORATION;REEL/FRAME:023810/0315
Effective date: 20091210


text:
Results 1 to 7 of 7
08-13-06, 23:51 #1Registered User
- Join Date
- Aug 2006
- Posts
- 7
hello everyone, I need ur help with database design!
Hi everyone,
It is my first time using forum. I have been struggling a lot with the follwing problems i was wondering whether anybody can help me, I really appreciate your helps.I have been doing a database design for a buidling society, i need to use bottom-up technique extracting attributes from a form.the list of attributes and the three processes of normalisation are as follows:
Unnormalised attributes
Applicant Name
Date of Application
Tel No
1st Normal Form
Date of Application(PK)
Tel No
Date of Application(PK)
2nd normal form
Date of Application(PK)
Tel No
Date of Application(PK)
3rd normal form
Date of Application(PK)
Tel No
Date of Application(PK)
I am not sure that these normalisations are right and my choose of primary keys(compound primary keys) are correct, however, i should mention that i am not allowed to introduce automatics keys( i means such as applicant-number or applicant-address-number).Inaddition, i would like to know whether property-postcode can be considered as candidate key for our future primary key.
Furthermore, i do not know how to draw the entity relationship diagram considering that the ERD can adapt the following conditions:
1-The applicant applying for buying insurance for a property that he/she is living in it therefore, his/her contact address is the same as property address.therefore it is only required to store the property address.
2-however, it is required to consider the situations where the applicant is buying insurance for a property but he/she is living in another property so his/her property address and his/her post address are different.
I look forward to hearing from you soon.
In advance i would like to thank you for your help.
08-14-06, 01:29 #2Registered User
- Join Date
- Dec 2003
- Location
- Canada
- Posts
- 710
Not being allowed to use surrogate keys in this situation is ludicrous.
Put your address information in one table. Make all your address columns except your postal code primary keys. Create a property table with the address information as the a foreign key. Create an applicant table with the address information as a foreign key. Create an application table to relate applicant and property.
No surrogate keys. What a mess.visit: relationary
08-14-06, 06:00 #3Registered User
- Join Date
- Sep 2002
- Location
- Sydney, Australia
- Posts
- 255
(since I am learning that people here have different definitions for terms), what is your definition of 'surrogate key' ?
CheersDerek Asirvadem
Senior Sybase DBA/Information Architect derekATsoftwaregemsDOTcomDOTau
Anything worth doing is worth doing Right The First Time
Spend your money on standards-compliant development or spend 10 times more fixing it
08-14-06, 09:41 #4Registered User
- Join Date
- Aug 2006
- Posts
- 7
No surrogate key, a big mess
Thanks a lot for you replies. I really appreciate your helps.
I think a surrogate key is an attribute which its value is unique such as customerID which allocate a unique ID number for each customer so each customer can be identified from other customers by its CustomerID .
Actually after reading the replies i really agree that not using surrogate keys will create a big mess. However, i should have mentioned that i am not allowed to use surrogate key at the first stage which it is required to normalise the extracted attributes from the existing form so i will be able to discuss what is the main issues regarding this form.So i would like to know considering not being allowed to use the surrogate keys do you think that my normalisations are correct and whether i am using the correct primary keys considering the situation?
However, in the second stage i am allowed to introduce surrogate keys to change and improve the normalisation and then desing a database system which will be able to store both the property address and applicant address if they are the same or they are not the same.
Many Thanks
08-14-06, 12:26 #5Registered User
- Join Date
- Dec 2003
- Location
- Canada
- Posts
- 710
Your first and second normal form are okay. The third is missing something.
DerekA. I'm cutting this from http://www.bcarter.com/intsurr1.htm
Intelligent Versus Surrogate Keys
Should I use business columns as primary key fields for tables in the database, or generate artificial primary key values?
When business-related columns are used as primary keys they are often called intelligent or natural keys. For example, if the user gives each customer a unique customer number that value might naturally serve as the primary key for the customer table.
A child table called order might have an intelligent primary key consisting of two columns: customer_number to act as a foreign key pointer to the customer table plus order_date_time to identify different orders for one customer.
An alternative is to use system-generated artificial primary key values. These are often called surrogate keys because they are replacements for the intelligent keys, or blind keys because the user doesn't see them.
In the example above, the primary key to customer would be a surrogate customer_id column whose value would be set to 1, 2, 3 as new rows are inserted. The customer_number column would still be included in the table, with a unique index, but it would not be part of the primary key.
The primary key to the order table would now consist of a single surrogate order_id column. The customer_id column would be included as a foreign key pointer to the parent table but would not be part of the primary key. Order_date_time would also be included but it too would be an ordinary data field. The customer_number column would be dropped from the order table.visit: relationary
08-16-06, 04:15 #6Registered User
- Join Date
- Sep 2002
- Location
- Sydney, Australia
- Posts
- 255
Intelligent/Surrogate Keys
(as per definition). My real world, High Performance position is:
- strive to Intelligent Natural keys
- avoid Surrogate keys unless you have to use them (which means I have them only in the parent tables that are heavily used for dependencies)
- Mostly, I use (eg) operator initials "DA", plus next-sequential within that, for index distribution (contention) reasons
- where I have to use a single-column Surrogate Key, I use and Integers and Bigints, as they are the fastest
- select max(key) is no problem for Sybase (the last index page is pretty much guaranteed to be in the data cache), but it must be coded properly
- I do not use the Surrogate Key table as per B Carter or the like
- If select max(key) is not enough for the level of HP I need, I have two additional mehods (which I cannot publish)
- I flog anyone trying to use an IDENTITY column and transport them to Siberia
Certus. I end up with generally the same thing as your post, plus additional methods for HP
Ctxms. Therefore, I agree it is a Good Thing to disallow Surrogate Keys in Stage I, in order to force you to seriously think about Intelligent or Natural Keys, and that Surrogate Keys are allowed in the actual implementation.
Your Normal Forms
Ctxms. No, you have not performed basic normalisation as per any method that I can recognise; your second is just ok; your third is broken. Please try again by definition and post. IDEF1X is the most straight-forward (for me!).
Last edited by DerekA; 08-16-06 at 04:23.Derek Asirvadem
Senior Sybase DBA/Information Architect derekATsoftwaregemsDOTcomDOTau
Anything worth doing is worth doing Right The First Time
Spend your money on standards-compliant development or spend 10 times more fixing it
08-16-06, 10:55 #7World Class Flame Warrior
- Join Date
- Jun 2003
- Location
- Ohio
- Posts
- 12,595
It's absolutely bogus not to use surrogate keys in a situation like this.
Surrogate keys are a well accepted and encouraged part of database design, Derek's personal preferences not withstanding.
Surrogate keys should be considered whenever you have composite natural keys that are also foreign keys on child tables. In situations where you have mulitiple layers of relationships, they are much preferable to natural keys.
Surrogate key use is so ubiquitous that I personally use them by default on all of my tables (except the most basic lookup and list tables) to allow consistency in sql coding across the database.
ctxms, is this a class assignment? Who exactly is preventing you from using surrogate keys?If it's not practically useful, then it's practically useless.
www.chess.com: "sqlblindman"


text:
The novel was adapted into a film and a television series in Egypt. The film was first released in 1962, only one year after the novel was first published, with a screenplay by Salah Jahin. The film starred Shoukry Sarhan (Said), Kamal el-Shennawi, and Shadia (Nur). The television series was released in 1975, and lasted only one season (13 episodes). Although it was an Egyptian series, it was produced by a Dubai-based television station.
This content is from Wikipedia. GradeSaver is providing this content as a courtesy until we can offer a professionally written study guide by one of our staff editors. We do not consider this content professional or citable. Please use your discretion when relying on it.


text: I have just got a new batch of DSTTs from DX If you hold them with the label facing towards you, they have a rounded slot on the right hand side. They definitely have a rounded microSD slot on opening the card. They do not have a bulge under the label (no chip) and the flash checker returns unknown device: 912C912C Anybody else got one of these, or a batch of them? Seems to work fine using the latest 1.17 with the fake killer removed...and also the 1.17 from the website. I can provide a picture if anybody is interested. They do not look like the "fake and genuine" examples I've seen so far.


text:
Unbelievably enough, I missed Project Runway Wednesday night, so apologies for the late recap! That said, it was kind of interesting to watch this week's episode after hearing some very faint buzzing about the unexpected results (as I studiously tried to avoid spoilers, of course). What manner of injustice would take place? An unfair win? An unfair loss? An...um...okay, I guess there's no third category there. But little did I know, it would be total lunacy on the part of the judges, with a completely ridiculous winner AND loser. Oy. Let's get started, shall we?
Though it was yet another challenge without models, I enjoyed the prom dress theme this week. Unlike Christian, who thinks prom is "horrible and tacky and gross." Um...has he even seen his hair? Plus, high schoolers who think they know best + designers who actually know best (or so one would assume) = awesome drama, right? Well...yes. A little too right. And I loved the interesting twist, in which the clients chose their designers. (And you know I loved it even more when Victorya asked why her client chose her, and the girl admitted that she had the last pick. Awk! Ward!)
Christian's client, God love her, thinks she's a designer, and has some very strong, very tacky opinions. Christian and his side-mullet are worried and frustrated, to the point of almost giving up after both he AND his model (and me, for what it's worth) hate the dress. Happily for me and my love of bitchy side-comments (of which Christian always has many), Tim talks him off the ledge. Because when Tim tells you to rally, you rally, goddammit!
Did anyone else think there would be way more drama when the moms came in to see the dresses? I thought for sure they would be grabbing spare fabric and sewing modesty panels onto the chest areas. Ah, well. I'll have to settle for the look of surprise on the mom's face when she realizes that all the draggy costume photos in Chris's portfolio are actually of Chris. Chris: I love you! You're so...fabulously chuckly. I also love Sweet P, who seems so wise, for example, when she refuses to make her client something too trampy, because there's no way she's going home because she listened to a teenager. Right on, Sweet P.
Ricky, in what I was sure was a loser's cut, calls his mom (a seamstress) for inspiration. But hopefully not advice, because that probably wouldn't be legit. He also cries in an interview, but that's no surprise. It's too bad Elisa isn't still here--she could use her fabric to soak up the tears, imbuing it with the essence of gay sorrow. Or happiness. Or homesickness. Sometimes it's hard to tell with Ricky. However, he does have a great quote: "When I had a girlfriend, I actually made her prom dress. ...That should've been a clue right there, right?" HA!
It's runway time! Sweet P's dress is very nice and classic, though maybe not playful enough for a high schooler. Victorya's dress is reeeally not to my taste, in that it seems like bedazzled jewels are slowly creeping up the bodice to strangle her client. Chris's dress is a great color, very flattering, and classy while being just interesting enough. LOVE it.
Kevin's dress didn't really seem to fit the prom theme to me, and wasn't very flattering. He also failed to hem it, which will likely come back to haunt him, since they showed clips of both Tim and Chris advising him to do so. Jillian's dress was interesting, and I loved the colors, but it just didn't pop for me on the runway. Christian's dress is a hot, unflattering mess, but at least looks expensive, and like a lot of work went into it.
Kit's dress is definitely cool and edgy, but possibly too casual for prom. Ricky's is way too sweetheart--not to my taste at all, and not flattering. Kind of like wrapping his model in a sparkly, pale pink gunny sack, in fact. Rami's is very clearly his style, with fascinating draping, and a lovely green color. The length is a bit flapper, but his client seems to be loving the whole thing.
Kit, Jillian, and Chris (WHAT?!) are safe. Sweet P's dress gets praised for its beauty, though Nina wonders if it's a bit too sophisticated. I'd say that's a fair question. Kevin gets knocked for the dress's red color (really?), the cut (fair enough), and the dress's general matronly-ness (I definitely don't see that). Plus, of course, the lack of hemming. Victorya's dress gets praise for being chic, young, and fun, and for its bright blue color. Hrrrm.
Christian immediately goes on the defensive, throwing his client under the bus and thus pissing Nina off. However, he does get a teeny bit of praise for the workmanship that went into the final product. Ricky says that the girl inside him would wear his dress (except that all the sparkles would be made out of tears, right?), but gets slammed for the dress's sloppy execution and boring design. Rami gets criticized for his color choice (bananas) and length (I can see that), with the general consensus that the dress was too sophisticated (read: old) for a high school prom.
Clearing up my confusion at the seeming imbalance between the top and the bottom, Nina informs us that the judges only liked two of the dresses. Okay, WHAT? Chris's was fabulous! And since Rami's wasn't that bad, they definitely could've had an even top and bottom. They love Sweet P's meticulous work and fitting, and praise Victorya's cute, modern design. And if by "modern," they mean "80's," then I completely agree.
They trash Rami's color choice and tunnel vision-like failure to design for a younger client, and hate that Christian pinned the blame for his dress on his client, and spent his time focusing on so many little details. Which, fair. He was given a bad situation, and handled it terribly. They think Ricky's dress was boring and unskilled, and that Kevin's was cheap-looking (true) and made his client look old (less true).
Victorya is the winner (UGH), and Sweet P is safe. Ricky and Rami are also safe, leaving me perplexed. I mean, if Ricky, who has been flying by the seat of his pants this whole competition, and turned in a lackluster-at-best look this week, is safe, then who...? I mean, Christian and Kevin's dresses were both pretty unfortunate, but geez, at least they look like they tried. Kevin, unfortunately, is out. Hrm. Christian's dress was definitely uglier, but he DID have a tougher challenge, and the dress was a higher difficulty level. But god, was it ugly and unflattering.
Ricky definitely should've been out on this one, I'd say, if not Christian. And Chris was the winner in my book. But then, what do I know? Much less than Nina "I love electric blue and tacky glued-on rhinestones" Garcia, that's for sure.
Friday, January 11, 2008
Project Runway: O...kaaaay...
Unbelievably enough, I missed Project Runway Wednesday night, so apologies for the late recap! That said, it was kind of interesting to watch this week's episode after hearing some very faint buzzing about the unexpected results (as I studiously tried to avoid spoilers, of course). What manner of injustice would take place? An unfair win? An unfair loss? An...um...okay, I guess there's no third category there. But little did I know, it would be total lunacy on the part of the judges, with a completely ridiculous winner AND loser. Oy. Let's get started, shall we?
Posted by Liz on 1/11/2008
Categories: Project Runway
4 comments:
- Vance said...
I just caught up last night with the last two eps and I cant believe Kevin was cut. I like Ricky as a person but he's never made anything remotely amazing. And yet he's still around. What the?
Um. Christian's such a prick but man he's funny to watch.
- Liz said...
I know, right?! I mean, they're obviously going on overall body of work aside from the individual challenge, otherwise Christian would've been dead meat, so why on EARTH cut Kevin (who's had some GREAT stuff, and never anything disastrous) over Ricky (who's been in the bottom multiple times)? Bananas.
Yeah, Christian is Queen of the Tools, but much as I dislike the dude, he's mad entertaining. (Which could be another explanation for why he's been hanging around, despite a few terrible designs.)
- nastia said...
This is a superb show. Project Runway'Season 8 DVD released. You can go through the links to know more about this show.
- bobby said...
Watch All Project Runway Episodes by using this link into your browser. And trust me its really good show to watch.