text:
Download presentation
Presentation is loading. Please wait.
Published byBreana Artis Modified over 2 years ago
Eiffel in Depth Bertrand Meyer With material by Emmanuel Stapf (Eiffel Software) & members of the ETH Chair of Software Engineering Chair of Software Engineering
2 Plan of these slides 1Overview 2The environment(s) 3 Method overview 4 Language basics 5 Dynamic model 6Genericity & inheritance 7Design by Contract 8 External interface 9Agents 10 Advanced design 11 Advanced mechanisms 12 Conclusion 13 Supplements
3 Purpose of this course To give you an in-depth understanding of a software method, language and environment: Eiffel (and EiffelStudio) To improve your understanding of software engineering and software architecture To give you a feel for the challenges involved in both software design and language design
4 The software of the future Product quality Correctness Robustness Security Process quality Fast development No semantic gap (impedance mismatch) between developers and other stakeholders Self-validating, self-testing Ease of change Reusability
5 - 1 - Overview
6 Why Eiffel? Productivity: faster time to market, fewer developers Reliability: fewer bugs Extendibility: be responsive to customer needs Reuse: stand on the shoulder of giants Efficiency: make the best use of hardware resources Maintainability: spend your time on new developments
7 Language versions Eiffel 1, 1986 Classes, contracts, genericity, single and multiple inheritance, garbage collection, … Eiffel 2, 1988 (Object-Oriented Software Construction) Exceptions, constrained genericity Eiffel 3, 1990-1992 (Eiffel: The Language) Basic types as classes, infix & prefix operators… Eiffel 4, 1997 Precursor and agents Eiffel 5, ECMA Standard, 2005, revised 2006, and ISO standard, November 2006 www.ecma-international.org/publications/standards/Ecma-367.htm www.ecma-international.org/publications/standards/Ecma-367.htm Attached types, conversion, assigner commands…
8 Eiffel: Method, Language, Environment Method : Applicable throughout the lifecycle Object-oriented to the core Seamless development Based on Design by Contract principles Language : Full power of object technology Simple yet powerful, numerous original features ISO standard (2006) Environment : Integrated, provides single solution, including analysis and modeling Lots of platforms (Unix, Windows, VMS,.NET…) Open and interoperable
9 9 Some typical users Axa Rosenberg Investment management: from $2 billion to >$100 billion 2 million lines Chicago Board of Trade Price reporting system Eiffel + CORBA + Solaris + Windows + … Xontech (for Boeing) Large-scale simulations of missile defense Northrop-Grumman Swedish social security: accident reporting & management (Eiffel) Price Reporting System The Chicago Board of Trade See: eiffel.com
10 10 Learning Eiffel Simple syntax, no cryptic symbols Eiffel programmers know all of Eiffel Wide variety of user backgrounds If you can write a conditional, you can write a contract Fast learning curve Lots of good models to learn from Strong style rules May need to unlearn needless tricks
11 The Eiffel method: some principles Abstraction Information hiding Seamlessness Reversibility Design by Contract Open-Closed principle Single choice principle Single model principle Uniform access principle Command-query separation principle Option-operand separation principle Style matters... See next...
12 The Eiffel language Classes Uniform type system, covering basic types Genericity Inheritance, single and multiple Conversion Covariance Statically typed Built-in Design by Contract mechanisms Agents: objects encapsulating behavior Once mechanisms, replacing statics and globals Void safety (new!)
13 Libraries Fundamental data structures and algorithms Portable graphics Internet, Web Lexical analysis, parsing Database interfaces
14 Dogmatism and flexibility Dogmatic where it counts: Information hiding (e.g. no x. a := b) Overloading One good way to do anything Style rules Flexible when it makes no point to harass programmers: Give standard notations (e.g. a + b) an O-O interpretation Syntax, e.g. semicolon
15 The Eiffel language: there is a hidden agenda That you forget it even exists
16 - 2 - The environment
17 EiffelStudio Serialization EiffelStore EiffelStudio Ansi C Executable system IL EiffelBase WEL EiffelVision EiffelNet EiffelWeb EiffelMath EiffelCOM Persistent objects Eiffel Runtime Databases (Rel, OO) C compilation Jitter Eiffel compilation User classes General library Win32 library Networking Web development Advanced numerics External C/C++/Java.NET Assemblies EiffelBuild GUI builder Multiplatform GUI library Browsing, fast compiling (Melting Ice), debugging, diagrams, metrics...
18 EiffelStudio: Melting Ice Technology Fast recompilation: time depends on size of change, not size of program Full type checking Freeze once in a while Optimized compilation: finalize. Small program Large program Small change Big change
19 Melting Ice Technology FROZEN MELTED EiffelStudio Your system Machine code (from C code) Edit, browse, execute, debug, test… Freeze Melt
20 Performance Finalization mode of compilation applies extensive optimizations: Inlining Dead code removal Contract removal... Optimizations are compiler-applied and automatic; no need for manual hacking Compacting garbage collection takes care of memory issues Intended to match the most exacting demands of industry applications
21 EiffelStudio browsing and debugging You are dealing with development objects: Classes Features Run-time objects (for debugging) To work on an object, pick-and-drop it into an appropriate tool
22 Openness Eiffel can be used as component combinator to package elements from different sources: Mechanisms for integrating elements in C, C++, Java, CIL (.NET) Interfaces and libraries: SQL, XML, UML (XMI), CORBA, COM, others Particularly sophisticated mechanisms for C/C++ interfacing Outside of.NET, compiles down to ANSI C code, facilitates support for C and C++ easier. On.NET, seamless integration with C#, VB.NET etc.
23 C/C++ support Functions, macros, include files, setters, getters, constructors, destructors etc. Inline C From the outside into Eiffel: CECIL (C-Eiffel Common Interface Library)
24 Portability Source-code portability across: Windows NT, 2000, XP, Vista Windows 98, Me.NET Solaris, other commercial Unix variants Linux Mac OS X (forthcoming) BSD (Berkeley System Distribution) VMS
25 - 3 - The method
26 The waterfall model of the lifecycle Feasibility study Requirements Global design Detailed design Deployment V & V Specification Implementation
27 Traditional lifecycle model Rigid model: Waterfall: separate tasks, impedance mismatches Variants, e.g. spiral, retain some of the problems Separate tools: Programming environment Analysis & design tools, e.g. UML Consequences: Hard to keep model, implementation, documentation consistent Constantly reconciling views Inflexible, hard to maintain systems Hard to accommodate bouts of late wisdom Wastes efforts Damages quality Feasibility study Requirements Global design Detailed design Deployment V & V Specification Implementation
28 The Eiffel model Seamless development: Single notation, tools, concepts, principles throughout Eiffel is as much for analysis & design as implementation & maintenance Continuous, incremental development Keep model, implementation and documentation consistent Reversibility: go back & forth Saves money: invest in single set of tools Boosts quality Example classes: PLANE, ACCOUNT, TRANSACTION… STATE, COMMAND… HASH_TABLE… TEST_DRIVER… TABLE… Analysis Design Implemen- tation V&V Generali- zation
29 Seamlessness Seamlessness Principle Software development should rely on a single set of notations & tools
30 Reversibility Reversibility Principle The software development process, notations and tools should allow making changes at any step in the process
31 The seamless, reversible model Example classes: PLANE, ACCOUNT, TRANSACTION… STATE, COMMAND… HASH_TABLE… TEST_DRIVER… TABLE… Analysis Design Implemen- tation V&V Generali- zation
32 Class invariant Postcondition Precondition Specified, not implemented Analysis classes deferred class VAT inherit TANK feature in_valve, out_valve : VALVE fill -- Fill the vat. require in_valve. open out_valve. closed deferred ensure in_valve. closed out_valve. closed is_full end empty, is_full, is_empty, gauge, maximum, invariant is_full = (gauge >= 0.97 * maximum) and (gauge <= 1.03 * maximum) end
33 Single model Use a single base for everything: analysis, design, implementation, documentation... Use tools to extract the appropriate views. Single Model Principle All the information about a software system should be in the software text
34 The seamless, reversible model Analysis Design Implemen- tation V&V Generali- zation
35 Generalization Prepare for reuse: Remove built-in limits Remove dependencies on specifics of project Improve documentation, contracts... Abstract Extract commonalities, revamp inheritance hierarchy 35 A DIV G A *A *BY * XZ T U
36 The cluster model A D I V G Permits dynamic reconfiguration A D I V G A D I V G A D I V G A D I V G A D I V G Mix of sequential and concurrent engineering
37 Tool support for seamless development Diagram Tool System diagrams can be produced automatically from software text Works both ways: update diagrams or update text – other view immediately updated No need for separate UML tool Metrics Tool Profiler Tool Documentation generation tool...
38 EiffelStudio diagram tool
39 Text-graphics equivalence
40 Equivalence Equivalence Principle Textual, graphical and other views should all represent the same model
41 Eiffel mechanisms Classes, objects,... Single and multiple inheritance Inheritance facilities: redefinition, undefinition, renaming Genericity, constrained and unconstrained Safe covariance Disciplined exception handling, based on principles of Design by Contract Full GC Agents (power of functional programming in O-O!) Unrestricted streaming: files, databases, networks...
42 What is not in Eiffel Goto Functions as arguments Pointer arithmetic Special increment syntax, e.g. x++, ++x In-class feature overloading
43 Syntax conventions Semicolon used as a separator (not terminator) Its optional almost all the time. Just forget about it! Style rules are an important part of Eiffel: Every feature should have a header comment Every class should have a note clause Layout, indentation Choice of names for classes and features
44 The class From the module viewpoint: Set of available services (features) Information hiding Classes may be clients of each other From the type viewpoint: Describes a set of run-time objects (the instances of the class) Used to declare variables (more generally, entities ), e.g. x : C Possible type checking Notion of subtype
45 Information hiding Information Hiding principle Every module should have a public specification, listing a subset of its properties
46 prepend animate append An object has an interface count stations first last
47 prepend animate append count first An object has an implementation count stations first last
48 Information hiding prepend animate append count stations first last
49 Information Hiding The designer of every module must select a subset of its properties as the official information about the module, made available to authors of client modules Public Private
50 Uniform access Uniform access principle It does not matter to the client whether you look up or compute
51 Uniform Access: an example balance = list_of_deposits. total – list_of_withdrawals. total (A1) 2001005001000 800100 (A2) 2003005001000 800100 list_of_deposits list_of_withdrawals list_of_deposits list_of_withdrawals balance 1000
52 Uniform access A call such as your_account. balance could use an attribute or a function Uniform access principle It does not matter to the client whether you look up or compute
53 POINT : as an abstract data type x : POINT REAL y : POINT REAL : POINT REAL Class POINT: Choose a representation (polar, cartesian) In polar representation, and are attributes, x and y are routines. y x
54 POINT : as a class class POINT feature x, y : REAL -- Cartesian coordinates move (a, b : REAL) -- Move by a horizontally and b vertically. do x := x + a y := y + b end scale (factor : REAL) -- Scale by factor. do x := factor x y := factor y end
55 Class POINT distance (p : POINT ): REAL -- Distance to p do Result := sqrt ((x – p.x)^2 + (y – p.y)^2) end ro : REAL -- Distance to origin (0, 0) do Result := sqrt (x ^ 2 + y ^ 2) end theta : REAL -- Angle to horizontal axis do … end
56 Uniform access through feature call To access a feature of a point, same notation regardless of representation. Example: p1. x Cartesian representation: attribute call Polar representation: function call No difference for clients (except possibly performance)
57 Uniform access in practice Class COMPLEX, switching silently and on demand between cartesian and polar representation Secret attributes: cartesian_uptodate, polar_uptodate : BOOLEAN internal_x, internal_y, internal_ro, internal_theta : REAL Representation invariant: invariant at_least_one : cartesian_uptodate or polar_uptodate
58 Updating representation: secret routine update_cartesian require polar_ok: polar_uptodate do if not cartesian_uptodate then internal_x := ro cos (theta) internal_y := ro sin (theta) end ensure cart_ok: cartesian_uptodate polar_ok: polar_uptodate end
59 Public query x : REAL -- Abscissa of current point do if not cartesian_uptodate then update_cartesian end Result := x_internal ensure cart_ok : cartesian_uptodate same_as_internal : Result = x_internal end
60 Adding two complex numbers plus (other : COMPLEX ) -- Add other to current complex number. do update_cartesian x_internal := x_internal + other. x y_internal := y_internal + other. y ensure cartesian_ok : cartesian_uptodate end
61 Beyond information hiding Single choice principle If a system supports a set of choices, only one of its elements should know the list
62 Single choice: examples Graphic system: set of figures Editor: set of commands Compiler: set of language constructs Single choice principle If a system supports a set of choices, only one of its elements should know the list
63 Without dynamic binding! display (f : FIGURE ) do if f is a CIRCLE then... elseif f is a POLYGON then... end and similarly for all other routines! Tedious; must be changed whenever theres a new figure type
64 With inheritance &associated techniques f : FIGURE c : CIRCLE p : POLYGON create c. make (...) create p. make (...) if... then f := c else f := p end f. move (...) f. rotate (...) f. display (...) -- and so on for every -- operation on f ! With: Initialize: and: Then just use:
65 Memory management Memory management principle It is the implementations responsibility to reclaim unused objects
66 What to do with unreachable objects Reference assignments may make some objects useless. Two possible approaches: Manual free (C++). Automatic garbage collection Almavivaname landlord loved_one a O1 Figaro O2 Susanna O3
67 The C programmers view Newsgroup posting by Ian Stephenson, 1993 (as cited in Object-Oriented Software Construction, 2 nd edition): I say a big NO ! Leaving an unreferenced object around is BAD PROGRAMMING. Object pointers ARE like ordinary pointers if you allocate an object you should be responsible for it, and free it when its finished with. (Didn't your mother always tell you to put your toys away when you'd finished with them?)
68 Arguments for automatic collection Manual reclamation is dangerous for reliability. Wrong frees are among the most difficult bugs to detect and correct. Manual reclamation is tedious. Modern garbage collectors have acceptable performance overhead. GC is tunable: disabling, activation, parameterization....
69 Properties of a garbage collector (GC) Soundness: If the GC reclaims an object, it is unreachable Completeness : If an object is unreachable, the GC will reclaim it Soundness is an absolute requirement. Better no GC than an unsound GC But: safe automatic garbage collection is hard in C-based languages
70 Language style Consistency principle The language should offer one good way to do anything useful
71 Language style Compatibility principle Traditional notations should be supported with an O-O semantics
72 Infix and prefix operators In a b the operator is infix (written between operands) In b the operator is prefix (written before the operand)
73 The object-oriented form of call some_target. some_feature (some_arguments) For example: my_figure. display my_figure. move (3, 5) x := a. plus (b) ???????
74 Operator features expanded class INTEGER feature plus alias "+" (other : INTEGER): INTEGER -- Sum with other do... end times alias " " (other : INTEGER): INTEGER -- Product by other do... end minus alias "-" : INTEGER -- Unary minus do... end... end Calls such as i. plus ( j ) can now be written i + j
75 Assignment commands It is possible to define a query as temperature: REAL assign set_temperature Then the syntax x. temperature := 21.5 is accepted as an abbreviation for x. set_temperature (21.5) Retains contracts and any other supplementary operations Not an assignment, but a procedure call
76 Array access Object-oriented forms: a : ARRAY [T ] a. put (x, 23) x := a. item (23) Usual forms: a [23] := x x := a [23] Usual form: a [i ] := a [i ] + 1 Object-oriented form: a. put (a. item (i ) + 1, i )
77 Using the bracket alias In class ARRAY [G ] : item (i : INTEGER): G require i >= lower and i <= count do … end put (x : G ; i : INTEGER): G require i >= lower and i <= count do … end alias "[ ]" assign put a. put (a. item (i ) + 1, i ) a. item (i ) := a. item (i ) + 1 a [i ] := a [i ] + 1 Not an assignment!
78 Bracket alias population [Lugano ] := 50000 table [a, b, c] := d
79 Command-query separation Command-Query Separation Principle A function must not change its target objects abstract state
80 Command-Query separation A command (procedure) does something but does not return a result. A query (function or attribute) returns a result but does not change the state.
81 Command-Query Separation Asking a question should not change the answer!
82 Command-query separation Command-Query Separation Principle A function must not change its target objects state This principle excludes many common schemes, such as using functions for input (e.g. Cs getint or equivalent).
83 Referential transparency If two expressions have equal value, one may be substituted for the other in any context where that other is valid. If a = b, then f (a) = f (b) for any f. Prohibits functions with side effects. Also: For any integer i, normally i + i = 2 x i But even if getint () = 2, getint () + getint () is usually not equal to 4.
84 Command-query separation Input mechanism using EiffelBase (instead of n := getint ()): io. read_integer n := io. last_integer
85 A discipline of development Reuse Principle Design with reuse in mind
86 Typical API in a traditional library (NAG) nonlinear_ode (equation_count : in INTEGER; epsilon : in out DOUBLE; func : procedure (eq_count : INTEGER; a : DOUBLE; eps : DOUBLE; b : ARRAY [DOUBLE]; cm : pointer Libtype); left_count, coupled_count : INTEGER …) [And so on. Altogether 19 arguments, including: 4 in out values; 3 arrays, used both as input and output; 6 functions, each with 6 or 7 arguments, of which 2 or 3 arrays!] Ordinary differential equation
87 The EiffelMath routine... Create e and set-up its values (other than defaults)... e. solve... Answer available in e. x and e. y...
88 The Consistency Principle Two components: Top-down and deductive (the overall design). Bottom-up and inductive (the conventions). Consistency Principle All the components of a library should proceed from an overall coherent design, and follow a set of systematic, explicit and uniform conventions.
89 The key to building a library Devising a theory of the underlying domain
90 Some of the theory behind EiffelBase Representation Access Iteration
91 The size of feature interfaces More relevant than class size for assessing complexity. Statistics from EiffelBase and associated libraries: Number of features4408 Percentage of queries66% Percentage of commands34% Average number of arguments to a feature0.5 Maximum number5 No arguments57% One argument36% Two arguments6% Three or more arguments1%
92 Operands and options Two possible kinds of argument to a feature: Operands: values on which feature will operate Options: modes that govern how feature will operate Example (non-O-O): printing a real number print (real_value, number_of_significant_digits, zone_length, number_of_exponent_digits,...) The number is an operand; format properties (e.g. number of significant digits, width) are options O-O example: my_window. display (x_position, y_position, height, width, text, title_bar_text, color,...)
93 Recognizing options from operands Two criteria to recognize an option: There is a reasonable default value. During the evolution of a class, operands will normally remain the same, but options may be added.
94 Option-Operand separation Option values: Defaults (specified universally, per type, per object) To set specific values, use appropriate setter procedures Example: my_window.set_background_color ("blue")... my_window.display Option-Operand Principle Only operands should appear as arguments of a feature
95 Naming (classes, features, variables…) Traditional advice (for ordinary application programming): Choose meaningful variable names!
96 enter push add insert Original Class ARRAY STACK QUEUE HASH_TABLE entry top oldest value pop remove_oldest delete Features names for EiffelBase classes put item remove Final enter push add insert Class ARRAY STACK QUEUE HASH_TABLE remove_oldest delete Features put item remove entry top oldest value put New and old names for EiffelBase classes
97 Naming rules Achieve consistency by systematically using a set of standardized names. Emphasize commonality over differences. Differences will be captured by: Signatures (number and types of arguments & result) Assertions Comments
98 Some standard names Queries (non-boolean): count, capacity item to_X, from_X Queries (boolean) : writable, readable, extendible, prunable is_empty, is_full -- Usual invariants: 0 <= count ; count <= capacity is_empty = (count = 0) ; is_full = (count = capacity) if s. deletable then s. delete (v) end -- Some rejected names: if s. addable then s. add (v) end Commands: put, extend, replace, force wipe_out, remove, prune make -- For creation
99 - 4 - Design by Contract
100 Design by Contract Contract Principle Every software element should be characterized by a precise specification
101 Design by Contract: applications Getting the software right Analysis Design Implementation Debugging Testing Management Maintenance Documentation
102 Design by Contract: the basic idea Every software element is intended to satisfy a certain goal, for the benefit of other software elements (and ultimately of human users) This goal is the elements contract The contract of any software element should be Explicit Part of the software element itself
103 A counter-example: Ariane 5, 1996 (See: Jean-Marc Jézéquel and Bertrand Meyer: Design by Contract: The Lessons of Ariane, IEEE Computer, January 1997, also at http://www.eiffel.com)http://www.eiffel.com 37 seconds into flight, exception in Ada program not processed; order given to abort the mission. Ultimate cost in billions of euros Cause: incorrect conversion of 64-bit real value (horizontal bias of the flight) into 16-bit integer Systematic analysis had proved that the exception could not occur!
104 Ariane-5 (continued) It was a REUSE error: The analysis was correct – for Ariane 4 ! The assumption was documented – in a design document ! With assertions, the error would almost certainly detected by either static inspection or testing: integer_bias (b : REAL): INTEGER require representable (b) do … ensure equivalent (b, Result) end
105 The contract view of software construction Constructing systems as structured collections of cooperating software elements suppliers and clients cooperating on the basis of clear definitions of obligations and benefits These definitions are the contracts
106 Contracts for analysis Client Supplier (Satisfy precondition:) Make sure input valve is open, output valve closed (Satisfy postcondition:) Fill the tank and close both valves OBLIGATIONS (From postcondition:) Get filled-up tank, with both valves closed (From precondition:) Simpler processing thanks to assumption that valves are in the proper initial position BENEFITS fill
107 Class invariant Postcondition Precondition Specified, not implemented Constracts for analysis deferred class VAT inherit TANK feature in_valve, out_valve : VALVE fill -- Fill the vat. require in_valve. open out_valve. closed deferred ensure in_valve. closed out_valve. closed is_full end empty, is_full, is_empty, gauge, maximum, invariant is_full = (gauge >= 0.97 * maximum) and (gauge <= 1.03 * maximum) end
108 A class without contracts class ACCOUNT feature -- Access balance : INTEGER -- Balance Minimum_balance: INTEGER = 1000 -- Minimum balance feature {NONE } -- Deposit and withdrawal add (sum : INTEGER) -- Add sum to the balance. do balance := balance + sum end Secret features
109 A class without contracts feature -- Deposit and withdrawal operations deposit (sum : INTEGER) -- Deposit sum into the account. do add (sum) end withdraw (sum : INTEGER) -- Withdraw sum from the account. do add (– sum) end may_withdraw (sum : INTEGER): BOOLEAN -- Is it permitted to withdraw sum from the account? do Result := (balance - sum >= Minimum_balance) end end
110 Introducing contracts class ACCOUNT create make feature {NONE } -- Initialization make (initial_amount: INTEGER) -- Set up account with initial_amount. require large_enough: initial_amount >= Minimum_balance do balance := initial_amount ensure balance_set: balance = initial_amount end
111 Introducing contracts feature -- Access balance: INTEGER -- Balance Minimum_balance : INTEGER = 1000 -- Lowest permitted balance feature {NONE} -- Implementation of deposit and withdrawal add ( sum : INTEGER) -- Add sum to the balance. do balance := balance + sum ensure increased: balance = old balance + sum end
112 Introducing contracts feature -- Deposit and withdrawal operations deposit (sum : INTEGER) -- Deposit sum into the account. require not_too_small: sum >= 0 do add (sum) ensure increased: balance = old balance + sum end Precondition Postcondition
113 Introducing contracts withdraw (sum : INTEGER) -- Withdraw sum from the account. require not_too_small: sum >= 0 not_too_big: sum <= balance – Minimum_balance do add (–sum) -- i.e. balance := balance – sum ensure decreased: balance = old balance - sum end Value of balance, captured on entry to routine
114 The contract Client Supplier (Satisfy precondition:) Make sure sum is neither too small nor too big (Satisfy postcondition:) Update account for withdrawal of sum OBLIGATIONS (From postcondition:) Get account updated with sum withdrawn (From precondition:) Simpler processing: may assume sum is within allowable bounds BENEFITS withdraw
115 The imperative and the applicative do balance := balance - sum ensure balance = old balance - sum PRESCRIPTIVEDESCRIPTIVE How? Operational Implementation Command Instruction Imperative What? Denotational Specification Query Expression Applicative
116 Introducing contracts may_withdraw (sum : INTEGER ): BOOLEAN -- Is it permitted to withdraw sum from account? do Result := (balance - sum >= Minimum_balance) end invariant not_under_minimum: balance >= Minimum_balance end
117 The class invariant Consistency constraint applicable to all instances of a class. Must be satisfied: After creation After execution of any feature by any client Qualified calls only: x. f (...)
118 The correctness of a class For every creation procedure cp : {Pre cp } do cp {INV and Post cp } For every exported routine r : {INV and Pre r } do r {INV and Post r } x. f (…) x. g (…) x. h (…) create x. make (…) S1 S2 S3 S4
119 Uniform Access balance = deposits. total – withdrawals. total (A1) list_of_deposits list_of_withdrawals 2001005001000 800100 (A2) 2003005001000 800100 list_of_deposits list_of_withdrawals balance 1000
120 What are contracts good for? Writing correct software (analysis, design, implementation, maintenance, reengineering) Documentation (the contract form of a class) Effective reuse Controlling inheritance Preserving the work of the best developers Quality assurance, testing, debugging (especially in connection with the use of libraries) Exception handling
121 A contract violation is not a special case For special cases (e.g. if the sum is negative, report an error...) use standard control structures, such as if... then... else... A run-time assertion violation is something else: the manifestation of A DEFECT (BUG)
122 Contracts and quality assurance Precondition violation: Bug in the client. Postcondition violation: Bug in the supplier. Invariant violation: Bug in the supplier. {P }A{Q }
123 Contracts: run-time effect Compilation options (per class, in Eiffel): No assertion checking Preconditions only Preconditions and postconditions Preconditions, postconditions, class invariants All assertions
124 Contracts for testing and debugging Contracts express implicit assumptions behind code A bug is a discrepancy between intent and code Contracts state the intent! In EiffelStudio: select compilation option for run-time contract monitoring at level of: Class Cluster System May disable monitoring when releasing software A revolutionary form of quality assurance
125 Lists in EiffelBase Cursor item index count1 forthback finishstart after before Munich"
126 Trying to insert too far right Cursor (Already past last element!) count 1 after "Munich"
127 A command and its contract Precondition Postcondition
128 Moving the cursor forward Cursor index forth count1 afterbefore "Munich"
129 Two queries, and command forth
130 Where the cursor may go Valid cursor positions 0index1 after before "Munich" countcount + 1
131 From the invariant of class LIST Valid cursor positions
132 Contracts and bug types Preconditions are particularly useful to find bugs in client code: YOUR APPLICATION COMPONENT LIBRARY your_list. insert (y, a + b + 1) i <= count + 1 insert (x : G ; i : INTEGER) require i >= 0 class LIST [G ] feature
133 Contracts and quality assurance Use run-time assertion monitoring for quality assurance, testing, debugging. Compilation options (reminder): No assertion checking Preconditions only Preconditions and postconditions Preconditions, postconditions, class invariants All assertions
134 Contracts and quality assurance Contracts enable QA activities to be based on a precise description of what they expect. Profoundly transform the activities of testing, debugging and maintenance. I believe that the use of Eiffel-like module contracts is the most important non-practice in software world today. By that I mean there is no other candidate practice presently being urged upon us that has greater capacity to improve the quality of software produced.... This sort of contract mechanism is the sine-qua-non of sensible software reuse. Tom de Marco, IEEE Computer, 1997
135 Contracts and documentation Contract view: Simplified form of class text, retaining interface elements only: Remove any non-exported (private) feature For the exported (public) features: Remove body (do clause) Keep header comment if present Keep contracts: preconditions, postconditions, invariant Remove any contract clause that refers to a secret feature (This raises a problem; can you see it?)
136 Flat, interface Flat view of a class: reconstructed class with all the features at the same level (immediate and inherited). Takes renaming, redefinition etc. into account. The flat view is an inheritance-free client-equivalent form of the class. Interface view: the contract view of the flat view. Full interface documentation.
137 Uses of the contract &interface forms Documentation, manuals Design Communication between developers Communication between developers and managers
138 Contracts and inheritance Issues: what happens, under inheritance, to Class invariants? Routine preconditions and postconditions?
139 Invariants Invariant Inheritance rule: The invariant of a class automatically includes the invariant clauses from all its parents, and-ed. Accumulated result visible in flat and interface forms.
140 Contracts and inheritance require ensure r require ensure a1 : A a1. r (…) … Correct call in C: if a1. then a1. r (...) -- Here a1. holds end r ++ CADB Client Inheritance ++ Redefinition
141 Assertion redeclaration rule When redeclaring a routine, we may only: Keep or weaken the precondition Keep or strengthen the postcondition
142 A simple language rule does the trick! Redefined version may have nothing (assertions kept by default), or require else new_pre ensure then new_post Resulting assertions are: original_precondition or new_pre original_postcondition and new_post Assertion redeclaration rule in Eiffel
143 Contracts as a management tool High-level view of modules for the manager: Follow whats going on without reading the code Enforce strict rules of cooperation between units of the system Control outsourcing
144 Managerial benefits Library users can trust documentation. They can benefit from preconditions to validate their own software. Test manager can benefit from more accurate estimate of test effort. Black-box specification for free. Designers who leave bequeath not only code but intent. Common vocabulary between all actors of the process: developers, managers, potentially customers. Component-based development possible on a solid basis.
145 Genericity and inheritance LIST_OF_ CARS SET_OF_ CARS LINKED_LIST_ OF_CARS LIST_OF_ CITIES LIST_OF_ PERSONS Abstraction Specialization Type parameterization Genericity Inheritance
146 Extending the basic notion of class LIST_OF_ CARS SET_OF_ CARS LINKED_LIST_ OF_CARS LIST_OF_ CITIES LIST_OF_ PERSONS LINKED_LIST_ OF_CITIES SET_OF_ PERSONS Genericity Inheritance
147 An inheritance hierarchy center * display * rotate * perimeter * perimeter + perimeter ++ diagonal... perimeter ++ side2 * deferred + effective ++ redefine d perimeter ++ side1 CLOSED_ FIGURE OPEN_ FIGURE FIGURE SEGMENTPOLYLINETRIANGLEPOLYGONELLIPSE RECTANGLE SQUARECIRCLE side * * *
148 Redefinition 1: polygons class POLYGON inherit CLOSED_FIGURE create make feature vertex : ARRAY [POINT] vertex_count : INTEGER perimeter : REAL -- Perimeter length do from... until... loop Result := Result + vertex [i ]. distance (vertex [i + 1])... end end invariant vertex_count >= 3 vertex_count = vertex.count end vertex [i ] vertex [i + 1]
149 Redefinition 2: rectangles class RECTANGLE inherit POLYGON redefine perimeter end create make feature diagonal, side1, side2 : REAL perimeter : REAL -- Perimeter length do Result := 2 (side1 + side2) end invariant vertex_count = 4 end side1 side2 diagonal
150 Inheritance, typing &polymorphism (POLYGON ) (RECTANGLE ) p r Assume: p : POLYGON ; r : RECTANGLE ; t : TRIANGLE ; x : REAL Permitted: x := p. perimeter x := r. perimeter x := r. diagonal p := r NOT permitted: x := p. diagonal -- Even just after p := r ! r := p
151 Definitions: Polymorphism An attachment (assignment or argument passing) is polymorphic if its target variable and source expression have different types. An entity or expression is polymorphic if it may at runtime as a result of polymorphic attachments become attached to objects of different types. Polymorphism is the existence of these possibilities.
152 Dynamic binding What is the effect of this (assuming some_test true)? if some_test then p := r else p := t end x := p. perimeter Redefinition: A class may change an inherited feature, as with POLYGON redefining perimeter Polymorphism: p may have different forms at run-time. Dynamic binding: Effect of p. perimeter depends on run- time form of p
153 Definitions (Dynamic binding) Dynamic binding (a semantic rule) is the property that any execution of a feature call will use the version of the feature best adapted to the type of the target object.
154 Without dynamic binding! display (f : FIGURE ) do if f is a CIRCLE then... elseif f is a POLYGON then... end and similarly for all other routines! Tedious; must be changed whenever theres a new figure type
155 With inheritance &associated techniques f : FIGURE c : CIRCLE p : POLYGON create c. make (...) create p. make (...) if... then f := c else f := p end f. move (...) f. rotate (...) f. display (...) -- and so on for every -- operation on f ! With: Initialize: and: Then just use:
156 Extending the basic notion of class LIST_OF_ CARS SET_OF_ CARS LINKED_LIST_ OF_CARS LIST_OF_ CITIES LIST_OF_ PERSONS Abstraction Specialization Type parameterization Genericity Inheritance
157 Genericity Unconstrained LIST [G] e.g. LIST [INTEGER], LIST [PERSON] Constrained HASH_TABLE [G > HASHABLE ] VECTOR [G > NUMERIC ]
158 Genericity: Ensuring type safety How can we define consistent container data structures, e.g. list of accounts, list of points? Dubious use of a container data structure: c : CITY ; p : PERSON cities : LIST... people : LIST... --------------------------------------------------------- people. extend ( ) cities. extend ( ) c := cities. last c. some_city_operation What if wrong? p c
159 A generic class class LIST [G ] feature extend (x : G )... last : G... end To use the class: obtain a generic derivation, e.g. cities : LIST [CITY ] Formal generic parameter Actual generic parameter
160 Using generic derivations cities : LIST [CITY ] people : LIST [PERSON] c : CITY p : PERSON... cities. extend (c) people. extend (p) c := cities. last c. some_city_operation STATIC TYPING The compiler will reject: people. extend (c) cities. extend (p) STATIC TYPING The compiler will reject: people. extend (c) cities. extend (p)
161 Static typing Type-safe call (during execution): A feature call x. f such that the object attached to x has a feature corresponding to f. [Generalizes to calls with arguments, x. f (a, b) ] Static type checker: A program-processing tool (such as a compiler) that guarantees, for any program it accepts, that any call in any execution will be type-safe. Statically typed language: A programming language for which it is possible to write a static type checker.
162 Using genericity LIST [CITY ] LIST [LIST [CITY ]] … A type is no longer exactly the same thing as a class! (But every type remains based on a class.)
163 Genericity + inheritance 1: Constrained genericity class VECTOR [G ] feature plus alias "+" (other : VECTOR [G]): VECTOR [G] -- Sum of current vector and other require lower = other. lower upper = other. upper local a, b, c: G do... See next... end... Other features... end
164 Adding two vectors + =uvw 1 2
165 Constrained genericity Body of plus alias "+": create Result. make (lower, upper) from i := lower until i > upper loop a := item (i) b := other. item (i) c := a + b-- Requires + operation on G! Result. put (c, i) i := i + 1 end
166 The solution Declare class VECTOR as class VECTOR [G –> NUMERIC ] feature... The rest as before... end Class NUMERIC (from the Kernel Library) provides features plus alias "+", minus alias "-" and so on.
167 Improving the solution Make VECTOR itself a descendant of NUMERIC, effecting the corresponding features: class VECTOR [G –> NUMERIC ] inherit NUMERIC feature... Rest as before, including infix "+"... end Then it is possible to define v : VECTOR [INTEGER ] vv : VECTOR [VECTOR [INTEGER ]] vvv : VECTOR [VECTOR [VECTOR [INTEGER ]]]
168 Extending the basic notion of class LIST_OF_ CARS SET_OF_ CARS LINKED_LIST_ OF_CARS LIST_OF_ CITIES LIST_OF_ PERSONS LINKED_LIST_ OF_CITIES SET_OF_ PERSONS Genericity Inheritance
169 Genericity + inheritance 2: Polymorphic data structures figs : LIST [FIGURE ] p1, p2 : POLYGON c1, c2 : CIRCLE e : ELLIPSE (POLYGON) (CIRCLE) (POLYGON) (CIRCLE) (ELLIPSE) class LIST [G ] feature extend (v : G) do … end last : G … end figs. extend (p1 ) ; figs. extend (c1 ) ; figs. extend (c2 ) figs. extend (e ) ; figs. extend (p2 )
170 Combining abstractions Given the classes TRAIN_CAR, RESTAURANT how would you implement a DINER ?
171 Examples of multiple inheritance Combining separate abstractions: Restaurant, train car Calculator, watch Plane, asset Home, vehicle Tram, bus
172 Composite figures
173 Multiple inheritance: Composite figures A composite figure Simple figures
174 Defining the notion of composite figure COMPOSITE_ FIGURE center display hide rotate move … count put remove … FIGURE LIST [FIGURE ]
175 In the overall structure COMPOSITE_ FIGURE FIGURE LIST [FIGURE ] OPEN_ FIGURE CLOSED_ FIGURE SEGMENTPOLYLINEPOLYGON ELLIPSE RECTANGLE SQUARE CIRCLE TRIANGLE perimeter + perimeter* perimeter ++ diagonal perimeter ++ perimeter +
176 A composite figure as a list Cursor item forth after
177 Composite figures class COMPOSITE_FIGURE inherit FIGURE LIST [FIGURE] feature display -- Display each constituent figure in turn. do from start until after loop item. display forth end end... Similarly for move, rotate etc.... end Requires dynamic binding
178 Multiple inheritance: Combining abstractions COMPARABLE NUMERIC STRING COMPLEX INTEGER REAL, >=, … +, –,, / … (total order relation) (commutative ring)
179 Renaming Graphical features: height, width, change_height, change_width, xpos, ypos, move... Hierarchical features: superwindow, subwindows, change_subwindow, add_subwindow... class WINDOW inherit RECTANGLE TREE [WINDOW] rename parent as superwindow, children as subwindows, add_child as add_subwindow … end feature... end BUT: see style rules about uniformity of feature names
180 - 5 - Some new developments
181 Some recent developments Void safety Automatic testing Concurrency
182 Basic O-O operation… x. f (args) … and basic issue studied here: (If not, call produces an exception and usually termination) Semantics: apply the feature f, with given args if any, to the object to which x is attached How do we guarantee that x will always be attached to an object?
183 Void safety: requirements Statically, completely void safe: no exceptions Handles genericity Simple for programmer, no mysterious rules Reasonably simple for compiler Compatibility or minimum change for existing code (Plus for me: 1 st semester teachability)
184 Components of the solution 1. Some patterns guaranteed void-safe (Certified Attachment Patterns or CAPS) 2. Void value permitted only for types declared as detachable. By default types are attached 3. Initialization rules ensure that any variable of an attached type has a non-void initialization value 4. Special rules for arrays
185 Automatic testing Two tools: AutoTest: takes a set of classes and tests them automatically (push-button, no manual test cases, no test oracles, nothing…) CDD (Contract-Driven Development): automatically extracts test cases from execution failures Integrated into EiffelStudio 6.3 and 6.4
186 Caveat I am mostly talking about: Functional testing Unit testing
187 What is testing about? To test a software system is to try to make it fail Testing is none of: Ensuring software quality Assessing software quality Debugging (Terminology: failure, fault, mistake) Fiodor Chaliapine as Mephistopheles Ich bin der Geist, der stets verneint Goethe, Faust, Act I
188 1.To test a program is to try to make it fail 2.Tests are no substitute for specifications 3.Any failed execution must yield a test case, to remain forever remain part of the regression test base 4.Determining success or failure (oracles) must be automatic 4: Oracles should be part of the program, as contracts 5.A test suite must include both manual and automated cases 6.Dont believe your testing insights: evaluate any testing strategy through objective criteria 7.The most important criterion is number of faults found against time: fc (t) Seven principles of software testing Bertrand Meyer, Seven Principles of Software Testing, IEEE Computer, August 2008
189 Automated testing What can be automated: Test suite execution Resilience Regression testing Test case generation Test result verification (oracles) Test case minimization
190 Contracts for testing Contracts provide the right basis: A fault is a discrepancy between intent and reality Contracts describe intent A contract violation always signals a fault: Precondition: in client Postcondition or invariant: in routine (supplier) In EiffelStudio: select compilation option for contract monitoring at level of class, cluster or system.
191 AutoTest: automatic test framework Input: set of classes + testing time Generates instances, calls routines with automatically selected arguments Oracles are contracts: Direct precondition violation: skip Postcondition/invariant violation: bingo! Value selection: Random+ (use special values such as 0, +/-1, +/-10, max and min) Add manual tests if desired Any test (manual or automated) that fails becomes part of the test suite Ilinca Ciupa Andreas Leitner (SOFSEM 2007 etc.)
192 Minimization through dynamic slicing auto_test system.ace –t 120 ACCOUNT CUSTOMER create {STRING} v1 v1. wipe_out v1. append_character (c) v1. append_double (2.45) create {STRING} v2 v1. append_string (v2) v2. fill (g, 254343)... create {ACCOUNT} v3.make (v2) v3. deposit (15) v3. deposit (100) v3. deposit (-8901)... class ACCOUNT create make feature make (n : STRING) require n /= Void do name := n balance := 0 ensure name = n balance = 0 end name : STRING balance : INTEGER deposit (v : INTEGER) do balance := balance + v ensure balance = old balance + v end invariant name /= Void balance >= 0 end
193 AutoTest strategies Object pool Get objects through creation procedures (constructors) Diversify through procedures Routine arguments Basic values: heuristics for each type Objects: get from pool Test all routines, including inherited ones (Fragile base class issue)
194 Random testing: example bug found * SET * + SET1 + SET2 + + Test: s1, s2 : SET s2 s1 *: Deferred + : Effective Bernd Schoeller
195 Some AutoTest results (random strategy) Library TotalFailed TotalFailed EiffelBase (Sep 2005) 40,0003%20006% Gobo Math 15001%1406% TESTS ROUTINES
196 Testing results and strategy Smart ideas not always better Dont believe your intuition Measure and assess objectively fc (t) Class STRING Define good assessment criteria: Number of faults found Time to find all faults Time Experimental law: fc (t ) = a – b / t
197 Fault categories Specification faults -- examples: Precondition: Missing non-voidness precondition (will go away) Missing min-max precondition Too strong precondition Postcondition: Missing Wrong Implementation faults -- examples: Faulty supplier Missing implementation Case not treated Violating a routines precondition Infinite loop
198 Who finds what faults? On a small EiffelBase subset, we compared: AutoTest Manual testing (students) (3 classes, 2 with bugs seeded) User reports from the field AutoTest: 62% specification, 38% implementation User reports: 36% specification, 64% implementation I.Ciupa, A. Leitner, M.Oriol, A. Pretschner (submitted)
199 AutoTest vs manual testers On three classes (two with seeded bugs): Humans found 14 faults, AutoTest 9 of them AutoTest found 2 faults that humans did not (in large class) 3 faults not found by AutoTest found by 60% of humans (one is infinite loop) 2 faults not found by AutoTest are missing preconditions (void, min-max)
200 AutoTest vs user reports On 39 EiffelBase classes: AutoTest found 85 faults, Plus 183 related to RAW_FILE, PLAIN_TEXT_FILE, DIRECTORY (total 268) 4 of these also reported by users 21 faults solely reported by users 30% of AutoTest-found bugs related to extreme values; users never report them AutoTest finds only 1 out of 18 (5%) of implementation faults and 3 out of 7 specification faults AutoTest bad at over-strong preconditions, wrong operator semantics, infinite loops, missing implementations Users never find faulty suppliers (blame on client)
201 AutoTest developments Large-scale extensive tests, empirical assessment of criteria & strategies Comparison with manual efforts Complete integration with EiffelStudio IDE Background, unobtrusive, continuous testing Distributed cooperative testing (Testi@home)
202 CDD (Contract-Driven Development) Like Test-Driven Development, but Tests derived from spec (contracts) Not the other way around! Record every failed execution, make it reproducible by retaining objects Turn it into a regression test
20 3 Specified but unimplemented routine
204 Running the system and entering input (erroneous) 20
20 5 Postcondition violated The violated clause: balance > old balance Error caught at run time as contract violation
20 6 This has become a test case 206
20 7 Correcting and recompiling
20 8 One fault corrected, the other not
209 Test tools: lessons 1.Testing should be automatic 2.You need built-in contracts as in Eiffel 3.Testing is one of the tools for verification 4.Testing should be continuous and unobtrusive
210 Concurrency: the SCOOP model General-purpose Multi-threading, Web services, distribution, multiprogramming... Simplifies concurrent programming Based on Design by Contract ideas
211 Summary Bring every one of your development days to the level of your best days
212 Gustave Eiffel, 1885 Must it be assumed that because we are engineers beauty is not our concern, and that while we make our constructions robust and durable we do not also strive to make them elegant? Is it not true that the genuine conditions of strength always comply with the secret conditions of harmony? The first principle of architectural esthetics is that the essential lines of a monument must be determined by a perfect adaptation to its purpose. Gustave Eiffel, 1887 From his response in Le Temps to a petition by members of the literary and artistic Establishment protesting his project of elevating a tower of iron in Paris
Similar presentations
© 2017 SlidePlayer.com Inc.
All rights reserved.


text:
Greetings Guest!!Dismiss Notice
In order to combat SPAM on the forums, all users are required to have a minimum of 2 posts before they can submit links in any post or thread.
Refinement? I thought this would have been a hot topic?
Discussion in 'UO Craftsman' started by RazicGL, Apr 19, 2013.

subset: commoncrawl


text:
Andhra Pradesh State Board of Intermediate Education is issued all the inter Students of Junior inter and Senior inter Marks memos via online from the March Examinations at the AP Inter Board (BIEAP) Official Website of http://www.bieap.gov.in/. The Students who need to download their duplicate marks memo they can download the BIEAP Short and long memo from the BIEAP website.
The Candidates who have lost or forgotten their marks memo they can download duplicate copy from the state board official website with providing of the examination or previous examination hall ticket number and simple details of candidate, it is very easy process to get duplicate xerox copy of BIEAP long and short memos, everyone can download their memos from the following direct link
Intermediate marks Memos Download available Online at intermediate web site of bieap.gov.in ..


text:
Ads by TrafficFactory.biz
Nicky exclusiveclub
Large a-hole redbone porn
(7 min) sex rated 100%
Stroking japanese babe's bawdy cleft
(5 min) sex rated 99%
Meaty dong hammers black cum-hole
(6 min) sex rated 100%
Exquisite banging for a cute doll
(6 min) sex rated 99%
Jessa Rhodes Started Making LoVe With Chanel | ...
(10 min) sex rated 94%
Latin Amateur Teen
JAVBOO - Dad Stole My Panties
(14 min) sex rated 100%
padownload.com - Sexy amateur girl Luton gay vi...
CUTE Blonde Teen!
Horney girl giving handjob and eating cum
(30 sec) sex rated 100%
Teen In Tight Spandex Shows Big Cameltoe! Round...
(1 min 8 sec) sex rated 100%
The ravishing of a virgin playgirl
(5 min) sex rated 95%
Uncouth japanese bang
Big-Ass Teen Showing Big Puffy Cameltoe Pussy i...
(58 sec) sex rated 99%
Blonde Teen With Strap On Ass Fucks Older Man
(10 min) sex rated 99%
Naughty Nurse Anal Gagging
Bright orgasms of slutty ebony
(6 min) sex rated 97%
she fainted when big black cock go too deep - f...
Teen ANAL Fisting!
(4 min) sex rated 99%
Maximum enjoyment for a darksome beauty
Realbutts- Sabrina Loves Soccer
(17 min) sex rated 99%
Legal age teenager getting her tight sweet snatch
(5 min) sex rated 94%
Hot Brunette Babe Banged By Fuckfriend With Cum...
Man needed money to pay rent and credits
Large wazoo girl porn
(7 min) sex rated 99%
Amateur Teen Orgy
NastyPlace.org - Cum on stepmommy
(13 min) sex rated 99%
Brittney Skye Riding Cock!
Super Deepthoat ! Futanari Edition !
(2 min) sex rated 100%
NastyPlace.org - Lexi Belle My Father Handjob
(25 min) sex rated 98%
InterracialPlace.org - Passionate and romantic ...
(14 min) sex rated 97%
Japanese bitch acquires pounded
(5 min) sex rated 96%
Switch to old layout - Terms of service
- Content removal
- Upload Porn Videos - Tool to download flash videos
- Advertising


text:
Looking for a great cruise deal well look no further. Most cruise lines have now released their discounts/free extras for 2017, so if you're thinking of jumping on a cruise this year make sure that you book during the January - February sales so you don't miss out! Take advantage of the biggest shopping period of the year where you can expect to receive massive savings, FREE upgrades, Onboard Credit, reduced deposits and a whole lot more.
Carnival Cruise Line
Carnival Cruise Lines have come up with quite possibly their best sale to date! Their Find Your Sun Self sale includes savings of up to $1000 per cabin, low deposits of $100 per cabin PLUS onboard credit which can be as high as $300 per cabin!! This sales ends on the 10th February 2017, click on the Carnival tab below to view the best of the Carnival deals available at the minute.
Royal Caribbean International
Royal Caribbeans sale runs from the 1st January 2017 until the 27th Febraury 2017. During this time you can expect to save up to 30% on all guests, receive up to US$400 on board credit per stateroom depending on the stateroom you book and 50% reduced deposits!
Whats even better about this sale is that its applicable to all local sailings departing between the 3rd January 2017 right up to the 22nd April 2018.
Cunard Line
On selected itineraries sailing around the Mediterranean in 2017 aboard Queen Victoria and Round the World cruises in 2018 onboard the Queen Mary 2, Queen Elizabeth and Queen Victoria you will receive reduced fares, complimentary gratuities and a reduced deposit of $300pp to help secure the stateroom you want.
Any Grill guests you will receive all of the above plus an all inclusive drinks package! To receive any of these extras all bookings must be made by the 31st March 2017.
Princess Cruise Lines
Princess Cruises started the ball rolling early with their sale starting on the 16th December and ends on the 28th Febraury 2017. For any bookings made druing this period on selected sailings you will receive THREE amazing offers, these being FREE onboard credit, FREE wine and dine and a FREE stateroom location.
The destinations that this is based on are South Pacific, Australia, New Zealand, Asia, Japan and Europe.
Celebrity Cruise Lines
For selected sailings between the 01st Jan 2017 and the 30th April 2018 you will receive two FREE perks (on board credit and drinks package) PLUS savings of up to $200pp depending on the category of stateroom you decide to book!
The dates this sale is applicable for are 28th December 2016 until the 31st January 2017.
P&O Australia
For selected sailings between the now and January 2018 you can secure your cabin with a deposit of just $1 per person!! Most of these sailings also include reduced soft drinks packages and reduced premium drinks packages, the prices you see below do not include these drinks packages so please call for the price of your cruise including the drinks package you desire.
This sale runs from the 15th December until the 14th February 2017.
Azamara Club Cruises
Azamara's sale runs from the 15th Dec until the 31st March 2017 and see's you receive the second guest for half price on all staterooms and FREE unlimited internet for any bookings made in oceanview and above. This promotion is not available on all fare codes so please check at the time of booking.
Sailing dates applicable for this promotion are between 9th Jun 2017 and 13th May 2018
Bag yourself a January Sales Bargain at Cruise1st! Book online now!
*Prices and availability are subject to change and may be withdrawn at anytime.


text:
|Visitors Now:
|Total Visits:
|Total Stories:
|Story Views
|Last Hour:
|Last 24 Hours:
I couldn't care less for JFK, apart from the fact that he is now but an international airport. I only care to see how many died talking about his death, over 40 now at the last count, and I wonder, deep down, if I will be shot for writing this article. The powers that be certainly do not kid around when it comes to JFK, they kill you outright even today. Let's test it then, I don't care dying an accidental death.


text:
- Anonymous
- Malaysia, Male, 41+
- Avid Traveller
- 12 reviews
Friendly staff.. very comfortable staying there.. helpful staff.. nice garden .. i will stay again for sure.. metro 15 mins walk; safe surrounding and near to Lapa.. very good! Kitchen cabinate need changing..
- Anonymous
- Israel, Couple, 31-40
- Novice Nomad
- 2 reviews
Very Nice place in agreat location. Staff speaks english and very helpful Only problem was that there is no air condition and we were there in January so it was very hot The room has a fan but at night it was still hot
- Anonymous
- Brazil, Male, 18-24
- Novice Nomad
- 2 reviews
I stayed only for one night but I wished I could have stayed more... The house is very pretty and is located in a very nice and calm neighbourhood. Nice space outside to relax. Also, they have a very cute kitty :)
- Anonymous
- England, Couple, 18-24
- Avid Traveller
- 19 reviews
This lovely hostel was the first stop on our South America trip. It was brilliant in every way, a filling delicious breakfast; friendly, kind and informative staff; nice location; good and clean facilities throughout - including a spacious dorm and bathroom. Would 100% recommend and if we are in Rio, will stay again!
- Anonymous
- Brazil, Male, 25-30
- Novice Nomad
- 7 reviews
Very nice hostel
Hostelworld Mobile Apps
Book on the go with the new Hostelworld mobile apps.


