Erlang is Icky

Erlang is giving me a bad taste in my mouth for two reasons.

Before I start whining, let me make it clear that I have only just started using Erlang, and have written a total of 30 lines of Erlang code. This is just my initial impression, and I may change my mind if I ever write larger applications in the language.

The first reason I don't like Erlang is that the syntax is reminiscent of Prolog, but the semantics are lacking everything that made Prolog interesting. Fine, there's no backtracking -- I can live without that. But what I miss most is that Erlang variables are not logic variables. What I mean by this is that you can't pass around unbound variables. The only time you can use an unbound variable is on the left-hand-side of an assignment, where it will be bound immediately thereafter.

This means that Erlang functions cannot be bidirectional, the way Prolog functions can. In Prolog, you can call a function foo(A, B) in such a way that either A or B can be the input variable, and the other can be the output variable. This feature lets you do all kinds of neat things: for example, using the same function for both creating and traversing a tree structure. [Aside: In the Oz language, unbound variables are used to provide an excellent mechanism for synchronizing with worker threads.]

The second reason I don't like Erlang is its anonymous function syntax. I have yet to find a way to write them that doesn't feel exceedingly clunky. For example, here is my first cut at a function to invert an ets table:

% This function takes an ets table SrcIdx, inverts it, and stores  
% the result in the ets table DestIdx.
invert_ets(SrcIdx, DestIdx) ->
        ets:foldl(fun({Key, Vals}, _) ->
                        lists:map(fun(Val) ->
                                        [{Val, Keys}]=ets:lookup(SrcIdx, Val),
                                        ets:insert(DestIdx, {Val, [Key|Keys]})
                                  end,
                                  Vals)
                  end,
                  unused, SrcIdx),
        DestIdx.

This function is way too indented. I would have liked to move the inner fun up a level like this:

invert_ets(SrcIdx, DestIdx) ->
        InsertPair = fun(Key, Val) ->
                             [{Val, Keys}]=ets:lookup(SrcIdx, Val),
                             ets:insert(DestIdx, {Val, [Key|Keys]})
                     end,
        ets:foldl(fun({Key, Vals}, _) ->
                        lists:map(InsertPair(Key), Vals)
                  end,
                  unused, SrcIdx),
        DestIdx.

... but unfortunately this version won't work, because it requires currying, which Erlang doesn't support. The only way for "Key" to be in scope is if the InsertPair fun is nested inside the other fun.

Erlang also loses some points for having exceedingly cryptic error messages. For example, this error message is trying to tell me that the function shell_default:lookup() is not defined:

10> lookup(Q, foo).
** exited: {undef,[{shell_default,lookup,[18,foo]},
                   {shell,local_func,4},
                   {erl_eval,exprs,4},
                   {shell,eval_loop,2}]} **

To be fair though, the error messages aren't really any worse than some of the type-related error messages from hugs (a haskell implementation), and I'm sure I would become well trained at decoding them in time.

One thing I really do like about Erlang is its use of atoms pretty much everywhere. For example, in the error message above, every single word in the error message is an atom, instead of a string. I like how lots of functions return 'ok' as their result, instead of a boolean value. I'm not sure why I like atoms so much -- it's probably just a style thing.

At this point in its development, it's very obvious that Erlang grew organically, in directions that were not envisioned from the beginning. Case in point: the fact that records require header files and a preprocessor.

Posted on May 28, 2003 09:49 PM
More languages articles

Comments

The Prolog comment is a rather without direction. Of course Erlang doesn't have the semantics of Prolog. Erlang isn't a logic language.

The primary reason for the simpler semantics of Erlang is because they make it much easier to reason about real-time, real-world systems.

Posted by: James at June 4, 2003 08:42 AM

But Erlang looks like a logic language, and it was influenced by logic languages, and it was initially hosted inside of Prolog.

Perhaps I should have been clearer: precisely because of the reasons above, I was initially expecting Erlang to have some logic-language features. I was unpleasantly surprised to discover that it had none. It begs the question of why they went with Prolog-style syntax, even though they completely dropped Prolog's semantics. If you want to make a functional language, haskell has a much cleaner syntax.

