This post came out of the Blue Sky discussion. The disclaimer for that discussion applies here as well. I expect you to roll your eyes at how impractical it is.
Suppose I write "get http://www.kimbly.com/" in a program, exactly as shown. It won't compile in nearly any programming language. I have to write something more like this:
url = new URL("http://www.kimbly.com/")
url.get()
Having a reusable URL class is a lot better than having to work with sockets, but there's still a lot of noise there. From the user's perspective, I have to "quote" the url to turn it into a "string", and then I have to "pass" that string to the "constructor" of a "class". Then I "call" a "method" on the "object" that the constructor "returned". And so on. This is the price of modeling.
Application programmers shouldn't have to do modelling. Once a concept has been added to a library, the programmer should be able to talk about things directly, without having to use programming-language abstractions. This is Blue Sky.
Unfortunately I don't know of any good ways to express the semantics of "get http://www.kimbly.com/". I could make a macro that would let the literal code compile into something, but what should it evaluate as? An anonymous function? A string containing the html source? A structured object that lets me request the title and so on? Any decision would be premature, because URLs in themselves are not about executable code. They're not an algorithm, or a data structure. They're just a concept.
We don't have any well-known techniques for working with abstract concepts like this -- instead, the macro writer is forced to decide on a single executable "meaning". They decide whether "get <url>" should mean eagerly fetching the url or looking it up in a cache, whether it should mean parsing the result or just leaving it as a string, and whether the whole thing should be stored in memory or written to disk.
There is no way for me to write a declarative description of what a URL really is in a way that a programming language could understand. I want to be able to explain that it's not only a string of letters, but that it can be meaningfully broken into pieces (protocol, host, port, path) that may or may not be relevant. I want to be able to explain its relationship with the HTTP protocol. And I want to explain these things in a declarative way -- more like a knowledge base than a code library.
In fact, I want even more than that. I want other people to be able to add to, refine, or even override the statements that I made about URLs. You have to stop modeling at some point or else you'll never get anything done -- but maybe my model of URLs stopped too soon for some purposes. Perhaps I didn't care to mention 404s, or character set encoding. Someone else should be able to add declarative statements to my description, without requiring my cooperation, and without having to completely recreate my model. RDF is kind of like this, in that it lets people add new predicates and new statements, without having to coordinate with each other.
Currently, programming languages map concrete syntax into abstract programming-language concepts, which then get mapped into machine code. Application programmers never work with their problems directly -- instead, they work indirectly, by referring to and manipulating programming-language concepts like functions, objects, and types. At no point do they ever actually refer to the problem domain itself. I want to change this so that syntax instead maps to problem domain concepts, which then map to programming-domain concepts and so on to machine code. And I want to keep all the mappings separate.
I don't know exactly how to implement this idea (it is Blue Sky, after all), but I do have an intuitive feeling that it doesn't have to be as hard as we might think -- especially if you allow models to be incomplete, over-simplified, and even wrong sometimes.
Followups to Declarative Semantics:Posted on August 29, 2003 03:00 PM
More languages articles
Good article. Interestingly enough, there is a language that will run something strikingly similar to your first example ("read http://www.kimbly.com", specifically) — REBOL which is focused on the internet "problem domain." Unfortunately, it's a closed language.
Posted by: Anode at August 29, 2003 06:56 PMThe map is not the territory, although it sounds like you want the map and the territory to be interchangible. That is definitely Blue Sky stuff here (and to think I first came across TUNES *six* years ago and wrote them off as a bunch of hand waving lunatics---interesting to see them still waving those hands around). Personally, I would much rather have F=(G*m1*m2)/r*r than drop the computer out the window.
Now, to go on to your example of the URL and trying to work with it directly. You are right, a URL is a concept but there is a declarative descritpion (written in such a way that a programming language could understand) of a URL in RFC-2396 (BNF format if your curious). But that's only half the battle. You go on to say that you want to declare the relationships of the parts of a URL to, say, HTTP (HTTP protocol is redundant in much the same was as PIN number) but that it is hard to do. Yes, I agree to that. What, exactly does
get http://www.kimbly.com/
mean? What does it return? And where does it return it to? (as written, I would expect $_ to contain a reference to something, but I'm not real keen on Perl myself) And more importantly, the action "get" doesn't map cleanly to every form of URL:
get mailto:sean@conman.org
What does that mean? I certainly hope it doesn't mean you get my email (although, given the level of spam, perhaps that isn't such a bad idea after all). The actions allowed via HTTP are: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE and CONNECT, each with their own semantics (POST is different that PUT), but of those actions, only POST can be said to apply to mailto: and even then it's more of a pun than anything.
And how to map these upon ftp:? Or even file://localhost/etc/passwd?
Perhaps a different example then.
I personally would love to make Flash animations. I've tried the Macromedia Flash animation program but found I couldn't figure out how to work it. It's not like I don't understand animation---as a kid I wanted to be a comic artist and a film maker so I'm not unfamiliar with the concepts (8mm film runs at 16 fps, 16mm and 35mm run at 24 fps. Professional animations run at 12 fps and typically use some form of cell based animation where there characters are painted onto transparencies, although an animator like Ralph Bashki (personally I can't stand his work) has also used rotoscoped techniques; I could go on about this ... ). I would expect a program to work with cells, frames and clips. And perhaps tracks for sound. A frame is made up of multiple cells. Clips are sequences of frames with an associated track for sound (so I guess at a minimum, a clip requires two frames, and a frame requires at least one cell).
Hmm ... lots of declarative stuff there, but I'm still no closer to an animation program than I was before.
So how is this Blue Sky stuff supposed to work again?
There's no reason you can't write (less line noise):
url = getUrl("http://www.kimbly.com")
If you language allows it then you could use this syntax:
url = getUrl "http://www.kimbly.com"
... but's that's just syntactic sugar.
(BTW, where do I find the text formatting rules for Moveable Type? I assume it's a bit wiki-ish.)
"Application programmers shouldn't have to do modeling."
Yes, they should. That's exactly what they should be doing. What I think you mean, though, is that application programmers shouldn't have to do modeling outside of their problem domain.
I was also a bit disturbed by this comment in the original discussion: "I think we should strive to make modeling unnecessary."
You can't make modeling unnecessary. Modeling is what writing software is all about; you can't avoid it. Modeling is the act of identifying what parts of your problem domain are relevant (because not all of them are) and capturing those in software. All we can do to improve this is to minimise the amount of unnecessary, incidental, modelling we often have to do.
"Application programmers never work with their problems directly... At no point do they ever actually refer to the problem domain itself."
In programming languages, types capture semantic information from the problem domain. Types also define what operations/behaviours are allowed. Compilers can use type information to tell you when you are doing something illegal/nonsensical. When you are using types, you are referring to the problem domain (or rather, the parts of it you want to model).
It's all very well to say "I want to express everything declaratively" but eventually your code has to be executed, on some machine, and so somehow, somewhere, actions must be performed. You must have some kind of underlying execution model that the programmer knows about. In the URL example, at some point software must perform the actions of the HTTP protocol to fetch the resource.
"... syntax instead maps to problem domain concepts, which then map to programming-domain concepts ..."
From the sounds of this, all you need are domain-specific languages, and easy ways to create them. Which we already have.
Sean, you just described a semantic model for your hypothetical animation program. That's great. Now you need two more things: a mapping from syntax to semantics, and a mapping from semantics to implementation. (The mapping from implementation to machine code is currently handled pretty well by compilers.) Programmers and Computer Scientists currently don't really have a concept of mapping syntax to semantics to implementation. Instead we go straight from syntax to implementation.
I think that by explaining the semantic model of your animation program, you are closer to having a runnable program than you were before. Now the compiler has some idea of "what you're talking about". You're doing the same kind of thing when you sketch out classes on CRC cards, or when you assign types to various pieces of your program (as Alistair points out). Just because you haven't started coding doesn't mean that this design phase wasn't necessary.
Your closing question simply emphasizes that semantic models don't automatically imply an implementation. And I think that this is exactly why it's important to focus on semantic models as distinct from programming language implementation -- otherwise we're skipping a step. You may think that step is worthless, but I disagree. I think that coding without a semantic model is what "real men" do -- like writing programs directly in machine code.
Alistair, thanks for clarifying what I said about application programmers not doing modeling outside of their application domain. That's what I meant. I was using "modeling" to mean "fitting the application to the structures provided by the implementation language". Also, I agree with your point about how types capture semantic information. Currently they're just about the only technique we have for doing so.
However, I don't think that DSLs are the answer to my prayers. A given DSL will have a particular syntax, and a particular semantic model, and a fixed set of implementation techniques. I want to separate all of these things, so that they can be chosen separately. But most importantly, I want the semantic model to be additive (i.e. composable with other semantic models). Every DSL I know of is based on a parser that creates a particular data structure representing the semantics of that DSL. This data structure is usually not extensible, and is frequently not even accessible. It is also usually highly tuned to implementation concerns (e.g. bytecode). What I want is to make this data structure be the actual output of the DSL, rather than merely an intermediate representation that is used as input for subsequent execution.
In a way, you can think of this as merely a different way of looking at macros and DSLs. And as with everything in programming, it's been done before. The goal is to make a language that encourages this style, and makes it useful.
Tangent: if we assume that types are the closest thing we currently have to a semantic model, then this leads to the question: are there DSLs for types?
And by the way, the formatting rules for Movable Type are straight HTML.
I want the semantic model to be additive (i.e. composable with other semantic models).
What does this mean? And what do you mean that a given DSL will have a particular semantic model? I would have thought that the semantic model for a DSL would be determined by the domain being modeled i.e. it would be the semantic model from the domain (unless my idea - admittedly vague - of what "semantic model" means is wrong). Which would mean that you couldn't choose it, which would mean that there's no value in separating it (if that's possible).
are there DSLs for types?
Yes. They are the syntax/language you use to specify type information to compilers. In Haskell it's separated from the code syntax, whereas in Java it's integrated with the code syntax (look at the type signature for a function - it's specified in the function itself). Although... you could say that Java interface syntax is a DSL for types, because that's what Java's interfaces are - types.
When I saw your "get http://www.kimbly.com/" I
immediately thought of some perl stuff
(In case you haven't guessed, I'm mostly
a perl guy). For example, look at something
like:
get http://www.kimbly.com/
Now, the program has to figure out what you mean,
just like a person who read the program would.
In perl, if you say 9 + "2.3" perl figures out
from the context that you want to treat the string as a number, and it does it's best to
interpret that string as a number. So, your
program might look at 'get' and decide it is
a postfix method or operator, then it could
look at http://www.kimbly.com/ and decide that
it is a url. Now, "decide this string is a
url" would probably be a pretty expensive
process relative to what most languages do
today, but this is basically what you are
asking for. Now, since the program has
decided that this string is a url 'object'
and there is the context of the unsatisfied
operation 'get', the progam executes the
get method of the url. Finally, there is no
LHS type context, so the program may throw
the result away, but a better response might
be to store the result in the default context,
which is called $_ in perl. Later, when you
write
get http://www.kimbly.com/
print
The program will understand that you want to
call the print method of the object that
resulted from the get method of the url
(could be an html page, or something else)
The more you generalize these sorts of
operations, the more expensive it is for the
machine, and the harder it is to figure out
when it doesn't do what you want, but this
is the cost of this DoWhatIMean approach.
-Kris
Posted by: Kris Bosland at September 9, 2003 11:01 AMIt's not OpenGL that I see as the problem, it is how it is used. You could render a scene represented in X3D with OpenGL and JavaScript, or you could create the same content programmatically with just JavaScript. It is the later that bothers me because people are likely to do it because it is perceived as being that much easier, but the result is that the 'content' is less useful and more difficult if not downright impossible to re-purpose.
Posted by: migliori siti di craps online at April 17, 2009 06:51 AMugg boot australia
bailey button ugg sale
ugg classic cardy cheap
classic cardy ugg sale online
ugg unique bailey button
Thanks for your useful info, I think it’s a good topic. So would you like the info about the
jordan shoes
Air jordan shoes
cardy ugg boots
Tiffany Jewelry
ugg bailey button boots
cheap jordan shoes
ugg boots uk
Michael jordan shoes
ugg london
ugg nightfall boots
ugg boots sale
classic ugg boots
sundance ugg boots
air jordan fusion 6
air jordan 6 rings
jordan shoes for sale
Great post, thanks.
Posted by: free online games at October 25, 2009 04:14 PMThese Women's Classsic Tall 5815 Boots in pink flower print can either be worn at their normal height if you want Ugg boots, but in order for you to create a more casual look to what you are wearing they can be pushed down Women's UGG Classic Tall 5815 Boots in Baked Clay
Posted by: ugg boots on sale at October 27, 2009 02:24 PMGood ! I like it ! Welcome to read following news: ugg boots,Nike dunk sb,discount ugg boots, uggs ,nike dunk low,ugg boots sale,UGG Bailey Button boots,new nike sb,UGG Classic short boots,UGG Nightfall boots,cheap nike dunks,UGG Classic tall boots.
Posted by: ugg boots at October 27, 2009 10:31 PMMany websites have copied much of our contents word by word and photos.These are scam websites. As a result, many customers from the scam replica watches website contact us, asking where their shipment is. replica watch Please be aware, that if you see a website with a VERY similar name or contents,omega watches it is probably a scam. WE ARE NOT associated with any other websites.
Posted by: replica watches at October 28, 2009 04:43 AM
Popular Tiffany Jewelry On Sale
Tiffany & Co 1837 Cuff Z023 [Z023] On Sale
Tiffany & Co Engraved Heart Tag Choker Necklace [N163] On Sale
Tiffany & Co Frank Gehry Torque Bead Drop Earrings [E086] On Sale
Tiffany & Co 1837 Cuff Z031 [Z031] On Sale
Rolex DateJust Man's Watch-C1443 Replica Cheap For Sale
DateJust Watches, Cheap Rolex Replica Watches For Sale
Rolex DateJust Man's Watch-C1486 Replica Cheap For Sale
DateJust Watches, Cheap Rolex Replica Watches For Sale
Love this man. Great stuff, great prices, free shipping. Email him if you cant find what you are looking for and he will look for you. Good customer service.louis vuittonSomeone who is knowledgeable in louis vuitton.Another guy from hong Kong (Largest louis vuitton second hand city, I believe) he has great stuff at fair prices but his shipping is insane
Posted by: louis vuitton at October 29, 2009 07:51 AMLove this man. Great stuff, great prices, free shipping. Email him if you cant find what you are looking for and he will look for you. Good customer service.louis vuittonSomeone who is knowledgeable in louis vuitton.Another guy from hong Kong (Largest louis vuitton second hand city, I believe) he has great stuff at fair prices but his shipping is insane
Posted by: louis vuitton at October 29, 2009 07:55 AMLove this man. Great stuff, great prices, free shipping. Email him if you cant find what you are looking for and he will look for you. Good customer service.louis vuittonSomeone who is knowledgeable in louis vuitton.Another guy from hong Kong (Largest louis vuitton second hand city, I believe) he has great stuff at fair prices but his shipping is insane
Posted by: louis vuitton at October 29, 2009 07:56 AMLove this man. Great stuff, great prices, free shipping. Email him if you cant find what you are looking for and he will look for you. Good customer service.louis vuittonSomeone who is knowledgeable in louis vuitton.Another guy from hong Kong (Largest louis vuitton second hand city, I believe) he has great stuff at fair prices but his shipping is insane
Posted by: louis vuitton at October 29, 2009 07:57 AMLove this man. Great stuff, great prices, free shipping. Email him if you cant find what you are looking for and he will look for you. Good customer service.louis vuittonSomeone who is knowledgeable in louis vuitton.Another guy from hong Kong (Largest louis vuitton second hand city, I believe) he has great stuff at fair prices but his shipping is insane
Posted by: louis vuitton at October 29, 2009 07:57 AMLove this man. Great stuff, great prices, free shipping. Email him if you cant find what you are looking for and he will look for you. Good customer service.louis vuittonSomeone who is knowledgeable in louis vuitton.Another guy from hong Kong (Largest louis vuitton second hand city, I believe) he has great stuff at fair prices but his shipping is insane
Posted by: louis vuitton at October 29, 2009 07:57 AMLove this man. Great stuff, great prices, free shipping. Email him if you cant find what you are looking for and he will look for you. Good customer service.louis vuittonSomeone who is knowledgeable in louis vuitton.Another guy from hong Kong (Largest louis vuitton second hand city, I believe) he has great stuff at fair prices but his shipping is insane
Posted by: louis vuitton at October 29, 2009 07:58 AMUgg
Ugg Boots
Cheap Ugg
New Ugg Boots
Ugg Boot
Ugg Classic Boots
Cheap Ugg Boots
Uggs on sale
Uggs
Ugg Boots
Cheap Ugg Boots
Ugg Classic Boots
Ugg Boots Sale
Supra Shoes
Mens Supra Cruizer Shoes ---Special
Men's Supra Cruizer Red Shoes
Mens Supra Cruizer Cool Shoes
Mens Supra Cruizer Shoes --Charming
Mens Supra Cruizer Pure black Shoes
Mens Supra Cruizer Shoes --Leisure
Man's Supra Cruizer Shoes
Men's Supra Muska Skytop Shoes
Men's Supra Skateboarding Shoes
Men's Supra Strapped Shoes
Men's Supra Suprano High Shoes
Women's Supra Muska Skytop Shoes
cheap ugg boots sale
uggs classic mini sale
UGG Ultra Tall Boots
Cheap Ugg Boots
UGG Classic Tall Boots
UGG Classic Cardy
UGG Classic Short Boots
Welcome to purchase online or contact us and we will be happy to provide you with the best quality service of ugg Bailey Button boots .
classic cardy uggs boots is loved by many young people.It’s one of hot items of our company.If you haven’t worn classic tall ugg boots you are missing out.They are lightweight and comfortable.
Eliminating the need for the extra trouble to wear ugg boots uk 、
ugg boots sale、 uggs, in the extreme sports, look for happiness in life, with UGG Classic boots and nike sb showed off your tall body, do not worry about being laughed at, dancing new style ugg australia and nike sb dunk . The flavor of life that is colorful, there are Christian Louboutin 、cheap nike dunks、UGG cardy boots、and nike sb for sale also used fear to creep away money from your pocket Mody ? Love beauty, you might even love UGG Classic tall boots 、UGG Nightfall boots、UGG Classic short boots、new nike sb。There are an infinite high power drivers of popular front ugg boots sale、ugg sale、uggs、nike dunk、discount ugg boots、nike dunk sb, our website also have UGG Nightfall boots、button ugg boots、bailey button ugg、ugg button boots、bailey button boots、nike dunk mid、nike dunk high、Christian Louboutin Boots, pick your favorite, do not hesitate!
People all over the world know the abercrombie and fitch,but not everyone really knows how fashion the abercrombie is,hollister is the Legend maker. Everybody wears the hollister clothing would be the abercrombie mensand the abercrombie womens, if you want know you can search the Ruehl No.925 or abercrombie outlet in the www.google.com .
Posted by: fitch at November 14, 2009 02:03 AM replica handbags
replica designer handbags
gucci Handbags
fendi Handbags
Louis Vuitton handbags
LV Handbags
Prada Handbags
Bottega Veneta Handbags
Burberry Handbags
Hermes Handbags
Jimmy Choo Handbags
Miu Miu Handbags
Play with the Most Expensive Handbags-Chanel Classic and Chanel 2.55
Louis Vuitton Released Two Monogram Watch Cases
Juicy Couture Leather Crossbody Hobo Bag
Nico Shearling Satchel by Tory Burch
Hello Kitty 35th Birthday Collection: Bags, Pendant Set and Music Player
Tag Heuer Aquaracer 500m Caliber 5 Leonardo DiCaprio Limited Edition-WAJ2116.FT6022
Horological Machine 2.2 by MB&F and Alain Silberstein
Coach Poppy Signature Zip Around Wallet
Haute Joaillerie Timepieces from Piaget 2009 Limelight Collection
Audemars Piguet Millenary Carbon One Tourbillon Chronograph
Patek Philippe Ladies First Chronograph Ref. 7071R and CH 29-535 PS caliber
Raymond Weil Freelancer Rose Gold Date Chronograph
Girard Perregaux 1966 Chronograph Review
Uggs on sale now.UGG Classic Cardy Boot makes me different form the other
girls. The UGG Bailey Button Boot is a good choice for female.
Posted by: ugg classic cardy boots at November 17, 2009 12:02 AMLouis Vuitton , commonly referred to as Louis Vuitton Patch Bag and Louis Vuitton Bags, or sometimes shortened to Louis Vuitton Sale has become one of the most Louis Vuitton Speedy 35 Bag Agendas luxurybrands LV Wallet.
UGG Bailey Button bootsis a new style in 2009.The classic cardy uggs boots is another hot boots that worth of buying.And the classic tall ugg boots will make your winter amusing.And now uggs on sale,if you are looking for such a boot,the ugg boots is good choice this year.
Posted by: UGG Bailey Button Boots at November 17, 2009 01:46 AMI love Women's UGG Classic Cardy Boot 5819 very much. And the new style UGG Mayfaire Boots is aslo a good choice this year.
Posted by: UGG Bailey Button Fancy Boots at November 17, 2009 03:20 AMwww.enjoywholesale.com
china wholesale clothing,china wholesale shoes,china wholesale electronics,china wholesale suppliers,china manufacturers
china wholesale products,light in the box,wholesale lots,wholesale ipod
china direct,china dropship,china trade,made in china
electronics wholesaler,ebay wholesaler,financial wholesaler
fashion wholesaler,clothing wholesaler,wholesaler magazine
computer wholesaler,external wholesaler,dvd wholesaler,wholesaler definition,china wholesaler,mutual fund wholesaler,define wholesaler,insurance wholesaler
discount ugg boots
forture
ugg boots
Discount store
lxjuan08ed hardyis a famous ed hardy store which sell directly ed hardy clothing, shoes, boots, swim suit and other cheap ed hardy.
Browse through our catalogue of hundreds of ed hardy clothing,Ed hardy Shirt,Ed hardy ... Buy Ed Hardy today for a gift, for a friend, or for yourself.
ED HARDY Online Shop,Ed Hardy Store by Christian Audigier,coach handbags,rolex watches.We supply cheapest Newest ed hardy discount 2009 Commodity New styles.
Posted by: ed hardy at November 18, 2009 03:29 AMGood day! Thx for your great post and Im thinking about how to introduce my ugg boots to you cos Im not sure if u like this. Many people who live in the cold area like the ugg boots, especially the north-europe. Our uggshare.co.uk supply the cheapest classic cardy ugg boots, class tall ugg boots, classic short ugg boots and other series of uggs, hope my words didn’t trouble u, cy!
Posted by: ugg boots at November 18, 2009 09:10 PMA.Lange & Sohne watch for sale
Alain Silberstein watch for sale
Audemars Piguet watch for sale
Bell & Ross watch for sale
Supra Shoes
Supra Skytop Shoes
Supra Society
Supra Thunder
Supra Suprano Hi
Supra Strapped
Supra Trinity
Supra Skylow 1.5
Supra Dixon
Diablo 1.5
Supra Cruizer
Supra Vaider Shoes
Supra Cuban
The price is not cheap, but it's a great value since the darn
things don't wear out. The look is sort of ... clunky, yet I see a
lot of copies (of lesser quality) in all the mall
href="http://www.mytobling.com/ugg-mayfaire-boots-c- 99.html">ugg mayfaire boots
buying a couple more pair for my teenagers this year, and even a
pair for myself.
We are the best online sales for the china wholesale . Here you can have a large of choices of kinds Ugg Boots,Converse Shoes,Timberland Boots,puma shoes,Nike Shox Shoes ,Nike Dunk SB Shoes,Nike Air Max,Links Of London,Tiffany Jewelry,Dior Handbags?,jimmy choo handbags ,Cartier Watches, 8GB Mp4 Players,Bluetooth Car DVDs. All our cheap online cheap goods are high quality and original packages, and best service. We offer our customers the best service, 7 days arrive at your door.Enjoy your easy and happy shopping with us.
Thank You! Nice quality
-boots-c-99.html">ugg mayfaire boots
Do you like sports? If you like it,the NIke Air Max TN and Nike Air Max 360 is a good choice for you.And now the there is a good news,CheapNike Air Max running Shoes is waiting for you.I think The New Nike Air MAX 2009 Running Shoes makes you great comfortable.
Posted by: Nike Air Max shoes at November 20, 2009 03:34 AMxiaorong Auction house Antiquorum auctioned off a very rare vintage chronograph Patek Philippe that
replica watches
replica watches
replica Jaeger LeCoultre watches
replica watches
replica watches
replica A.Lange&Sohne watches
replica watches
replica watches
replica Breitling watches
Thank you for useful information. Looking for a very long time. Add nothing. Everything has been said. I can share useful links. Thanks to author. Design is also pleased.
mp4 movie downloads
legal music downloads
download movie film
Where to Buy Music mp3
Thank you for useful information. Looking for a very long time. Add nothing. Everything has been said. I can share useful links. Thanks to author. Design is also pleased.
mp4 movie downloads
legal music downloads
download movie film
Where to Buy Music mp3
Thank you for useful information. Looking for a very long time. Add nothing. Everything has been said. I can share useful links. Thanks to author. Design is also pleased.
mp4 movie downloads
legal music downloads
download movie film
Where to Buy Music mp3
Your article is write very well, I like it very much ~
ghd Hair Straightener
ghd Hair Straighteners
ghd straighteners
GHD
hair straighteners
bose in ear headphones
bose on ear headphones
bose headphones
nike sb dunks
nike dunks
I wish you have a wonderful day!Thank you.
Timeberland boots on sale now! Do you want moreTimeberland boots information?Just move your mouse and press it to our Timberland shoes online store.
Posted by: Timberland uk at November 23, 2009 12:51 AM discount nike air yeezy
china wholesale online
discount ugg boots
nike free shoes
furture
ugg boots
Discount store
Laptop Battery Laptop Battery Laptop Batteries
Laptop Batteries discount laptop battery
discount laptop battery
notebook battery notebook battery
computer battery computer battery
replacement laptop battery replacement laptop battery
notebook batteries notebook batteries
rongTiffany Jewelry Online - Discount Tiffany & Co Jewelry On Sale
Hot Sell Tiffany Jewelry - Tiffany Jewelry Online
Return To Tiffany Double Heart Detachable Pendant Necklace - Tiffany Jewelry Online
Tiffany&Co 1837 Titanium I.D. Bracelet - Tiffany Jewelry Online
Tiffany & Co Bead Bracelet - Tiffany Jewelry Online
Tiffany&Co Atlas Round Pendant Necklace - Tiffany Jewelry Online
Tiffany&Co Bar Pendant Necklace - Tiffany Jewelry Online
Tiffany&Co Bead Necklace(N242) - Tiffany Jewelry Online
Tiffany&Co Bean Pendant Necklace(N157) - Tiffany Jewelry Online
Uggs have been identified as a fashion trend for both sexes since the early 2000s.Ugg boots ugg classic cardy boots ride the vagaries of fashion trends,ugg classic tall boots with a growth in popularity for men tied to increased celebrity usage (e.g., Leonardo DiCaprio. Men and women especially of college age, teens, and tweens wear Uggs with jeans, dresses, shorts and long shirts or sweaters with leggings,classic cardy boots ugg footless tights, or knee socks and sometimes without any legwear.
Posted by: ugg classic tall boots at November 26, 2009 06:52 AMUggs have been identified as a fashion trend for both sexes since the early 2000s.Ugg boots ugg classic cardy boots ride the vagaries of fashion trends,ugg classic tall boots with a growth in popularity for men tied to increased celebrity usage (e.g., Leonardo DiCaprio. Men and women especially of college age, teens, and tweens wear Uggs with jeans, dresses, shorts and long shirts or sweaters with leggings,classic cardy boots ugg footless tights, or knee socks and sometimes without any legwear.
Posted by: ugg classic tall boots at November 26, 2009 06:53 AM$75 Replica Rolex Watches sale, Our site provides Rolex replica, replica Rolex Watches, replica breitling, replica Cartier, replica Omega, Tag Heuer Watches. . .more than 100 famous rolex brands"
rolex air king
rolex datejust
rolex day date
rolex daytona
rolex gmt
rolex submariner
rolex yachtmaster
a lange sohne watches
alain silberstein watches
bell&ross watches
breguet watches
breitling watches
bvlgari watches
cartier watches
omega watches
patek philippe watches
chaoying nfl jerseys
Giants Jerseys
Patriots Jerseys
Packers Jerseys
These things are good, I hope you can continue to maintain!
China Electronics Wholesale China
Phone Cheap Cell Phones
href="http://www.thechinaphone.com/index.php?main_page=advanced_search_result&keyword=China%20Wholesale">China Wholesale
replica handbags
Louis Vuitton Replica
Louis Vuitton handbags
fake Louis Vuitton bags
fake Louis Vuitton
replica rolex
replica rolex
fake rolex
buy cheap fake rolex
rolex Submariner
Paul Smith has been collaborating with a few different organizations recently and his latest venture sees him teaming up with Japanese bicycle saddle, Paul Smith bag, on a limited edition leather saddle. The release features Smith’s signature stripes where only 20 will be available at Paul Smith Clothing store in Japan and 8 at the Floral Street store in London. Get on it quick
Posted by: fasf at November 29, 2009 11:46 AMJust wanted to say great job with the blog, today is my first visit here and I’ve enjoyed reading your posts so far
ugg bailey button
Wow, my ugg classic mini will not be coming off now! I’ve had them on for 12hrs strait and I do not want to take them off. Thanks for everything, well worth the wait.
replica watch
croum watches
Rolex Datejust watch for sale
croum replica
Tag Heuer replica
dghandbags
Spring is near,every girl wants to be the bride in the special season.They are eager to put on beautiful Wedding Dresses or the Bridal gowns.During the day the Wedding gowns is the good choose,and the night,if you want radiant,you need the Evening gowns.
About the bridesmaid,they have to wear Bridesmaid Dresses in order to avoid grab limelight with the bride.And the Flower Girl has the Flower Girl Dresses,too.In the wedding,the Cocktail Dresses and the Evening Dresses is necessary,too!And remember,the Wedding Dress of the Bridal Dress must be the most glaring!
It is no doubt that Replica Louis Vuitton Speedy 30 enjoys highest reputation in the world. Louis Vuitton Speedy 30, purses, shoes, watches, clothes, and belts successfully seize loving heart of a majority of people. Speedy 30 is filled with romantic and fantasy, and it is a symbol of noble and high quality of life for gucci ever! Today, let us talk about Tivoli PM.belts have different styles and colors, such as Monogram series belts, Graffiti series belts, both men and women love them crazily. All of them match with various leisure clothes, formal business suits, and beautiful clothes very well. Whenever you wear a Louis Vuitton belt to make your public appearance, you will be naturally concerned and admired by every body. When we talk of high quality, there is no other company to compare with Louis Vuitton Replica Speedy 30. All Louis Vuitton belts adopt top quality cow leather, high quality hard ware, and the color will never be faded. The belts are so durable, and you can wear them to match your clothes for several years. Also, you can clearly see an obvious LV logo as a buckle of each belt.
Posted by: fanqin at December 1, 2009 02:21 AM[URL=http://www.ugggo.com/ugg-classic-tall-c-52.html]ugg classic tall boots[/URL]
[URL=http://www.ugggo.com/ugg-classic-tall-c-52.html]classic tall ugg boots[/URL]
uggs on sale
classic tall uggs on sale
Burberry Handbags|
Burberry Handbag|
Burberry bags|
Burberry bag|
Chloe Handbags|
Chloe Handbag|
Chloe bags|
Chloe bag|
Christian Dior Handbags|
d&g Handbags|
d&g Handbag|
d&g bags|
d&g bag|
Hermes Handbags|
Hermes Handbag|
Hermes bags|
Hermes bag|
replica Hermes|
replica Hermes Handbags|
replica watches
Maurice Lacroix watches
movado replica
Jaquet droz replica
replica oris
amazing jordan shoes prefect for you
watches replica
Longines watches
Patek Philippe replica
replica Rolex Air King
Panerai watch for sale
breitling swiss replica watches
Uggs have been identified as a fashion trend for both sexes since the early 2000s.Ugg boots ugg classic cardy boots ride the vagaries of fashion trends,ugg classic tall boots with a growth in popularity for men tied to increased celebrity usage (e.g., Leonardo DiCaprio. Men and women especially of college age, teens, and tweens wear Uggs with jeans, dresses, shorts and long shirts or sweaters with leggings,classic cardy boots ugg footless tights, or knee socks and sometimes without any legwear.
Posted by: ugg classic tall boots at December 1, 2009 10:04 PMugg boots sale at a time when large heat has set off a winter 08/09 to Ewha.Outlines the
warm wool winter fashion degree to wool crocheted wool ugg boots uk to join after the
body does not stimulate your skin soft, soft comfort UP. Fashion can not without
ugg boots presence in Winter.and ugg boots have many series.such as:
ugg classic
UGG Bailey Button boots
ugg nightfall
ugg kids