text:
Tag: natural hair
How to tame your wild locks this autumn
Tue, 12 April 2016 8:00AM
My Beauty Playlist – Laura Mercier Crème Eye Liner, the new BCBGMAXAZRIA Fragrance & More …
Mon, 18 March 2013 12:48PM
Happy Monday, Primpers! I'm here holding the fort today while Hayley is swanning about working in Melbourne, checking out the L'Oréal Melbourne Fashion Festival (stay tuned for her report later in the week). Well, it's me and a few gremlin friends, because I'm unable to get my video going today … which means I'm just going… more
A Twitter beauty question (twuestion?) on letting your hair dry naturally
Wed, 25 November 2009 10:56AM
And it's not that I'm being lazy, oh HEAVENS no, it's just that sometimes I go to create a new blog post and instead of thwarting off 638 brilliant, interesting, fascinating, exciting topics all trying to weasel into my brain at once, all I get is an image of a small koala bear nibbling on… more
Daria Werbowy presents strong case for letting your natural hair colour come back; balayage
Sun, 27 September 2009 7:00PM
Here is Miss DARIA WERBWOY, big time model and face of Lancome, looking (spellbindingly) beautiful and (distractingly) natural in Milan at the Stefanel 50th Anniversary Party. (Why do those who enthuse us to buy makeup look so good without? Seems a little unfair.) Yes, I realise looking to a supermodel for hair inspiration is a little… more
Jemma Kidd Essential Eye Shadow Brush
Tue, 24 March 2009 11:43AM
This double-ended brush combines two brushes: the highlight brush, which is larger and a little looser for applying a base and for broad blending, while the colour brush is shorter and more densely packed to allow closer control of dark colours near the lash line and firmer blending
Reviews (0)
Golden Globes Hair: Simple and subtle
Mon, 12 January 2009 12:34PM
Golden Globes Golden Globes Golden Globes! I dribble in anticipation of the inspiration and fascination and speculation that is to come from them. We are watching the red carpet images as they come through live and so far it seems everyone got the same memo regarding their outfit: go nude. Sorry, sorry, I mean, go… more