Posted by: kim at June 4, 2003 09:46 AM

I too disagree with the first problem. When developing Erlang two languages were considered first, Lisp and Prolog. Both were dropped because they didn't have what was needed and so Erlang was born. The fact that the first implementation run in Prolog doesn't imply that Erlang is a logic language. It is like expecting Python to behave like C or Java to behave like C++ or clisp to behave like C, it makes no sense.
Probably the developers just knew prolog too well and decided to use it for the first prototype. Incidentally they also adopted Prolog's syntax but there's nothing inherently in the syntax that says it is a logic language and nowhere in erlang.org you are likely to find any statment saying that Erlang is a logic language.
Everywhere it says it is a functional language and I believe you can't have the features you wanted in a functional language. I think having reversible functions needs backtracking.
Furthermore, functional programming states that a function is a mapping between a set of parameters and a return value. In prolog every parameter is a possible return value. There's a contradiction.
Now, having said that, I don't like Erlang's syntaxis either and I particularly dislike the way anonymous functions are built in Erlang. It is horrible. Haskell's syntax is much, much consice and beautiful and clear.
I'd like to see Erlang's behaviour ported to Haskell, it'd be interesting.
Before you, Haskell user, jump and show me how many returs Google show with Erlang and Haskell, with papers and libraries, go and build something with those libraries to proove that they are usable.
Thakns.

Posted by: Pupeno at August 26, 2006 01:34 PM

Speaking of Haskell vs Erlang....

Posted by: Byron at August 26, 2006 02:59 PM

Sigh... This post got put on reddit. Of all the language-related posts I have, this is the one I'm least proud of. Mainly because I never followed up on the suggestions I received that I send these thoughts to an erlang mailing list. I'm tempted to just remove this post, but that seems like it would be somehow dishonest.

Anyway, hi everyone.

Posted by: Kim at August 28, 2006 09:44 PM

How about:

% This function takes an ets table SrcIdx, inverts it, and stores
% the result in the ets table DestIdx.
invert_ets(SrcIdx, DestIdx) ->
MapFun = fun(Val) ->
[{Val, Keys}]=ets:lookup(SrcIdx, Val),
ets:insert(DestIdx, {Val, [Key|Keys]})
end,
FoldFun = fun({Key, Vals}, _) ->
lists:map(MapFun, Vals)
end
ets:foldl(MapFun, unused, SrcIdx),
DestIdx.

-------------------------------------------

Records are just a 'convenience'. They are not actually part of the language specification-- they are really just tuples.

-------------------------------------------

Here's another time unbound variables can be used (pattern matching):

myfun(A, {B, {C, D, [H|T]}}) ->
do_stuff(D)...

-------------------------------------------

And isn't currying something like:

1> TimesX = fun(X) ->
fun(Y) ->
X * Y
end
end.

2> TimesThree = TimesX(3).

3> TimesThree(4).
12
4>

Posted by: daws at August 15, 2008 06:49 AM

I think the syntax is abrasive too, but there's nothing else out there like the VM.

Posted by: John Bender at January 25, 2009 11:32 AM

The stuff on this web site is really witty and cool wise


classifieds |article |s-cape adjustable bed

Posted by: Nathanial dr at September 11, 2009 05:28 AM

The second reason I don't like Erlang is its anonymous function syntax. I have yet to find a way to write them that doesn't feel exceedingly clunky. For example, here is my first cut at a function to invert an ets table

Posted by: Free online games at September 25, 2009 01:26 AM

Cool post!

Posted by: free games at September 28, 2009 02:31 AM

An excellent resource of information i will certainly return to check on the latests posts

Web Design

Posted by: Sim White at September 29, 2009 07:35 AM

Nice post, thanks for the writing!

Posted by: Kiev City at October 5, 2009 11:10 AM

Everywhere it says it is a functional language and I believe you can't have the features you wanted in a functional language. I think having reversible functions needs backtracking.
Furthermore, functional programming states that a function is a mapping between a set of parameters and a return value. In prolog every parameter is a possible return value. There's a contradiction.

