Paint Your Guts Out!
1Aug/11Off

Paint Tool Sai Tutorial Background

Paint Tool Sai Tutorial Background

How can I convert an image of real life into an image of the anime?

Ok, so I have a cool image of this strange building, and I want is the background of one of the characters in my manga so here's what I need:. I need a tutorial or a description of how to a realistic style manga. Tutorials GIMP can, paint tool sai, or website. Please, if you submit a tutorial please an example. I appreciate the help.

This is only possible to automate when working with 3D generated by computer (or, if by chance you happen to have a normal map the image in question I recommend you have doubts). Sometimes what you do is literally draw on an image to view animation. You can do this in Photoshop, keep the bottom as a layer and hide it when done.

Ocean's Paint Tool SAI Tutorial - Part 1 (Skin)

21Jun/11Off

Paint Java

Paint Java
Paint Java

Fabric Paintings: Play with the colors of fabric

Painting on canvas is a unique form of painting that finds its living expression tissues. Painting on fabric has become a popular home crafts and is practiced by many, or as a hobby or as a living part of the media. With simple techniques and procedures may be attractive carved tables at an affordable price. For these reasons, this painting has a market demand today.

Fabric Painting

This painting is used in popular men's shirts, ladies Kurti, hits his hand, covers cushions , Curtains, upholstery, carpets and more. Need not be very skilled in painting to become a fabric painter. We need some creative skills and knowledge of different methods of fabric paint. The rest automatically.

There is every color of the mixture and heat applied to proportions. The work of a painter is like the fabric of a Chemical Combine the colors and evaluate their reactions. The pleasure lies in the fact that he or she needs to know how many colors and heat to use to create a particular painting. The most popular are the batik painting, dyeing, shibori, silk-screening, watercolor and layers.

Dyeing is one of the most simple and common fabric paint. In parts of the stained fabric are tied and merged into color dye solutions, while others refrained from dyeing. When folded in a certain way, it helps to form a conception of integration segments of colored and colorless. Batik painting is the melting of wax and dye is one of the most favored among the fabric paints.

She was born on the Indonesian island of Java, batik painting mesmerizes with its unusual fabrics, all colors and freedom of art. Batik Painting in wax paper, then dyed and finally wax. Shibori is a typical Japanese tie-dye painting, which attracts with its wrinkles, folds, stitches, ribbons and colorful ornaments. This type of paint is a bit complex and involves a series of processes such as sewing, folding, creasing, dyeing, pleating and embroidery.

Browse our Site Craft in India to buy and complete the information on painting fabric.

About the Author

Priyanshu Shrivastava is the author of Crafts in India .This website provides impressive range of handicrafts items and Jewelry. Buy handcrafted products at cheaper rates with proper discounts. Some of the products that we deal in are Jewelry, Handbags and Purses, Home Décor Items, Bedspreads, Sculptures etc.

Java programming, paint () method?

I make a program that uses a JTextField to convert number to its ASCII code accordingly. I was wondering how I can make the text fields appear above the rectangles made my paint () method. Basically there a way to make parts the applet is done by paint () method is in the background, so if I can add buttons or anything for the applet, which will appear instead of being covered by my paint () method forms.