text:
Online electronic store [8 months ago]
This Virtual Electronics Club Is Established To Build A Unique Electronics Culture Among Their Members Through Enhancing The Communication Between All Amateurs And Delivering All Required Services In The Electronics Engineering Field Up To Their Mobiles And Personal Computers Wherever They Are A...
X-Cite Electronics - LG Chandigarh [9 months ago]
X-cite Electronics an authorized dealer of all LG products in Mohali offers huge range of electronic products from LG and other brands.For more information kindly visit the website:www.x-citeelectronics.com
Electronics and Communication Engineering - A4N [7 months ago]
Electronics and Communication Engineering - The application of Electronics and development in the communication field make our life easiervisit:http://tnea.a4n.in/Courses/EC
Buy Electronics, Mobile Phones and accessories - Shopper Quick [3 months ago]
Shop Electronics in Online Shopping Site india's at shopperquick, Mobile Phones and accessories, Best branded laptops, computers and computer peripherials etc..
Electric Rickshaw Manufacturer & Supplier Surat [8 months ago]
kmcdd011We are a leading manufacturer, supplier and trader of good quality Electric Battery Rickshaw. The 850w motor, load capacity of 6+1, 220v and a durable easy charging battery make it a valued product among our customers. High grade metals, plastics, fabrics and other raw materials are ...
Basmati rice supplier - exporter of rice - indian rice - Basmati rice manufacturer [8 months ago]
Shri Rewa are manufacturer, supplier and exporter of high quality rice.we provide best quality Basmati rice.
vacancies for electronics manufacturing company [6 months ago]
vacancies forelectronicsproductsmanufacturing company.edu qual:12th/B.E/any degree.type:full/part time.salary:15,000-25,000.contact- 9087777699 (JOTHI)
ajantha electronics components shop in chennai [5 months ago]
electronics components shop in chennai ardunio kits and spares raspberry pi3 kit and spares robotic kit and spares school science projects more info www.scienceprojectchennai.com ph 91176416648
salwar suits wholesale supplier in india [1 year ago]
pinnacle textiles is one of leading supplier of exclusive collection of salwar suits, salwar kameez and Dress materials wholesale supplier in india.
MBA Final Year Projects [2 years ago]
Readymade Project is the Leading Supplier of all Kinds of School and College Projects,Reports & PPT Presentation on all Subjects like Physics.Chemistry, Biology, C++, Electronics, Business Studies, Mathematics, Social Studies etc for all classes Students.We also Offer Readymade Project Reports for B...