business management degree | buy degree | college degrees

Posted by: rashood at October 8, 2009 02:09 AM

I'm looking to find this out as well! It seems like this is a great topic to discuss and I'm looking to see what comes from future research.


doctorate degree program | Corllins University

Posted by: arameter at October 8, 2009 02:10 AM

At this point in its development, it's very obvious that Erlang grew organically, in directions that were not envisioned from the beginning. Case in point: the fact that records require header files and a preprocessor. At this point in its development, it's very obvious that Erlang grew organically, in directions that were not envisioned from the beginning. Case in point: the fact that records require header files and a preprocessor.

Posted by: common at October 11, 2009 02:23 AM

Everywhere it says it is a functional language and I believe you can't have the features you wanted in a functional language. I think having reversible functions needs backtracking.

Posted by: auto insurance quotes at October 18, 2009 02:48 PM

Everywhere it says it is a functional language and I believe you can't have the features you wanted in a functional language. I think having reversible functions needs backtracking.

Posted by: auto insurance quotes at October 18, 2009 02:49 PM

Erlang is so good to use. I have been using it for about a year. I love to use it.
Car Hifi

Posted by: james lee at October 21, 2009 01:19 PM

Erlang is so good to use. I have been using it for about a year. I love to use it.
Car Hifi

Posted by: james lee at October 21, 2009 01:19 PM

Erlang is so good to use. I have been using it for about a year. I love to use it.
Car Hifi

Posted by: james lee at October 21, 2009 01:19 PM

As humans, we're simply born into one of these dog training classes: chief or follower. As these couple types are extremes of one another, you may simply be a chief, or a buff, tiny is there of any fashion in between these puppy training.Some might contest though, that you could be both at one time, the chief to numerous and a buff to one.There are more teach dog tricks to outlook out for to review if or not you're a chief or a follower. The bulk all over individual aspect is the abilities to generate determinations not simply for yourself, but in supplement for remnant as prolonged as dog behavior training.Take this covering for example; each post-graduate learner is rewarded a cubicle each, which doesn't draw seal for loose though. Most would just announce no just because it doesn't draw seal free to wholesale dog supplies. The actual justification behind their tenacity is the portion that none wants to act on away from the crowd.When one or couple of them creates a tenacity to receive one cubicle in any dog supplies, remnant in the past prolonged followed not far behind. One later another, the cubicles are being filled. Sadly, there just isn't passable room for everyone to wholesale pet supplies. Even as learners with very competent standings and privileges, not all are competent to take find how to lose weight and generate stern life correcting determinations on their own. A buff would perpetually have determinations organised for them, perpetually staring to lose weight to play-act first after the time arises. If you're one of those any person who essentially have a darling to move out with the accumulation, it's come seal time to commence correcting and take find fault for once. belly fat is a yardstick journalist for a many cluster of themes and subjects. He in supplement drafts on braun bathe and transform and braun bathe and charge.

Posted by: dogtraining at October 21, 2009 08:36 PM

As humans, we're simply born into one of these dog training classes: chief or follower. As these couple types are extremes of one another, you may simply be a chief, or a buff, tiny is there of any fashion in between these puppy training.Some might contest though, that you could be both at one time, the chief to numerous and a buff to one.There are more teach dog tricks to outlook out for to review if or not you're a chief or a follower. The bulk all over individual aspect is the abilities to generate determinations not simply for yourself, but in supplement for remnant as prolonged as dog behavior training.Take this covering for example; each post-graduate learner is rewarded a cubicle each, which doesn't draw seal for loose though. Most would just announce no just because it doesn't draw seal free to wholesale dog supplies. The actual justification behind their tenacity is the portion that none wants to act on away from the crowd.When one or couple of them creates a tenacity to receive one cubicle in any dog supplies, remnant in the past prolonged followed not far behind. One later another, the cubicles are being filled. Sadly, there just isn't passable room for everyone to wholesale pet supplies. Even as learners with very competent standings and privileges, not all are competent to take find how to lose weight and generate stern life correcting determinations on their own. A buff would perpetually have determinations organised for them, perpetually staring to lose weight to play-act first after the time arises. If you're one of those any person who essentially have a darling to move out with the accumulation, it's come seal time to commence correcting and take find fault for once. belly fat is a yardstick journalist for a many cluster of themes and subjects. He in supplement drafts on braun bathe and transform and braun bathe and charge.

