text:
Tag Archives: IAA
BMW at the IAA Cars 2017 in Frankfurt.
By admin in BMW September 13, 2017 0 Comment
BMW is firing the starting gun on the brand's forthcoming product offensive with an extraordinary pageant of new models and concept vehicles at the IAA Cars 2017 show in Frankfurt am Main. The company's stand centres on its expanded luxury class line-up, captivating studies and production models in numerous segments exhibited at a public trade fair for the first time. The new products unveiled at the 2017 Frankfurt show highlight the status of BMW as a manufacturer of vehicles that transmit unrivalled levels of emotional appeal with their inspirational design, trailblazing innovations and the driving pleasure for which the brand is renowned. BMW is also showcasing the latest technological developments for the future of personal mobility, in which powertrain electrification, comprehensive digitalisation and other advances in the field of automated driving will play a particularly important role.
Hall 11 at the main entrance to the Frankfurt trade fair site has been prepared for the shared BMW, MINI and BMW Motorrad stand, and serves as a forum for current and future highlights of the product range. This is where the new products and features from all the brands will be presented under the slogan "This is tomorrow. Now. Die Zukunft ist jetzt". The exhibition space covers an area of over 10,500 square metres and has a circuit running around it that is about 150 metres long. This will give visitors to the Frankfurt Motor Show on 14 – 24 September 2017 the opportunity to experience the new models in action too.
The BMW Group offers a clear image of the electric mobility of the near future with the world premiere of the BMW i Vision Dynamics. This four-door Gran Coupe study with pure-electric drive system combines electric mobility with the BMW brand values of dynamism and elegance. The BMW Concept X7 iPerformance, BMW Concept 8 Series and BMW 7 Series Edition 40 Jahre are all testimony to BMW's expanded presence in the luxury segment.
Other facets of driving pleasure are demonstrated at the 2017 Frankfurt show by the BMW Concept Z4, the new BMW 6 Series Gran Turismo and the new BMW X3 respectively – including exhilarating open-air fun, elegance and long-distance comfort, not to mention multi-faceted sportiness. The know-how gleaned from competing in motor sport is a traditional component of the BMW brand's DNA, and it endows the new BMW M8 GTE with ideal credentials for endurance racing. The new BMW M5 (fuel consumption combined: 10.5 l/100 km [26.9 mpg imp]; CO2 emissions combined: 241 g/km), meanwhile, transfers these high-performance genes from track to road to stunning effect. The new edition of the BMW i3 (combined fuel consumption: 0.0 l/100 km; combined electric power consumption: 13.6 – 13.1 kWh/100 km; combined CO2 emissions from petrol: 0 g/km), which is making its debut appearance at the 2017 Frankfurt Motor Show together with the new and even sportier BMW i3s (combined fuel consumption: 0.0 l/100 km; combined electric power consumption: 14.3 kWh/100 km; combined CO2 emissions from petrol: 0 g/km) illustrates just how closely the company already associates driving pleasure with sustainability.
BMW Motorrad is also placing the spotlight on the intensely emotional and sustainable sides of mobility in Frankfurt. The BMW Motorrad Concept Link boasts an all-electric drive system and state-of-the-art connectivity technology, as well as numerous other pioneering ideas for urban mobility in tomorrow's world.
Porsche 911 GT3 with Touring Package celebrates its world premiere in Frankfurt
By admin in Porsche September 13, 2017 0 Comment
The 911 GT3 with Touring Package will be unveiled at the 67th International Motor Show (IAA), which will take place from September 12 to 24, 2017, in Frankfurt. Instead of the fixed rear wing, when equipped with the optional Touring Package, the GT3 will have an adaptive rear spoiler similar to that of the 911 Carrera models. Beneath its understated exterior is pure motorsport-derived technology: The four-liter naturally aspirated flat-six engine develops 500 horsepower and generates 339 lb.-ft. of torque. The 911 GT3 with Touring Package sprints from 0 to 60 miles per hour in 3.8 seconds and reaches a top track speed of 196 miles per hour. The Touring Package will be available exclusively in combination with the six-speed manual transmission.
The name "Touring Package" harkens back to a variant of the 911 Carrera RS from 1973. The very pure 911 design and classic interior features were key elements of this model. The new 911 GT3 when equipped with the Touring Package follows the same concept, and retains the two-seater arrangement of the 911 GT3. Apart from certain Alcantara®-covered interior fittings, almost all 911 GT3 options are also available in combination with the Touring Package. This includes all available exterior colors, wheel choices, the Porsche Ceramic Composite Brake (PCCB) system, the front axle lift system, LED headlights, three seat options, and the Sport Chrono Package.
A high-performance sports car in every aspect
With the exception of the rear spoiler treatment, the body of the GT3 with the optional Touring Package remains unchanged. Like the other GT3 models, it is based upon the body of the 911 Carrera 4 model, which is 1.7 inches (44 millimeters) wider at the rear wheel arches. It sits about one inch (25 millimeters) lower than the 911 Carrera S. It also has large air intakes in the specially designed front fascia, as well as the air intake that is typical of the 911 GT3 model, located in front of the luggage compartment lid. In contrast to the other GT3 models, the front turn signal lenses and the taillights are not tinted. The 911 GT3 with Touring Package sits on forged center lock alloy wheels. At the front, 245/35 ZR 20 tires are fitted on nine-inch wide wheels, while at the rear 305/30 ZR 20 tires are mounted on twelve-inch wide wheels.
Sporty aerodynamics: Rear spoiler with additional gurney flap
The subtle differences in the Porsche GT3 model when it is equipped with the Touring Package are primarily visible at the rear. The automatically extending rear spoiler from the 911 Carrera models is equipped with an aerodynamic lip ("Gurney Flap") finished in body color. The specially designed rear decklid grille bears a new "GT3 touring" logo. Other distinguishing features include side window surrounds, Sport Exhaust tailpipes, and headlight washer system covers which are finished in silver, as well as the Porsche logo at the rear. With the further available "Touring Package – Exterior in Black" option, these elements are finished in black, as on other 911 GT3 models. In this case, the front turn signal lenses and the taillights are tinted.
The interior creates the feel of a classic sports car with a manual transmission. In line with the character of a GT car, leather is prevalent rather than Alcantara®, which is used in other GT3 models. The steering wheel rim with twelve o'clock marker, shift lever, door panel armrests, center console storage compartment lid and interior door handles are upholstered in smooth-finish leather. The seat centers are made of black fabric. The headrests feature embossed Porsche crests and all seams in the partial leather interior are sewn in black thread. The finishing touch to the interior is black brushed aluminum trim.
Powerful six-cylinder naturally aspirated engine from Porsche's motorsport heritage
The powertrain and chassis are identical on all 911 GT3 vehicles with manual transmission, including models equipped with the Touring Package. The naturally aspirated four-liter flat-six engine is taken from the 911 RSR and 911 GT3 Cup race cars. It is the most powerful naturally aspirated flat-six direct-injection engine that Porsche has ever developed for a street-legal car. The engine is characterized by its high-revving nature. The crankshaft spins at up to 9,000 revolutions per minute, which is truly extraordinary, even for a sports car engine.
The gear ratios of the six gears are precisely tuned to the power delivery and torque curve of the engine and offer particularly sporty shifting characteristics. An automatic rev-match feature delivers an exciting sound on downshifts. This function is activated via the "Sport" button on the center console, which enables a faster synchronization of the gears. The GT Sport manual transmission transfers the power to a mechanical rear differential lock with brake-based torque vectoring (PTV).
Fast in the corners, secure on the straights: Rigid chassis with rear-axle steering
The chassis of the 911 GT3 is a testament to Porsche's experience in motorsport. In addition to the basic layout, the chassis also boasts superior handling characteristics, thanks predominantly to the standard active rear-axle steering. Depending upon the vehicle's speed, it steers either in the opposite or the same direction as the front wheels, thereby improving the vehicle's agility or stability. The size of the tires on both axles promote strong braking, sharp turn-in, and excellent traction.
Porsche Track Precision app as standard
In addition to Porsche Communication Management (PCM), including an online navigation module with real-time traffic information, every 911 GT3 model includes as standard equipment the Connect Plus module and the Porsche Track Precision app. This app enables the driver to display, record, and analyze detailed driving data on their smartphone.
The Touring Package option is now available to order and is expected to reach U.S. dealers in early 2018. Like other 911 GT3 models, the version with Touring Package costs $143,600, excluding any available options and the $1,050 delivery, processing, and handling fee.
courtesy: press.porsche.com
The new Aventador S Roadster: Breathtaking performance with open-air driving sophistication
By admin in Lamborghini September 13, 2017 0 Comment
The Aventador S Roadster is presented by Automobili Lamborghini at the IAA in Frankfurt, combining the technologies and driving dynamics of the Aventador S with an emotive open air driving experience.
"The new Aventador S Roadster sets new benchmarks in technology and performance on both road and track, with the roadster version adding a new dimension in driving enjoyment," says Chairman and Chief Executive Officer, Stefano Domenicali. "The Aventador S Roadster offers the thrill of open air driving without compromising on driving dynamics or the occupants' comfort, and adds a further luxurious dimension through the personalization options available."
The Aventador S Roadster is the only mid-rear engine V12 super sports roadster. Alongside class-leading performance figures, the roadster's unique status is enhanced by multiple color and trim options, including new materials and extensive use of carbon fiber as well as virtually limitless potential through Lamborghini's Ad Personam personalization program.
Air and space – the aerodynamic roadster design
The roadster maintains the unmistakable design of the Aventador S along with unique features reflecting its roadster persona: a combination of distinctive Lamborghini design DNA and the result of extensive aerodynamic testing.
The car's rear sports distinctively different lines to the coupé, giving the roadster its own aerodynamic character. An engine bridge runs from the back window to the rear in a mix of body color and matt black painted carbon fiber engine bonnet blades: a transparent option is also available to show off the V12 engine within.
Sleek, removable, hardtop roof panels, weighing less than six kg, are convexly molded to ensure maximum cabin space for the occupants. Finished in matt black carbon fiber, optional specifications including high gloss black, shiny visible carbon fiber, and further Ad Personam possibilities. An easy fastening system allows the roof panels to be quickly removed and stored in the front trunk.
The rear window is electrically operated at the push of a button for drivers wanting to hear the beat of the V12 powerplant: while closed during roofless driving, the window minimizes cabin noise and airflow.
Color and trim, inside and out
Complementing external colors, five interior configurations are offered, featuring leather and Alcantara in single and bi-color combinations and various stitching and trim choices. Further external and internal packages such as 'branding' and 'carbon fiber' are offered, with the Ad Personam program for clients wanting to customize their Aventador S Roadster even further.
Clients can also select the internal specification of the roof panels: covered in black Alcantara framed by matt black carbon as standard, an optional Carbon Skin package (Lamborghini's high tech fabric that is even lighter than Alcantara) can cover the interior roof panels as well as around the cockpit and parts of the cabin.
The Aventador S Roadster is launched in the Ad Personam Color Blu Aegir, inspired by the peaceful turquoise ocean hiding an indomitable force beneath: sophisticated yet powerful, with extensive use of carbon fiber.
The wing mirrors and windscreen frame are finished in high gloss carbon fiber while the lower part of the car including front and rear bumper, side skirts, air intakes and outlets are in visible carbon fiber.
The configuration internally demonstrates the potential of the Ad Personam program, using Blu Delphinus leather contrasted with Bianco Polar, with Blu Delphinus S-trim stripes on seats, doors and dashboard and even the floor mats in blue and white.
Aventador S Roadster – design and technologies
The Aventador Roadster's 'S' suffix denotes the design and technology advancements of the new model. The Roadster adopts the four-wheel drive, new active suspension, new four-wheel steering system, and the new EGO driving mode introduced on the Aventador S coupé, and with the redevelopment of every aspect of suspension and electronic control systems, its 'total control concept' assures superior drive, ride and performance.
Enhanced lateral control from the new four-wheel steering provides improved agility at low speed and more stability at high speed, combined with Lamborghini Dynamic Steering (LDS) for responsive feedback and sharper turn-in. Improved vertical control comes from updated pushrod suspension, new rear springs and Lamborghini Magneto-rheological Suspension (LMS) with revised kinematics adapted to the new four-wheel steering. A new real-time variable damping system optimizes wheel and body control and balance and ground stiffness is maximized.
A optimized ESC system improves longitudinal control for faster and more precise management of traction control and vehicle dynamics depending on driving mode selected, maximizing grip in all conditions and enhancing handling. The permanent four-wheel drive's calibration allows for the stabilizing effect of the new rear-wheel steering, allowing more torque to the rear axle: when powering off, less torque is shifted to the front axle to allow a sporty but safe drive.
The active rear wing optimizes the car's aerodynamic balance depending on speed and the selected drive mode, and its significantly enhanced overall aerodynamic design improves front downforce by more than 130% over the previous Aventador. With the wing in optimum position the roadster achieves over 50% overall efficiency at high downforce and in low drag more than 400%.
The Aventador S Roadster's four driving modes allows selection of STRADA, SPORT and CORSA and the new EGO mode, each influencing every aspect of the car's behavior through management of traction, steering and suspension. EGO allows the driver to set up his preferred criteria in each mode to suit his driving style.
Accelerating 0-100km/h in just 3.0 seconds, with a top speed equal to the Aventador S coupé of 350 km/h, the Aventador S Roadster weighs just 50 kg more than the coupé. Its 6.5 liter V12 engine outputs the same 740 hp as the coupé, with 690 Nm of torque at 5,500 rpm. The seven-speed lightweight Independent Shifting Rod (ISR) transmission provides robotized gearshifts in up to 50 milliseconds, with carbon ceramic brakes as standard. Dione 20"/21" rims are fitted with Pirelli P Zero tires especially developed for the Aventador S. Inside, the TFT digital dashboard can be customized to the driver's preferences and Apple CarPlay™ is standard.
courtesy: media.lamborghini.com
World premiere of the Mercedes-AMG Project ONE show car
By admin in AMG, Benz, mercedes September 13, 2017 0 Comment
The Mercedes-AMG Project ONE will celebrate its world premiere at the International Motor Show (IAA) in Frankfurt: for the first time, the two-seater supersports show car brings the very latest and efficient, fully-fledged Formula 1 hybrid technology from the race track to the road almost par for par to represent the highlight of AMG's 50th anniversary. This high-performance hybrid produces over 1,000 hp and reaches top speeds beyond 217 mph (350 km/h). The show car combines outstanding racetrack performance and day-to-day suitable Formula 1 hybrid technology with exemplary efficiency. This is a world first. The overall responsibility for the realization of Project ONE lies with Mercedes- AMG. The complex development work was carried out in close cooperation with the Formula 1 experts at Mercedes-AMG High Performance Powertrains in Brixworth and with the Mercedes-AMG Petronas Motorsport Formula 1 team in Brackley. Together with the four-door AMG GT Concept, the Mercedes-AMG Project ONE show car provides another insight into the future performance-hybrid drive strategy of the sports car brand within Mercedes-Benz.
Ever since the early days of motorsport, engineers have dreamed of bringing motor racing technology to the road. Mercedes-AMG is now making this dream a reality at the very highest level. "Motorsport is not an end in itself for us. Faced with intense competition, we develop technologies from which our production vehicles also subsequently benefit. We are drawing on our experiences and successes from three constructors' and drivers' world championships to bring Formula 1 technology to the road for the first time: in Mercedes-AMG Project ONE," says Dr Dieter Zetsche, Chairman of the Board of Management of Daimler AG and Head of Mercedes-Benz Cars.
"The Mercedes-AMG Project ONE is the first Formula 1 car with MOT approval. Our highly efficient hybrid assembly stems from motor racing and the electrically powered front axle generates a fascinating mixture of performance and efficiency. With a system output of over 1,000 hp and a top speed beyond 217 mph (350 km/h) this hypercar handles exactly as it looks: it takes your breath away," Ola Källenius says, Member of the Daimler AG Board of Management responsible for Group Research and Mercedes-Benz Cars Development.
The concept car gives specific indications of what to expect from the upcoming production model. "The hypercar is the most ambitious project we have every undertaken. It marks yet another pinnacle of the successful, strategic development of Mercedes-AMG towards a performance and sports car brand. Project ONE raises the bar in terms of what is currently technologically feasible and thanks to its combination of efficiency and performance it represents an absolute benchmark. At the same time, Project ONE provides an outlook on how AMG will define driving performance in the future," Tobias Moers explains as the Head of Management at Mercedes-AMG GmbH.
Powertrain: one turbocharged engine and four electric motors
The high-performance plug-in hybrid drive system of the Mercedes-AMG Project ONE comes directly from Formula 1, and was realized in close cooperation with the motorsport experts of Mercedes-AMG High Performance Powertrains in Brixworth. It consists of a highly integrated and intelligently networked unit comprising one hybrid, turbocharged combustion engine with a total of four electric motors. One has been integrated into the turbocharger, another has been installed directly on the combustion engine with a link to the crankcase and the two remaining motors drive the front wheels.
The 1.6-liter V6 hybrid gasoline engine with direct injection and electrically assisted single turbocharging comes directly from the Mercedes-AMG Petronas Formula 1 racing car. The four overhead camshafts are driven by spur gears. To achieve high engine speeds, the mechanical valve springs have been replaced by pneumatic valve springs. The vehicle is mid-engined (ahead of the rear axle) and it can easily reach speeds of 11,000 rpm, which is currently unique for a roadgoing vehicle. For higher longevity and the use of commercially available "Super Plus" gasoline instead of racing fuel, max engine speed remains significantly below the F1 engine speed limit.
The electric motors on the front axle are also true rev wonders, with rotor revolutions up to 50,000 rpm – current state of the art is a speed of 20,000 rpm.
The very high-revving engine is additionally boosted by a high-tech turbocharger. The exhaust gas and compressor turbines are separated from one another and located at an optimum position to the exhaust side and to the intake side of the V6 engine, and connected to one another by a shaft. This shaft features an electric motor with approximately 90 kW which, depending on the operating status, electrically drives the compressor turbine with up to 100,000 rpm – for instance when moving off or following load changes. The Formula 1 designation for this unit is MGU-H (Motor Generator Unit Heat).
Lightning-quick response, faster than a naturally aspirated V8 engine
The major advantage of the advanced engine: the delayed response to accelerator pedal commands owing to the inertia of the large charger, known as turbo lag, is completely eliminated. Throttle response time is greatly reduced, and is even shorter than that of a naturally aspirated V8 engine. The electric turbocharger brings about another advantage: it uses parts of the surplus energy from the exhaust system to generate electricity, and either stores it in the high-voltage lithium-ion battery as part of recuperation or provides additional drive power by feeding it to an additional electric motor. This motor produces 120 kW, has been installed directly on the engine and features a link to the crankshaft via a spur gear (MGU-K = Motor Generator Unit Kinetic) – another technology that ensures maximum efficiency and performance in Formula 1.
New all-wheel drive with purely electrically driven front axle
There are also two further 120 kW electric motors at the front axle. Each is connected to a front wheel via a reduction gear. The fully electrically driven front axle allows individual acceleration and braking of each front wheel, and therefore selective torque distribution (torque vectoring) for particularly high levels of vehicle dynamics. With the axle motors, we estimate that up to 80 percent of the braking energy can also be optimally used for recuperation under everyday driving conditions. This energy is stored in the battery and is available for a longer electric range. Each electric motor is controlled by its own power electronics located in close proximity to the electric motors in the floor assembly.
Top marks for thermal efficiency
The thermal efficiency of the combustion engine with electric turbocharger (MGU-H) in conjunction with the electric motor on the crankshaft (MGU-K) will be over 40 percent. This is a previously unattained peak value for series production vehicles, and confirms the dominant position of the drive system where efficiency is concerned. This means that the Mercedes-AMG Project ONE show car obtains significantly more drive energy from one liter of fuel than other cars. It is therefore both economical and powerful. By way of comparison, the thermodynamic efficiency of conventional series production engines is around 33 to 38 percent.
Lithium-ion battery with Formula 1 technology
The battery cells, their arrangement and the cell cooling system are the same as used in the Mercedes-AMG Petronas Formula 1 racing car, however, the quantity of battery cells in the AMG Project ONE show car will make it significantly more practical for everyday use. The lithium-ion, high-voltage battery and the DC/DC converter supporting and charging the 12 V onboard electrical system are space-savingly accommodated in the vehicle floor behind the front axle.
As a further innovation, the high-voltage EQ Power+ drive system operates with 800 volts instead of the usual 400 volts. Thanks to the higher voltage levels it is possible to influence elements, such as significantly reducing the cable diameters and accordingly saving design space and weight.
Intelligent operating strategies for optimum output and efficiency
Overall the high-performance EQ Power+ plug-in hybrid drive system offers numerous intelligent operating strategies which are optimally tuned to different application scenarios. The driving modes range from purely electric operation through to a highly dynamic mode which corresponds to a setting used in Formula 1 qualifying for optimum lap times. Despite the high system complexity, and depending on the current requirement, the driver will always receive the optimum combination of performance and efficiency. In this process, Mercedes-AMG engineers make use of the many years of experience and know-how from Formula 1, the SLS AMG Electric Drive and Daimler AG's research and development.
For instance, the driver can move off purely electrically, initially with just the electric motors on the front axle driving the hypercar and the electric motor on the crankshaft supporting short-term acceleration wishes. If the driver presses the accelerator more firmly and demands more output, the V6 engine also switches on. The drive system unfolds its full power as the engine speed increases. Impressive acceleration figures are possible with the Race Start function: Acceleration from zero to 112 mph (200 km/h) takes under six seconds.
If the driver's foot leaves the accelerator again to let the car coast, the system switches to electric drive at the front axle – whilst braking under normal driving conditions recuperates up to 80 percent of the energy, which is fed into the battery.
Completely new, automated 8-speed manual transmission
Power is transferred to the rear wheels by an 8-speed manual transmission that has been entirely developed from scratch for the Mercedes-AMG Project ONE. It is activated hydraulically and can be operated in automated mode or manually using the shift paddles.
The basis for the outstanding driving characteristics of the Mercedes-AMG Project ONE is provided by the lightweight, high-strength carbon-fiber monocoque body, the technology of which likewise comes from Formula 1. The same applies to integration of the engine and transmission: both have load- bearing functions and completely support the rear suspension.
Multi-link suspension with innovative pushrod springing
The suspension developers also gave their utmost. Multi-link designs are used at the front and rear. The adjustable coil-over suspension has several special features: Both push-rod spring struts have been installed across the direction of travel. The innovative arrangement of the spring/damper unit replaces the function and application of conventional tubular cross members. This solution reliably prevents rolling movements even during very rapid directional changes, without being uncomfortable.
The overall setup of the springs and dampers is configured for perfectly balanced, easily controlled and above all sporty handling characteristics. These are also assisted by all-wheel drive and torque vectoring. ABS is standard equipment, with ESP® adjustable in three stages as is usual for AMG. ESP® ON stands for a high level of safety, ESP® SPORT HANDLING MODE allows greater yaw angles before system intervention for a sporty driving style, and ESP® OFF switches the system off for sporty driving on enclosed racetracks.
Exclusive forged wheels with innovative carbon-fiber semi-cover
Another completely new development is the 10-spoke forged aluminum wheel with center lock, which is exclusively reserved for the Mercedes-AMG Project ONE. This has a radial carbon-fiber semi-cover with an aerodynamically sophisticated shape: this improves the car's aerodynamics and Cd figure by optimizing the airflow around the wheels.
At the same time, three flat ventilation slots per spoke section ensure optimum heat dissipation from the brakes. This is another example of how the AMG development team pays the utmost attention to even the smallest aspects, so as to improve the efficiency of the hypercar.
At the front the Mercedes-AMG Project ONE has size 10.0 J x 19 wheels shod with 285/35 ZR 19 Michelin Pilot Sport Cup 2 tires exclusively developed for the hypercar, and at the rear 12.0 J x 20 wheels running on Michelin Pilot Sport Cup 2 335/30 ZR 20 tires.
The car is equipped with an advanced, weight-optimized ceramic high- performance compound braking system. Its low weight reduces the unsprung masses, thus improving driving dynamics and agility. Furthermore, the ceramic brakes are distinguished by a longer service life, higher corrosion resistance and higher thermal stability. The "AMG Carbon Ceramic" lettering and the specially painted brake calipers visually distinguish this unique braking system.
Exterior design: Beauty and the beast
The design of the show car is very obviously inspired by the premium class in motorsport. But above all, it embodies the Mercedes-AMG principle that fascination is always linked with function. Every part has a specific purpose. The result is a mid-engine concept, extremely muscular proportions with the cockpit well forward, large wheel arches, a wasp waist and an extended rear end.
"The Mercedes-AMG Project ONE is the hottest and coolest car we have ever designed. It combines our design philosophy of Sensual Purity with the performance of our Formula 1 racing cars and is the perfect embodiment of Performance Luxury," says Gorden Wagener, Chief Design Officer Daimler AG. "This hypercar's extreme design marks a milestone in design – there are no lines, and the interior is stripped down to the essentials."
Front view: Powerful and functional
The front view is characterized by the large front fascia, the various air inlets of which extend across the entire vehicle width. The trapezoidal center section bears a large, white AMG logo. Above it, on the vehicle body, is the Mercedes star. The hallmark AMG A-wing below the center section creates a silver- colored highlight, and seamlessly transitions into the front fenders.
On the left and right are large, prominent air inlets which are framed by U- shaped flaps and each subdivided by two black horizontal fins. Flat LED headlamps blend seamlessly into the body contours.
The black air outlets in the hood guide the hot airflow around the sides of the driver compartment. This allows the flow of fresh air to pass unhindered across the driver compartment and into the intake tract on the roof. The downforce at the front axle is positively influenced by the automatically extending front splitter and the active ventilation louvers in the front wheel arches, contributing to the perfect aerobalance of the car.
Taut flanks, large fenders
The low, dynamic greenhouse has an unmistakable, spherical architecture with a distinctive window pattern. The large, dark area stands for important technical functions. These technical components form a visual contrast to the clean overall lines of the vehicle.
The roof line is dominated by an air intake derived from Formula 1, via which the engine takes in large volumes of air. The black intake transitions elegantly into the black, vertical shark fin, which improves lateral stability when cornering at high speed. The rear window placed well to the rear is an integral part of the intake/roof-fin unit. It allows a view of the power unit. Two large NACA air inlets ensure optimum guidance of the airflows for the engine and transmission oil coolers located at the rear end.
The side view also shows a sensuous, clean surface design combined with functional features. The vehicle flanks are tautly recessed, with black carbon- fiber surfaces redirecting the airflow around the vehicle body as in motorsport.
The Petronas green paintbrush design on the flanks is the work of the artist who designed the paintwork for the Formula 1 racing car. All four wheels are spanned by tight-fitting, muscular fenders that appear ready to leap into action.
As in motor racing, the doors open both forwards and upwards. The fuel filler flap is at the rear right, the charge socket for the plug-in hybrid battery at the rear left.
Rear end: Fascination and function
The sharp, vertical spoiler lip and the large, two-section diffuser, which is interrupted by the central exhaust tailpipe, as well as the two-stage extendible rear aerofoil, contribute to aerodynamic efficiency and performance at high speeds. The design of the exhaust tailpipe with its large, round outlet and two further small, round apertures was adopted directly from the Formula 1 cars.
The muscular appearance is further enhanced by the rear fascia with its large, black mesh and carbon-fiber components. The rear lights each feature three rhomboid lighting elements to echo the graphic design of the AMG brand logo, and therefore also the design of the headlamps.
Interior: Formula 1 for two
The interior design concept of this ultimate driving machine follows function on the racetrack, and this is expressed in the radical design idiom. Formula 1 technology is made authentically tangible on both the racetrack and on the road. Here too every detail has a function, with nothing included merely for visual reasons. In the monocoque interior, the reduced components are emphasized in minimalist style both in design and functional terms.
The ergonomically contoured interior has room for two occupants. The bucket seats with adjustable backrests are integrated into the monocoque. The pedals and steering wheel are adjustable, allowing the driver to adopt the ideal driving position. The center tunnel visually separates the driver and passenger areas from each other. It blends fully into the seat sculpture and follows the principle of minimalism with its gently rising contour.
Interior with functional structural parts
The lightweight construction is also obvious from the slim, wing-like profile of the dashboard. It appears to be light and free-floating. As a functional, structural component it also makes the monocoque of the Mercedes-AMG Project ONE more rigid. The two high-resolution, free-standing 10-inch displays (one slightly raised in front of the driver, the other on the right of the center console angled towards the driver) are adapted with high-quality and weight- optimized solid metal components.
The double-nozzle ventilation unit is suspended under the center screen like a gondola. The screen and nozzles form a single unit, emphasizing the lightweight design principle of the whole. The displays' rectangular basic form is echoed by the ventilation nozzles, and by the center console in which the start/stop button is located.
Also seamlessly integrated as a unit are a high-quality stowage compartment, a reduced switch array and the engine start button. The stowage compartment is fitted with a transparent lid.
Formula 1-style steering wheel
The steering wheel with flattened upper and lower sections and an integrated airbag offers motorsport functionality, as do the two integrated controllers which can be used to set adjustment functions such as the driving modes and suspension setup, or the LED shift display in the upper steering wheel area.
The door panels are in functional, high-grade carbon-fiber, and integrate smoothly into the sporty interior. As if to mirror the aero winglets of the exterior, the door paneling is visually interrupted to create space for technical implements and a generously concave door center panel. An aluminum cassette combines the air vents and power window switches, which are integrated as deeply recessed rectangles.
Stowage compartments behind the seats, screen replaces interior mirror.
Mercedes-AMG developers have ensured suitability for everyday use and operating convenience: small items can be stowed in two compartments on the left and right behind the seats. An air conditioning system and power windows are standard equipment, while the COMAND infotainment system ensures optimum connectivity.
The user interface is integrated as an autonomous concept. The most important information is displayed on the road in the line of vision above the steering wheel, so that the driver is not distracted. To ensure optimum visibility to the rear, the rear-view mirror is replaced by a screen showing real-time images of the rear from a mirror cam. The aluminum screen housing is fully integrated into the roof, and also holds other controls.
Colors and materials from the racing car
The choice of colors and materials takes its inspiration from the Mercedes- AMG Petronas Formula 1 racing car. The sculptured racing seats are in slip- resistant black microfiber, creating an unmistakable association with motor racing. The seat surfaces are interspersed with nappa leather in magma grey and inlays in a sporty textile mesh which optimally assists the air circulation of the seats. There is also yellow contrasting topstitching.
The Mercedes-AMG Project ONE: the future of driving performance
The Mercedes-AMG Project ONE is not only an ultimate driving machine that directly brings current Formula 1 hybrid technology onto the road and combines top-class racetrack performance with full day-to-day suitability. Its purpose is also to obtain extensive findings about performance-oriented plug-in hybrid drive technology, further developments of suspension layouts and extended onboard electronics that will later benefit series production AMG cars. The Project ONE team is working hard on successfully bringing this vision onto the road.
courtesy: www.media.mbusa.com
Opel Press Conference at the 67th IAA in Frankfurt
By admin in Opel September 12, 2017 0 Comment
Opel will broadcast live from the International Motor Show in Frankfurt tomorrow (September 12). The press conference at the "X-ville" (pronounced Crossville) Opel stand with Opel CEO Michael Lohscheller will start at 9:10 CET. All those who cannot make it to stand D09 in Hall 8.0 in person can witness the unveiling of the Opel world premieres as it happens via the livestream. Michael Lohscheller's presentation will focus on Opel's newcomers, the Grandland X, the Insignia GSi and Country Tourer along with the Vivaro Life and Tourer space shuttles. The new models demonstrate how Opel makes innovative technologies available to a broad audience in sporty, elegant and practical cars – true to the brand credo "The future is everyone's".
Live updates and videos sequences with the key messages from the press conference will also be made available on Twitter under @OpelNewsroom. Furthermore, the press conference will also be made available on line on the Opel media websites along with the company's social media channels Facebook and YouTube. The latest "Best of" montages from "X-ville" will also be available there. Opel will thus keep provide journalists and the general public with the latest updates both on site at the IAA and online.
courtesy: media.opel.com


text:
Q: Where do you store user context in Linux character drivers? It's been a while since I worked on a Linux kernel module, and I seem to remember that there was a place to stash context in your open() open implementation that would be available in your other file_operations... For example, if I want to maintain some state associated with everyone that opens my device node, if either the inode structure or the file structure that is passed to all the file_operations functions had a void* I could fill, I could very easily support any number of users.... Is this possible?

A: Found the answer. the "struct file*" that's passed to all the file_operations functions has a field called "private_data"... It's a void*, so you can populate in open, use it in read(), write() and ioctl() and free it in release()..

redpajama_set_name: RedPajamaStackExchange


Story: The game I designed is to show the facts about healty and unhealty food. In the game you have to click on the healthy food and dont click on the unhealthy food because you will get it wrong.
Objective: The objective of my game is to get the correct healthy food and to avoid the unhealthy food.
Audience: The audience for my game is preferably kid between 1st grade and 3rd grade. Although, if anyone wants to play the canc play as well.
Team Members: I am the only one on my team.
These are different types of bell peppers, these are a healthy source of vegetables to eat. They are healthy because they give you Vitamin C, Vitamin B6, and a large amount of nutrients.
Lesson: The lesson in my game is to figure out which food is the healthiest food to eat, then taking that and using it in your everyday life.
These are various types of apples , these are a good source of fruits and you will learn why in my game.


text:
Submit a Manuscript | Contact Us
Ambassador International Books
Ambassador International's mission is to impact lives by publishing books that magnify Christ and share the Gospel. Every year we publish dozens of life-changing titles ranging from charming children's books to faith-deepening devotionals.
Bible Study & Devotionals
Do you dream of seeing your book on the store shelf, your words on the screen of an eReader or your name on the bestsellers list? Each year Ambassador International works with a variety of talented, passionate authors using their gifts to change lives. Learn more about our selection process and what it takes to become a published author.
About Ambassador International
Ambassador Digital
About Ambassador
The Ambassador International story starts more than three decades ago in Belfast, Northern Ireland. Learn about our roots, our team, our projects, and our goals.
Blogger Sign Up
Home » Blog » Life in the Special Needs World the Central Focus of New Novel
Life in the Special Needs World the Central Focus of New Novel
posted on October 23rd, 2012 by Keli
Author Draws From Personal Experience with Autistic Son
For immediate release: Autism is the fastest-growing serious developmental disability in the world, according to the Centers for Disease Control and Prevention, impacting 1 in 88 children. Author D'Ann Renner intimately knows the struggles associated with this disorder. Renner pulls from her own personal experiences as well as those of others to write about the love, fear, stress and joy that accompanies life with a special needs child in her new novel Dancing From the Shadows (Ambassador International; October 2012; $14.99, paperback). Early reviews from professionals and parents praise the book as accurate, painful, funny and encouraging.
Renner left a successful career in marketing to follow God's call to adopt a sibling pair of third-world orphans. A year later her son Luke was diagnosed with autism. "For a long time I was angry at God for putting this burden on me and my family," explains Renner. "But eventually I discovered that from adversity comes remarkable growth. That, plus acceptance of special needs as a gift are themes I carried through Dancing From the Shadows."
Dancing From the Shadows follows successful businesswoman Tori St. John who adopts two children from a third-world orphanage. When Tori's son Gabe is diagnosed with autism, she becomes obsessed with finding a cure, a fixation that threatens to unravel her family. Tori must learn how to balance a life she can't control and embrace a different concept of normal.
Renner lives in John's Creek, Georgia, with her husband Bruce, and teenagers Sophia and Luke. When not busy as a Home Front Manager, Renner delivers humor-dipped truth to groups across the country as a public speaker. She also facilitates her church's Guatemala Child Sponsorship Program. For more information visit the author's website at dannrenner.com. To connect with the author please contact Ambassador International publicist Alison Storm via email at media@emeraldhouse.com.
The Best is Yet to Come . . .
Meet Susanna Maurer
Preparing Our Hearts and Homes to Celebrate Thanksgiving
Ambassador News
Beyond the Manuscript
Giveaways and Events
Letter from Our Publisher
Publishing FAQs
©2021 Ambassador International
web design by sandlapper
411 University Ridge, Suite B14
Ambassador Books
2 Woodstock Link
Belfast, BT6 8DD
Northern Ireland, UK
Phone - (028) 9073-0184
Fax - (028) 9073-0199

redpajama_set_name: RedPajamaCommonCrawl


text:
import unittest
import os
import tarfile
import urllib
from shutil import rmtree
from tempfile import mkdtemp
from StringIO import StringIO
from mock import patch
from swift.common.middleware import bulk
from swift.common.swob import Request, Response, HTTPException
from swift.common.utils import json

class FakeApp(object):
    def __init__(self):
        self.calls = 0
        self.delete_paths = []

    def __call__(self, env, start_response):
        self.calls += 1
        if env['PATH_INFO'].startswith('/unauth/'):
            return Response(status=401)(env, start_response)
        if env['PATH_INFO'].startswith('/create_cont/'):
            return Response(status='201 Created')(env, start_response)
        if env['PATH_INFO'].startswith('/create_cont_fail/'):
            return Response(status='404 Not Found')(env, start_response)
        if env['PATH_INFO'].startswith('/create_obj_unauth/'):
            if env['PATH_INFO'].endswith('/cont'):
                return Response(status='201 Created')(env, start_response)
            return Response(status=401)(env, start_response)
        if env['PATH_INFO'].startswith('/tar_works/'):
            if len(env['PATH_INFO']) > 100:
                return Response(status='400 Bad Request')(env, start_response)
            return Response(status='201 Created')(env, start_response)
        if env['PATH_INFO'].startswith('/delete_works/'):
            self.delete_paths.append(env['PATH_INFO'])
            if len(env['PATH_INFO']) > 100:
                return Response(status='400 Bad Request')(env, start_response)
            if env['PATH_INFO'].endswith('404'):
                return Response(status='404 Not Found')(env, start_response)
            if env['PATH_INFO'].endswith('badutf8'):
                return Response(
                    status='412 Precondition Failed')(env, start_response)
            return Response(status='204 No Content')(env, start_response)
        if env['PATH_INFO'].startswith('/delete_cont_fail/'):
            return Response(status='409 Conflict')(env, start_response)
        if env['PATH_INFO'].startswith('/broke/'):
            return Response(status='500 Internal Error')(env, start_response)

def build_dir_tree(start_path, tree_obj):
    if isinstance(tree_obj, list):
        for obj in tree_obj:
            build_dir_tree(start_path, obj)
    if isinstance(tree_obj, dict):
        for dir_name, obj in tree_obj.iteritems():
            dir_path = os.path.join(start_path, dir_name)
            os.mkdir(dir_path)
            build_dir_tree(dir_path, obj)
    if isinstance(tree_obj, unicode):
        tree_obj = tree_obj.encode('utf8')
    if isinstance(tree_obj, str):
        obj_path = os.path.join(start_path, tree_obj)
        with open(obj_path, 'w+') as tree_file:
            tree_file.write('testing')

def build_tar_tree(tar, start_path, tree_obj, base_path=''):
    if isinstance(tree_obj, list):
        for obj in tree_obj:
            build_tar_tree(tar, start_path, obj, base_path=base_path)
    if isinstance(tree_obj, dict):
        for dir_name, obj in tree_obj.iteritems():
            dir_path = os.path.join(start_path, dir_name)
            tar_info = tarfile.TarInfo(dir_path[len(base_path):])
            tar_info.type = tarfile.DIRTYPE
            tar.addfile(tar_info)
            build_tar_tree(tar, dir_path, obj, base_path=base_path)
    if isinstance(tree_obj, unicode):
        tree_obj = tree_obj.encode('utf8')
    if isinstance(tree_obj, str):
        obj_path = os.path.join(start_path, tree_obj)
        tar_info = tarfile.TarInfo('./' + obj_path[len(base_path):])
        tar.addfile(tar_info)

class TestUntar(unittest.TestCase):

    def setUp(self):
        self.app = FakeApp()
        self.bulk = bulk.filter_factory({})(self.app)
        self.testdir = os.path.join(mkdtemp(), 'tmp_test_bulk')
        os.mkdir(self.testdir)

    def tearDown(self):
        self.app.calls = 0
        rmtree(self.testdir)

    def test_create_container_for_path(self):
        req = Request.blank('/')
        self.assertEquals(
            self.bulk.create_container(req, '/create_cont/acc/cont'),
            None)
        self.assertRaises(
            bulk.CreateContainerError,
            self.bulk.create_container,
            req, '/create_cont_fail/acc/cont')

    def test_extract_tar_works(self):
        for compress_format in ['', 'gz', 'bz2']:
            base_name = 'base_works_%s' % compress_format
            dir_tree = [
                {base_name: [{'sub_dir1': ['sub1_file1', 'sub1_file2']},
                             {'sub_dir2': ['sub2_file1', u'test obj \u2661']},
                             'sub_file1',
                             {'sub_dir3': [{'sub4_dir1': '../sub4 file1'}]},
                             {'sub_dir4': None},
                             ]}]
            build_dir_tree(self.testdir, dir_tree)
            mode = 'w'
            extension = ''
            if compress_format:
                mode += ':' + compress_format
                extension += '.' + compress_format
            tar = tarfile.open(name=os.path.join(self.testdir,
                                                 'tar_works.tar' + extension),
                               mode=mode)
            tar.add(os.path.join(self.testdir, base_name))
            tar.close()
            req = Request.blank('/tar_works/acc/cont/',
                                headers={'Accept': 'application/json'})
            req.environ['wsgi.input'] = open(
                os.path.join(self.testdir, 'tar_works.tar' + extension))
            req.headers['transfer-encoding'] = 'chunked'
            resp = self.bulk.handle_extract(req, compress_format)
            resp_data = json.loads(resp.body)
            self.assertEquals(resp_data['Number Files Created'], 6)

            # test out xml
            req = Request.blank('/tar_works/acc/cont/',
                                headers={'Accept': 'application/xml'})
            req.environ['wsgi.input'] = open(
                os.path.join(self.testdir, 'tar_works.tar' + extension))
            req.headers['transfer-encoding'] = 'chunked'
            resp = self.bulk.handle_extract(req, compress_format)
            self.assertEquals(resp.status_int, 201)
            self.assert_('<number_files_created>6</number_files_created>' in
                         resp.body)

            # test out nonexistent format
            req = Request.blank('/tar_works/acc/cont/',
                                headers={'Accept': 'good_xml'})
            req.environ['wsgi.input'] = open(
                os.path.join(self.testdir, 'tar_works.tar' + extension))
            resp = self.bulk.handle_extract(req, compress_format)
            self.assertEquals(resp.status_int, 406)

    def test_extract_call(self):
        base_name = 'base_works_gz'
        dir_tree = [
            {base_name: [{'sub_dir1': ['sub1_file1', 'sub1_file2']},
                         {'sub_dir2': ['sub2_file1', 'sub2_file2']},
                         'sub_file1',
                         {'sub_dir3': [{'sub4_dir1': 'sub4_file1'}]}]}]
        build_dir_tree(self.testdir, dir_tree)
        tar = tarfile.open(name=os.path.join(self.testdir,
                                             'tar_works.tar.gz'),
                           mode='w:gz')
        tar.add(os.path.join(self.testdir, base_name))
        tar.close()

        def fake_start_response(*args, **kwargs):
            pass

        req = Request.blank('/tar_works/acc/cont/?extract-archive=tar.gz')
        req.environ['wsgi.input'] = open(
            os.path.join(self.testdir, 'tar_works.tar.gz'))
        self.bulk(req.environ, fake_start_response)
        self.assertEquals(self.app.calls, 1)

        self.app.calls = 0
        req.environ['wsgi.input'] = open(
            os.path.join(self.testdir, 'tar_works.tar.gz'))
        req.headers['transfer-encoding'] = 'Chunked'
        req.method = 'PUT'
        self.bulk(req.environ, fake_start_response)
        self.assertEquals(self.app.calls, 7)

        self.app.calls = 0
        req = Request.blank('/tar_works/acc/cont/?extract-archive=bad')
        req.method = 'PUT'
        req.headers['transfer-encoding'] = 'Chunked'
        req.environ['wsgi.input'] = open(
            os.path.join(self.testdir, 'tar_works.tar.gz'))
        t = self.bulk(req.environ, fake_start_response)
        self.assertEquals(t[0], "Unsupported archive format")

        tar = tarfile.open(name=os.path.join(self.testdir,
                                             'tar_works.tar'),
                           mode='w')
        tar.add(os.path.join(self.testdir, base_name))
        tar.close()
        self.app.calls = 0
        req = Request.blank('/tar_works/acc/cont/?extract-archive=tar')
        req.method = 'PUT'
        req.headers['transfer-encoding'] = 'Chunked'
        req.environ['wsgi.input'] = open(
            os.path.join(self.testdir, 'tar_works.tar'))
        t = self.bulk(req.environ, fake_start_response)
        self.assertEquals(self.app.calls, 7)

    def test_bad_container(self):
        req = Request.blank('/invalid/', body='')
        resp = self.bulk.handle_extract(req, '')
        self.assertEquals(resp.status_int, 404)

        req = Request.blank('/create_cont_fail/acc/cont')
        resp = self.bulk.handle_extract(req, '')
        self.assertEquals(resp.status_int, 400)

    def build_tar(self, dir_tree=None):
        if not dir_tree:
            dir_tree = [
                {'base_fails1': [{'sub_dir1': ['sub1_file1']},
                                 {'sub_dir2': ['sub2_file1', 'sub2_file2']},
                                 'f' * 101,
                                 {'sub_dir3': [{'sub4_dir1': 'sub4_file1'}]}]}]
        tar = tarfile.open(name=os.path.join(self.testdir, 'tar_fails.tar'),
                           mode='w')
        build_tar_tree(tar, self.testdir, dir_tree,
                       base_path=self.testdir + '/')
        tar.close()
        return tar

    def test_extract_tar_with_basefile(self):
        dir_tree = [
            'base_lvl_file', 'another_base_file',
            {'base_fails1': [{'sub_dir1': ['sub1_file1']},
                             {'sub_dir2': ['sub2_file1', 'sub2_file2']},
                             {'sub_dir3': [{'sub4_dir1': 'sub4_file1'}]}]}]
        tar = self.build_tar(dir_tree)
        req = Request.blank('/tar_works/acc/',
                            headers={'Accept': 'application/json'})
        req.environ['wsgi.input'] = open(os.path.join(self.testdir,
                                                      'tar_fails.tar'))
        req.headers['transfer-encoding'] = 'chunked'
        resp = self.bulk.handle_extract(req, '')
        resp_data = json.loads(resp.body)
        self.assertEquals(resp_data['Number Files Created'], 4)

    def test_extract_tar_fail_cont_401(self):
        tar = self.build_tar()
        req = Request.blank('/unauth/acc/')
        req.environ['wsgi.input'] = open(os.path.join(self.testdir,
                                                      'tar_fails.tar'))
        req.headers['transfer-encoding'] = 'chunked'
        resp = self.bulk.handle_extract(req, '')
        self.assertEquals(resp.status_int, 401)

    def test_extract_tar_fail_obj_401(self):
        tar = self.build_tar()
        req = Request.blank('/create_obj_unauth/acc/cont/')
        req.environ['wsgi.input'] = open(os.path.join(self.testdir,
                                                      'tar_fails.tar'))
        req.headers['transfer-encoding'] = 'chunked'
        resp = self.bulk.handle_extract(req, '')
        self.assertEquals(resp.status_int, 401)

    def test_extract_tar_fail_obj_name_len(self):
        tar = self.build_tar()
        req = Request.blank('/tar_works/acc/cont/',
                            headers={'Accept': 'application/json'})
        req.environ['wsgi.input'] = open(os.path.join(self.testdir,
                                                      'tar_fails.tar'))
        req.headers['transfer-encoding'] = 'chunked'
        resp = self.bulk.handle_extract(req, '')
        resp_data = json.loads(resp.body)
        self.assertEquals(resp_data['Number Files Created'], 4)
        self.assertEquals(resp_data['Errors'][0][0],
                          '/tar_works/acc/cont/base_fails1/' + ('f' * 101))

    def test_extract_tar_fail_compress_type(self):
        tar = self.build_tar()
        req = Request.blank('/tar_works/acc/cont/')
        req.environ['wsgi.input'] = open(os.path.join(self.testdir,
                                                      'tar_fails.tar'))
        req.headers['transfer-encoding'] = 'chunked'
        resp = self.bulk.handle_extract(req, 'gz')
        self.assertEquals(resp.status_int, 400)
        self.assertEquals(self.app.calls, 0)

    def test_extract_tar_fail_max_file_name_length(self):
        tar = self.build_tar()
        with patch.object(self.bulk, 'max_failed_extractions', 1):
            self.app.calls = 0
            req = Request.blank('/tar_works/acc/cont/',
                                headers={'Accept': 'application/json'})
            req.environ['wsgi.input'] = open(os.path.join(self.testdir,
                                                          'tar_fails.tar'))
            req.headers['transfer-encoding'] = 'chunked'
            resp = self.bulk.handle_extract(req, '')
            resp_data = json.loads(resp.body)
            self.assertEquals(self.app.calls, 5)
            self.assertEquals(resp_data['Errors'][0][0],
                              '/tar_works/acc/cont/base_fails1/' + ('f' * 101))

    @patch.object(bulk, 'MAX_FILE_SIZE', 4)
    def test_extract_tar_fail_max_file_size(self):
        tar = self.build_tar()
        dir_tree = [{'test': [{'sub_dir1': ['sub1_file1']}]}]
        build_dir_tree(self.testdir, dir_tree)
        tar = tarfile.open(name=os.path.join(self.testdir,
                                             'tar_works.tar'),
                           mode='w')
        tar.add(os.path.join(self.testdir, 'test'))
        tar.close()
        self.app.calls = 0
        req = Request.blank('/tar_works/acc/cont/',
                            headers={'Accept': 'application/json'})
        req.environ['wsgi.input'] = open(
            os.path.join(self.testdir, 'tar_works.tar'))
        req.headers['transfer-encoding'] = 'chunked'
        resp = self.bulk.handle_extract(req, '')
        resp_data = json.loads(resp.body)
        self.assert_(resp_data['Errors'][0][1].startswith('413'))

    def test_extract_tar_fail_max_cont(self):
        dir_tree = [{'sub_dir1': ['sub1_file1']},
                    {'sub_dir2': ['sub2_file1', 'sub2_file2']},
                    'f' * 101,
                    {'sub_dir3': [{'sub4_dir1': 'sub4_file1'}]}]
        tar = self.build_tar(dir_tree)
        with patch.object(self.bulk, 'max_containers', 1):
            self.app.calls = 0
            body = open(os.path.join(self.testdir, 'tar_fails.tar')).read()
            req = Request.blank('/tar_works/acc/', body=body)
            req.headers['transfer-encoding'] = 'chunked'
            resp = self.bulk.handle_extract(req, '')
            self.assertEquals(self.app.calls, 3)
            self.assertEquals(resp.status_int, 400)

    def test_extract_tar_fail_create_cont(self):
        dir_tree = [{'base_fails1': [
            {'sub_dir1': ['sub1_file1']},
            {'sub_dir2': ['sub2_file1', 'sub2_file2']},
            'f\xde',
            {'./sub_dir3': [{'sub4_dir1': 'sub4_file1'}]}]}]
        tar = self.build_tar(dir_tree)
        req = Request.blank('/create_cont_fail/acc/cont/',
                            headers={'Accept': 'application/json'})
        req.environ['wsgi.input'] = open(os.path.join(self.testdir,
                                                      'tar_fails.tar'))
        req.headers['transfer-encoding'] = 'chunked'
        resp = self.bulk.handle_extract(req, '')
        resp_data = json.loads(resp.body)
        self.assertEquals(self.app.calls, 4)
        self.assertEquals(len(resp_data['Errors']), 5)

    def test_extract_tar_fail_create_cont_value_err(self):
        tar = self.build_tar()
        req = Request.blank('/create_cont_fail/acc/cont/',
                            headers={'Accept': 'application/json'})
        req.environ['wsgi.input'] = open(os.path.join(self.testdir,
                                                      'tar_fails.tar'))
        req.headers['transfer-encoding'] = 'chunked'

        def bad_create(req, path):
            raise ValueError('Test')

        with patch.object(self.bulk, 'create_container', bad_create):
            resp = self.bulk.handle_extract(req, '')
            resp_data = json.loads(resp.body)
            self.assertEquals(self.app.calls, 0)
            self.assertEquals(len(resp_data['Errors']), 5)

    def test_get_response_body(self):
        self.assertRaises(
            HTTPException, bulk.get_response_body, 'badformat', {}, [])
        xml_body = bulk.get_response_body(
            'text/xml', {'hey': 'there'}, [['json > xml', '202 Accepted']])
        self.assert_('&gt' in xml_body)

class TestDelete(unittest.TestCase):

    def setUp(self):
        self.app = FakeApp()
        self.bulk = bulk.filter_factory({})(self.app)

    def tearDown(self):
        self.app.calls = 0
        self.app.delete_paths = []

    def test_bulk_delete_works(self):
        req = Request.blank('/delete_works/AUTH_Acc', body='/c/f\n/c/f404',
                            headers={'Accept': 'application/json'})
        req.method = 'DELETE'
        resp = self.bulk.handle_delete(req)
        self.assertEquals(
            self.app.delete_paths,
            ['/delete_works/AUTH_Acc/c/f', '/delete_works/AUTH_Acc/c/f404'])
        self.assertEquals(self.app.calls, 2)
        resp_data = json.loads(resp.body)
        self.assertEquals(resp_data['Number Deleted'], 1)
        self.assertEquals(resp_data['Number Not Found'], 1)

    def test_bulk_delete_bad_accept_and_content_type(self):
        req = Request.blank('/delete_works/AUTH_Acc',
                            headers={'Accept': 'badformat'})

        req.method = 'DELETE'
        req.environ['wsgi.input'] = StringIO('/c/f\n/c/f404')
        resp = self.bulk.handle_delete(req)
        self.assertEquals(resp.status_int, 406)

        req = Request.blank('/delete_works/AUTH_Acc',
                            headers={'Accept': 'application/json',
                                     'Content-Type': 'text/xml'})
        req.method = 'DELETE'
        req.environ['wsgi.input'] = StringIO('/c/f\n/c/f404')
        resp = self.bulk.handle_delete(req)
        self.assertEquals(resp.status_int, 406)

    def test_bulk_delete_call(self):
        def fake_start_response(*args, **kwargs):
            pass
        req = Request.blank('/delete_works/AUTH_Acc?bulk-delete')
        req.method = 'DELETE'
        req.headers['Transfer-Encoding'] = 'chunked'
        req.environ['wsgi.input'] = StringIO('/c/f')
        self.bulk(req.environ, fake_start_response)
        self.assertEquals(
            self.app.delete_paths, ['/delete_works/AUTH_Acc/c/f'])
        self.assertEquals(self.app.calls, 1)

    def test_bulk_delete_get_objs(self):
        req = Request.blank('/delete_works/AUTH_Acc', body='1\r\n2\r\n')
        req.method = 'DELETE'
        with patch.object(self.bulk, 'max_deletes_per_request', 2):
            results = self.bulk.get_objs_to_delete(req)
            self.assertEquals(results, ['1\r', '2\r'])

        with patch.object(bulk, 'MAX_PATH_LENGTH', 2):
            results = []
            req.environ['wsgi.input'] = StringIO('1\n2\n3')
            results = self.bulk.get_objs_to_delete(req)
            self.assertEquals(results, ['1', '2', '3'])

    def test_bulk_delete_works_extra_newlines_extra_quoting(self):
        req = Request.blank('/delete_works/AUTH_Acc',
                            body='/c/f\n\n\n/c/f404\n\n\n/c/%2525',
                            headers={'Accept': 'application/json'})
        req.method = 'DELETE'
        resp = self.bulk.handle_delete(req)
        self.assertEquals(
            self.app.delete_paths,
            ['/delete_works/AUTH_Acc/c/f',
             '/delete_works/AUTH_Acc/c/f404',
             '/delete_works/AUTH_Acc/c/%25'])
        self.assertEquals(self.app.calls, 3)
        resp_data = json.loads(resp.body)
        self.assertEquals(resp_data['Number Deleted'], 2)
        self.assertEquals(resp_data['Number Not Found'], 1)

    def test_bulk_delete_too_many_newlines(self):
        req = Request.blank('/delete_works/AUTH_Acc')
        req.method = 'DELETE'
        data = '\n\n' * self.bulk.max_deletes_per_request
        req.environ['wsgi.input'] = StringIO(data)
        req.content_length = len(data)
        try:
            self.bulk.handle_delete(req)
        except HTTPException, err:
            self.assertEquals(err.status_int, 413)
        else:
            self.fail('413 not raised')

    def test_bulk_delete_raised_error(self):
        def fake_start_response(*args, **kwargs):
            self.assertTrue(args[0].startswith('413'))

        req = Request.blank('/delete_works/AUTH_Acc?bulk-delete')
        req.method = 'DELETE'
        data = '\n\n' * self.bulk.max_deletes_per_request
        req.environ['wsgi.input'] = StringIO(data)
        req.content_length = len(data)
        self.bulk(req.environ, fake_start_response)

    def test_bulk_delete_works_unicode(self):
        body = (u'/c/ obj \u2661\r\n'.encode('utf8') +
                'c/ objbadutf8\r\n' +
                '/c/f\xdebadutf8\n')
        req = Request.blank('/delete_works/AUTH_Acc', body=body,
                            headers={'Accept': 'application/json'})
        req.method = 'DELETE'
        resp = self.bulk.handle_delete(req)
        self.assertEquals(
            self.app.delete_paths,
            ['/delete_works/AUTH_Acc/c/ obj \xe2\x99\xa1',
             '/delete_works/AUTH_Acc/c/ objbadutf8'])

        self.assertEquals(self.app.calls, 2)
        resp_data = json.loads(resp.body)
        self.assertEquals(resp_data['Number Deleted'], 1)
        self.assertEquals(len(resp_data['Errors']), 2)
        self.assertEquals(
            resp_data['Errors'],
            [[urllib.quote('/delete_works/AUTH_Acc/c/ objbadutf8'),
              '412 Precondition Failed'],
             [urllib.quote('/delete_works/AUTH_Acc/c/f\xdebadutf8'),
              '412 Precondition Failed']])

    def test_bulk_delete_no_body(self):
        req = Request.blank('/unauth/AUTH_acc/')
        self.assertRaises(HTTPException, self.bulk.handle_delete, req)

    def test_bulk_delete_no_files_in_body(self):
        req = Request.blank('/unauth/AUTH_acc/', body=' ')
        resp = self.bulk.handle_delete(req)
        self.assertEquals(resp.status_int, 400)

    def test_bulk_delete_unauth(self):
        req = Request.blank('/unauth/AUTH_acc/', body='/c/f\n')
        req.method = 'DELETE'
        resp = self.bulk.handle_delete(req)
        self.assertEquals(resp.status_int, 401)

    def test_bulk_delete_500_resp(self):
        req = Request.blank('/broke/AUTH_acc/', body='/c/f\n')
        req.method = 'DELETE'
        resp = self.bulk.handle_delete(req)
        self.assertEquals(resp.status_int, 502)

    def test_bulk_delete_bad_path(self):
        req = Request.blank('/delete_cont_fail/')
        resp = self.bulk.handle_delete(req)
        self.assertEquals(resp.status_int, 404)

    def test_bulk_delete_container_delete(self):
        req = Request.blank('/delete_cont_fail/AUTH_Acc', body='c\n',
                            headers={'Accept': 'application/json'})
        req.method = 'DELETE'
        resp = self.bulk.handle_delete(req)
        resp_data = json.loads(resp.body)
        self.assertEquals(resp_data['Number Deleted'], 0)
        self.assertEquals(resp_data['Errors'][0][1], '409 Conflict')

    def test_bulk_delete_bad_file_too_long(self):
        req = Request.blank('/delete_works/AUTH_Acc',
                            headers={'Accept': 'application/json'})
        req.method = 'DELETE'
        data = '/c/f\nc/' + ('1' * bulk.MAX_PATH_LENGTH) + '\n/c/f'
        req.environ['wsgi.input'] = StringIO(data)
        req.headers['Transfer-Encoding'] = 'chunked'
        resp = self.bulk.handle_delete(req)
        resp_data = json.loads(resp.body)
        self.assertEquals(resp_data['Number Deleted'], 2)
        self.assertEquals(resp_data['Errors'][0][1], '400 Bad Request')

    def test_bulk_delete_bad_file_over_twice_max_length(self):
        body = '/c/f\nc/' + ('123456' * bulk.MAX_PATH_LENGTH) + '\n'
        req = Request.blank('/delete_works/AUTH_Acc', body=body)
        req.method = 'DELETE'
        try:
            self.bulk.handle_delete(req)
        except HTTPException, err:
            self.assertEquals(err.status_int, 400)
        else:
            self.fail('400 not raised')

if __name__ == '__main__':
    unittest.main()

redpajama_set_name: RedPajamaGithub


Come visit me at Today's Mama where I am counting down 10 Christmas gifts to make with your kids. Today we are doing jams and jellies in jars that you paint with your kids. Simple, easy, and really yummy. I made Apricot Jalapeno for friends this year. The girls loved painting away and I love how they turned out! Take a look then make your own.
Since the kids will be out of school, why not let them help you decorate? These little turkeys are easy to make and look darling on the table. You could also make a larger one to hold chips, popcorn, or other snacks.
1. Make an origami cup by cutting a brown piece of paper into a square. Fold the square horizontally to make a triangle.
3. Fold each of the base point(b) to the middle of the opposite side.
4. Now fold the points(a) back down. (One side will cover the two tips(b) that are folded up. This is your turkey's body.
7. Glue the pieces together and fill the cup with candy or trailmix and write the names of your guests on the feet if you want to use them as place cards.
I have been trying to think of something to put a little more meaning into Thanksgiving for us. Honestly, it is usually more about what I am going to make for the dinner than anything else. However, I am trying to make time for more of the meaningful things. I am frustrated by how easily the trivial daily things eclipse the eternal for me. Anyway, this was one idea.
1. Collect a handful of leaves. Place a leaf or two under a sheet of paper and rub the side of a crayon gently over the top. It looks fantastic when you layer 2 or 3 colors. If you do this, start by rubbing lightly and press harder with the second or third color. You can also do the center in one color then add in another on the edges, etc.
2. Cut the leaves out and place in a container or envelope for later.
3. Open the seams on one of the paper bags and cut out a trunk shape that is wider than you want the finished shape to be. Twist and crumple the paper, folding the edges under as you go.
4. Repeat the process, creating a top for the tree by cutting 4 or 5 strips down most of the bag. It will look best if the bottom is cut diagonally so that it doesn't make a line straight across the trunk.
5. Tape the tree to the wall and place leaves close by. Write the things you are thankful for on the leaves and tape them to the tree. If you use crayon rubbed leaves, you'll want to write in pencil or crayon.
Check out the monster perching on a tree limb. Emily made him and said he needs to be there. She very seriously said "This monster likes to squeeze and pinch kids and eat babies… but not babies in their houses, just ones in the street." Okay then.
Hope your Holidays are meaningful. I definitely want to hear your ideas, what are you doing?
If you are looking for frightfully cute last minute treats for a party or just to give to friends; you can whip up a spider, bat, or ghost sucker so fast it's scary. They require very few materials. If you have an art box, you'll likely only need to buy the suckers. Feel free to copy the tag images into a document and add your child's name; then just print and cut.
Emily went through 176 ideas before she settled on a butterfly/flower/pink theme for her party. (We edited that down to a butterfly garden party to limit eye-rolls from less girly friends. Anyway, this turned out to be one of my favorite parties to throw. Here is a run-down on what we did in case you have a little girly-girl that might enjoy something similar.
When the girls (and our one brave boy) arrived, they were bedecked with a set of butterfly wings. (Find them, among other things for a great price at Halo Haven.) Then the girls were asked to help decorate a birthday banner while we waited for the rest of our friends to arrive. Kids get pretty excited about coloring/painting on a big piece of paper. You can buy a strip of it (for around 15 cents/foot) at any craft store.
Then we played a couple of games (the favorite was bug, bug, butterfly, aka duck, duck, goose.) The girls were so excited to paint that we quickly moved to making tissue butterflies (instructions on those to come).
Actually, these were such a hit that we barely had time for cake and ice cream and gifts before it was time to head home. Emily was so happy with everything. Look at her making her darling little wish.
Then we sent the kids home with little bags filled with butterfly goodies and clipped closed with a butterfly hair clip. It doesn't get much more girly than that. Boys, eat your heart out.
Here is a little cake decorating tutorial for you. I have to warn you though, for all of my good intentions, this was a slightly quick and sloppy undertaking. If you know me, I am often pulling things off "by the seat of my pants." (Good thing that seat is pretty big.) Hopefully you can get something out of it anyway.
Now use the flowers to put the cake together.
I am excited that I finally have this (sort of) figured out. I would love your feedback on the video (as well as the project!) I'd also love to start posting pictures of your projects too. I am looking for an add-on to do this, but in the meantime email them to me and I'll do it manually. My goal is a project a week for the summer; should be fun.
1. If you are using tempra, just drip a little puddle on the bottom of the page. If you are using acrylic, you will need to thin it a little. If the bottle is almost empty, it works great to just add a little water and shake it up. You can also squeeze some paint in a baggie and add water, then squish to mix it. (Keep adding until it is about the consistency of milk.) Then cut the tip of the bag off (keep it small!) You can also mix in a small cup or bowl and then spoon onto the paper.
2. Put your straw close to the puddle at the bottom and gently blow, directing it upward to create your tree trunk. The paint will naturally want to branch off. You can follow it and blow the paint in that direction to create a branch.
3. If you run out of paint before you want the branch to end, just add a few drops at the tip and keep blowing.
4. Make leaves with a paintbrush or by dipping your finger tips into the paint and pressing them onto the paper. Use this technique to make fruit or blossoms as well.
I love these because they have such a pretty, delicate look and it is a super easy project. The great thing is that you can do something like mine in about 30-40 minutes or spend a lot of time and have a frame-able piece of art by filling in the whole picture.
*If you don't have shells from Easter eggs, make an omelet for breakfast and rinse the shells. You can put them into a few small bowls and just barely cover with water. Add several drops of food coloring and let it sit for a minute or two. Drain on paper towels and you are good to go.
1. Sketch a simple design or picture on the board.
2. Using a toothpick, spread glue onto a small section of the picture.
4. If desired, embellish with glitter, paint or even sequins, buttons, ribbons and such… whatever works with the design.
Megan's house with fluffy clouds and trees.
1. Invite friends. Our hunters were asked to be between the ages of 3 and 11 and to bring a bag of candy per child to share.
3. Hide rocks around your yard. Our hosts last year put the little kids in the front yard (8 and under); while the older kids searched the back yard.
5. Collect the candy as kids arrive and then divide it into bags while they are occupied with the hunt for the children to take home. If you have older hunters, you may want to distribute based on the number of rocks collected.
The families in our neighborhood take turns hosting each year, but this could certainly be a family activity too. The rocks are saved for use the next year. Have fun and happy hunting!
I can't tell you how many recipes I've tried for play dough; but I think I've finally settled on a favorite. This one is quick and cheap, with common pantry ingredients. It also has a fantastic texture–just like "Playdoh".
1. Heat water to boiling in a medium saucepan. If you want one color of dough, add the food coloring now. This makes it very easy to color. If you want multiple colors, you can work the food coloring into the finished dough.
2. Measure a generous 3 1/2 cups flour into a medium-large mixing bowl (one that holds at least 8 cups.) Reserve extra to add if the dough is too sticky. Mix in the salt and cream of tartar. I have to admit that I love the way this feels, so I always use my hands. Salt and flour just have an interesting texture together. Is that weird?
3. Once the water is boiling, whisk in the oil. Remove from heat and add extract. I like this because it makes the playdough-and your hands-smell good. It can smell too good and be tempting for your child to eat, but this dough is fully edible–just not tasty. I prefer lemon because it smells clean. My girls haven't ever been interested in eating it, but leave it out if you are concerned at all.
4. Make a well in the center of the flour mixture and pour the water mixture in. Stir with a spoon until flour is incorporated, then turn it onto the counter or a cutting board and knead until smooth.


£5.73 each & FREE Delivery in UK.
These strips are made of Spring Steel. The main property of this is that it will ALWAYS RETURN TO A FLAT SHAPE. Other metals become bent and puckered so that you soon have a strip that prevents you having a smooth surface to work with. Being made of Spring Steel our strips ALWAYS SPRING BACK TO ORIGINAL SHAPE.
These strips are only 0.1mm thick , which is ultra thin for strips, so allows maximuim access to the frets. This dimension is very important as thicker strips restrict the amount of fret exposed for working on. For example when working on a fret that has 1.0mm above the fretboard, then 0.25mm thick strips would only you to work on the top 75% of the fret. With our strips, on a 1.0mm fret, you will be able to access 90% of the fret height at any one time.
We include a set of sandpaper strips 800, 1000, 1200, 1500, 2000, 2500 grit. Each strip is approx 25mm by 280mm. These grits are used for crowning and polishing frets.
' We have experimented with many different sheet materials for this tool, with the idea to have a thin strip (so you can get near to the bottom of the fret) which is tough and will not bend out of shape or wear out when subjected to abrasion. Our choice was hardened spring steel. The best property of this material is that it is virtually impossible to get dents and bumps bent into it .
We tried many materials such a ordinary shim steel, brass etc. and they all start off flat but, after a bit of use, they tended to get a wrinkly and therefore would not sit nicely on the fretboard. With spring steel you can virtually bend it double and it will return to its original shape - making it always stay nice and smooth.
1. The width of the frets varies - some narrow (<2mm wide), some medium (about 2mm wide), some Jumbo (>2mm wide).
2. Obviously the width exposed fretboard wood - or the gap - between frets changes, as big as 36mm near the head of the guitar and as little as 8mm at the very highest frets.
• A 20mm wide strip with a narrow slot.
• A 20mm wide strip with a wide slot.
• A 16mm wide strip with a narrow slot.
• A 16mm wide strip with a wide slot.
• A 40mm wide strip with a narrow slot.
• A 40mm wide strip with a wide slot.
This sale is for ONE of the strips.
The 16mm size allows the very highest frets to be accomodated.
The 40mm will accomodate up to about the 17th fret.
All strips supplied in protective wooden case.
A printed guide to using these strips and refretting in general is included in this sale.


The Moto3 race in Le Mans was spectacular! Both our top riders, Bastianini and Kent, started from the back of the grid, and after a strong couple of laps, had soon reached leading group. They were able to fight, till the last lap, for the victory, but unfortunately missed by a nose. Bastianini's second position and the fourth of Danny Kent reinforces their position in the Championship. Danny is still leading and Enea is second.
ENEA BASTIANINI Nolan X-802R "It was not an easy race: starting back I had to push hard to make up positions and therefore the tyres went down a lot. On the penultimate lap I was in the fight for the victory, but I lost control of the rear, losing two positions. Obviously in the last lap the other riders pushed really hard and it was difficult to recover positions, so all in all I'm satisfied with second place; it's a good result for me and for the team. In the last two races we had some ups and downs, but during the Jerez test we were able to solve our problems: now my front end feeling is improved and I can ride really well my bike. I believe that from now on we can be able to be more consistent".


The lawyer for Winona Ryder says he hopes her arrest for shoplifting and drug possession can be disposed of without formal charges or a trial.
Attorney Mark Geragos calls the incident "a misunderstanding."
Beverly Hills police booked the actress Wednesday night on suspicion of trying to steal 47-hundred dollars' worth of clothing and hair accessories from a Saks Fifth Avenue store. They say she also had in her possession painkillers without a prescription.
Ryder has been released on 20-thousand dollars' bail.
Geragos says Ryder can produce evidence that she has a prescription for the painkillers. He says she also has receipts for the items found in her bags.
"It will become clear that there was no theft here," he said. "Ms. Ryder had no intent of depriving anybody of any property."
The alleged shoplifting took place at the Saks store on Wilshire Boulevard in Beverly Hills in the heart of one of the world's most expensive shopping districts.
Geragos said the drugs found on Ryder were painkillers that she had been prescribed. The attorney would not say why Ryder was taking painkillers but said she was "not under the influence" at the time of her arrest.
Asked how Ryder was feeling, Geragos said: "Nobody wants to be on the nightly news with all these rampant rumors."
In 1995, the pixyish actress with dark soulful eyes was nominated for an Oscar for Best Actress for her work in "Little Women." In 1994 she was nominated for Best Supporting Actress for "The Age of Innocence."
Ryder's publicist said she had no comment on the arrest and Saks also declined comment.
Born in Winona, Minnesota, to hippie parents, Ryder's godfather was Timothy Leary. She spent her early years living on a commune without electricity in the company of Leary and Beat poet Allen Ginsburg, also a family friend.
She made her film debut in the David Seltzer high school coming of age flick "Lucas" in 1986 and played the teenage bride of Jerry Lee Lewis in "Great Balls of Fire" in 1989.
In 1990, she was cast as Mary Corleone in "Godfather: Part III," but dropped out two days before filming began saying she had the 'flu from the stress of making two other films and did not want to let people down by delivering a substandard performance.
Around that time she checked herself into a hospital for treatment of depression, anxiety attacks and exhaustion.
Several films later, in 1996, she began work on "Girl, Interrupted," in which she delivered a stirring performance as a young woman who had been committed to a mental institution. It took four years for the film to make it to the theaters.
Last August, Ryder again checked into a hospital after suffering from severe stomach pains in her hotel room in London where she was filming "Lily and the Secret Planting."
She was later diagnosed with a severe gastroenterological disorder and actress Kate Winslet was cast in her place. She was said to have been heartbroken to leave the film.


Discussion in 'Ride Reports - Day Trippin'' started by ScotsFire, Dec 10, 2017.
Nice report ScotsFire. Outstanding pictures.Thanks.
Just like you, parked for the winter.
Well not JUST like you. It's well above freezing here.
It's been a pretty easy winter here, even by Seattle standards. I'm back on the road full time in April.
Then my big top to bottom trip starts!
this is all inspiring info!
Thanks Spike! There's many folks on the site that have inspired me, so I'm glad that I can pay that forward some.
Though you obviously need to find better sources.
Back living in Spokane, at least for a couple of months this spring. Since today was the only day in the next few without rain in the forecast, guess what I decided to do!
I've ridden the St Joe River Road before, but haven't gone over the top of the pass into St Regis MT. Last time I tried, I ran into snow just several miles south of St Regis. Of course this was in late May or early June a couple of years ago, when they didn't have extra snowfalls into March like this year. Needless to say I didn't have my heart set on a successful mission, but that usually doesn't stop me from trying. After going over 4th of July Pass on I90, I headed south on ID HW3 towards St Maries. The back side of Coeur d'Alene Lake is a much more scenic and fun ride, but I hadn't been on the 3 in decades.
After lunch in St Maries, I headed up the River Rd. It was amazingly gravel and sand free, and no snow on the main roads at all. The curves up to Avery were enjoyable, but I was looking forward to beyond that when it gets really good. Unfortunately Shoshone County and/or the Forest Service still has the roads past Avery closed, both the River Road and Moon Pass Rd (which goes to Wallace).
SO I turned around but instead of sticking on the pavement, went back downstream a ways on the south side of the river, which is a dirt road. Or in this case mostly ice and slush.
Getting back to the pavement, it went quickly back into St Maries then west on ID HW5 through Plummer, then the back road to Fairfield WA and back to the Spokane Valley.
Fuel stop in Cd'A. With WA's high gas taxes, it is nearly a quarter per gallon minimum cheaper in ID.
Typical of first ride of the season issues, I couldn't find the attachment straps for my tail bag so had to bungee net my backpack with my camera kit.
This pic was taken with my point and shoot. It really doesn't do well with these landscapes.
This one is a little better. Purchased a DSLR and am starting to learn to use it. This is just the automatic jpeg from the camera, so this should get better yet as I begin to learn to manipulate the pics from raw format.
It wasn't sunny due to the overcast and some haze, but still a beautiful day.
Lots of water fowl about.
This is just like South America, right?
I ate lunch at the Cabin City BBQ. My friend Brett and I stopped here in September on another ride. The proprietor remembered my name from then, the first time I'd been there. Food was good, though today's sweet chicken BBQ sammich wasn't nearly as good as the Barnyard from last fall. It has pulled chicken, pulled pork, and brisket on one sandwich. Worth a stop.
Avery, up the River Rd.
Headed back west from Avery on the shady side of the river.
This was actually the better part of that road. There were several sections where it was that ice/slush layer all the way across for several hundred yards.
I went up the hill from the pavement once I was back on the north bank. It didn't go far till I ran into snow there too.
Lots of fallen rocks too, though there were hardly any on the paved roads.
Looking down to the River Rd.
The roads were pretty firm away from the snow.
Once back through St Maries, on ID HW5.
HW5 is a really fun road for the first 10 miles or so going west from St Maries. I didn't get pics, but it's worth a ride. More so than 3 from I90 to St Maries by a long shot. Probably not quite the ride that the back side of Cd'A Lake is, but still.
The county road from Plummer towards Fairfield was also a pleasant surprise, at least the first few miles. Once out on the Palouse it straightens out quite a bit. The views there were worse than usual too as the winter wheat is just now starting to sprout. It will be gorgeous in a few more weeks.
Overall, it was a great day's ride. Around 220 miles in 7 hours, counting stops. While not the best weather, it was good enough to stretch the legs on the 800GSA, especially on the backtrack pieces that I knew there wouldn't be gravel on. Besides, a long day on the bike in early April is always a treat.
simbaboy and dammitdave like this.
More hiding in the shade.


I've had wonderful renters, Shannon and James Thomasson, who moved into my house when I left last September. I'm happy for them that they bought a house and are moving out at the end of December. As for me, I'll miss the income. The house is available Jan. 1 to June 18, 2017. Spread the word.… Continue reading Advertisement: My CdA House is for Rent!


Lifestyle is the growing portal which provides Fashion, Health, Relationship, Travel, Autos, kids, pregnancy & study Tips.
You will appreciate the carefully written material on our site if you are looking for easy-to-understand information on motivation.
Mahendra Kumar Trivedi is a globally recognized and well-respected spiritual personality.


Home cooked family meals, ample presents, and snuggling by the fire are a few of the enticing activities associated with the holidays. But, a less attractive aspect of the joyous winter season often goes ignored: burglaries and break-ins. Unfortunately, criminals use the holiday season to take advantage of traveling, dining and shopping homeowners at higher rates this time of year. Per FBI data, approximately 400,000 burglaries are committed throughout the United States between November and December.
Homeowners and renters can still partake in winter merriments but are wise to prepare themselves for worst-case scenarios. Employing the proper home security tactics keeps you, your family and personal belongings – including those pricey presents – safe and sound.
If moving to a new city like San Francisco, Boston or New York, understand your new environment. Crime tends to be higher in the city due to population density, among other factors. Go around your new building and introduce yourself to other tenants, condo or co-op owners. If you live in a townhome or single-family property, join a club or committee popular within your area. Neighbors are far more likely to report an incident when they know you personally and can spot an unfamiliar intruder.
Whether moving to a high-rise or single-family home, consider a comprehensive security system that includes door and window sensors, motion sensors and an audible alarm. Single-family homeowners with yards may also consider exterior motion activated lights to signal strange actions around the property. Ample lighting, both inside and outside of the property, acts as a major deterrent for criminals attempting to move about undetected.
Modern security systems include the above and more. Smart home technology links to your mobile device and provides remote camera access. Although unrelated to forceful entry, look for a security system that contains carbon monoxide and smoke alerts for when you're out and about. As a bonus, high-end security systems can pay you back when it comes time to sell. Smart homes with extensive safety features stand out to buyers – particularly families. Renters, on the other hand, should invest in movable wireless security systems that don't require major installation. Lessees can also purchase deadbolts and setscrews (to secure door hinges) upon their landlords' consent.
The most important part of staying safe is staying smart. No matter where you live, never let a stranger into your home – no matter how compelling their story sounds. Thieves often scope out properties by disguising themselves as charitable solicitors, especially during the holiday season when individuals are more likely to give back. Always ask for identification or a card to verify the individual works directly with the charitable organization they claim to represent. No matter the cause, do not let anyone you don't know first-hand into your home. If you don't want to be bothered or already volunteer or donate in your spare time, fix a no soliciting sign at your front door.
In addition, keep your vacation plans off social media. Post your picturesque mountainside images and faraway family get-togethers after returning home. You never know who might be keeping tabs on your whereabouts to benefit from your absence. As a rule, set all personal social media profiles to private and only accept friend or follow requests from people you know.
If you're taking a long trip to a second home, be stealth. Ask a neighbor to come by and check on your home, water the plants and keep the home looking lived-in while you're away. Put your valuables away or take small goods with you. Pack up the car in the garage, if possible. Set home automation lights, accessible via your phone, to make the home appear occupied, even when empty.
The holidays should be filled with cheer. Don't let the season be spoiled by making your home vulnerable to criminals. And, never forget the rule of karma. Keep an eye out for your neighbors and they are likely to return the favor when you need it most.


The ability of pretending to be a master of certain aspects or boasting to possess much experience and knowledgeable in certain areas, ranging from luxury goods and sports(i.e. golf, private plane, hotels) to daily stuffs(i.e. pencil, mug cup).
This word comes from the pronunciation of a Chinese word: zhuang bi, which is a verb of the previous definition of zhuangbility. Adding the suffix -ility gives the meaning of the ability to do such things. This word is normally used as a derogatory term in both Chinese and English, not only because pretending to be someone that one is not is not good, but also due to that msot Chinese considers that speaking English with Chinese is a particularly annoying and unsuccessful way to show one's zhuangbility.
Etymology : Derivation from the sound of a Chinese word zhuang bi "boast, pretend", plus suffix -ility at the end.


text:
Julius Baumann, född 1837 och död 1916, var en tysk filosof.

Baumann var anhängare till Rudolf Hermann Lotze, och professor i Göttingen från 1869. Bland Baumanns arbeten märks främst Die Lehren von Raum, Zeit und Mathematik in der Philosophie (2 band, 1868–1969).

Källor
 Svensk uppslagsbok. Malmö 1939

Tyska filosofer
Födda 1837
Avlidna 1916
Män
Personer verksamma vid Göttingens universitet
Tyska professorer

redpajama_set_name: RedPajamaWikipedia


Creative Living Log Cabins at a glance!
This is our standard range of cabins, all available in a large selection of sizes.
For detailed information on each log cabin, move your mouse over your chosen cabin and click either the magnifying glass icon to see a larger image, or click the link icon which will take you to that cabins own detailed page.


text:
ACCEPTED

#### According to
Index Fungorum

#### Published in
null

#### Original name
Stamnaria equiseti var. equiseti (Hoffm.) Sacc.

### Remarks
null


Gel Corn Protectors slip on easily and stay in place all day long, padding your toes against friction while protecting and soothing painful corns. The soft elastic fabric sleeve contains a visco-gel cushion infused with mineral oil that works to soothe and soften sore corns. One universal size. By Myfootshop.com. 2/pkg.


Even though we've reached our goal there are still 40 hours to go until the campaign ends! To make our goal was crazy enough, but to surpass it by so much is outstanding. We're all hard at work getting some cool stuff ready so we can start letting you guys in on more of the delectable content we're creating.
We'll also be sending out the requests soon for all of the information we'll need from everyone in order to send out your prizes.
As we continue on in development we'll keep everyone up to date through both project updates and our blog. The current plan is to let everyone in on some new stuff at least once a month, but I'm sure that will fluctuate depending on what's going on in the office at the time. We'll definitely be shooting for something more frequent as we wouldn't be here without all of you!
One cool thing that I can mention is that plans are in place to begin releasing a weekly web comic very soon! We're not entirely sure how long it will continue due to the fact that the actual game is our number one priority, but we're going to do our best to keep finding cool things like this to bring to you guys.
Remember that if you have any questions about the game, the kickstarter, or your prize status you can email me directly or send us a message through Kickstarter.
The $10 pledge is the actual pre-order of the game and you'll get access to download it when it's released. Thanks!
Hi, I was just wondering if the $10 pledge actually includes a digital copy of the game when it's released, or just early access to purchase a copy. Thanks.