text:
Inflatable Water Games Infaltable Spinner - Chinaprice: contact company for price
1.size: 2.5X2.5X1.6M/8.2X8.2X5.1FT
2.pass CE& SES certification
Place of Origin: Guangdong, China (Mainland)
Brand Name: XH
Model Number: WG52
Type: water games
Size: 2.5X2.5X1.6M/8.2X8.2X5.1FT or customize size
Material: PVC Tarpaulin
Style: inflatable water games prompt goods: we can ship to you once you order
Packaging Details: inflatableproducts packaged in PVC Tarpaulin bag or oxford cloth or carton and blower packaged in carton
Delivery Detail: 7~15 working days after received deposit
In stock !!! Ready to ship !!
-Once you order,
The inflatable spinner will arrived your door soon-----------------
2013 newer exciting hot-selling inflatable spinner in stock
inflatable water games, inflatable spinner, inflatable game, infaltable water saturn, inflatable wate parks, inflatable spinner for aqua gams, inflatable
Specification of inflatable spinner in stock
Model name
inflatable spinner
Model number
1 pcs
2.5X2.5X1.6M/8.2X8.2X5.1FT (For children use)
or customize size
PVC Tarpaulin or customize meterial
Print Digital print, not fade
Pass SGS/EN71, EN 14960 & CE standard
Repair kit(fixing material and glue), CE approved air pump
we have make kinds of advertising model, we welcome to be our team for giving us idea. We will service for you anytime
ALL will be pacakeaged in durable Oxford Cloth bag or PVC Tarpaulin bag or carton
We are 100% manufactory and location shooting
Company Contact:
- Phone: 8602084982644
- Address: #65 HeHui Road, JinGang Avenue, NanSha District , guangzhou, China
- Email:
Published date: January 16, 2014 -
- Business Description: involved in international trade import export of goods, products, and services
Related listings
Inflatable King Chair Hot SaleToys - guangzhou xianghe inflatable products factory - China - January 16, 2014 - contact company for price
inflatable queen chair, inflatable throne: 1. Size:customize size 2. Durable commercial grade material 3. Used for party Place of Origin: Guangdong, China (Mainland) Brand Name: XH Model Number: CA-042 Type: inflatable model Size: customized size Col...
Oxford Cloth Brand New Inflatable Air DancerToys - guangzhou xianghe inflatable products factory - China - January 16, 2014 - contact company for price
inflatable air dancer: 1. Size:6M or customized size 2. Durable oxford cloth 3. light weight and easy to us Place of Origin: Guangdong, China (Mainland) Brand Name: XH Model Number: AD39 Type: Air Dancer Size: 6M or customized size Color: can be cust...
The Summer Games Water Different Sizes Swimming PoolToys - guangzhou xianghe inflatable products factory - China - January 13, 2014 - contact company for price
Specifications inflatable black pool 1.Inner size: 4M 2.pass CE& SES certification 3.good quality and attactive advertising model 2013 newer exciting hot-selling Inflatable Black pool inflatable pool, inflatable water tank , inflatable pond model, in...
Safe Trade Tips
- Ask for business references and check them
- Use a payment method that offers better protection for all such as Letters of credit and verified professional escrow services. Avoid payments in advance such as money transfers
- Verify their business via their local Chamber of Commerce
- Search the internet using their website address, their business name, their phone and fax numbers, and their email addresses to see if you can find any feedback about them.
- Get to know more about scams to avoid: Internet Crime Complaint Center - International Financial Scams
- This site is never involved in any transaction, and does not handle payments, shipping, guarantee transactions, provide escrow services, or offer "buyer protection" or "seller certification"