Unfortunately, I do not think you can do that. I do not think you can paint a JTextField or JButton (or any other component) in a paintComponent (Graphics g) method. It would be the only way to do what you want. Instead you have to create a graphical user interface using a layout manager. Many layout managers for the different models. I always use GridBagLayout, it is very general, so instead of learning the more I learn I can give to others (if the arrangements myself). The only advantage than others, BoxLayout and GridLayout as is the ease of use. You do not put things as you do with GridBagLayout. I will not give a tutorial on layout managers here, so instead you say how to get what you want: Here are the classes you need: public class JPanel extends public MyPanel MyCanvas JPanel Then you have a Director / init: For applications: public static void main (String [] args) {JFrame frame = new JFrame ("title ");// create a JFrame with MyPanel title = new JPanel ();// MyPanel from manufacturers or others to define / / this is to make sure that when you close the open framework implementation of the program / / Otherwise, when the box is closed, the program is still waiting for a call to / / frame.setVisible (true) to display ... So having said that the program / / Output when it closes. frame. setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE) frame.setContentPane (MyPanel) / / set the framework to display panel frame.setVisible (true) / / display the image / / define the size ... this will only work if your modified frame.pack MyPanel return (); / getPreferredSize ()} Or if want an applet public void init () {MyPanel = new JPanel ();// get MyPanel panel, as above / / frameset this content to be panel applet of ... Now the display / / the panel. Long-lived applets should probably save the object / / MyPanel, otherwise it could become collector Waste / / This.setContentPane (MyPanel) declaring a field JPanel object / object / applet for that. These two} do not need a method paintComponent because it will be the screen for some sample MyPanel. Now use MyPanel essentially design your interface. So give a few buttons and then to display the custom screen somewhere MyPanel public class JPanel {public MyPanel () {this.setLayoutManager ();// and any layout manager be used / / set up GUI if needed / / these methods may be different (to be added) if you use different layout managers this.add (new JTextField ("A text field "));... / / Add all your stuff / / add your custom panel this.add (new MyCanvas ());// or other manufacturers of MyCanvas}} Now, this class will display a graphical user interface with custom panel. If you need to communicate between the GUI and custom panel, then you probably need to add listeners to the class or MyPanel, and you might transmit the necessary information (JTextField, etc.) to MyCanvas not to lose ... again is a whole lesson in itself ...

Java paint application

18Feb/11Off

Paint Edge Tool

Paint Edge Tool
Paint Edge Tool

Restoration painting now deals on a high grade platform

Proper interior decoration and beautification of a place can really change its image to a great extent. It is utmost importance that you select the right people for decorating your house interiors and exteriors. Elite Restoration painting has been in home decorating business since 1982. Premiers in this field, Elite Restoration Painting are experts in high feature painting finishes. Employing the best class of workers, they strive to give full satisfaction to their clients. Elite Restoration Painting are Atlanta painting contractors that takes care of interior decoration and beautification of homes of significant importance in Buckhead, distinguished residences in Vinings and neighborhood homes in North Atlanta. This Atlanta Painting firm also beautifies interiors and exteriors of houses, commercial offices, hospitals, medical offices, corporate luxury offices, retail shops and boutiques. Today, Atlanta has a lot of beautiful homes thanks to Elite Restoration Painting. Elite Restoration Painting are the very best when it comes to indoor paintings.

This firm of Atlanta Painter has an elite group of workers who are experts in the field of beautification and interior and exterior decoration. Decades of experience and cutting edge tools enable them to produce high-class results. Also the work is completed within the allotted period without any delay. Due to this fact, homeowners and retail owners, commercial building and hospital and office projects often stretch their remodeling plans as they have complete faith in Elite Restoration Painting. The efficiency of their workers also ensures that their work does not obstruct the day-to-day proceedings of their clients. So you do not need to think twice over hiring this Atlanta Painting firm because they handle your project with utmost care and pride so that no inconvenience is caused. Elite understands the importance of doing a good job and what the outcome means to its client.

Elite follows a series of sophisticated steps to achieve high-class results. They spend a great deal of time in smoothening the walls and trimming wood to give proper finishing to the beautification jobs. Joints, wall joints, ceilings, and holes are also taken care of so that any visible brush marks can be eliminated. The rooms are properly prepared, covering the furniture, wood floors, carpets etc. Every step is rigorously taken care of and no step is skipped. In case of exterior decorations, the large outer surfaces are cleaned first using power sanders. This allows smooth painting of the house. The windows are rubbed off with sanding sponges that remove any previous marks of paintings. Oil based primers are used for wood to make them smoother. The rigorous procedures mentioned above give the house a comforting look, which makes the house a standout in the neighborhood. The finishing work is completed with two coats of latex-based finishers. Elite also renovates exterior windows and also exterior materials so that clients can take pride in their work. Cutting edge tools and expert craftsmanship truly meets the expectation their clients. Their work is sure to satisfy the client in every way. Any imperfection is reduced with utmost efforts.

About the Author

Elite restoration Painting is an Atlanta Painting firm. The experts of this group provide excellent paintings and have gained name over a wide area of the world for complete assistance on house or office restoration.

What is the best tool to use the "cut in" when painting a wall?

When painting the edges of a wall should you use a small roller or a paint brush? When I use a paint brush it just doesn't look right. Any suggestions. Thanks

Many folks can cut in with an angled paint brush - it also can be easier to use one of those angled sponge tools. I think that the key to it all is to paint soon after you cut in so that the paint can be smoothed into the wall section and there isnt a line of demarcation between the cutting in and the paint on the wall.

I am really not handy enough with a roller to do those straight edges. I suspect most folks arent.

: When should I consider a pad applicator?
A:Because of their very nature, pad applicators are designed for smooth surfaces. In addition, because they tend not to hold enough paint to cover large areas, they are primarily used on small surfaces or when working with less viscous materials (such as stains or varnishes). Pad applicators are ideal if you want to limit brush strokes and/or the texture created by rollers. Some pad applicators (for example, the ones with wheels on one side) are specifically made for trimming out around a ceiling or trim line.

Painting Walls using a "straight edge" tool

3Feb/11Off

Painting Fiberglass Rv

Painting Fiberglass Rv
Painting Fiberglass Rv

Fuselage b2b

I want to introduct something about Auto Forging Parts. Steel, Stainless steel, alloy steel, Forging part

Fuselage of a Boeing 737
The fuselage (from the French fusel "spindle-shaped") is an aircraft's main body section that holds crew and passengers or cargo. In single-engine aircraft it will usually contain an engine, although in some amphibious aircraft the single engine is mounted on a pylon attached to the fuselage which in turn is used as a floating hull. The fuselage also serves to position control and stabilization surfaces in specific relationships to lifting surfaces, required for aircraft stability and maneuverability.

Piper PA-18 welded tube truss fuselage structure
The structural elements resemble those of a bridge, with emphasis on using linked triangular elements. The aerodyamic shape is completed by additional elements called formers and stringers and is then covered with fabric and painted. Most early aircraft used this technique with wood and wire trusses and this type of structure is still in use in many lightweight aircraft using welded steel tube trusses. This method is especially suitable for amateur-built aircraft kits, where a complete welded truss structure is delivered with the fitting of other components, covering, and finishing completed by the user, as it ensures that a robust, uniform load bearing structure is within the completed aircraft. A box truss fuselage structure can also be built out of wood - often covered with plywood - as can be seen on this Ibis canard fuselage.
Geodetic construction

Geodetic airframe fuselage structure is exposed by battle damage
Geodetic structural elements were used by Barnes Wallis for British Vickers between the wars and into World War II to form the whole of the fuselage, including its aerodynamic shape. In this type of construction multiple flat strip stringers are wound about the formers in opposite spiral directions, forming a basket-like appearance. This proved to be light, strong, and rigid and had the advantage of being made almost entirely of wood. A similar construction using aluminum alloy was used in the Vickers Warwick with less materials than would be required for other structural types. The geodesic structure is also redundant and so can survive localized damage without catastrophic failure. A fabric covering over the structure completed the aerodynamic shell (see the Vickers Wellington for an example of a large warplane which uses this process). The logical evolution of this is the creation of fuselages using molded plywood, in which multiple sheets are laid with the grain in differing directions to give the monocoque type below.
Monocoque shell

The Vans RV-7 fuselage is slender for high speed flight
In this method, the exterior surface of the fuselage is also the primary structure. A typical early form of this (see the Lockheed Vega) was built using molded plywood, where the layers of plywood are formed over a "plug" or within a mold. A later form of this structure uses fiberglass cloth impregnated with polyester or epoxy resin, instead of plywood, as the skin. A simple form of this used in some amateur-built aircraft uses rigid expanded foam plastic as the core, with a fiberglass covering, eliminating the necessity of fabricating molds, but requiring more effort in finishing (see the Rutan VariEze). An example of a larger molded plywood aircraft is the de Havilland Mosquito fighter/light bomber of World War II. It should be noted that no plywood-skin fuselage is truly monocoque, since stiffening elements are incorporated into the structure to carry concentrated loads that would otherwise buckle the thin skin. The use of molded fiberglass using negative ("female") molds (which give a nearly finished product) is prevalent in the series production of many modern sailplanes. The use of molded composites for fuselage structures is being extended to large passenger aircraft such as the Boeing 787 Dreamliner (using pressure-molding on female molds).
Semi-monocoque

Sectioned fuselage showing frames, stringers and skin all made out of aluminium
This is the preferred method of constructing an all-aluminum fuselage. First, a series of frames in the shape of the fuselage cross sections are held in position on a rigid fixture, or jig. These frames are then joined with lightweight longitudinal elements called stringers. These are in turn covered with a skin of sheet aluminum, attached by riveting or by bonding with special adhesives. The fixture is then...(and so on) To get More information , you can visit some products about cream cups, synthetic resin, . The Auto Forging Parts products should be show more here!

About the Author

himfr can provide you most popular hot products from china!

What type of buffer wheels should i get?

I'm working on my dads RV and i need a buffer wheel for the fiberglass part and another for the car paint part. Are there any specific types i should get?
I think they are called buffer pads. But are there any specific ones i need for the RV? and where can i get them?

It depends on what you are buffing it with. If you are using a rubbing compound then I would use a wool pad. If you are using a polish or a glaze then I would use a foam pad. You can use the same one for the RV and the car. Just it clean it out between uses.

2006 Tiffin Zephyr Diesel Motorhome by Tiffin RV - Walkaround on Tiffin Zephyr

9Oct/10Off

Paint Tile Game

Paint Tile Game
Paint Tile Game

Ceramics in Deruta, Italy

Attracting droves of tourists every year, Europe promises the ancient, the diverse, and the completely fascinating. Most travelers scurry past the major sites and cram in as much as possible in order to get through a list of 'must sees.' Unfortunately, much is overlooked due to lack of time and money while the infinite unique treasures sometimes hidden for the resourceful traveler remain undiscovered and unappreciated. Not that visits to the key attractions should be dissuaded!

On the contrary, I'm simply inviting the European travelers to dig a little deeper into their destination country and find the gems that will make them smile as they recall them even decades later. Remember and celebrate the taste of a fresh German pretzel, the sweet smell of the air in a Tuscan vineyard, or the baby soft petals in a colorful field of Dutch tulips. Savor an entire spectrum of sensory bliss as you skip from one country to the next, searching for that tiny unique detail that you will fondly relish for the rest of your life.

Window after window of priceless painted ceramics, a symphony of colors that dance seamlessly together, and terra cotta-colored buildings that have overlooked the area since the Middle Ages - it's almost too much to take in for visitors of Deruta. The sun warmly shines down on the masters that lovingly knead and massage their clay while shoppers 'oohh' and 'ahhh' over the gorgeous works of art. A day in Deruta promises a treasure trove of finds as well as the potential of making new friends - all packaged up in a relaxed atmosphere worthy of any Italian town.

Easy to find and tourist-friendly, Deruta sits right off of Autostrada E45 and immediately greets its visitors with rows of ceramic shops and ample parking. Despite housing over 200 retail stores, each offers its own elegantly unique patterns so it's difficult to not want to see them all. Stop by Cama, right off the main road, for a tour of the facility and a step-by-step journey through the process of ceramics. Cama's proud of their family-owned company and guests of their factory will see an uncle spinning cool, wet clay into pots and pitchers while mom is sanding the seams from the dried earthenware. Follow the circuit to witness the expert artists paint each creamy white argil into a masterpiece of color. Cama's work has been given to the Pope so it's without a doubt, high-quality craftsmanship.  

Deruta's Old Town also offers shoppers a delightful time but in a more charming atmosphere. Aged buildings adorned by painted tiles sit just past the city gates and scream to be noticed.  Visitors pop in and out of little stores while the cheerful water fountain in the middle of the cobblestone road provides soft background music. Shop owners greet passersby with smiles and conversation, eager to share information on their wares.  Visit Mariam, whose talent is truly astounding. She sets herself apart from other Deruta artists by using shades of green and painting the outside surface of her bowls. Stop by Rolli Reno, who paints exquisite tiles of all sizes and incorporates them into trays, key ring hooks, and frames. His style explodes with a colorful symmetry that can brighten any place it's displayed in.  

Deruta's the 'Ceramic of Ceramics'...any piece is sure to become a family heirloom

About the Author

Learn about tick removal from human and engorged tick at the How To Remove Ticks site.

I need some room ideas for a game/ hangout room?

I am remodeling a big room downstairs in the basement. I was wondering if you have any color ideas, tile options, rug color or type, or any type of theme. I had one theme in mind, I was thinking of doing some sort of tile with a big black area rug, paint the walls maroonish, and put black and white photos of marylin monroe on the wall. I'd like some more ideas just so i can have a variety :) Thanks so much!! (:

I actually really like your idea. Just be careful with you choice of maroon. I would get a black couch and opt for a white rug. Then going with your Marylin Monroe theme I would put some gold pillows on the couch, find ones in different styles and textures, Homesense is a good place to get pillows.

But you said you wanted other ideas too.

You could go with a really plush bohemian feel. Paint the walls a dark purple and have deep pinks and oranges as an accent colour. Hang wood beads in the doorway and have a couch piled high with cushions. Have a few large floor cushions tossed in a pile. Accent with gold tarnished lights, maybe a hanging lantern?

Here is a few links to pictures I think might help. But I think you should go with your own idea, the Marylin Monroe theme, I think it sounds great.

http://images.nakedauthors.com/uploaded_images/lovenest-794708.jpg

http://fc02.deviantart.net/fs38/f/2008/339/c/7/Marilyn_Monroe_room_____by_aspa1984.jpg

Hope I helped,

Happy Decorating!

2011-07-22 Tile Game

10Jul/10Off

Paint Java Tutorial

Paint Java Tutorial

Standard Template Library

Overview

Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (September 2007)

The STL provides a ready-made set of common classes for C++, such as containers and associative arrays, that can be used with any built-in type and with any user-defined type that supports some elementary operations (such as copying and assignment). STL algorithms are independent of containers, which significantly reduces the complexity of the library.

The STL achieves its results through the use of templates. This approach provides compile-time polymorphism that is often more efficient than traditional run-time polymorphism. Modern C++ compilers are tuned to minimize any abstraction penalty arising from heavy use of the STL.

The STL was created as the first library of generic algorithms and data structures for C++, with four ideas in mind: generic programming, abstractness without loss of efficiency, the Von Neumann computation model, and value semantics.

Contents

Containers

The STL contains sequence containers and associative containers. The standard sequence containers include vector, deque, and list. The standard associative containers are set, multiset, map, and multimap. There are also container adaptors queue, priority_queue, and stack, that are containers with specific interface, using other containers as implementation.

Container

Description

Sequences (Arrays / Linked Lists) - ordered collections

vector

a dynamic array, like C array (i.e., capable of random access) with the ability to resize itself automatically when inserting or erasing an object. Inserting and removing an element to/from back of the vector at the end takes amortized constant time. Inserting and erasing at the beginning or in the middle is linear in time.

A specialization for type bool exists, which optimizes for space by storing bool values as bits.

list

a doubly-linked list; elements are not stored in contiguous memory. Opposite performance from a vector. Slow lookup and access (linear time), but once a position has been found, quick insertion and deletion (constant time).

deque (double ended queue)

a vector with insertion/erase at the beginning or end in amortized constant time, however lacking some guarantees on iterator validity after altering the deque.

Container adaptors

queue

Provides FIFO queue interface in terms of push/pop/front/back operations.

Any sequence supporting operations front(), back(), push_back(), and pop_front() can be used to instantiate queue (e.g. list and deque).

priority_queue

Provides priority queue interface in terms of push/pop/top operations (the element with the highest priority is on top).

Any random-access sequence supporting operations front(), push_back(), and pop_front() can be used to instantiate priority_queue (e.g. vector and deque).

Elements should additionally support comparison (to determine which element has a higher priority and should be popped first).

stack

Provides LIFO stack interface in terms of push/pop/top operations (the last-inserted element is on top).

Any sequence supporting operations back(), push_back(), and pop_back() can be used to instantiate stack (e.g. vector, list, and deque).

Associative containers - unordered collections

set

a mathematical set; inserting/erasing elements in a set does not invalidate iterators pointing in the set. Provides set operations union, intersection, difference, symmetric difference and test of inclusion. Type of data must implement comparison operator < or custom comparator function must be specified. Implemented using a self-balancing binary search tree.

multiset

same as a set, but allows duplicate elements.

map

an associative array; allows mapping from one data item (a key) to another (a value). Type of key must implement comparison operator < or custom comparator function must be specified. Implemented using a self-balancing binary search tree.

multimap

same as a map, but allows duplicate keys.

hash_set

hash_multiset

hash_map

hash_multimap

similar to a set, multiset, map, or multimap, respectively, but implemented using a hash table; keys are not ordered, but a hash function must exist for the key type. These containers are not part of the C++ Standard Library, but are included in SGI's STL extensions, and are included in common libraries such as the GNU C++ Library in the __gnu_cxx namespace. These are scheduled to be added to the C++ standard as part of TR1, with the slightly different names of unordered_set, unordered_multiset, unordered_map and unordered_multimap.

Other types of containers

bitset

stores series of bits similar to a fixed-sized vector of bools. Implements bitwise operations and lacks iterators. Not a Sequence.

valarray

another C-like array like vector, but is designed for high speed numerics at the expense of some programming ease and general purpose use. It has many features that make it ideally suited for use with vector processors in traditional vector supercomputers and SIMD units in consumer-level scalar processors, and also ease vector mathematics programming even in scalar computers.

Iterators

The STL implements five different types of iterators. These are input iterators (which can only be used to read a sequence of values), output iterators (which can only be used to write a sequence of values), forward iterators (which can be read, written to, and move forward), bidirectional iterators (which are like forward iterators but can also move backwards) and random access iterators (which can move freely any number of steps in one operation).

It is possible to have bidirectional iterators act like random access iterators, as moving forward ten steps could be done by simply moving forward a step at a time a total of ten times. However, having distinct random access iterators offers efficiency advantages. For example, a vector would have a random access iterator, but a list only a bidirectional iterator.

Iterators are the major feature which allow the generality of the STL. For example, an algorithm to reverse a sequence can be implemented using bidirectional iterators, and then the same implementation can be used on lists, vectors and deques. User-created containers only have to provide an iterator which implements one of the 5 standard iterator interfaces, and all the algorithms provided in the STL can be used on the container.

This generality also comes at a price at times. For example, performing a search on an associative container such as a map or set can be much slower using iterators than by calling member functions offered by the container itself. This is because an associative container's methods can take advantage of knowledge of the internal structure, which is opaque to algorithms using iterators.

Algorithms

A large number of algorithms to perform operations such as searching and sorting are provided in the STL, each implemented to require a certain level of iterator (and therefore will work on any container which provides an interface by iterators).

Functors

The STL includes classes that overload the function operator (operator()). Classes that do this are called functors or function objects. They are useful for keeping and retrieving state information in functions passed into other functions. Regular function pointers can also be used as functors.

A particularly common type of functor is the predicate. For example, algorithms like find_if take a unary predicate that operates on the elements of a sequence. Algorithms like sort, partial_sort, nth_element and all sorted containers use a binary predicate which must provide a strict weak ordering, that is, it must behave like a membership test on a transitive, irreflexive and antisymmetric binary relation. If none is supplied, these algorithms and containers use less by default, which in turn calls the less-than-operator <.

Criticisms

Quality of compiler

The Quality of Implementation (QoI) of the C++ compiler has a large impact on usability of STL (and templated code in general):

Error messages involving templates tend to be very long and difficult to decipher. This problem has been considered so severe that a number of tools have been written which simplify and prettyprint STL-related error messages to make them more comprehensible.

Careless use of STL templates can lead to code bloat. This has been countered with special techniques within STL implementation (using void* containers internally) and by improving optimization techniques used by compilers.

Template instantiation tends to increase compilation time and memory usage (even by an order of magnitude). Until the compiler technology improves enough this problem can be only partially eliminated by very careful coding and avoiding certain idioms.

STL design issues

1. Design flaws due to limitations in the C++ language

Initialization of STL containers with constants within the source code is not as easy as data structures inherited from C (addressed in C++0x with initializer lists).

2. Perceived flaws due to the requirement to maximize speed and minimize space usage

STL containers are not intended to be used as base classes (their destructors are deliberately non-virtual); deriving from a container is a common mistake.

3. Other flaws, caused either by trade-offs in design or which have become more visible over time

The concept of iterators as implemented by STL can be difficult to understand at first: for example, if a value pointed to by the iterator is deleted, the iterator itself is then no longer valid. This is a common source of errors. Most implementations of the STL provide a debug mode which is slower but can locate such errors if used. However, at present no better replacement for iterators has been suggested and a similar problem exists in other languages, for example Java.

Certain iteration patterns do not map to the STL iterator model. For example, callback enumeration APIs cannot be made to fit the STL model without the use of coroutines, which are platform-dependent and/or unavailable, and are outside the C++ standard.

Compiler compliance does not guarantee that Allocator objects, used for memory management for containers, will work with state dependent behavior. For example, a portable library can't define an allocator type that will pull memory from different pools using different allocator objects of that type. (Meyers, p. 50)

The set of algorithms is not complete for example, the copy_if algorithm was left out by oversight (Stroustrup, p. 530) (added in C++0x: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2666.pdf).

The interface of some containers (in particular string) is bloated (Sutter and Alexandrescu, p. 79); others are considered insufficient.

Hashing containers were left out of the original standard, but have been added in Technical Report 1, a recent extension to C++.

History

The architecture of STL is largely the creation of one person, Alexander Stepanov. In 1979 he began working out his initial ideas of generic programming and exploring their potential for revolutionizing software development. Although David Musser had developed and advocated some aspects of generic programming already by year 1971, it was limited to a rather specialized area of software development (computer algebra).

Stepanov recognized the full potential for generic programming and persuaded his then-colleagues at General Electric Research and Development (including, primarily, David Musser and Deepak Kapur) that generic programming should be pursued as a comprehensive basis for software development. At the time there was no real support in any programming language for generic programming.

The first major language to provide such support was Ada, with its generic units feature. By 1987 Stepanov and Musser had developed and published an Ada library for list processing that embodied the results of much of their research on generic programming. However, Ada had not achieved much acceptance outside the defense industry and C++ seemed more likely to become widely used and provide good support for generic programming even though the language was relatively immature. Another reason for turning to C++, which Stepanov recognized early on, was the C/C++ model of computation which allows very flexible access to storage via pointers is crucial to achieving generality without losing efficiency.

Much research and experimentation were needed, not just to develop individual components, but to develop an overall architecture for a component library based on generic programming. First at AT&T Bell Laboratories and later at Hewlett-Packard Research Labs, Stepanov experimented with many architectural and algorithm formulations, first in C and later in C++. Musser collaborated in this research and in 1992 Meng Lee joined Stepanov's project at HP and became a major contributor.

This work undoubtedly would have continued for some time being just a research project or at best would have resulted in an HP proprietary library if Andrew Koenig of Bell Labs had not become aware of the work and asked Stepanov to present the main ideas at a November 1993 meeting of the ANSI/ISO committee for C++ standardization. The committee's response was overwhelmingly favorable and led to a request from Koenig for a formal proposal in time for the March 1994 meeting. Despite the tremendous time pressure, Alex and Meng were able to produce a draft proposal that received preliminary approval at that meeting.

The committee had several requests for changes and extensions (some of them major), and a small group of committee members met with Stepanov and Lee to help work out the details. The requirements for the most significant extension (associative containers) had to be shown to be consistent by fully implementing them, a task Stepanov delegated to Musser. It would have been quite easy for the whole enterprise to spin out of control at this point, but again Stepanov and Lee met the challenge and produced a proposal that received final approval at the July 1994 ANSI/ISO committee meeting. (Additional details of this history can be found in Stevens.) Subsequently, the Stepanov and Lee document 17 was incorporated into the ANSI/ISO C++ draft standard (1, parts of clauses 17 through 27). It also influenced other parts of the C++ Standard Library, such as the string facilities, and some of the previously adopted standards in those areas were revised accordingly.

In spite of STL's success with the committee, there remained the question of how STL would make its way into actual availability and use. With the STL requirements part of the publicly available draft standard, compiler vendors and independent software library vendors could of course develop their own implementations and market them as separate products or as selling points for their other wares. One of the first edition's authors, Atul Saini, was among the first to recognize the commercial potential and began exploring it as a line of business for his company, Modena Software Incorporated, even before STL had been fully accepted by the committee.

The prospects for early widespread dissemination of STL were considerably improved with Hewlett-Packard's decision to make its implementation freely available on the Internet in August 1994. This implementation, developed by Stepanov, Lee, and Musser during the standardization process, became the basis of many implementations offered by compiler and library vendors today.

List of STL implementations

libstdc++ from gnu (was part of libg++)

STLPort, based on SGI STL

Rogue Wave standard library (HP, SGI, SunSoft, Siemens-Nixdorf)

Dinkum STL library by P.J. Plauger

Notes

^ Meyers, Scott (2005). Effective C++ Third Edition - 55 Specific Ways to Improve Your Designs. Addison Wesley. ISBN 0-321-33487-6. 

^ Sutter, Herb; Alexandrescu, Andrei (2004). C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Addison-Wesley. 

See also

List of C++ template libraries

C++0x

Boost C++ Libraries

References

Alexander Stepanov and Meng Lee, The Standard Template Library. HP Laboratories Technical Report 95-11(R.1), November 14, 1995. (Revised version of A. A. Stepanov and M. Lee: The Standard Template Library, Technical Report X3J16/94-0095, WG21/N0482, ISO Programming Language C++ Project, May 1994.)

Alexander Stepanov (2007) (PDF). Notes on Programming. http://www.stepanovpapers.com/notes.pdf.  Stepanov reflects about the design of the STL.

Nicolai M. Josuttis (2000). The C++ Standard Library: A Tutorial and Reference. Addison-Wesley. ISBN 0-201-37926-0. 

Scott Meyers (2001). Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library. Addison-Wesley. ISBN 0-201-74962-9. 

Al Stevens (March 1995). "Al Stevens Interviews Alex Stepanov". Dr. Dobb's Journal. http://www.sgi.com/tech/stl/drdobbs-interview.html. Retrieved 2007-07-18. 

Bjarne Stroustrup (2000). The C++ Programming Language (3rd ed.). Addison-Wesley. ISBN 0-201-70073-5. 

Herb Sutter and Andrei Alexandrescu (2005). C++ Coding Standards. Addison-Wesley. ISBN 0-321-11358-6. 

David Vandevoorde and Nicolai M. Josuttis (2002). C++ Templates: The Complete Guide. Addison-Wesley Professional. ISBN 0-201-73484-2. 

Matthew Wilson (February 2004). "Callback Enumeration APIs & the Input Iterator Concept". Dr. Dobb's Journal. http://www.ddj.com/cpp/184401766. 

Atul Saini and David R. Musser, STL Tutorial and Reference Guide: C+ + Programming with the Standard Template Library. Foreword by Alexander Stepanov; [Copyright Modena Software Inc.] Addison-Wesley ISBN 0-201-63398-1

External links

STL programmer's guide official guide from SGI

STL Reference lists STL containers and their members

C/C++ reference includes a section on the STL

Apache (formerly Rogue Wave) C++ Standard Library Class Reference

Apache (formerly Rogue Wave) C++ Standard Library User Guide

Bjarne Stroustrup on The emergence of the STL (Page 5, Section 3.1)

STLPort, a very popular open-source implementation of the STL

Categories: C++ standard library | Generic programmingHidden categories: Articles needing additional references from September 2007 | All articles needing additional references | Wikipedia articles needing style editing from April 2008 | All articles needing style editing | Articles lacking in-text citations from April 2009 | All articles lacking in-text citations
About the Author

I am a professional writer from China Quality Lighting, which contains a great deal of information about fertilizer fish emulsion , wholesale spray paint, welcome to visit!

How should/could I approach this (beginners) Java/Netbeans issue?

I'm using Netbeans to create a JFrame in Java. I would like to make a dynamic canvas (a canvas that can be edited afterward, by entering form values, etc.) with, let's say, filled rectangles. I created the canvas in the design view, modified a few properties to make it look right, and then tried to draw a shape.

The tutorial I was working from asked to make "public void paint(Graphics g)". When I wrote that, Netbeans made an @override symbol to the left. What I learned is that Netbeans already made this somewhere in a read-only file, and that making it over-writes it.

How do I paint on the canvas if Netbeans already made a function like that?

Can I append to a function if it's already defined?

Or should I try to edit the read-only file? How would I even do that?

Am I missing something here?

This has to do with class inheritance, which is a feature of object-oriented programming -- it doesn't have anything to do with "overwriting" any source files.

The @Override annotation is simply to inform the compiler that you are declaring a member or method that "overrides" an element declared in a superclass.

In this case, your DynamicCanvas class (or whatever it's called) is derived from the Canvas class. Canvas already has a "public void paint(Graphics g)" method, and your method in the derived class has an identical signature (i.e., return value and argument list). So the paint method in your DynamicCanvas class "overrides" the paint method in the parent class.

This means that, when you create an object of type DynamicCanvas, and then call its paint function, the code that executes is the code you wrote in the DynamicCanvas class definition -- not the code included in the "paint" function of the Canvas class.

Placing the @Override annotation before your method declaration is a good idea, because it will force the compiler to check whether or not you are overriding the method properly, and notify you if there are any problems. However, I don't think you're *required* to use the annotation if, for some reason, you really don't want to.

In any case, no source file is being overwritten, so it doesn't matter that they are read-only. You're allowed to create derived classes based on "Canvas" and override its members and methods however you want in your derived class -- that's what object-oriented programming is all about. There is no reason to try to edit the source file.

Java tutorial Paint program (not so basic)