text:
We're looking for highly motivated college students to join our team as interns for the spring, summer and/or fall.
Our interns play a key role in planning and executing our fundraising events and youth programs. They gain experience with our nationally recognized brand and prominent sponsors in an environment that promotes teamwork, fun, independence and accountability.
Drive Youth Empowerment as a Volunteer
We're looking for a diverse group of volunteers from the Austin metro area to help deliver our character-building programs. Our chapter of The First Tee operates year-round and heavily relies on the help of volunteers at our 6 program sites. Golf experience is not required to make a difference.

subset: commoncrawl


text:
Defender 2000
| |
Release Date: January 1, 1996
Defender 2000 Cheats & Codes
Check out our 3 cheats & codes for Defender 2000.
3 CheatsSubmit a Cheat.
You must be Logged in to submit a cheat.
Game Details
Published by: Atari Corp. (1984-2003)
Developed by: Llamasoft
Genre: Action
Release Date:
United States: January 1, 1996
E for Everyone : Animated Violence
Also Available On:
Games You May Like
- Action
- Jaguar
SPACE ACE is a game where you are Ace, Earth's greatest hero. You must stop evil commander Borf from taking over the world and destroy his…
A hockey game originally listed for release in 1995 on the Atari Jaguar, the game did not make it to release.


text:
|Publication number
|Publication type
|Application number
|Publication date
|May 1, 1979
|Filing date
|Nov 30, 1977
|Priority date
|Nov 30, 1977
|Also published as
|Publication number
|Gary R. Kirwan
|Original Assignee
|Union Carbide Corporation
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (7), Referenced by (39), Classifications (16), Legal Events (7)
|External Links: USPTO, USPTO Assignment, Espacenet
This invention relates to a brake assembly for automatically maintaining uniform tension in sheet material being fed from a supply roll and more particularly to a brake assembly which applies a self-adjusting braking force to a rotating shaft supporting the supply roll with the braking force being proportional to the weight of the supply roll.
The unwinding of sheet material, such as plastic film, is generally controlled by imposing a drag either directly upon the roll of material or upon a rotatable shaft on which the supply roll is fixedly mounted. The braking force is necessary to prevent overrunning of the roll in response to a decrease in the unwinding force on the sheet material. A constant drag on the supply roll may be accomplished simply by placing a weighted material in intimate contact with the rotating roll. A constant drag does not however compensate for changes in the tension of the unwinding material as the weight of the supply roll changes in response to the removal of material. When the supply roll is fully loaded and is at its heaviest weight the turning moment of the roll is substantially greater than when the supply roll is substantially empty. If the braking force is established to match the tension developed with a full roll excessive braking will be applied as the roll unwinds. Ideally, the braking force should vary with payout to provide a constant tension in the material.
There are many conventional braking mechanisms which automatically impose a braking force upon a rotating shaft in response to the weight of the roll supported by the shaft. The braking force imposed by such conventional mechanisms is applied continuously and uniformly over the entire surface area of the brake pad. This results in a substantial generation of heat which places restrictions on the selection of brake lining material. Moreover, the heat build up will accumulate and substantially increase the operating temperature of the brake assembly thereby decreasing the life expectancy of the brake and potentially causing an operational safety hazard particularly in situations where the brake assembly has to be physically touched or is otherwise exposed to the operator during operation of the material feed system such as when changing supply rolls. Therefore, it is desirable to have a brake apparatus which will not develop excessive heat yet will supply a braking force sufficient to maintain constant tension.
Other advantages of the present invention will become apparent from the following detailed specification of the preferred embodiment of the present invention when read in conjunction with the accompanying drawings of which:
FIG. 1 is a pictorial isometric of the brake assembly of the present invention in an operating relationship relative to a rotating shaft;
FIG. 2 is a schematic end elevation of the brake assembly of FIG. 1 with the supply roll shown in a fully wound condition;
FIG. 3 is a schematic end elevation of the brake assembly similar to FIG. 2 with the supply roll shown in a substantially empty condition;
FIG. 4 is a schematic illustration of the braking operation of the present invention with fully applied braking force upon the shaft;
FIG. 5 is a schematic illustration of the braking operation of the present invention with the least braking force applied to the shaft;
FIG. 6 is a schematic illustration of the relationship between the shaft and the brake assembly support rollers with the supply roll in a fully wound condition; and
FIG. 7 is a schematic illustration similar to FIG. 6 between the shaft and the brake assembly support rollers with the supply roll in a substantially empty condition.
In accordance with the teachings of the present invention the surface area of the brake in physical contact with the rotating shaft is reduced in a proportion relative to the depletion of feed material from the supply roll. The reduced brake surface area generates less heat and accordingly reduces the operating temperature as the supply roll is being depleted. The braking force on the shaft is gradually shifted from a substantially uniform application to a substantially nonuniform application.
Referring now in particular to FIG. 1 in which the brake assembly 10 of the present invention is shown in perspective and in an operating relationship relative to a rotating shaft 12. The rotating shaft 12 carries a fully wound supply roll 14 of feed material 15 for common rotation about its longitudinal axis. The rotating shaft 12 is supported at one end in the brake assembly 10 primarily by a pair of support rollers 16 and 18 respectively. The opposite end of the rotating shaft 12 is preferably journaled in a bearing (not shown) although a second duplicate brake assembly may be used. The support rollers 16 and 18 of the brake assembly are connected to a common frame 20 forming the housing for the brake assembly 10. The frame 20 is in turn connected to a main frame (not shown) which rests on level ground. Support roller 16 is rotatably trunnioned on yoke 22 which is fixedly attached to the frame 20. The other support roller 18 is rotatably trunnioned on yoke 26 which is spring mounted upon a compression spring 28 seated over a support block 30 connected to the common frame 20. A connecting rod 32 attached to the yoke 26 extends through an aperture 34 in the support block 30 which forms a guide bearing for movement of the yoke 26 in a vertical direction. The connecting rod 32 has a free end 36 which is preferably of a rounded geometry. The rounded end 36 of the connecting rod 32 rests upon one end 37 of a lever arm 38. The lever arm 38 can be of and desired shape but is preferably that of a flat member having two parallel sides 39 and 40 bridged by a third side 41 lying in approximately the center of the lever arm 38 perpendicular to the parallel sides 39 and 40. The lever arm 38 is pivotally connected through a pivot pin 42 to the frame 20. The side 40 of the pivoted lever arm has a bifurcated opening 44 through which extends an elongated brake rod 46. The brake rod 46 is threaded at one end to receive an adjustable nut 48 and is pivotally connected at its opposite end, by pivot pin 49, to a clevis 50 which extends from the brake shoe 52. The lever arm 38 has a raised curved surface 51 located adjacent the opening 44 on side 40 which is in biased engagement with the adjustable nut 48.
The brake shoe 52 has a circular open faced brake lining 54 of any desired composition such as, for example, steel impregnated asbestos. The coefficient of friction of the brake lining material should be relatively high and preferably above 0.40. As will be explained in greater detail hereafter the brake lining 54 forms a circular arc which circumscribes an angle of preferably greater than 180� but not greater than about 190�. The diameter of the brake lining 54 should be equal to the diameter of the rotating shaft 12. The rotating shaft 12 is composed of steel and does not require a brake drum. The rotating shaft 12 is mounted in the brake assembly 10 for rotatable engagement with the support rollers 16 and 18. The brake shoe 52 is maintained in contact with the shaft 12 by a force imposed by the brake rod 46. The magnitude of the force is determined by the position of the lever arm 38 which in turn is controlled by the weight of the supply roll 14. Accordingly, the weight of the supply roll 14 controls the amount of pressure applied by the brake shoe 52 and the degree of contact between the brake lining 54 and the shaft 12. This will be further elaborated upon in greater detail in connection with FIGS. 2-7.
The brake shoe 52 is supported on opposite sides relative to its longitudinal axis. One such side is pivotally connected through the clevis 50 to the brake rod 46 whereas the opposite side is connected to a rear stud 55 having a hollow slot 56 which lies parallel to the longitudinal axis of the brake shoe 52. The slot 56 has an elliptical cross-sectional geometry with the major axis of the ellipse lying in a horizontal plane transverse to the longitudinal axis of the brake shoe 52. A cylindrical support body 58 lies within the slot 56 with one of its ends 60 fastened to the frame 20. The support body 58 has a diameter smaller than the major dimension of the elliptical slot 56 so as to accommodate a lateral shifting of the brake shoe 52 in reaction to the vertical displacement between the rollers 16 and 18 as will be explained hereafter in connection with FIGS. 2-7.
Referring now to FIGS. 2-7 in conjunction with FIG. 1, the brake assembly 10 is initially adjusted for a desired tension in the material 15 by raising or lowering the level of the adjustment nut 48 on the brake rod 46. The supply roll 14 may be an order of magnitude heavier when fully loaded than when empty. Accordingly, when the supply roll 14 is fully loaded the shaft 12 applies maximum force upon the spring loaded roller 18 forcing it down to a position of maximum vertical displacement relative to the stationary roller 16. In this position, it is preferred that the longitudinal axis of the shaft 12 lie substantially congruent with the longitudinal axis of the circular brake shoe 52. This will result in maximum braking force with essentially all of the brake lining 54 in contact with the shaft 12. The brake lining 54 is held in frictional contact against the rotating shaft 12 by the upward pressure applied from the brake rod 46.
As material 15 is unwound from the supply roll 14 the weight of the shaft 12 decreases. This decrease in weight is sensed by the spring 28 which operates in response to the reduction in pressure to gradually raise the yoke 26, connecting rod 32 and movable support roller 18 respectively. The movement of the connecting rod 32 causes a corresponding rotation of the lever arm 38 which lowers the brake rod 46 thereby decreasing the braking force applied by the brake rod 46 on the brake shoe 52. The upper movement of the support roller 18 in combination with the downward movement of the brake rod 46 causes the brake shoe 52 to shift its position relative to the shaft 12. The support roller 18 moves from a vertical position below the level of the stationary roller 16 to a vertical position substantially aligned with the stationary roller 16. This movement is clearly indicated in FIGS. 6 and 7. The variation in surface area of the brake lining 54 in contact with the shaft 12 is clearly visible from FIGS. 4 and 5. The rear stud 55 accommodates a lateral shifting of the brake shoe 52 in response to the rise in the support roller 18 as evident from FIGS. 2 and 3.
By varying the surface area of the brake lining 54 engaging the shaft 12 the heat build up in the brake lining 54 and shoe 52 is substantially reduced. By moving the brake shoe 52 away from the shaft 14, air is permitted to circulate about the brake lining 54. This increases the cooling capacity of the brake which is believed to be responsible in preventing heat build up in the brake assembly. The braking force is, however, being redistributed as the supply roll 14 decreases in weight to maintain a constant horsepower. The following example demonstrates that the horsepower is held essentially constant:
______________________________________I. HORSE POWER OF SUPPLY ROLL______________________________________(1) Web Tensionmeasured at 3 lbs./ft.Tension across entire web (37" wide)(37"/12"/ft) (3 lbs/ft) = 9.25 lbs(2) Web SpeedAssume constant at 250 FPM(3) Roll SpeedCircumference C = π D/1226" Diameter Roll2.25 Diameter Shaft Roll circumference (full roll) ##STR1## Roll circumference final ##STR2##(empty roll) Shaft circumference ##STR3## ##STR4## ##STR5## ##STR6##(4) Shaft Speed V = RPM(CS) Vi = 36.76 (.58) = 21.32 FPM Vf = 320.51 (.58) = 185.89 FPM(5) Torque on Supply Roll Torque = (Force)�(1 Distance to Center)Ti = (9.25) (13/12) = 10.02 ft - lbsTf = (9.25) (1.5/12) = 1.15 ft - lbs(6) Horsepower of Roll Shaft##STR7####STR8####STR9##______________________________________
______________________________________II HORSEPOWER ABSORBED BY BRAKE______________________________________(1) Brake Area A = Circumference � (length) Brake circumference CB = π D (% Engaged Brake Area) % Engaged Brake Area##STR10####STR11## CBi = π (2.25) (.514) = 3.63" (full load) CBf = π (2.25) (.023) = 1.63" (empty load) Brake (length) = 2.5" Ai = 3.63 (2.5) = 9.075 sq. in. Af = .163 (2.5) = .408 sq. in.(2) Pressure Exerted Against Brake Lining.##STR12## Brake Forcei = 18 lbs (measured) Brake Forcef = 2 lbs (measured) Pi = 18/9.075 = 1.98 psi Pf = 2/.408 = 4.90 psiIf Brake area were constant Pf = 2/9.075 = .220 psi(3) Brake HP absorbed##STR13####STR14####STR15##IF brake area were constant ##STR16##______________________________________
The above example shows that the brake absorbs the horsepower generated by the roll shaft at a constant rate regardless of the brake surface area. However the heat generated is dependent upon surface area. By moving the brake shoe so as to vary the brake lining surface area in contact with the shaft it is apparent that there will be considerably less heat absorbed by the brake assembly.
In the above example essentially all of the brake was held in contact with the shaft at maximum load and only ten percent at minimum load. It should be understood that this substantial variation is given by way of example only and that reduced heating will be obtained with substantially less reduction in brake surface area. The preferred variation is a difference of at least 30 percent.
|Cited Patent
|Filing date
|Publication date
|Feb 28, 1911
|May 30, 1911
|John E Bossingham
|Concrete railway-tie.
|Jan 15, 1916
|Jun 25, 1918
|Jeffrey T Ferres
|Tension mechanism for paper-rolls, &c.
|Mar 12, 1946
|May 29, 1951
|Lorraine Carbone
|Composite brake lining
|Oct 20, 1954
|Mar 17, 1959
|United States Steel Corp
|Device for paying off material and applying back tension
|Aug 6, 1968
|Jun 30, 1970
|Creusot Forges Ateliers
|Self-aligning carrying rollers for heavy rotary bodies,such as rotary kilns
|Dec 14, 1967
|Nov 17, 1970
|Goldsworthy Eng Inc
|Filament dispensing mechanism
|Apr 21, 1969
|Apr 20, 1971
|Gen Tire & Rubber Co
|Self-compensating load responsive brake assembly
|Citing Patent
|Filing date
|Publication date
|Sep 3, 1982
|Sep 3, 1985
|Hans Deissenberger
|Apparatus for the spindleless mounting, as well as the cutting and cutting to length and simultaneous measurement of spools
|Oct 5, 1984
|Sep 9, 1986
|Maschinenfabriken Bernard Krone Gmbh
|Apparatus for covering bales in baling presses
|Jan 14, 1993
|Oct 18, 1994
|E. I. Du Pont De Nemours And Company
|Dec 12, 1994
|Dec 3, 1996
|Bradshaw; Franklin C.
|Laminating and adhesive transfer apparatus
|May 20, 1994
|Dec 17, 1996
|Bradshaw; Franklin C.
|Laminating and adhesive transfer apparatus
|Mar 20, 1996
|Dec 23, 1997
|Schlumberger Technology Corporation
|Method for placing cable within coiled tubing
|Nov 14, 1996
|Apr 7, 1998
|Xyron, Inc.
|Laminating and adhesive transfer apparatus
|May 19, 1995
|Aug 4, 1998
|Minnesota Mining And Manufacturing
|Decal assembly and method of making same
|Feb 13, 1996
|Jan 26, 1999
|Bussey; James W.
|Continuous form sleeve blanks and apparatus for applying same
|Jun 14, 1995
|Feb 16, 1999
|Ijot Development, Inc.
|Remote controlled mechanical chain barrier
|Dec 12, 1997
|Oct 5, 1999
|Xyron, Inc.
|Laminating and adhesive transfer apparatus
|Sep 8, 1998
|Aug 15, 2000
|Bussey; James W.
|Continuous form sleeve blanks and apparatus for applying same
|Sep 4, 1998
|Oct 24, 2000
|Ijot Development, Inc.
|Chain barrier
|Nov 18, 1999
|Feb 27, 2001
|Ijot Development Inc.
|Lead screw barrier system
|Nov 6, 1998
|Jun 12, 2001
|Xyron, Inc.
|Master processing apparatus with an exit tray
|Jan 13, 2000
|Jul 24, 2001
|Free-Flow Packaging International, Inc.
|Mandrel mount
|Apr 29, 1999
|Aug 7, 2001
|Xyron, Inc.
|Master processing apparatus and cartridge therefor
|Jul 27, 2000
|Feb 12, 2002
|Metal Accessories, Llc
|Payoff apparatus
|Nov 18, 1999
|Feb 26, 2002
|Ijot Development, Inc.
|Fluid powered barrier system
|Jun 6, 2001
|Aug 5, 2003
|Xyron Inc.
|Master processing apparatus
|Nov 14, 2001
|Mar 2, 2004
|Xyron, Inc.
|Master processing apparatus
|Sep 12, 2003
|Nov 2, 2004
|Xyron, Inc.
|Master processing apparatus
|Sep 12, 2003
|Nov 9, 2004
|Xyron, Inc.
|Master processing apparatus
|Sep 12, 2003
|Dec 21, 2004
|Xyron, Inc.
|Master processing apparatus
|Sep 12, 2003
|Jan 11, 2005
|Asml Netherlands B.V.
|Master processing apparatus
|Sep 12, 2003
|Jan 18, 2005
|Xyron, Inc.
|Master processing apparatus
|Sep 30, 2002
|Aug 28, 2007
|Xyron Inc.
|Master processing apparatus
|Sep 6, 2011
|Ricoh Company, Limited
|Roll paper type recording medium transporting mechanism and image forming apparatus
|Sep 12, 2003
|Mar 11, 2004
|Xyron, Inc.
|Master processing apparatus
|Sep 12, 2003
|Mar 11, 2004
|Xyron, Inc.
|Master processing apparatus
|Sep 12, 2003
|Mar 18, 2004
|Xyron, Inc.
|Master processing apparatus
|Sep 12, 2003
|Mar 18, 2004
|Xyron, Inc.
|Master processing apparatus
|Sep 22, 2003
|Mar 24, 2005
|Cianflone John Steven
|Billiard training ball
|May 18, 2006
|Nov 23, 2006
|Innodesk, Inc
|Home and Office, Cold Seal, Manual, Thermal Trimmed Continuous Adhesive Web Laminating Device
|Apr 14, 2009
|Oct 29, 2009
|Ricoh Company, Limited
|Roll paper type recording medium transporting mechanism and image forming apparatus
|Dec 17, 1998
|Sep 4, 2001
|Xyron, Inc.
|Laminating and adhesive transfer apparatus
|Sep 3, 1981
|Mar 10, 1983
|Kabelmat Apparatebau Hans Deis
|Vorrichtung zur achsenlosen lagerung sowie zum auf- und ablaengen und gleichzeitigen messen von spulenkoerpern
|Sep 3, 2007
|Mar 5, 2009
|Koenig & Bauer Aktiengesellschaft
|Winding spool i.e. hard cardboard case, accommodating device, has winding shafts mounted on sides of supports in area of main winder, and accommodated at variable distance relative to cylinder, where supports are formed as steady-bearing
|Sep 3, 2007
|Nov 3, 2011
|Koenig & Bauer Aktiengesellschaft
|Vorrichtung zur Aufnahme einer eine aufgewickelten Materialbahn aufweisenden Wickelspule
|U.S. Classification
|188/174, 242/422.4, 242/421.3, 192/89.1, 242/598.3, 188/195, 242/156
|International Classification
|Cooperative Classification
|European Classification
|Jan 9, 1986
Owner name: MORGAN GUARANTY TRUST COMPANY OF NEW YORK, AND MOR
Free format text: MORTGAGE;ASSIGNORS:UNION CARBIDE CORPORATION, A CORP.,;STP CORPORATION, A CORP. OF DE.,;UNION CARBIDE AGRICULTURAL PRODUCTS CO., INC., A CORP. OF PA.,;AND OTHERS;REEL/FRAME:004547/0001
Effective date: 19860106
|Sep 15, 1986
Owner name: FIRST BRANDS CORPORATION, 39 OLD RIDGEBURY RD., DA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:UNION CARBIDE CORPORATION, A CORP OF NY;REEL/FRAME:004611/0201
Effective date: 19860630
Owner name: FIRST BRANDS CORPORATION, 39 OLD RIDGEBURY RD., DA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:UNION CARBIDE CORPORATION, A CORP OF NY;REEL/FRAME:004611/0201
Effective date: 19860630
|Oct 8, 1986
Owner name: UNION CARBIDE CORPORATION,
Free format text: RELEASED BY SECURED PARTY;ASSIGNOR:MORGAN BANK (DELAWARE) AS COLLATERAL AGENT;REEL/FRAME:004665/0131
Effective date: 19860925
|Dec 8, 1986
Owner name: MANUFACTURERS HANOVER TRUST COMPANY
Free format text: SECURITY INTEREST;ASSIGNOR:FIRST BRANDS CORPORATION, A CORP OF DE;REEL/FRAME:004645/0280
Effective date: 19860701
|Aug 17, 1990
Owner name: CONNECTICUT NATONAL BANK, THE
Free format text: SECURITY INTEREST;ASSIGNOR:FIRST BRANDS CORPORATION, A CORPORATION OF DE;REEL/FRAME:005722/0231
Effective date: 19900615
|Apr 10, 1991
Owner name: FIRST BRANDS CORPORATION
Free format text: RELASE OF SECURITY INTEREST RECORDED AT REEL 4645 AND FRAME 280-363 ON 12-08-1986.;ASSIGNOR:MANUFACTURERS HANOVER TRUST COMPANY;REEL/FRAME:005717/0599
Effective date: 19900802
|Dec 11, 1991
Owner name: CIT GROUP/SALES FINANCING, INC.
Free format text: SECURITY INTEREST;ASSIGNOR:FIRST BRANDS CORPORATION;REEL/FRAME:005945/0023
Effective date: 19911118
Owner name: CIT GROUP/EQUIPMENT FINANCING, INC., THE
Free format text: SECURITY INTEREST;ASSIGNOR:FIRST BRANDS CORPORATION;REEL/FRAME:005945/0023
Effective date: 19911118


text:
Favstar gets even better if you sign in.
Gift @codinghorror Favstar Pro to unlock their best tweet!Gift them Pro!
In software, the first 90% of the work takes 90% of the time, the last 10% takes the other 90% of the time.
Just a small bug in the code, no problem, should be easy to fix pic.twitter.com/iTjfPkoeUY
A flowchart of what programmers do at work all day, by @secretGeek pic.twitter.com/sq1yxteKa2
What the hell have you built. pic.twitter.com/Tq7ktgDWzD
Imagine the joy in your children's eyes when you unveil this on family board game night http://www.c-jump.com/ pic.twitter.com/Vr4z5ZKV8b
People think programming is this pure kind of logical thinking, when it's mostly 99% banging your head against a wall until the wall gives
In the future, there will be JavaScript http://cube-drone.com/comics/c/relentless-persistence … pic.twitter.com/w7CFNo88h7
Teach yourself C++ in 21 days http://abstrusegoose.com/249 pic.twitter.com/h7R3BBd0lw
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
JavaScript: A Great Place to Work (via @konklone) pic.twitter.com/UkAZVveAjR
10x developer pic.twitter.com/0T1nQ9RtHf
This week, for family game night, try the Debugging game! If you hate game nights. And your family. pic.twitter.com/m3SFJwwgOv
Got into computers because I enjoyed talking to machines instead of people. Now computers all about talking to people. This is some bullshit
Time for more programmering pic.twitter.com/EbPJAitcs4
A group of programmers is called an "actually".
Group projects in school, accurately graphed pic.twitter.com/ucmp99yeKI
I think I finally got emacs set up right pic.twitter.com/13lWZVo4wj
PHP is the Nickelback of programming languages.
Hell isn't other people's code. Hell is your own code from 3 years ago.
Indoor enthusiast. Co-founder of http://stackoverflow.com and http://www.discourse.org. Disclaimer: I have no idea what I'm talking about.
Like @codinghorror's tweets? Send them a Favstar Pro Membership to show you care.Gift them Pro!
Stats can't be shown as @codinghorror hasn't signed in to Favstar recently.


text:
Adam Haberberg
Adam Haberberg
Knopf, Hardcover, 9781400043156, 160pp.
Publication Date: January 2, 2007
With the same élan and wit that inform her internationally acclaimed and award-winning plays, Yasmina Reza's second novel, Adam Haberberg, revels in the tragicomedy of one man's midlife crisis.
While slumped on a park bench in Paris, a man is suddenly hailed by an old female classmate whom he has not seen since high school. The poor guy is, of course, a writer. Morose, panicked about his health, preoccupied with his marriage miseries and the fiasco of his recent book launch, he finds himself stranded in the desert of male middle age. And now there's the strange business of this woman, who may or may not still be in love with him. Somehow he finds himself riding in her Jeep, riding to her place, not for any of the sensational reasons you might imagine, but because he sort of got stuck in a conversation without any chance of escape. Now he has to find his way out—and home.
A bitingly funny, lethally wise portrait of a hapless nonhero's big adventure.
Yasmina Reza is a playwright and novelist whose plays Art, Life x 3, The Unexpected Man, and Conversations After a Burial have all been multi-award-winning critical and popular international successes, translated into more than thirty languages. She lives in Paris.
"Captivating . . . a novel that can be read in one swift and finally exhilarating rush."
–Caryn James, The New York Times Book Review


text:
Sony Cyber-shot WX100 and WX150 pictures and hands-onPocket-lint
If you're looking for a compact camera with a healthy zoom, then the Sony Cyber-shot WX100, or WX150, might just fit the bill, as well as in your pocket.
Described by Rachel Banin, head of personal imaging and sound at Sony UK, as an "evening camera", it's the sort of compact that you can slip into your clutch bag or jacket pocket without pulling at the tailored lines of your suit.
The Sony Cyber-shot WX100 is certainly compact in the hand, although as a result there isn't a great deal of grip on this camera. The 10x zoom is surprising, however, as it extends out of a body you'd expect to offer only half that.
Measuring 92.3 x 52.4 x 21.6mm and weighing just 124g, there is a 2.7-inch display on the rear of the WX100, with an average 460k-dot resolution.
In terms of control, this is very much a point and shoot, but it isn't a dumb camera. It lacks any sort of model dial, instead there is a slider on the rear to switch between stills, panorama (2D and 3D are offered) and movies. It will capture 1080i video.
Other features are accessed via the buttons and dial on the rear, which will then let you access features such as "background defocus" which cleverly guides it into the right position based on the zoom you select so the effect works. So even though this is a point and shoot, it still does a surprising amount.
Still at the core is Sony's new 18-megapixel Exmor R CMOS sensor with Optical SteadyShot. The 10x Sony G zoom lens gives you the equivalent of 25-250mm, although the max aperture is an average f/3.3, which is fairly slow.
We've included a couple of test shots we took with the WX100. We failed to grab the model's attention at the right moment, but the detail on the Matthew Williamson dress comes out nicely. The small fruit tree was shot using background defocus and the leaves do stand out sharply from the building behind, so it sort of works.
The WX150 is essentially the same as the WX100 described above, but it offers a slightly larger 3-inch display (at the same resolution). In the photo gallery the WX100 is pictured in white, the WX150 in silver.
Due to be available from the end of March 2012, we don't have the pricing, but they should be affordable.
Pocket-lint Adventures: Go karting with the TomTom Bandit
These are the best iPhone photos of 2016: Look what your phone is capable of
LG Action Cam is a Snapdragon-powered LTE camera offering 4K video
Pocket-lint Adventures: Monkeying around on Go Ape with TomTom Bandit
- Pocket-lint Adventures: Go karting with the TomTom Bandit
- These are the best iPhone photos of 2016: Look what your phone is capable of
- LG Action Cam is a Snapdragon-powered LTE camera offering 4K video
- Pocket-lint Adventures: Monkeying around on Go Ape with TomTom Bandit
- Pocket-lint Adventures: Eventing with the TomTom Bandit
- Samsung's UFS memory cards are a new standard, and they're ridiculously fast
- Fujifilm X-T2 preview: Continuous autofocus king
- Fujiiflm X-T2 vs X-T1: What's the difference?
- Pocket-lint Adventures: Single track riding with the TomTom Bandit
- 46 amazing and cringeworthy selfies: From the dangerous to the downright gross
- Pokemon Go Gym tips: How to battle, train and win
- Pokemon Go: How to find and catch rare Pokemon like Charizard, Blastoise and Alakazam
- Apple iPhone 7 vs iPhone 7 Plus vs iPhone 7 Pro: What's the rumoured difference?
- Pokemon Go: How to raise your XP level, power up and evolve your Pokemon
- Windows 10 free upgrade ends 29 July: Here's how to get it now


text:
Reload the page and try again.
Campus Resources:
The student center is helpful.
Campus Resources:
The library can get a bit crowded at times despite the fact that it is a fairly large library.
Campus Resources:
The student campus center was recently renovated, theres more space, more computers and you are able to set up appoints with your advisor.
Campus Resources:
Bunker Hill provides a great main campus, with parking at all times and plenty of spots to lounge around. Wifi is available on all campuses but Parking seems to be a big issue for commuters going to the Chelsea campus. I've gotten so many tickets, I'll stay away from the Chelsea campus next semester.
Campus Resources:
Sometimes when trying to find information it can be difficult but it's not a terrible school.
{{review.SectionLabel}} at {{review.EntityName}}:
Sorry, there are no reviews.
No summaries have been written about this school yet. If you are a student at this school, you should take the college student survey.
Non-registered users are limited to 5 school profile page views per month.
Register for free to gain full access!


text:
posted by October 18 at 16:57 PMon
Here's what conservative TV head Robert Novak has to say about Mike McGavick's chances: "His polls look more promising than Santorum's" … And, well, that's about it. (Santourm is at 40%).
Here's Novak:
The quest of former Safeco CEO Mike McGavick (R) to unseat Sen. Maria Cantwell (D-Wash.) also appears to have floundered, even though his polls look more promising than Santorum's.
And Novak's analysis of all the Democratic Senate seats that are in play?
Likely Democratic Retention
1. Michigan (Stabenow)
2. Minnesota (Open [Dayton])
3. Nebraska (Nelson)
4. Vermont (Open [Jeffords])
5. Washington (Cantwell)
6. West Virginia (Byrd)
Likely Republican Takeover
Leans Dem
1. Maryland (Open [Sarbanes])
2. New Jersey (Menendez)
Leans GOP
Oh, and what Novak doesn't tell you about the Jeffords's seat…It's not going to a Democrat. It's going to a Democratic Socialist.


text:
Clear Refill Strips, 5/8 x 1 3/4, 9/Pack
Brand: Command™
Item #: MMM17021CLR
- Hold firmly and remove cleanly without causing damage to the surfaces.
Third Party Certifications
Made in the USA 1% for the Planet Art & Creative Materials Institute Certified Non-Toxic (AP Nontoxic) B Corporation Bay Area Green Business Program Certified Biodegradable Products Institute CarbonFree Certified Choose Cruelty Free Clean Development Mechanism Certified Emission Reduction Climate Cool Certified Climate, Community, & Biodiversity Standards Eco Mark EcoLogo Electronic Product Environmental Assessment Tool Energy Star Qualified EPA Comprehensive Procurement Guidelines EPA Design for Environment Fair Trade Certified Fair Trade Federation: Trade Member Forest Stewardship Council Certified Green America Business Seal of Approval Green Leaf VOC+ Green Seal Certified Green-e Climate Certified Carbon Offsets Green-e Energy Certified Renewable Energy Credit Greenguard Indoor Air Quality Certified ISO 14001 Cradle to Cradle Certified: Basic Cradle to Cradle Certified: Gold Cradle to Cradle Certified: Platinum Cradle to Cradle Certified: Silver Cradle to Cradle Certified: Bronze New Leaf PMA Approved Nontoxic PMA Certified Nontoxic Produced Using Green-e Certified Renewable Energy Credits Quality Assurance International Certified Organic Rainforest Alliance Certified Agricultural Products Redefining Progress's Ecological Footprint Metholology 2.0 TGO Resource Saver: Tree-Free Fiber Scientific Certification Systems Indoor Advantage Scientific Certification Systems Recycled Content Scientific Certification Systems Indoor Advantage Gold Sustainable Furniture Council TGO Resource Saver: Rapidly Renewable Resource TGO Resource Saver: Rechargeable TGO Resource Saver: Reduced Packaging TGO Resource Saver: Refillable TGO Resource Saver: Remanufactured TGO Resource Saver: Renewable Energy The Gold Standard Verified Emission Reduction USDA Organic ASTM D6400 Certified Compostable Plastic ASTM D6868 Certified Biodegradable Plastic Coating TGO Resource Saver: Energy Saver LEED Credit A+ Staff Pick: Cheapest Green Choice A+ Staff Pick: Greenest Choice A+ Staff Pick: Best Overall Choice
Contains Recycled Content
Made of recycled content
Compostable Biodegradeable
Reduced Chemical Content
Totally Chlorine Free Elemental Chlorine Free Processed Chlorine Free Vegetable Based Ink Soy Based Ink Water Based Ink No Volatile Organic Compounds BPA Free Natural Rubber Phosphate Free
Greener Alternatives
Hold firmly and remove cleanly without causing damage to the surfaces. Holds: Up to 2 lbs; Permanent/Removable/Repositionable: Removable; Mounting Application: Command™ Adhesive; Width: 5/8".
Hold firmly and remove cleanly without causing damage to the surfaces. Holds: Up to 2 lbs; Permanent/Removable/Repositionable: Removable; Mounting Application: Command™ Adhesive; Width: 5/8".
|Global Product Type
|Mounting Tape
|Mounting Application
|Command™ Adhesive
|Refill(s) For
|Command™ Medium Hooks
|Up to 2 lbs
|Pre-Consumer Recycled Content Percent
|Post-Consumer Recycled Content Percent
|Total Recycled Content Percent
|1 3/4"
|Product Comments


text:
Welcome to Kiddies Kabin Specialists in Quality Nappy Cakes and Hamper Gifts, Organic Baby & Childrens Clothes and Soft Toys and Gifts. Our specialities are making good quality Baby Nappy Cake Gift Hampers in the shapes of Cakes, Aeroplanes, Trains, 3 wheel Trikes, Motorbikes, Boats, Guitars, Tractors, Sock Rose Bouquets, our list keeps growing, but why not take a look at our other products too for some lovely gift ideas to suit every pocket.
Our Baby Nappy Cake Gift Hampers are a fabulous idea to give as a gift to new parents to welcome their new Baby to the world. So if it is a Baby Boy Nappy Cake Gifts or a Baby Girl Nappy Cake Gifts or a Unisex design that you're looking for then choose one of our Kiddies Kabin Nappy Cakes in your chosen colour.
Our Nappy Cake Gift Hampers are also lovely as a centrepiece for Baby Showers, as a Hospital Gift or as a Maternity leaving present for a work colleague
Nappy Cakes
Our quality Nappy Cakes and Baby Gifts are designed to be both practical and beautiful and we absolutely love making Special Orders and planning with Customers what they would like in their Nappy Cake Hamper Gift.
Each Nappy Cake is individually handmade and gift wrapped in cellophane and decorated with ribbons and bows, the Nappy Cake is then carefully packed in a custom made box and sent by courier to you or to the recipient within 2-3 days
We would like to Thank You for using our Kiddies Kabin website, we really enjoyed planning and making it for you and hope that you enjoy looking through our shop and that you enjoy the Kiddies Kabin Experience.


text:
Top Definition
An open cut that generally happens in combat sports which a fighter receives. Usually by an elbow or punch to the head
"That Marvin Eastman one was a goat's vagina" -Joe Rogan
ayon kay Pizzagoat ika-05 ng Hulyo, 2010
Trending Now
Ang mga sulat are galing sa email@example.com. Kailanma'y hindi kami magpapadala ng spam sa inyo.×


text:
Throughout its history, the Women's Center has advocated for women at Northwestern, both individually and institutionally. Making inroads towards gender equity requires serving as an effective catalyst on behalf of students, staff, and faculty, much of which is achieved through behind-the-scenes advocacy. The Center aims to transform the University into a community that supports the academic, career, and personal aspirations of all women at Northwestern University.
Institutional advocacy
Much of the Women's Center's institutional advocacy work is conducted through staff service on University-wide committees, where we assess the effectiveness of institutional policies and procedures pertinent to women.
Based on feedback from our constituents, our ongoing struggles relate to:
- Pay equity
- Healthcare and childcare
- Discrimination
- Revision of sexual assault and sexual harassment policies and procedures.
The Women's Center has been instrumental in creating major University policies, including the policies on Sexual Harassment and Sexual Assault, and Civility, Mutual Respect & Violence in the Workplace.
Individual advocacy
On the individual level, the Women's Center takes active measures to help individuals obtain mental health, legal, or academic assistance. Staff members are trained advocates for survivors of sexual harassment, sexual assault, physical violence, discrimination, and other barriers that impede one's personal, professional, or academic development. As advocates, we believe all survivors have the right to respect, information, confidentiality and social justice.Back to top


text:
How To: Set Up MagicJack Plus For Use Without A Computer
What do you think about this video?
ana vasquez: magic jack my god I don't know how to connect on my phone
SAMUEL "EnderBroCraft" CRAFT: My magic jack go the other people can hear me but there voices Goes in out can u help me
Swapnil Ajgaonkar: Hey, thanks for this video & Happy New Year 16.
Roger Knox: why a vontage box can not connect wireswelly.
01Charger Dodge: will magicjack use gigabytes on your computer thank you.
Elezer Daniel: Hey guys a brand new magic jack is on sale on my ebay at "staytrue2515" go check it out
101perspective: I had the old magic jack and upgraded to this one. To be honest, I liked the old one better. It was smaller and looked better.
The only benefit to this one is the ability to use it without being connected to a computer. However, when you do this the unit heats up BIG TIME. I would never leave this plugged into the wall for long periods of time.
That said, if my computers ever break down at the same time then I guess I will be able to make a maintenance call still.
Mohammad Hosseinian: sorry can not get calls
Schutzstaffel: So if i'm not mistaken there's 2 way to use MagicJack With computer and without. so for With computer just simply plug in and follow the instruction and ready to go right?
Cuz my new job is dealing with this.. and its gonna be my first time.
scarlet lovely: it plugs to your modern. also sometimes if you have problem disconnecting it from the electrical outlet does the trick. I love my magicjack plus. i also use it on my iphone to call and text with wifi. Saves me a lot of $ a yr.
Melissa Vidal: Do you see a telephone keyboard on the desktop if connected via a plug adapter?
kiki0244: Thanks for the video. My magic jack works great now where as before I just couldn't get it to work without my computer. For those saying you have no service there are two Ethernet cables needed. The original going from router to wall and the second one going from router to phone. It took me a minute but mine is working great now. Best of luck!!!
Peggy wilson dobbs: Did all the steps and still NO service. Been a total of 8 + hours trying to straighten out a mess your customer service got all messed up and now I have NO service and I still have time on my contract.
Jose Antonio Figueroa: I need the telephone for magic jack for new service
Jada Williams: So you need Internet ?
lillette patel: Watch this Video - very helpful and simple to set-up
Michelle Grumbles: can you keep your same phone Number???
K. patterson: question- where you plugged he MJ into a wall plug is that the end that originally went into a phone jack?
Geoffrey Rodriguez: Hi. I have an incoming but don't have the outgoing using the uniden dect 6.0. Could it be the phone cord? Or the compatibility of the handset?
How To: Set Up MagicJack Plus For Use Without A Computer 5 out of 5


text:
2005 Mercedes-Benz ML350 Repair and Maintenance
A guide to problems, costs, maintenance and repair for your 2005 Mercedes-Benz ML350
Verified by mechanics, reported by drivers like you
Ask a mechanic in our community
Never overpay. Check prices with our estimator
2005 Mercedes-Benz ML350 ProblemsRear Tailgate Latches May Hang up and Cause Battery Drain
The tailgate latch may stick causing a drain on the battery while the vehicle is parked.
A no start condition may develop due to an anti-theft system fault. If the drive authorization module fails to recognize the keys, the engine will not start. In many cases, a new module and keys will be needed to correct this problem.
AC system leaks and/or a faulty evaporator temperature sensor can cause poor AC cooling. The failed sensor can prevent the AC compressor from coming on. Leaks cause a low refrigerant level, which reduces the ability to cool.
2005 Mercedes-Benz ML350 QuestionsIs there a way to bypass limp mode due to Error code: P0715 (Turbine/Input Shaft Speed Sensor Circuit) in order to get to mechanic? (1 answer)
Had 2 friends who had 05 ml350's and both had some issues. Any help is appreciated. Thanks


text:
Originally posted by Joel Couture at Fanboyscloset
It's dark. You shake your head, clearing away the last of the fog over your thoughts as you look down. A chainsaw sits on a stump, covered in blood. You hear your girlfriend scream somewhere in the void all around you. You pick the chainsaw up, pulling the cord a few times before it revs to life, a spray of blood showering off it. You scowl.
Then you talk about your feelings in a half hour cutscene. You cry. Twice.
Every once in a while, I miss the days where the only story you had in a game was the one you made up, or very little beyond that. Splatterhouse is a series very much from that period, giving you an enchanted mask and a penchant for blood without explaining anything other than the fact that your girlfriend was not immediately nearby recently. You can't really get away with that little storytelling now outside of a downloadable game, so I expected the new one to have a terrible, but present, story, one that tries to give a logical explanation on why you tear out rectums from giant piles of meat (Not making this up. Happens in game. A lot.).
If you're sick of anime prettyboys and faceless marines, desiring nothing more than to punch some people until they're goo, the new Splatterhouse delivers. In pretty much a retelling of the original story, you beat heads in until you get your girlfriend back. The enemies in the game all look hurt already, masses of pulp and flesh that just beg to get beat on. Each of them have several weak points that, when low on health, become available to do a close-up kill that usually involves the removal of some necessary body part. Combined with big bosses and a ton of moves, this game will satisfy the desire for a good old beat-em up.
There aren't a whole lot of enemy types in the game, but each one usually requires a certain style of attack to fight effectively. If that still sounds easy, they tend to throw them at you in opposing groups. They'll send fast ones with brutes, or several styles of long and short range, to see what you do about it. It's not exactly rocket science stuff, but even on the easiest setting I was sent back to the loading screen many, many times. It wasn't from the game being cheap, but more from me not paying as much attention to one style while I fought the other. It keeps the game fresh for longer than it really should.
Also, if you hate brown, boring levels, this game has almost none. You shoot around all over the place, the game claiming you're going through portals as an excuse to do whatever type of level it wants. It takes you from old mansions to the insides of monsters to a sunswept temple, just because the game does whatever it wants. The variety is fun, and helps with the lighthearted nature of the game. Violent, but lighthearted.
Which is where the plot comes in. There is an attempt to give this series a background story, but it's all a joke relayed by a homicidal mask voiced by Tigger from Winnie the Pooh. It's all meant to be done in fun, set up as if the story is self-aware that it will be stupid no matter what. It goes so far as to have the mask tease the main character every time he tries to examine his motives or anything like that. It's refreshing, but not in large doses.
Which kind of describes this game, unfortunately. The longer you play the game, the more the seams show. The combat is good and varied, but the kill animations you can do get dry in a hurry, and they're still the best way to finish off most monsters. You're left stuck watching the same kill a hundred times over the course of the game, and you get sick of them in a hurry. You've got a fantastic amount of moves, but there is some stupid ones you have to buy. You have to purchase the ability to not take damage during a defensive roll, for one example.
The graphics aren't that hot, either. While you get a lot of variety in locales, they all seem kind of sparse. Maybe if they hadn't padded out each level with too many encounters and similar areas, it wouldn't have seemed as bad, but this game loves to pad itself. The last level alone is at least 80% padding, taking well beyond the length it should have. The enemies also all have far too much health, leaving you whaling on them for minutes on end while seeing another two respawn right behind you. The whole thing just feels like it could have been a tight but short game. Maybe if they'd left it that way, I would have liked it more.
It is all well and good to eschew plot, but the game needs to be really solid to get away with that these days. Splatterhouse is a fun game, don't get me wrong, but it just doesn't hold up in the long run. You won't be able to get enough of it in the first few levels, but by the end, you'll be begging for it to stop.


text:
New Here?
Thank you for visiting New Hope Community Church online! We hope that by visiting this website you get an idea of what New Hope is all about and all that it has to offer. Whether you have been involved with church your whole life, or are just starting to explore the idea of it, we want you to know that you are welcomed to be a part of our family.
Give Online
Click Here to make a one time gift.
Click Here for Recurring Giving.
Building New Hope
Twenty-three years ago one of our dreams was that New Hope Community Church would be a reflection of our city. Today, we are now a community of people of all ages from diverse ethnic backgrounds and socio-economic groups. We are most proud of the fact that God has truly blessed us with a multi-cultural and generational congregation.
"It was during this time the Holy Spirit spoke in a gentle voice these words, "Take this feeling that you have inside…outside these walls and let it shine!"
Malcolm MacPhail
Lead Pastor
New Hope Community Church
Lead Pastor
New Hope Community Church
Contact Us
Location and Mailing Address:
8886 Muraoka Dr., Gilroy, CA. 95020
Church Office:
- Monday-Thursday: 9:00am – 4:00pm
- Phone: 408-842-4857
- Fax: 408-842-5238
- General Office Email: email@example.com
Staff Contacts:
- Malcolm MacPhail – Lead Pastor: Email
- Bill Hawkins – Executive Associate Pastor: Email
- Chris Soto – Executive Associate Pastor: Email
- Jared Stefani – Youth Pastor: Email
- Michelle Hawkins – Children's Pastor: Email
- Laura Stefani – Worship Pastor: Email
- Don McMurray – Pastoral Care: Email
- Scott Olson – Teaching Pastor: Email
- Kathy MacPhail – Women's I.N.C.: Email
- Tori Koppelmaa – Executive Administrative Assistant: Email
- Stefanie Rodriguez – Receptionist/Administrative Assistant: Email


text:
Definition of technikon in English:
(In South Africa) an institution offering technical and vocational education at tertiary level.
Example sentences
- This guide contains information on about 3000 courses offered by universities, technikons, private and technical colleges in South Africa.
- He said government departments had bursary schemes in technikons and technical colleges to provide learners with financial assistance.
- As the route to paid employment, universities remain first choice, technikons second, and colleges for further education and training a poor third.
Greek, noun use of the neuter of tekhnikos 'relating to skills'.
For editors and proofreaders
Line breaks: tech|ni¦kon
What do you find interesting about this word or phrase?
Comments that don't adhere to our Community Guidelines may be moderated or removed.
= trending


text:
Buffalo Bills spokesman Scott Berchtold said the team's policy is not to discuss pending litigation.
5 former Buffalo Bills cheerleaders sue over pay →
"We first recommend to players that if they are going out as a group to plan ahead and select one person who will refrain from drinking alcohol and serve as a designated driver," Berchtold said. "If they are not planning to select a designated driver from the group or if they are not in a group setting, we have two programs they can utilize."
Most NFL teams offer players safe rides programs →


text:
Book online or call 800-246-8357This call is free. 24 hours a day; 7 days a week.
Hotels in Joliet near Joliet, IL (JOT-Joliet Park District)
Hotels near Chicagoland Speedway
Hotels near Harrah's Casino
Hotels near Joliet Area Historical Museum
Hotels near Joliet Junior College
Hotels near Rialto Square Theater
Hotels near Silver Cross Field
Hotels near University of St. Francis
Hotels near Westfield Louis Joliet Shopping Mall
Hotels near Joliet Union Station
Sign up for our latest offers
Download the app and book on the go
Join now to collect 10 nights, get 1 free*
© 2016 Hotels.com, L.P. All rights reserved.
Hotels.com and the Hotels.com logo are trademarks or registered trademarks of Hotels.com, LP in the U.S. and/or other countries. All other trademarks are property of their respective owners.
* Learn more about Hotels.com® Rewards


text:
Dr. Chan works in Boston, MA and 1 other location and specializes in Podiatric Medicine. Dr. Chan is affiliated with Beth Israel Deaconess Medical Center West Campus, Boston Childrens Hospital and South Shore Hospital.
Podiatric Medicine
Medical School: Not Available
Please verify insurance information directly with your doctor's office as it may change frequently.
*This physician has multiple office locations. See Office Information for details.
800 Washington St Tmc Box 306
Boston, MA 02111
294 Washington St Ste 217
Boston, MA 02108
30 Lancaster St FL 2
Boston, MA 02114
55 Fruit St Ste 3F
Boston, MA 02114
55 Fruit St Ste 3F
Boston, MA 02114


text:
|Publication number
|Publication type
|Application number
|Publication date
|Dec 7, 1999
|Filing date
|Feb 9, 1995
|Priority date
|Feb 11, 1994
|Fee status
|Also published as
|Publication number
|William G. O'Farrell, Eshrat Arjomandi
|Original Assignee
|International Business Machines Corporation
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (7), Non-Patent Citations (19), Referenced by (53), Classifications (7), Legal Events (8)
|External Links: USPTO, USPTO Assignment, Espacenet
1. Field of the Invention
The present invention is directed to a mechanism for providing concurrent operations in order to maximize processor use, particularly in a compiled object oriented paradigm such as C++.
2. Description of the Related Art
In a simplistic model (such as an isolated workstation) a single program running on a single processor would perform each of its routines in a programmed order in sequence, dominating the processor until complete. A call to a subroutine (possibly a program module stored in a separate area of memory) would cause the processor to suspend or block operation on the main program while processing the subroutine. In this scenario, the processor resources are completely utilized (the processor is never left idle) and as there are no concurrent programs competing for the processor resources, the domination of the processor for the duration of processing the program and its routines is not a problem.
In a distributed system, multiple processors each with associated memory are available, and a call to a subroutine outside the program could easily be a call to a program module residing on a different processor on the system. It is the remote processor then that would perform the operations for the subroutine to return the desired results to the main program.
Linked multiple processors or distributed systems are becoming increasingly popular with the advent of the distributed computing environment (DCE) of the Open System Foundation (OSF), an emerging technology enabling distributed computing among heterogenous systems.
In the normal local procedure call, there is a unique interface between the calling program and a specific subroutine, and the local procedure call invokes all necessary logic for operability. When the subroutine resides on a different machine than the calling program, as in a distributed system, communications logic (i.e. the location of the subroutine, data conversions, etc.) is required for the call and traditionally must be hard coded into the calling and/or called programs. This would be especially complex where the remote processor is not homogeneous or compatible with the calling function.
By contrast, DCE, when implemented on each of the disparate systems, allows transparent inter-operation between computers on the network through a mechanism called the "remote procedure call" (RPC) that extends to the distributed environment, and particularly the heterogeneous environment, the concept of the local procedure call.
As a result, remote calls are handled transparently to the programmer as well as the user, as the programmer is no longer required to code support for each remote call.
However, in any distributed environment, unless provisions are made during program planning, the main program continues to occupy its processor even while suspended or blocked and awaiting return of its remote call. During the period of this suspension, the processor is idle.
The time that the waiting program is suspended might, in real terms, amount to only fractions of a second if the remote processor can operate on the subroutine immediately. However, in complex distributed systems, queuing at the remote processor can introduce considerable time delays, and all the while the waiting processor continues to be idle.
The ideal situation would be to have concurrent operations on each processor, that is, every active object would have a separate thread so that while one thread was "waiting" or suspended, other threads could use the processor.
DCE (and other systems) include features that permit the programmer to create and manipulate multiple threads in a single program. In DCE, this multi-threading feature is in the form of an application programming interface based on the "pthreads" interface, specified by POSIX in their 1003.4a Standard (Draft 4): IEEE P1003.4a/D4 Draft Standard, Threads Extension for Portable Operating Systems, Technical Committee on Operating Systems of the Institute of Electrical and Electronic Engineers (IEEE) Computer Society, New York, U.S.A., Aug. 10, 1990.
However, DCE and other multithreading systems require the programmer to structure a program with multiple threads of control, and this can introduce increasing complexity in designing the program. The numerous threads must be managed, scheduled and allowed to communicate in a controlled manner, and it is usually difficult to foresee all occasions in which concurrency would be appropriate, particularly if lengthy thread extensions are caused by factors at remote processors during remote calls.
Thus, multi-threading features tend to be inhibiting to use and problems are difficult to predict.
In addition, there is a cost associated with switching threads in the processor of the waiting thread, in saving and reloading the processor registers, and in making the appropriate stack adjustments for the new thread. Consequently, the number of planned control switches between threads in a processor should be minimized in a traditional multi-threading system in order to truly maximize the economic benefit of concurrency.
The solution proposed in non-object oriented systems and in some object oriented systems with extended compilers, for example COOL (R. Chandra, A. Gupta and J. Hennessy, "COOL: A Language for Parallel Programming", Languages and Compilers for Parallel Computing, Editors D. Gelernter, A. Nicolau and D. Padua, MIT Press, 1990), is a mechanism known as a "future result". When a remote call is issued, the result of the subroutine call is stored in a future object or type to be returned to the main program in response to a future procedure call. In this way, the main program continues to run on its processor while the subroutine runs concurrently or synchronously. If the main program comes to the "future" call before the future variable is available, the program simply blocks at that point to await the desired result.
In non-object oriented systems, the message that the user is implementing a synchronous invocation varies widely from language to language. Explicit functions, such as calling "resolve" with "future" as an argument might be required in some systems, while in other systems the "future" call is handled automatically.
Object oriented environments seem particularly well suited to use through remote calls and remote procedure calls because the conception and implementation of object oriented languages provides the tools and facilities for modular programming in code sharing.
The computer simulated "objects" in object oriented paradigms are defined and maintained independently of each other, the definition of an object including its "methods", (that is the procedures or operations the object is capable of performing), and its variables (that is, its attributes, the values of which can change over time). Objects are defined through class definitions. A class is a template that defines the methods and variables to be included in a particular type of object. Classes can be defined in terms of other classes, that is the characteristics (methods and/or variables) of a subclass can be inherited from a superior, more generalized base class. In addition to the methods and variables they inherit, subclasses define their own methods and variables and this may include characteristics permitting the override of inherited characteristics, although the implementation of such derived classes is visible only within the class to prevent contamination of other class implementations.
An abstract class is a base class with no objects or instances, the sole purpose of which is to organize a class hierarchy or to find methods or variables that will apply to a lower level inherited class. Yet inherited methods and variables can be more narrowly defined or even redefined in a derived class, so that objects defined through this technology can be highly specialized and can fit within a complex system of related but not identical objects, and class hierarchies can encompass many levels. The flexibility available through object oriented technology is certainly attractive in the promise of breadth it can add in distributed computing environments.
However, the most popular object oriented language, C++ for example, is an inherently sequential language without any provision for concurrency. In fact, concurrent programming operations have been difficult to implement in object oriented paradigms in general, due to a lack of proper support for concurrency control, synchronization and mutual exclusions.
Futures have been used in object oriented languages others than C++ (such as LISP, Concurrent SmallTalk and COOL), however previous attempts to introduce them into C++ have been syntactically clumsy, for example requiring a programmer to add prologue and epilogue code in the program to specifically deal with the futures, or have required an extension of the language or non-standard compiler modification.
Numerous attempts have also been made in adding concurrency to C++, employing one of two approaches. In the first approach, the language is extended and new language constructs are added to handle the creation and control of concurrency, that is, the compiler is extended to recognize the new language constructs. A common way used by these languages to add concurrency is to encapsulate concurrency creation, synchronization and mutual exclusion at the object level. Such an object is called "active". While such newer extended languages provide enhanced performance, higher level constructs, and compile time checking, they are limited by a lack of portability between operating systems.
The second approach employs a library of reusable abstractions that encapsulate the lower level details of concurrency (for example, architecture, data partitions, communication and synchronization). The library approach keeps the concurrency mechanisms outside of the language, allowing the programmer to work with familiar compilers and tools, and this supports a higher level of portability, while providing the option of supporting many concurrent models through a variety of libraries. However, while most present concurrent task libraries for C++ attempt to provide concurrency through "active" objects, they fail to provide implicit concurrency and they also impose unwieldy restrictions on users. For example, the task library described in T. W. Doeppner, Jr. et al: "C++ on a Parallel Machine", Report CS-87-26, Department of Computer Science, Brown University, November 1987, is one of the earliest C++ libraries providing true concurrency. However, thread management is explicit (proper management is imposed on the programmer) and only one level of subclassing is permitted (limiting the flexibility obtainable through multiple inheritance levels available in object oriented languages). Limiting the number of inheritance levels to one is similar to the approach taken in the class library described in AT&T's C++ Language System Release 2.0, Product Reference Manual, 1989, Select Code 307-146. The library described in D. Grunwald's "A Users Guide to AWESIME: An Object Oriented Parallel Programming and Simulation Systems", Technical Report CU-CS-552-91, Department of Computer Science, University of Colorado at Boulder, permits arbitrary levels of subclassing from the task class in the library called "thread", but thread management using this class library is again explicit. In the numerous attempts at solving the problem of concurrency in C++ through a class library, the issues of object distribution over a network, asynchronous invocation and future communication, are not addressed.
It is therefore an object of the present invention to provide a mechanism for introducing both asynchronous invocation and futures smoothly and implicitly into a compiled object oriented language such as C++ without compiler modifications or special pre-processing.
It is also an object of the present invention to provide a mechanism for issuing a thread for every active object that can run simultaneously with other active objects on a shared or distributed memory multi-processor, as well as on a homogeneous cluster of processors or in a single processor simulating concurrency.
The invention therefore provides an interface mechanism and related methods implemented through a computer operating system in a parallel computing environment having a non-extended object oriented compiler and at least two memory storage facilities associated with separate processing operations, each memory storage facility being adapted for constructing object classes. The interface mechanism is adapted for generating asynchronous processing operations through first link means for receiving a procedure call from a first processing operation in association with one of the memory storage facilities and issuing a response to cause resumption of the first processing operation, and at least one register for invoking a data object function for a second processing operation in association with another of the memory storage facilities alongside the first processing operation.
In a further embodiment, an interface mechanism is provided in a computer operating system having at least first and second processing means, a non-extended object oriented compiler and dynamic memory storage for constructing object classes associated with the first processing means, for generating parallel processing operations within a single object oriented program. The interface mechanism consists of first link means for receiving a procedure call from the first processor processing means and issuing a response to cause the first processing means to continue processing, and at least one register for invoking a data object function for processing on the second processor means.
Preferably, the interface mechanism also includes means for receiving and storing a resulting variable for processing of the data object function on the second processing means, and second link means for transferring the resulting variable to the dynamic memory storage associated with the first processing means.
In a further embodiment of the invention, a class library is provided that is adapted for use with a non-extended object oriented compiler in a parallel computing environment having at least first and second processing means and dynamic memory storage associated with the first processing means. The class library includes an object class containing function execution data for invoking asynchronous methods, a first interface adapted to be linked between the first processing means and the object class on receiving a procedure call from the first processing means, a second interface adapted to be linked between the object class and the second processing means for invoking processing of an asynchronous method and for receiving a result from said processing, and a third interface adapted to link the first processor means with the result from said processing.
Embodiments of the invention will now be described in detail in association with the accompanying drawings, in which:
FIGS. 1 and 3 are flow diagrams illustrating the computer steps in initiating concurrent processing according to aspects of the invention; and
FIG. 2 is a schematic representation of the structure and functional operations of a pointer mechanism in the invention for asynchronous invocation.
Embodiments of the present invention have been developed for use on parallel processing systems such as shared memory or distributed memory multi-processors. However, it is intended that the invention is equally applicable to heterogenous distributed systems, for example, under a DCE type environment, and also in a uni-processor simulating concurrency, as in a reactive or interactive system.
The preferred embodiments of the present invention described herein have been implemented through a class library for C++. Utilizing the language operators of "virtual" declarations and "overloading" (the mechanism in C++ for redefining built-in operators, for example in a derived class), the invention provides that an interface is inserted in a procedure call from a program running on one processor to an object whose methods can or must be invoked on another processor. The interface mechanism then isolates the object from the calling program in the first processing environment, and provides for processing of the calling program and simultaneous independent processing of the method of the invoked object in a different processing environment.
Further, the result of invocation of the object is returned from the second processing environment to a register directly accessible from the first processing environment, and thereby made available if required at some future point in the calling program. If never required in the first calling program, the result is eventually deleted from this register.
The process for initiating concurrent or independent processing is illustrated in the flow diagram of FIG. 1. In the case of a multi-processor environment, a processor processing the calling program (block 10) invokes a method in a class whose data resides on a remote processor (block 12). This invocation results in the referencing or issuance of an "asynchronous" or "smart" pointer (block 14) which in turn initiates the remote call interface of the present invention (block 16) as described in detail below.
A template class in C++ is used to define a class of "smart pointers" which are used in the preferred embodiment to invoke or implement asynchronous invocation and are therefore referred to as asynchronous pointers. (Although the present invention is directed toward implementation of concurrent processing, each processing routine is permitted to continue normal processing operations in its own time. Therefore, each processing "thread" is treated as if it were an asynchronous operation.)
The concept of "smart pointers" was first introduced in C++ as a storage management scheme to permit the destruction from dynamic memory of data objects no longer in use.
Normally, a pointer is a variable used by a program to register the address or location in dynamic memory of a data field whose whereabouts varies. However, in traditional implementations, smart pointers point not to the location of an actual object, but to an intervening "virtual" object that contains a pointer to the actual object. The smart pointer can include other information pertinent to object destruction, including how many other pointers point to the actual object, as a safeguard against premature object destruction. Where the number of other pointers pointing to the actual object is zero, the actual object can safely be destroyed.
In the preferred embodiment of the present invention, the template mechanism of C++ is used to define a class of smart pointers including a virtual functional table as illustrated at 34 in FIG. 2. As implemented in the preferred embodiment, the template class, called "AsynCall", contains a number of virtual "AsyncTask" pointers, any one of which could manage the creation and destruction of numerous independent or asynchronous threads having the built-in safeguards to avoid premature thread destruction discussed in further detail below. Thus, part of the private and public declarations of this AsynCall template class is defined as:
______________________________________ template<class T> class AsynCall [ private:T* actual-- pointer;virtual AsyncTask* af0( . . . );virtual AsyncTask* af1( . . . );virtual AsyncTask* af2( . . . ); . . .virtual AsyncTask* afn( . . . );public:AsynCall(T* p){ actual-- pointer = p; };AsynCall( ){ actual-- pointer = (T*)0; };T* operator->( ){ return (T*)this; };AsynCall<T>& operator=(T* p){ actual-- pointer = p; return(*this);};AsynCall<T>& operator=(const AsynCall<T>& arg){actual-- pointer = arg.actual-- pointer;return(*this);};} ;______________________________________
According to the invention, a procedure call or method invocation for an asynchronous invocation is issued from a smart pointer 32 to a "virtual" object, as in the traditional usage of smart pointers. However, the smart pointer does not return a pointer 40 to the target object of the call, but to an object which is typically itself, containing a virtual function table pointer 31 pointing to a virtual function table 34, where that object invokes the intended method from the target object virtual function table 36 by issuing a task which references the virtual function table pointer 42.
In a single level of inheritance, the object addressed by the pointer from the virtual object can be the smart pointer itself, and as shown in the AsynCall template listed above, up to 32 asynchronous tasks can be defined within the class and still fall within the recognized parameters of a virtual function table usable by the standard, non-extended compiler in C++. In the illustrated FIG. 2, the bracketed block 33 of virtual function table 34 represents the only virtual functions required for correspondence with the virtual function table 36 associated with the target object 38.
In the case of multiple inheritances, the pointer would be returned to an object with an appropriate nest of pointers, as known in the art.
In one aspect of the preferred embodiment of the invention illustrated in FIG. 1, the AsynCall virtual method takes care of handling the call on the target object (block 18), issues an asynchronous thread to commence processing on the called/invoked method (block 20), and returns the address of a "placeholder" to the calling object (block 24). The returned value is discarded by the caller (block 26), and the caller and called objects proceed concurrently (blocks 28 and 22).
The reason that this procedure produces an "asynchronous" invocation is because the methods of the smart pointer return to the caller immediately (blocks 18 and 24) , leaving the spun off thread to proceed at its own pace. On a parallel computer, generating such threads produces true parallelism. Alternatively, in some parallel computing systems, parallelism is not produced by generating threads. Instead, an entry is made in a queue of pending tasks. In implementing the present invention in such a system, each of the methods of the smart pointer would make the appropriate queue entry and would then return immediately, allowing the calling task to continue processing while the asynchronous call waits for a worker task to execute it.
An example of an asynchronous invocation follows:
______________________________________ class C {public: int n;virtual int f( );};intC::f( ){ . . . ; return(n);}; //f computes for a while, then returnsmain( ){C c; // an instance of CAsynCall<C> p = &c; // a smart pointer instancep->f( ); //asynchronous invocation of f (result discarded).. //some additional cornputation, in parallel with p->f( ).}______________________________________
Although asynchronous invocation is most useful on true parallel computers, it should be noted that it can still be usefully implemented on serial computers. On a serial computer, such threads and/or tasks can be simulated, allowing the programmer to express logical parallelism (although not true parallelism) where it makes sense to do so. It can be especially useful to do so in interactive or reactive systems where the capability of expressing and simulating parallelism can improve the throughput and perceived responsiveness of the system.
The present invention also permits the calculation of future values concurrently with processing of the main program and this is illustrated in the flow diagram of FIG. 3.
As mentioned above, futures have been introduced into C++, but only through the use of a pre-processor which renames all user methods so that method invocation can be intercepted. According to this mechanism, futures cannot be used to receive results from ordinary methods. Instead, the programmer must re-write all methods (usually in a derived class) in order to expect future reference arguments or return future results. This implementation of futures is very inconvenient and awkward to use.
In the present invention, futures have been introduced without the need for a pre-processor or extended compiler. The steps described above in relation to FIG. 1 are followed up until the point at which a value is returned to the calling program to permit resumption of processing (block 24 in FIG. 1). Instead of returning a "placeholder" value to be discarded, the asynchronous pointer returns a value to the calling program (block 50 in FIG. 3), although it is not the hoped for value to be returned from the target method operating on the target object. Instead, it is a pointer to the thread (or worker task queue entry) that is charged with computing that result.
In the preferred embodiment of the invention, the return type would be labelled AsyncTask (that is, a pointer to an asynchronous task) but the specific return type would depend on the particular parallel computing system that the futures are implemented within. These AsyncTask pointers are a key element in the system for implementing futures in this form of the embodiment, because each time one is returned to a calling program, it essentially serves as a temporary stand-in for the value that will eventually be returned from a target method. If the calling program does not need a value returned from some target method, it can discard the AsyncTask pointer returned to it (as proposed in the FIG. 1 method). However, if the calling program anticipates requiring this value, the value is stored into a future object (blocks 52 to 56), created with a future template such as described below:
______________________________________template<class T> class Future {AsyncTask* at;public:Future(const T& val){at=(AsyncTask*)val; //The value actually used is a tast pointer};Future( ){ at = (AsyncTask*)0; };Future<T>& operator=(const T& val){at=(AsyncTask*)val;//The value actually assigned is a task pointerreturn *this;};int readyp( ){ return at ->readyp( ); };conversion operator T( ) { return (%) at ->join( ); };//join waits for the thread to complete,and returns the compute value};______________________________________
The future class is parameterized on the type of the value expected to be returned from the target method, which shows a future being used.
Then, any processing program uses the value returned from an asynchronously invoked target method, it uses the overloaded "=" operator to store into a future object the value that is immediately returned from the asynchronous method invocation. The compiler allows the future object to be used as a target of such an assignment because the overloaded "=" operator is typed to expect an argument of the same type as the invoked method is typed to return. In actuality, however, the value returned is of type AsyncTask, and essentially the compiler is misled regarding the type of the pointer returned from the asynchronous invocation. This causes the compiler to generate code to invoke one of AsynCall's virtual methods instead of the target method. When AsynCall's invoked method returns an AsynTask instead of a Task (block 64) , and the future objects "=" operator misleads the compiler by telling it that its expected argument has type Task, when the type of the argument is known to be really an AsynCall task. In this way, virtually any C++ compiler, unmodified and unextended, will generate code which implements futures which have the look and feel of a smoothly integrated language extension.
In the preferred embodiment, futures are specifically invoked in the following way.
The first action taken by operator "=" when it is invoked is to convert its argument to be of the correct type (that is, AsynTask block 52). In the template class, this conversion is done with a simple type cast, however in practice, more complex conversions can be employed, such as extracting the first word of a multi-word returned value. Such a conversion can even be keyed on the size of the returned value by applying the C++ size of operator to task in the future template.
Secondly, the operator "=" assigns its converted argument to a private variable (block 54) so that a record is made of which a computing agent is responsible for generating the hoped for actual value eventually to be returned from the target method. Finally, operator "=" returns to the calling program giving a reference to itself as its return value (block 56).
Once the operator "=" has returned from its invocation on a future object, the calling program can proceed independently without having to wait for the result which is eventually to be computed by the target method (block 58). However, that result will usually be needed at some point, and the future object represents a "promise" to deliver it. The promise is fulfilled (that is, the future is "resolved") by the conversion operator (operator "T") as shown in the futures template. This operator is invoked by C++ whenever a future instance is used where a task is required. The conversion operator performs more than a simple conversion; it checks to see if the future has been resolved (that is, the asynchronous invocation has returned the expected result). If the future object is unresolved, the conversion operator waits for completion of the asynchronous invocation causing the calling program to block, if necessary (block 60). Once the future object is resolved, the conversion operator returns the expected value (blocks 62, 64) and the calling object proceeds with its activity (block 66)
The use of future objects is demonstrated below:
______________________________________ class C { public:int n; virtual int f( );};int C::f( ){ . . . ; return(n);};//f computes for a while, then returns nmain( ) { int y;C c;AsynCall<C> p = &c;Future<int> x;x = p->f( ); //as before, an asynchronous call,this time returning a value. //do some computation.y = x; //wait for and then retrieve the value returned from p->f( )}______________________________________
In a further aspect of the preferred embodiment, the issue of storage management as it relates to asynchronous tasks is addressed. C++ does not have any native garbage collection (dynamic data structure management) facilities and thus C++ programmers must handle dynamic storage explicitly with the operators "new" and "delete". In the preferred embodiment, the utilization of futures imposes no special storage management requirements on the users of futures, but AsynCall and future templates must themselves be programmed to handle storage sensibly. In other words, the AsynCall template that dynamically allocates the asynchronous task that is to perform the work of asynchronous method invocation must also include arrangements for that storage to be deleted later.
In one alternative, the AsynCall destructor would perform the deletion. The destructor would wait for the asynchronous task to terminate before deleting it, but this would mean that future instances would be deleted along with the AsynCall instances used to generate them.
Another alternative proposed in the invention is for the AsynCall pointer to delegate deletion to the future instance to which its result is assigned. Thus, futures performing such deletions would include their destructors. However, care would have to be taken to avoid the possibility of assignment to a future instance (i.e. the result is discarded).
In the preferred embodiment illustrated in FIG. 2, the AsynCall methods return a pointer 40 to an object which in turn contains the asynchronous task pointer 42. This object could also contain an integer to be used by the future instance to indicate that it has taken over the chore of deletion. Then, when the AsynCall destructor is invoked, it would first check to see if a future has committed itself to do deletion, and if not, to do the deletion itself.
If deletion is delegated to futures, then the futures template would be modified to include a copy constructor (and possibly additional private data) in order to manage multiple copies of futures. Copying of a future could occur either by assignment or by parameter passing, and would ordinarily not be a problem in C++.
However, if copying occurs in concert with delegation of deletion, then standard C++ techniques (such as reference counting) would be employed to ensure that the only copy of a future to do a deletion is the one which was last destroyed.
In the case of multiple invocations (i.e. concurrently running several asynchronous method invocations) on a single object, a complication arises in storage management because many or all of those invocations may have been generated by a single AsynCall pointer. If it is to be the pointer's responsibility to perform otherwise uncommitted deletions of the task that it generates, then it has to maintain a list (or other container) of such tasks so that its destructor can iterate over the list to do the deletions.
The concurrent class library of the preferred embodiment of this invention is presently implemented on a network of "IBM� RISC SYSTEM/6000�" processors (IBM and RISC SYSTEM/6000 are registered trademarks of International Business Machines Corporation.) processors using TCP/IP for inter-processor communication. It is written in C++, with the exception of a few lines of code which are written in assembly language. However, it will be obvious to one skilled in the art that the concurrent class library may be ported to other platforms, including distributed memory multi-processors and uni-processors with features simulating parallel processing capabilities.
While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.
|Cited Patent
|Filing date
|Publication date
|Nov 3, 1993
|Aug 23, 1994
|Digital Equipment Corporation
|Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
|Apr 30, 1993
|Dec 27, 1994
|International Business Machines Corporation
|System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages
|Dec 17, 1993
|Mar 12, 1996
|Taligent, Inc.
|Object-oriented networking system with dynamically configurable communication links
|Jul 5, 1990
|Feb 27, 1991
|International Business Machines Corporation
|System for calling procedures on a remote network node
|Title not available
|Title not available
|Title not available
|"Asynchronous Software Communication Using Response Objects" IBM Technical Disclosure Bulletin, vol. 37, No. 2A, Feb. 1, 1994, pp. 617/618.
|"Making Synchronous Communication Look the Same as Normal Method" IBM Technical Disclosure Bulletin, vol. 37, No. 2B, Feb. 1, 1994, pp. 589/590.
|Asynchronous Software Communication Using Response Objects IBM Technical Disclosure Bulletin, vol. 37, No. 2A, Feb. 1, 1994, pp. 617/618.
|Chandra, R.; Gupta, A.; Hennessy, J., COOL: A Language for Parallel Programming, Languages and Compilers for Parallel Computing, MIT Press (1990), pp. 126 148.
|Chandra, R.; Gupta, A.; Hennessy, J., COOL: A Language for Parallel Programming, Languages and Compilers for Parallel Computing, MIT Press (1990), pp. 126-148.
|Doeppner Jr., T.W.; Gebele, A.J., C on a Parallel Machine, Brown University, Techinical Report CS 87 26 (Nov. 1987), pp. 1 12.
|Doeppner Jr., T.W.; Gebele, A.J., C++ on a Parallel Machine, Brown University, Techinical Report CS-87-26 (Nov. 1987), pp. 1-12.
|Gelernter et al., Languages and Compilers for Parallel Computing, MIT Press, pp. 126 148, 1990.
|Gelernter et al., Languages and Compilers for Parallel Computing, MIT Press, pp. 126-148, 1990.
|Grunwald, D., A Users Guide to AWESIME: An Object Oriented Oriented Parallel Programming and Simulation System, University of Colorado at Boulder, Technical Report CU CS 552 91 (Nov. 1991), pp. 1 23.
|Grunwald, D., A Users Guide to AWESIME: An Object Oriented Oriented Parallel Programming and Simulation System, University of Colorado at Boulder, Technical Report CU-CS-552-91 (Nov. 1991), pp. 1-23.
|Gunaseelan L. et al. "Distributed Eiffel: A Language for Programming Multi-Granular Distributed Objects on the Clouds Operating System" Proceedings of the International Conference on Computer Languages, Oakland, Apr. 20-23, 1992, No. Conf. 4, Apr. 20, 1992, pp. 331-340. IEEE p. 336, left-hand col., line 7-68.
|Gunaseelan L. et al. Distributed Eiffel: A Language for Programming Multi Granular Distributed Objects on the Clouds Operating System Proceedings of the International Conference on Computer Languages, Oakland, Apr. 20 23, 1992, No. Conf. 4, Apr. 20, 1992, pp. 331 340. IEEE p. 336, left hand col., line 7 68.
|IEEE p. 1003.4a/D4 Draft Standard, Threads Extension for Portable Operating Systems, Technical Committee on Operating Systems of the Institute of Electrical and Electronic Engineers (IEEE) Computer Society, New York, Aug. 10, 1990.
|Making Synchronous Communication Look the Same as Normal Method IBM Technical Disclosure Bulletin, vol. 37, No. 2B, Feb. 1, 1994, pp. 589/590.
|Published EPO Search report, Application No. 95300699.6 2201. Publication date: Jan. 15, 1999.
|Published EPO Search report, Application No. 95300699.6-2201. Publication date: Jan. 15, 1999.
|Walker E F et al. "Asynchronous Remote Operation Execution in Distributed Systems" Proceedings of the International Conference on Distributed Computing Systems, Paris, May 28-Jun. 1, 1990, Conf. 10, May 28, 1990, pp. 253-259 IEEE p. 253, left-hand col., line 49--right-hand col., line 20 p. 255, right-hand col., line 18-- p. 256, right-hand col., line 30.
|Walker E F et al. Asynchronous Remote Operation Execution in Distributed Systems Proceedings of the International Conference on Distributed Computing Systems, Paris, May 28 Jun. 1, 1990, Conf. 10, May 28, 1990, pp. 253 259 IEEE p. 253, left hand col., line 49 right hand col., line 20 p. 255, right hand col., line 18 p. 256, right hand col., line 30.
|Citing Patent
|Filing date
|Publication date
|Sep 25, 1997
|Jul 3, 2001
|British Telecommunications Public Limited Company
|Distributed processing
|Jan 14, 1999
|Jan 29, 2002
|Compaq Computer Corporation
|System and method for statically detecting potential race conditions in multi-threaded computer programs
|Sep 18, 1998
|Feb 5, 2002
|Microsoft Corporation
|Representing base pointers in a shared memory heap
|Feb 8, 1996
|Mar 19, 2002
|International Business Machines Corporation
|Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects
|Jun 24, 1999
|Apr 2, 2002
|International Business Machines Corporation
|Apparatus and method for accessing an object oriented object using a smart passive reference
|Oct 20, 2000
|May 2, 2006
|International Business Machines Corporation
|Compiler for enabling multiple signed independent data elements per register
|Aug 28, 2003
|Jan 2, 2007
|Indian Institute Of Information Technology
|Method for executing a sequential program in parallel with automatic fault tolerance
|Jul 12, 2004
|Feb 27, 2007
|Computer Associates Think, Inc.
|Method and apparatus for parallel action processing
|Jun 21, 2006
|Jul 24, 2007
|Microsoft Corporation
|Asynchronous pattern
|Jun 28, 2001
|Oct 9, 2007
|Microsoft Corporation
|Asynchronous pattern
|Jun 4, 2004
|May 20, 2008
|Sun Microsystems, Inc.
|Thread suspension and method in a multi-threaded environment
|Jul 9, 2004
|Mar 9, 2010
|Microsoft Corporation
|Implementation of concurrent programs in object-oriented languages
|Nov 25, 2005
|Dec 14, 2010
|Slawomir Adam Janczewski
|Object-oriented, parallel language, method of programming and multi-processor computer
|Jun 29, 2007
|May 10, 2011
|Microsoft Corporation
|Memory transaction grouping
|Nov 8, 2005
|Jun 21, 2011
|Fujitsu Limited
|Biological information detecting device
|Aug 23, 2011
|Microsoft Corporation
|Efficiently locating transactional code blocks in a transactional memory system
|Oct 4, 2011
|Microsoft Corporation
|Transacting accesses via unmanaged pointers
|Jan 17, 2012
|Microsoft Corporation
|Transactional debugger for a transactional memory system and detecting conflicts
|Jun 26, 2007
|Jun 5, 2012
|Microsoft Corporation
|Object model for transactional memory
|Jul 17, 2012
|The Mathworks, Inc.
|Client program executable on multiple heterogeneous server platforms
|Apr 1, 2010
|Jun 25, 2013
|The Regents Of The University Of California
|Systems and methods for parallel distributed programming
|Mar 8, 2011
|Jul 9, 2013
|Microsoft Corporation
|Memory transaction grouping
|Jun 25, 2009
|Sep 24, 2013
|Panasonic Corporation
|Generation and concurrent execution of a virtual task in an execution order determining system
|Apr 27, 2010
|Oct 1, 2013
|Microsoft Corporation
|Resumable methods
|Jun 16, 2011
|Oct 29, 2013
|Microsoft Corporation
|Using compiler-generated tasks to represent programming elements
|Aug 4, 2006
|Dec 3, 2013
|Microsoft Corporation
|Software transactional protection of managed pointers
|Dec 13, 2011
|Feb 11, 2014
|Microsoft Corporation
|Transactional debugger for a transactional memory system and detecting conflicts
|Jul 2, 2008
|Sep 23, 2014
|International Business Machines Corporation
|Methods, systems, and computer program products for asynchronous resumption of a dataflow
|Mar 14, 2013
|Nov 18, 2014
|Microsoft Corporation
|Providing distributed array containers for programming objects
|Jun 29, 2012
|Dec 30, 2014
|Microsoft Corporation
|Implementation of distributed methods that support generic functions
|May 7, 2013
|Feb 24, 2015
|International Business Machines Corporation
|Processing code units on multi-core heterogeneous processors
|Jun 29, 2012
|Nov 3, 2015
|Microsoft Technology Licensing, Llc
|Partitioned array objects in a distributed runtime
|Oct 22, 2014
|May 31, 2016
|Microsoft Technology Licensing, Llc
|Providing distributed array containers for programming objects
|Feb 7, 2001
|May 23, 2002
|Takahiro Ishikawa
|Compiler for compiling source programs in an object-oriented programming language
|Sep 30, 2003
|Jul 1, 2004
|Mcmanus Deborah R.
|Statement level tracking in a document production and management process
|Aug 28, 2003
|Sep 2, 2004
|Indian Institute Of Information Technology
|Method for executing a sequential program in parallel with automatic fault tolerance
|Jul 12, 2004
|Jun 30, 2005
|Computer Associates Think, Inc.
|Method and apparatus for parallel action processing
|Jul 9, 2004
|Jan 26, 2006
|Microsoft Corporation
|Implementation of concurrent programs in object-oriented languages
|Nov 8, 2005
|Mar 16, 2006
|Fujitsu Limited
|Biological information detecting device
|Nov 25, 2005
|Jul 19, 2007
|Janczewski Slawomir A
|Object-oriented, parallel language, method of programming and multi-processor computer
|Apr 2, 2007
|Dec 6, 2007
|Mza Associates Corporation
|Software development framework using component-based architecture
|Aug 4, 2006
|Feb 7, 2008
|Microsoft Corporation Microsoft Patent Group
|Software transactional protection of managed pointers
|Jun 1, 2007
|Dec 4, 2008
|Microsoft Corporation
|Efficiently locating transactional code blocks in a transactional memory system
|Jun 25, 2007
|Dec 25, 2008
|Microsoft Corporation
|Transacting accesses via unmanaged pointers
|Jun 19, 2007
|Dec 25, 2008
|Microsoft Corporation
|Transactional debugger for a transactional memory system
|Mar 4, 2008
|Sep 10, 2009
|Microsoft Corporation
|Declarative support for asynchronous methods
|Jul 2, 2008
|Jan 7, 2010
|International Business Machines Corporation
|Methods, systems, and computer program products for asynchronous resumption of a dataflow
|Sep 23, 2008
|Mar 25, 2010
|Microsoft Corporation
|Parallel processing of an expression
|Jun 25, 2009
|Sep 16, 2010
|Tadao Tanikawa
|Execution order determining device, execution order determining program, execution order determining circuit, and information processing device
|Apr 1, 2010
|Oct 7, 2010
|Lei Pan
|Systems and methods for parallel distributed programming
|May 7, 2013
|Sep 19, 2013
|International Business Machines Corporation
|Processing code units on multi-core heterogeneous processors
|May 29, 2013
|Dec 12, 2013
|Advanced Micro Devices, Inc.
|Heterogeneous Parallel Primitives Programming Model
|Nov 7, 2005
|May 9, 2007
|Slawomir Adam Janczewski
|Object-oriented, parallel language, method of programming and multi-processor computer
|U.S. Classification
|719/330, 717/114, 717/149
|International Classification
|Cooperative Classification
|European Classification
|Feb 9, 1995
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:O FARRELL, WILLIAM G.;ARJOMANDI, SHRAT;REEL/FRAME:007473/0871
Effective date: 19940210
|Aug 25, 1995
Owner name: IBM CORPORATION, NEW YORK
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARJOMANDI, ESHRAT;REEL/FRAME:007602/0159
Effective date: 19950710
|Dec 19, 2002
|Fee payment
Year of fee payment: 4
|Jan 10, 2007
|Fee payment
Year of fee payment: 8
|Jul 11, 2011
|Maintenance fee reminder mailed
|Sep 13, 2011
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:026894/0001
Owner name: GOOGLE INC., CALIFORNIA
Effective date: 20110817
|Sep 20, 2011
|Surcharge for late payment
Year of fee payment: 11
|Sep 20, 2011
|Fee payment
Year of fee payment: 12


text:
Final promotional sketch with the title of a workshop I will be teaching in the next weeks at Tampico, Tamaulipas, Mexico. (Antimateria - Prodiseño 2013).
keyboard shortcuts:
L or F like
Z toggle zoom
post comment
Show and tell for designers
What are you working on? Dribbble is a community of designers sharing screenshots of their work, process, and projects.
Copyright © 2009–2016 Dribbble LLC. All screenshots © their respective owners. Shipped from Salem, Mass. USA.