text:
Why Generation Nursery Rhyme
Old MacDonald had a phone
Wifi-ed, mobile phone
And on that phone he had an app
Wifi-ed, mobile phone
With an app app here
And an app app there
Here an app
There an app
Everywhere an app app
Old MacDonald had a phone
Wifi-ed, mobile phone
Old MacDonald had an Xbox
Modern fitness Xbox
And on that Xbox he had a game
Modern fitness Xbox
With a kick kick here
And a kick kick there
Here a kick
There a kick
Everywhere a kick kick
Old MacDonald had an Xbox
Modern fitness Xbox
© Copyright 2017 Shannan Browne. All rights reserved.
Status: Finished
Genre: Poetry
Lol! I ain't no genius but I'll have a go. Love a challenge
okay did two. Old MacDonald learned to Text and Old MacDonald had an Electric Tractor
ol' mc donald had a wi....wiggled to and fro...and on this wi he loved to ski....as if idaho....with a wi wi here and a wi wi there...when he skis, bends his knees...goes down swiftly as you please...ol' mc donald had a wi....wiggles high and low....that ok ?
loved it, i have one i wrote called 'twinkle twinkle' hehe
Hey! What about:
Old McDonald had a Facebook,
Friend him on Facebook,
And on that site,
He had a status,
Friend him on Facebook,
With a Like Like here,
And a Like Like there,
Here a Like,
There a Like,
Everywhere a Like Like,
Old McDonald had a Facebook,
Friend him on Facebook
How's this? I hope you liked it!
Book / Literary Fiction
Short Story / Literary Fiction
Short Story / Literary Fiction
Paste the link to picture in the entry below:
Paste the link to Youtube video in the following entry:
Cannot annotate a non-flat selection. Make sure your selection starts and ends within the same node.
An annotation cannot contain another annotation.
There was an error uploading your file.