Posted by: dogtraining at October 21, 2009 08:36 PM


in fact,to say nothing more on this subject, but still would like to thank for sharing respects
Dear Admin, I thank you for this informative article. And I thank you for this I follow your vendors. Itís verry good. I wish you continued success

Posted by: sohbet at October 23, 2009 08:27 AM

Thanks for the info.

Posted by: Bed Bugs at October 26, 2009 11:54 PM

These 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:25 PM

At this point in its development, it's very obvious that Erlang grew organically, in directions that were not envisioned from the beginning. Case in point: the fact that records require header files and a preprocessor. At this point in its development, it's very obvious that Erlang grew organically, in directions that were not envisioned from the beginning. Case in point: the fact that records require header files and a preprocessor. austrian resorts oberau hotels Oberau hotels oetz otz Oetz hotels Otz hotels kleinarl Kleinarl hotels austria

Posted by: austrian at October 28, 2009 08:50 AM

At this point in its development, it's very obvious that Erlang grew organically, in directions that were not envisioned from the beginning. Case in point: the fact that records require header files and a preprocessor. At this point in its development, it's very obvious that Erlang grew organically, in directions that were not envisioned from the beginning. Case in point: the fact that records require header files and a preprocessor. austrian resorts oberau hotels Oberau hotels oetz otz Oetz hotels Otz hotels kleinarl Kleinarl hotels austria

Posted by: austrian at October 28, 2009 08:51 AM

I hate Erlang. It was the absolute bane of my life for 6 months and I'm so glad that I have left it behind.

Posted by: Mobile Phone Insurance at October 28, 2009 11:38 AM

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 08:01 AM

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 08:01 AM

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 08:02 AM

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 08:02 AM

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 08:05 AM

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 08:06 AM

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 08:06 AM

-Collin Raynolds, Virus removal, spyware removal, hard drive data recovery: Computer Repair Vancouver - General computer repair resource

Posted by: Computer Repair Vancouver at October 30, 2009 08:34 PM

-Collin Raynolds, Virus removal, spyware removal, hard drive data recovery: Computer Repair Vancouver - General computer repair resource

Posted by: Computer Repair Vancouver at October 30, 2009 08:34 PM

Good 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 5, 2009 03:41 AM

Eliminating the need for the extra trouble to wear ugg boots uk
ugg boots saleuggs, 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 Louboutincheap nike dunksUGG 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 bootsUGG Nightfall bootsUGG Classic short bootsnew nike sb。There are an infinite high power drivers of popular front ugg boots saleugg saleuggsnike dunkdiscount ugg bootsnike dunk sb, our website also have UGG Nightfall bootsbutton ugg bootsbailey button uggugg button bootsbailey button bootsnike dunk midnike dunk highChristian Louboutin Boots, pick your favorite, do not hesitate!

Posted by: ugg boots sale at November 12, 2009 03:58 AM

I don't understand the Erlang code.
can u clarify me that code.
any one help me thanks in advance.

Thanks and Regards
wedding dresses

Posted by: Wedding Dresses at November 12, 2009 07:01 AM

Louis Vuitton , commonly referred to as LV Comes First In 2009 World's Top Ten Brands and Mother Shopping With LV Bag!, or sometimes shortened to Journey On LV has become one of the most Sofia Coppola Design Louis Vuitton Bags Agendas luxurybrands Louis Vuitton Flagship Store Opened In California.

Posted by: 1 at November 17, 2009 01:25 AM

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:49 AM

I was in search of a kind of shoe that hardly can be found in ordinary shop. Actually my wife feels uncomfortable wearing shoe. I promised her to give a nice one but I did not find it so easily at first. I  tried to find the exact shoe for her. And I finally find it ,that is ugg boots! What do you think? Did you find Uggs boots on sale with discount price and free shipping?