text:
Jenny Oaks Baker
- Write a show review Overall Rating:
- Genre: Folk, Rock, Easy Listening, Gospel
Track Artist for New Show Alerts
ARTISTS SIMILAR TO Jenny Oaks Baker
Jenny Oaks Baker's Upcoming Concerts
No upcoming shows?
Jenny Oaks Baker has not listed any upcoming shows. Check Jenny Oaks Baker's website
Copy and paste the video url from your browser's address bar below.


text:
Seating load parameters impact on dental ceramic reinforcement conferred by cementation with resin-cements
Addison O.,University of Birmingham |
Sodhi A.,University of Birmingham |
Fleming G.J.P.,Materials Science Unit
Dental Materials | Year: 2010
Objectives: Cementation of all-ceramic restorations with resin-cements has been demonstrated to reduce the incidence of fracture in service. The aim was to investigate the influence of loading force and loading duration applied during cementation on the reinforcement conferred by a resin-cement on a leucite reinforced glass-ceramic. Methods: 210 glass-ceramic discs (12 mm diameter, 0.8 mm thickness) were allocated to seven groups (n = 30). The bi-axial flexure strength (BFS) was determined for 'as-fired' specimens (group A), following HF-acid etching (group B) and following etching and centrally loading on a semi-compliant substrate with 30 N for 300 s (group C). Further etched specimens were coated with Rely-X Unicem resin-cement under cementation loading of 5 or 30 N, for 60 or 300 s (groups D-F) prior to BFS determination using multilayered analytical solutions. BFS data was compared using factorial or one-way analyses of variance and the Weibull analysis. Results: HF-acid etching of the 'as-fired' surface resulted in a significant reduction in mean BFS (P < 0.001) whereas resin-cementation subsequently conferred significant strengthening (P < 0.001) ranging from 24 to 38% and dependent on the loading parameters employed. A factorial significance (P = 0.004) of seating load (5 or 30 N) and significant factorial interaction (P < 0.001) of seating load and load duration (60 or 300 s) on the mean BFS were identified. Significance: The magnitude of resin-reinforcement conferred was sensitive to the loading parameters investigated although the mechanisms underlying the variation appear complex. Similar patterns of variability can be expected clinically impacting on the clinical longevity of resin-cemented glass-ceramic restorations. © 2010 Academy of Dental Materials. Source
Sekkina M.M.A.,Materials Science Unit |
Elsabawya K.M.,Taif University |
El-Maghraby A.,National Research Center of Egypt |
El-Maghraby A.,Taif University
Oriental Journal of Chemistry | Year: 2013
The present investigations introduce new trend of applying AFM-microscopy to visualize a real 3D-imaging of sample's surface topography. High resolution AFM-investigations indicated that crystalline asprin has regular arrays of atomic arrangement with no violation in the bulk of asprin. TM deflection AFM- gave us good approximation to the diffusion of grain throughout the surface topology of investigated asprin. The AFM-deflection centers imaging indicated that the numbers of grains distribute in circular arrangements on the surface and material bulk. 3D-visualized imaging introduce precise determination of exposure surface area interacting with dissolving agent. Source
Lead-nano-dopings effects on the structural, microstructural, vibrational and thermal properties of Bi2-xPbxSrV2O9 layered perovskite
Elsabawy K.M.,Materials Science Unit |
Elsabawy K.M.,Taif University |
Abou Sekkina M.M.,Materials Science Unit |
Asker M.A.,Materials Science Unit |
And 2 more authors.
Solid State Sciences | Year: 2010
The sample with in the general formula Bi2-xPbxSrV2O9, where x = 0.0, 0.05, 0.1, 0.2, 0.3, and 0.6 mol were synthesized by the high temperature solid state reaction and firing method. The X-ray diffractograms confirmed the formation of single phased layered perovskite in all samples. TGA and DTA thermal analyses on the green samples included steps of thermal analysis of strontium carbonate, bismuth carbonate, ammonium vanadate, lead oxide and finally on the high temperature solid state formation. The effect of lead dopings on the sintering, structural and micro-structure, properties of 212BiSrV-ceramics were investigated. The infrared absorption spectra show a series of vibrational modes within the range of 400-1600 cm-1. © 2010 Elsevier Masson SAS. All rights reserved. Source
Influence of LED irradiance on flexural properties and Vickers hardness of resin-based composite materials
Bhamra G.S.,Materials Science Unit |
Fleming G.J.P.,Materials Science Unit |
Darvell B.W.,University of Hong Kong
Dental Materials | Year: 2010
Objective: To investigate the effect of irradiance through choice of LED light-curing unit (LCU) and fiber-optic tip on the mechanical properties of methacrylate resin-based composites (RBCs). Methods: Rectangular bar-shaped specimens (25 mm × 2 mm × 2 mm) of four RBCs, irradiated from one side for the manufacturer's recommended times with one of two LED LCUs, and with either 8 or 13 mm tip diameter, were tested in three-point bend for flexural strength and modulus of elasticity; Vickers hardness was measured on top and bottom surfaces, on overlapped and non-overlapped irradiation sites. The effects and interactions of all factors were examined by analysis of variance. Results: While the materials tested differed significantly for all properties (P < 1 × 10-6), there was no significant effect for LCU, tip, or irradiance for flexural strength or modulus of elasticity. For hardness, the only significant effect overall was due to irradiance on the bottom surface. Conclusions: Both LCUs and both tips could be used to give adequate top surface hardness, but the recommended maximum increment thickness is too great for adequate cure at the bottom with the tested LCUs at the recommended times. An extended experimental design would be valuable to test behavior at much elevated irradiances. © 2009 Academy of Dental Materials. Source


text:
Migrant deaths have risen to record levels along the Libya-Italy smuggling route across the Mediterranean Sea
President Trump's temporary ban on visas for people from Iraq and six other predominantly Muslim countries has changed relations with Iraqi soldiers fighting alongside the U.S. Charlie D'Agata reports.
Sen. John McCain, R-Arizona, criticizes the execution of President Trump's immigration ban as a "confused process"
As Russia denies having "kompromat" on Trump, it objects to the Senate testimony of his secretary of state nominee, Rex Tillerson. Elizabeth Palmer reports from Moscow, where a government spokesman is also criticizing a move by the Obama administration.
Since end of Cold War, U.S. has drawn down military presence in Europe, but now -- at least for a while -- that trend has reversed. Elizabeth Palmer reports from Germany as an entire U.S. combat brigade arrives.
Syrian cease-fire agreement appears to be mostly holding after it went into effect midnight local time. The deal was brokered by Russia and Turkey, two countries on opposite sides of the civil war. If the cease-fire lasts, peace talks are scheduled for January. Holly Williams reports from Istanbul.
Trump administration could have many bones to pick with world body, and Congress already has big beef with it. CBS News foreign affairs analyst Pamela Falk reports from U.N. Headquarters.
An intimate performance in London shows a new way to experience live music. It's called Sofar, or songs from a room. The gigs are popping up in cities around the world. The audience is asked to be respectful, with no texting and no talking. Jonathan Vigliotti reports on the movement started by an American in London.
The wreckage of Nimrud, the 3,000-year-old capital of the Assyrian Empire, is vulnerable to looters
Relatives grieved as flowers were put on 20 caskets at a mass funeral for those who died in Haiti's largest prison
Some of the smallest known frogs were recently discovered following a five-year survey in India
Italian olive oil prices are due to jump by as much as 20 percent, after combination of bad weather and pests hit harvest
Monument inspired by album cover would be placed in London neighborhood where he was born
Toxicology reports still pending on death of Vitaly Churkin, who died suddenly in New York City
Some argue having the U.S. president officially welcomed by the queen would be an embarrassment to the crown, others say critics "should get over it"
The sentence, which also included a year's probation and a demotion in rank, was lighter than expected
Hetero couple who want legal recognition of their relationship without "patriarchal baggage" of marriage lose their case
Determining whether poison killed Kim Jong Nam after an encounter with several women in a busy airport is proving difficult
Police in Barcelona fired on stolen vehicle and have taken a Swedish national into custody for questioning
One tourist was on "once in a lifetime trip," sister says; pilot reported "catastrophic engine failure" moments before crash
Five people were believed killed when a light plane crashed in flames in the Australian city of Melbourne, officials said
ISIS has been using drones against Iraqi forces with increasing levels of sophistication
Late night host trying to "do something positive" for U.S.-Mexico relations
Partizan Belgrade midfielder Everton Luiz was in tears after persistent racist chants during his team's victory over Rad


text:
Opel Crashes GTI Meet At Wörthersee: Video2
Sponsored Links
Come on out to our GTI meet at Wörthersee lake in Austria, they said. There will be fireworks… and even free 3D glasses in which to watch them, they said.
But what they didn't say was that the glasses will actually show a bouquet of Opel logos, rather than those of VW — which led to VW fans burning the free 3D glasses.
The GM Authority Take
Although crashing parties isn't usually a sign of good taste or fine manners, this enthusiast-driven effort was rather entertaining. So… punked.
Sponsored Links
Besides bringing you the latest GM News, GM Authority also has a great forum where you can post topics, ask and answer questions as well as discuss all things GM. Visit the GM Authority forum today!


text:
President Buhari in his statement said:
"My heart and prayers go out to the people of Italy at this time of national mourning, caused by the devastating earthquake."In other news, at least 7 people were injured and one confirmed dead as Fulani herdsmen attacked a community in Enugu State early today.
How to stay updated: Install 'Somtoo Okoye blog' app (Direct Download) (Google Play) | Follow on Facebook & Twitter


text:
Our annual "First Lessons in Beekeeping" course will begin on Tuesday January, 31 2017 at 6:30 PM. The course will be held at Trinity United Methodist church 2724 Whiskey Rd Aiken SC, across from Tractor Supply, in the youth hall in the rear of the church.
This is a seven session introductory course for those interested in honeybees and the art of keeping them. Each session, on successive Tuesday evenings, is taught by local experienced beekeepers who will provide you with practical information on how to ne a successful beekeeper. Each session is designed to instruct you on basic beekeeping techniques and general knowledge. Whether you are an aspiring first time beekeeper, one who has kept bees before, or someone just interested in the health and well being of our pollinators this course will be of interest to you. At the end of the course participants will be given the opportunity to take a written test toward becoming certified beekeepers in the SC Master Beekeeping program.
The costs for the course are as follows:
Adults $75.00
Couple $95.00 (includes one textbook)
Children under 18 are free with paid adult
Fees includes
-Text Book
-Seven Weeks of Expert instruction
-ABA Membership one year
-Written Test Fee
-State Membership one year
Additional text books can be ordered for $15.00
As always space for this course is limited and we ask that those that are interested to register in advance.
Payments must be received by January 24, 2017. Please send payments to:
First Lessons in Beekeeping
1510 Alpine Drive
Aiken Sc 29803
Checks should be made out to Jonathan Hanger.


text:
User menu
Log In
Social buttons
Facebook AU
Twitter AU
Buy the magazine
Australia
Indonesia
Malaysia
Singapore
ไทย
UK
US
Enter your keywords
Astra Giurgiu
Luciano Spalletti
7 December 2016
Spalletti wants winning mentality to continue for Roma
Having made a fine start to the season, Luciano Spalletti is keen for Roma to maintain their winning mentality in every game.
Francesco Totti
28 September 2016
Spalletti demands end to damaging Roma 'games'
Following criticism from Francesco Totti's wife and some mixed recent performances, Luciano Spalletti wants an end to distractions at Roma.
Slaven Bilić
26 August 2016
Bilic 'angry and frustrated' as West Ham crash out of Europe
A 1-0 win for Astra saw the Romanian outfit knock Premier League side West Ham out of Europe.
25 August 2016
West Ham 0 Astra 1 (1-2 agg): Romanian minnows embarrass Hammers again
Astra beat West Ham 1-0 at London Stadium to secure a 2-1 aggregate win and knock the Premier League side out of the Europa League again.
Michail Antonio
18 August 2016
Bilic unhappy as Antonio miss costs West Ham
Slaven Bilic was left frustrated that his West Ham side were held by Astra after Michail Antonio missed a clear chance for a second goal.
5 August 2016
Europa League draw: West Ham to face Astra again, Sassuolo meet Red Star Belgrade
West Ham will have to find a way past Romanian champions Astra if they are to reach the Europa League group stages.
27 August 2015
UEFA Europa League Review: Reus leads Dortmund rout, AZ complete late comeback
Borussia Dortmund ran riot with a 7-2 win over Odd in the UEFA Europa League, while AZ scored twice late on to beat Astra.
20 August 2015
UEFA Europa League Review: Mkhitaryan rescues Dortmund, Rodriguez earns draw
Borussia Dortmund claimed a stunning comeback win as Jay Rodriguez's first Southampton goal in over a year salvaged a draw with Midtjylland.
18 August 2015
UEFA Europa League Preview: Athletic Bilbao travel to Zilina, Odd host Dortmund
Supercopa de Espana winners Athletic Bilbao return to UEFA Europa League action in their play-off first leg clash with Zilina.
7 August 2015
Odd Europa League play-off draw for Dortmund
Borussia Dortmund will have to overcome an Odd test to reach the UEFA Europa League group stages after Friday's play-off draw.
next ›
last »


text:
Listen to Jimmy Kimmel Live The Morning After Radio on iHeartRadio
Jimmy Kimmel's Mean Tweets were back and this time Britney Spears, Lisa Kudrow, Chris Pratt, John Stamos and many more were the latest victims. The celebs read aloud some of the nastiest tweets about themselves that could be found. Their reactions were priceless
Check out the video here:


text: Sultan Al Mansouri, the Minister of Economy, expects oil to trade between US$80 and $100 a barrel this year as the crude market continues to be buffeted by volatility.Brent Crude, the benchmark for oil sold into Europe, hit a 16-month low of $95.63 a barrel yesterday after falling for a fifth consecutive day on negative economic data out of China and the United States. Prices later recovered to trade at about $97.90 a barrel. \"My expectation is it will hover between $80 and $100 depending on the situation - it could be more than that,\" Mr Al Mansouri said yesterday. He did not specify which benchmark he was referring to, but said oil sales this year had averaged at about $112 a barrel, allowing for a GDP growth of 3 per cent. \"As long as it hovers around $100, it is the right price,\" said Mr Al Mansouri. Oil traded on the New York Mercantile Exchange sold for about $83 a barrel yesterday. The Opec basket price, the average price of oil sold by the producers\' organisation, stood at more than $97 a barrel on Friday. Both Brent and the Opec basket crashed through the $100 a barrel barrier at the end of last week, driven by the woes of the euro zone and a worsening global outlook. The precipitous drop in the price of oil during the past week will mean a significant decline in oil revenues for the Gulf if current production levels are sustained, said Giyas Gokkent, the chief economist at the National Bank of Abu Dhabi. \"A $10 decline in the price of oil for the GCC as a whole can mean $60 billion of difference,\" he said. Prices shot up at the beginning of the year as tensions in the Gulf led to concerns over a closure of the Strait of Hormuz, the waterway that carries one fifth of global exports, and fears that sanctions on Iran would leave the market in short supply. Since then Europe\'s slump, with several countries back in recession, and increasing economic headwinds in Asia and the US reversed that pricing trend. Declining inventories and the continued prospect of reduced Iranian exports have experts predicting oil prices will rally later in the year.from the National news.