Posted by: uggs on sale at November 17, 2009 08:51 PM

www.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

Posted by: wholesaler business website, net shopping site, external wholesaler,dvd wholesaler,wholesaler definition,china wholesaler,mutual fund wholesaler,define wholesaler,insurance wholesaler at November 18, 2009 03:07 AM

Thanks for your post.

your sites are always great...

Thanks for this info....Keep sharing. Custom Term Paper AND Custom Thesis

Posted by: at November 18, 2009 07:25 AM

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.


ed hardy sale

Posted by: ed hardy at November 18, 2009 08:21 PM

LOVE IT Beautiful. Thank you for all you have done.

href="http://www.mytobling.com/ugg-mayfaire-boots-c-99.html">ugg

mayfaire boots

Posted by: aetrewte at November 19, 2009 08:38 PM

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.

Posted by: cheap goods sale. at November 19, 2009 10:03 PM

ou won't overlook the designer when getting a handbag. With ereplicastock's beautiful louis vuitton handbags,Fendi handbags, Prada purses and other designer ladies hand bags, you can obtain to be a trendsetter.


louis vuitton launched his firm after gaining experience making luggage and trunks for Napolťon III. A century and a half later, his namesake brand is the anchor of the world's largest luxury-goods company.

Posted by: wgagn at November 20, 2009 02:10 AM

ou won't overlook the designer when getting a handbag. With ereplicastock's beautiful louis vuitton handbags,Fendi handbags, Prada purses and other designer ladies hand bags, you can obtain to be a trendsetter.


louis vuitton launched his firm after gaining experience making luggage and trunks for Napolťon III. A century and a half later, his namesake brand is the anchor of the world's largest luxury-goods company.

Posted by: wgasg at November 20, 2009 02:11 AM

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:29 AM

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.

Posted by: ghd straighteners at November 22, 2009 08:49 PM

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 22, 2009 11:14 PM

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

Posted by: Laptop Battery at November 24, 2009 09:59 PM

Ugg Classic Cardy

Boots

Ugg Classic Tall

Boots

Ugg Classic Short

Boots

Posted by: topuggshoes at November 26, 2009 03:28 AM

Thanks for your post.

your sites are always great...

Thanks for this info....Keep sharing

Thanks and Regards
finance budgeting articles

Posted by: franks3132 at November 26, 2009 05:17 AM

Thanks for information sharing.keep the updates any thing new.

Thanks and Regards
online slot machines

Posted by: jamesh2012 at November 26, 2009 07:24 AM

chaoying nfl jerseys
Giants Jerseys
Patriots Jerseys

Posted by: jerseysleague at November 29, 2009 04:20 AM

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: dasf at November 29, 2009 11:11 AM

Just 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.

Posted by: ugg bailey button boots at November 30, 2009 06:08 AM

Gucci is famous as top quality, Louis Vuitton Tivoli PM luxurious, modern, and sexy luxury goods. Louis Vuitton Replica Tivoli PM It is a symbol of status and wealth. From time to time, Gucci belt is favored by most of people very much.As we know, Gucci belts stand for fashion trend,
Louis Vuitton Tivoli PM Replica popular elements, culture, conciseness gucci and noble. As a gentle and fashion business man or woman, Gucci belt is your best choice. Gucci commercial belts adopt real leathers, and the leathers have high hardness, toughness and scratch resistant. Belt buckles adopt high quality CTB alloy, the golden and silver color of them will never be faded. You like casual clothes and belts, because casual living Speedy 25 lifestyles focus on the simple pleasures of life. We believe that you will not hesitate to choose Gucci belt. Gucci casual belts own fashion and lovely style, bright color. The material of belt is high quality real leather or durable PU leather. Therefore, if you own this kind of Gucci casual belt, you will become a popular star.

Posted by: fanqin at December 1, 2009 12:49 AM

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!

Posted by: weddingdressclub at December 1, 2009 02:03 AM

ugg 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

Posted by: uggboots at December 2, 2009 07:48 PM
Post a comment









Remember info?




Prove you're human. Type "human":