text:
Load mobile navigation
Latest News
Scottish News
UK & World News
Real Life
Business & Consumer
Weird News
Science & Technology
Scottish Premiership
Scottish Championship
Scottish Cup
Betfred Cup
Scotland Football Team
Transfer News
English Premier League
Latest Sport
TV & Celebs
Latest Celebs
Celebrity News
TV & Radio News
Celebrity Interviews
Life & Style
Scotland Now
In Your Area
See all locations
Sign in
My Account
Sign Out
About Us
Contact Us
Got A Story?
Local News
Cookie Policy
Competition Rules
How to Complain
Corrections & Clarifications
Google Survey
Privacy Policy
Contact the Judge
Sunday Mail Centenary Fund
Paper Subscription to the Daily Record and Sunday Mail
Paper Subscription to the Paisley Daily Express
Terms and Conditions
© 2016 Scottish Daily Record and Sunday Mail Ltd
The Golden Globes
The Oscars
The way Andrew Garfield looked at ex-girlfriend Emma Stone during her Oscars speech is breaking hearts
The former lovebirds were reunited at the Oscars last night as Emma won Best Actress for her role in La La Land.
Angelina Jolie
Angelina Jolie, supported by her children, makes first red carpet appearance since Brad Pitt split
Angelina was promoting her new Netflix film, and had the support of all six of her children on the carpet.
Emma Watson
Emma Watson's La La Land 'demands' rumoured to have cost her lead role to Emma Stone
It has been reported that Watson was originally offered the part played by Emma Stone in the film before being dropped due to her "demands".
Why you'll fall in love with La La Land
With Emma Stone and Ryan Gosling's new film the talk of Hollywood, Sanjeeta Bains takes a hassle-free trip to see the real thing.
The Golden Globes
Brad Pitt cheered at Golden Globes as he attends first awards ceremony since splitting with Angelina Jolie
A dashing Brad Pitt showed that there is life after a high-profile break up.
The Golden Globes
Andrew Garfield's reaction to ex-girlfriend Emma Stone winning a Golden Globe is breaking hearts everywhere
The actress gave an emotional acceptance speech - but her former sweetheart's reaction stole the show
Donald Trump
Donald Trump responds to 'overrated' Meryl Streep's Golden Globe speech in twitter rant
The President elect responded to Meryl Streep's speech about Trump at the Golden Globes over his personal twitter account.
The Golden Globes
Feminist statement or just the pits? Actress appears on Golden Globe red carpet baring unshaven armpits
Lola Kirke doesn't shave her armpits and convinced the director of her TV show Mozart in the Jungle to allow her character to remain the same way.
The Golden Globes
'It broke my heart': Meryl Streep stuns Golden Globes crowd with anti-Donald Trump speech
While accepting her lifetime achievement award, Meryl Streep stunned the room into silence as she condemned the President elect.
The Golden Globes
When are the Golden Globes 2017 on? Nominations, date and how to watch in the UK, plus all you need to know about the host of the awards
From the red carpet fashion to the award-winners' reactions, here's everything you need ahead of the Golden Globe Awards.
The Golden Globes
The Brits take over as UK stars including Hugh Grant and Naomi Campbell are tipped to present awards at Golden Globes
The British contingent will hand over awards to luvvies from across the globe during the American ceremony.
Katy Perry and Orlando Bloom channel Hillary and Bill Clinton at Kate Hudson's A-list Halloween party
THE A-list flocked to the Hollywood bash, with the likes of Elizabeth Banks, Kendall Jenner and Salma Hayek among the guests on Friday night.
Jane Horrocks believes opportunities in acting shouldn't just be about money
ABSOLUTELY FABULOUS star Jane Horrocks believes only privileged youngsters will get the chances she had.
Ricky Gervais
Ricky Gervais rocks into Edinburgh as alter ego David Brent hits the road
AS David Brent: Life on the Road hits the big screen, Ricky Gervais talks about the hero of The Office, his own rise to fame, and the joys of being a pretend rock star.
Lady Gaga
Lady Gaga set to hit the silver screen in remake of A Star is Born directed by Bradley Cooper
The singer will pen a new soundtrack for the 1937 classic
Ricky Gervais
Ricky Gervais on stardom, the Golden Globes and sending David Brent out on the road
RICKY Gervais has said the best thing about being famous is being able to cuddle random dogs in the park.
Ricky Gervais
Ricky Gervais announces he will be killing off one of his best loved characters
The actor and comedian plans to wave goodbye to his dad-dancing altar ego
Return of the Litch mob! We've been speaking to stars of Orange is the New Black ahead of the new season
WHAT can we expect to happen in the new series of Orange is the New Black? We've been finding out from some of the stars of the hit show.
Knife crime
Raging Bull actress Theresa Saldana - who survived a knife attack by a Scottish stalker - has died
THE 61-year-old passed away in hospital from an undisclosed illness. She was stabbed 10 times by a crazed Scottish fan in 1982.
Find out why you should be watching ... Billions
THE brand new show starring Damian Lewis and Paul Giamatti will make its debut on Sky Atlantic this Thursday at 9pm.
Helen Mirren
Helen's still at the top of her Dame: Scots fashion experts hail the queen of the film catwalk
DAME Helen Mirren was named Britain's favourite fashion icon in a poll of 18 to 80-year-olds by clothing firm JD Williams. Having just made her appearance in wartime thriller Eye in the Sky, how did she beat regulars on the catwalk in the style stakes?
Things to do Scotland
10 must-watch TV shows to take over your weekend
STAYING in this weekend? Why not catch up on some great TV series with our list of the Top 10 shows on just now.
The Oscars
Meet Brie Larson and the four other leading ladies in the running for Best Actress Oscars glory
THE least known of the Oscars candidates and current favourite to take home the Best Actress gong, Brie Larson sits down with us to discuss her slow but steady rise to success.
Kanye West
Biggest award show burns and bust ups after chaos at NME Awards 2016
WE'VE compiled a list of the biggest, most talked about burns and bust ups at award show ceremonies over the past 20 years.
This website uses cookies. Using this website means you are okay with this but you can find out more and learn how to manage your cookie choices
Close cookie policy overlay


text:
Radhey Radhey!
now MCX Gold has resistance 27265 & today's high 27225, if not hold above 27265 level then again am expecting 27060 & 26930 but if hold above then 27400 & 27540 easily looking – Chandan
((91-11-9899993052, 91-11-9818982844))
Chandan Singh
We are pleased to introduce ourselves as one of the most prestigious & leading MCX advisory service provider. With more than a decade of experience & expertise we are proud to have major national & international firms in our client database.
We assure* you with 80%-90% accurate tips on the following plans:
*assurance is as per our past performances, risk factor may be involved as per market turmoil.
Our services are well known & appreciated by the industry & individuals & received rave reviews for the same.
Assuring you best of services at all time.
Please contact us for assured returns on your commodity market investment.
Mr Chandan Singh
Tel: 09899993052
Email: email@example.com
Latest posts by Chandan Singh (see all)
- "MCX Segment" Performance Details {Profits Rs. 1,36,300} - January 28, 2017
- Re: Spot Gold Trading View DATE: 27-01-2017 - January 27, 2017
- Re: WTI Crude Oil Trading View DATE: 27-01-2017 - January 27, 2017


text:
Mini Baby Ceiling Fan - Chinaprice: contact company for price
1.Blade Size : 750mm ( 26/36 inch)
2.Fan: Full copper motor 60W with iron shell
3. Blades: iron or wooden 3pcs
4. Light Spe.:LED Light
5.Color: same as picture
6.Material : iron, glass, copper
7. packing size : L48*W32.5*H34cm
8.The standard control : Remote control
Our ceiling fan with frequency conversion motor has three speed---low, middle and high.And the RPM range is 70 to 240.
Company Contact:
- Posted By: zhongshan esclighting technology limited
- Phone: 13823996462
- Address: No.16 North fuheng Road ,henglan Town,Zhongshan,Guangdong,China, zhongshan , guangdong, China
- Email:
- Website: http://www.esclighting.com/
Published date: September 3, 2016 -
- Business Description: ESCLIGHTING was founded in 2007,after 10 years development ,it become one of the largest copper Chandelier lights and ceiling fan with LED lights factory in Zhongshan ,China.
Related listings
Ceiling FansFans - zhongshan esclighting technology limited - China - September 3, 2016 - 78.80 Dollar US$
ceiling fans 1.Blade Size : 1080mm ( 42 inch) 2.Fan: Full copper motor 70W with iron shell 3. Blades: ABS 3pcs 4. Light Spe.:LED Light 36/72W 5.Color: same as picture 6.Material : iron, glass, copper 7. packing size : L56*W56*H39.5cm 8.The standard c...
Ceiling Fans With LightsFans - zhongshan esclighting technology limited - China - September 3, 2016 - 38.50 Dollar US$
ceiling fan with light 1.Blade Size : 1260mm (can be 42/48/52inch) 2.Fan: Full copper motor 70W with iron shell 3. Blades: iron or wooden 5pcs 4. Light Spe.:E27*3Pcs 5.Color: same as picture 6.Material : iron, glass, copper 7. Packing size : L53*W33*...
New Design Luxurious Crystal Ceiling Fan With LightFans - Zhongshan ESCLIGHTING Co.,Ltd. - China - August 26, 2016 - 86.30 Dollar US$
Quick Details Power Source:Electric Type:Ceiling fan with light Installation:Ceiling Material:Metal Certification: CB, CE, EMC, EMF, GS, RoHS, SASO, UL Power (W):70 Voltage (V):240 Brand Name:ESC/OEM/ODM Model Number:HF-9047 Place of Origin: Guangdon...
Safe Trade Tips
- Ask for business references and check them
- Use a payment method that offers better protection for all such as Letters of credit and verified professional escrow services. Avoid payments in advance such as money transfers
- Verify their business via their local Chamber of Commerce
- Search the internet using their website address, their business name, their phone and fax numbers, and their email addresses to see if you can find any feedback about them.
- Get to know more about scams to avoid: Internet Crime Complaint Center - International Financial Scams
- This site is never involved in any transaction, and does not handle payments, shipping, guarantee transactions, provide escrow services, or offer "buyer protection" or "seller certification"


text:
Top Definition
Listening to the nyan cat song for long periods of time with no interuption to see who can listen the longest.
Daniel, Troy, and Dakota were up all night Nyan Cat-ing.
by D. DeWayne June 01, 2011
The Urban Dictionary Mug
One side has the word, one side has the definition. Microwave and dishwasher safe. Lotsa space for your liquids.Buy the mug
The Urban Dictionary T-Shirt
Smooth, soft, slim fit American Apparel shirt. Custom printed. 100% fine jersey cotton, except for heather grey (90% cotton).Buy the t-shirt


text:
Clarabelle, if you look back at the responses you will see that people who answered that they love looking after others people children are also the people who work with children.
Benji (29-05-2012)
I've looked after a friends little girl probably once a month over the last 4 years (she's currently 9). I love having her and my now DH loves having her over. She's even by choice opted to call DH uncle. I've always been called aunty which was her parents doing.
In saying all of the above though I haven't had her over since DD has been born. Not sure how it will go TBH. Both girls are pretty needy in different ways
Fair enough. Maybe it's just the rest of us then, eh?
Nope don't enjoy it! I'm dreading DD getting older and wanting to have sleep overs! At the moment watching DD is like watching 20 naughty kids coz she is so angry and has such a bad temper! The 1 exception I have is a friend whose DH has just gone overseas for a work conference for a few weeks, I offered to mind her son whenever she wants coz DD loves him and is sooo well behaved around him!
Clarabelle, CC workers are DEFINITELY in it for the love, not the money I honestly don't know how on earth someone could be a child care worker if they didn't like it, it would drive you completely round the bend.
Sent from my HTC Sensation Z710a using BubHub
No I don't.
There are those that love it though, but I definitely don't understand it.
I really enjoy looking after others kids. I have no problem with mess or the noise as long as they are having fun and are safe I really have no problems looking after them.
Pregnant for the first-time?
Not sure where to start? We can help!
Our Insider Programs for pregnancy first-timers will lead you step-by-step through the 14 Pregnancy Must Dos!


text:
Skip to Content
There's been wigs, dreadlocks, hair-dye and a lot of shaving. Some are regrettable, some weirdly wonderful, but all are unbelievable. Check out these past hairstyles from Kanye West, Rihanna, Nick Cannon and more.
Picture 12 of 27
Back when Rih was dressing all rock-and-roll in denim cut-offs and cropped tee's she debuted this popular cut that saw her take a shaver to one side of her head. It's a look that few woman would ever touch and one that Rih mastered, as per.
Powered by Facebook