Bay-Area Scala Enthusiasts (BASE) Meeting: What's New In Scala 2.8 139

Posted by Dean Wampler Fri, 05 Jun 2009 07:13:00 GMT

This week is JavaOne in San Francisco. The Bay-Area Scala Enthusiasts (BASE) held their monthly meeting. Martin Odersky, the creator of Scala, was the special guest. He discussed what’s new In Scala 2.8, followed by Q&A. We met at Twitter HQ.

These are my notes, focusing primarily on Martin’s presentation, and filled in afterwards with additional details. Any transcription errors or erroneous extrapolations are my own fault. It’s also late in the day…

Some of the features are not yet in the SVN trunk, so don’t assume my examples actually work! See the scala-lang.org for more details on Scala 2.8 features.

There are a few more months before it is released. A preview is planned for July, followed by the final release in September or October.

New Features

Here are the new features for this release.

Named and Default Arguments

Scala method parameters can be declared to with default values, so callers don’t have to specify a value and the implicit convention doesn’t have to be used. The default “values” aren’t limited to constants. Any valid expression can be used. Here is an example that I made up (not in Martin’s slides) that illustrates both specifying and using one default argument and using named arguments.

    
def joiner(strings: List[String], separator: String = " ") = strings.mkString(separator)

val strs = List("Now", "is", "the", "time", "for", "all", "good", "men", "...")
println(joiner(strs))
println(joiner(strs, "|"))
println(joiner(strings = strs, separator = "-"))
    

Named and default arguments enable an elegant enhancement to case classes. It’s great that I can declare a succinct value class like this.

    
case class Person(firstName: String, lastName: String, age: Int)
    

What if I want to make a copy that modifies one or more fields. There’s no elegant way to add such a method in 2.7 without implementing every permutation, that is every possible combination of fields I might want to change. The new copy method will make this easy.

    
case class Person(firstName: String, lastName: String, age: Int)

val youngPerson = Person("Dean", "Wampler", 29)
val oldPerson = youngPerson copy (age = 30)
    

I’m using the infix notation for method invocation on the last line (i.e., it’s equivalent to ... youngPerson.copy(...)). I can specify any combination of the fields I want to change in the list passed to copy. The generated implementation of copy will use the current values of any other fields as the default values.

The implementation looks something like this.

    
case class Person(firstName: String, lastName: String, age: Int) {
  def copy (fName: String = this.firstName, 
            lName: String = this.lastName, 
            aje: Int = this.age) = new Person(fName, lName, aje)
}
    

Quite elegant, once you have default and named arguments!!

Defaults for parameters can’t refer to previous parameters in the list, unless the function is curried. (I’m not sure I got this right, nor do I understand the reasons why this is true – if it’s true!)

By the way, Martin reminded us that method parameters are always evaluated left to right at the call site. Do you remember the rules for Java, C++, C#,...?

Nested Annotations

Annotations can now be nested, which is important for using some of the standard annotation definitions in the JDK and JEE. This feature also exploits named and default arguments.

    
@Annotation1(foo = @Annotation2)
    

Package Objects

People have complained that they want to define top-level definitions for a package, but they have to put those definitions, like types and methods, in an object or class, which doesn’t quite fit and it’s awkward for referencing through package and type qualification. The problem was especially obvious when the team started working on the major reorganization of the collections (discussed below). So, Scala 2.8 will support “package objects”.

    
package object scala {
  type List[+T] = scala.collection.immutable.List
  val List = scala.collection.immutable.List
}
    

Our friend List is now moved to scala.collection.immutable.List, but we would still like to reference it as if it were in the scala package. The definition defines a package-level type and val the effectively make List accessible in the scala scope. In Scala 2.7 you would have to do something like the following (ignoring Predef for a moment).

    
package scala {
  object toplevel {
    type List[+T] = scala.collection.immutable.List
    val List = scala.collection.immutable.List
  }
}
    

But then you would have to reference List using scala.toplevel.List.

Now, they got around this problem previously by putting a bunch of stuff like this in Predef and importing it automatically, but that has several disadvantages.

  • Predef is a big, amorphous collection of stuff.
  • You can’t define your own Predef with the same convenient usage semantics, i.e., no special import required and no way to reference definitions like package.type. You would have to use the alternative I just showed with toplevel in the middle.

Package objects give you a place for definitions that you want to appear at the package scope without having to define them in a singleton object or class.

Finally, besides types and fields as shown, package objects can also define methods. They can also inherit from traits and classes.

@specialized

Scala generics are fully specified at declaration time using a uniform representation, not when they are used, like C++ templates. This supports the way Java works, where there isn’t a giant link step to resolve all references, etc. However, this has a major performance disadvantage for generic types when they are actually used with AnyVal types that Scala optimizes to primitives.

For example, any closures require the use of FunctionN[T1, T2, ...], e.g.,

    
def m[T](x: T, f: T => T) = f(x)

m(2, (x:Int) => x * 2)
    

The f closure in the definition of m will require instantiation of Function2[T,T]. However, when use AnyVal classes, as in the last line , this has the effect of causing primitive boxing and unboxing several times, hurting performance when this is completely unnecessary in the special case of primitives being used. This is also bad for arrays and some other data structures.

The new @specialized annotation fixes this problem by causing scala to generate different versions of the user-specified generic type or method for each of the primitive types.

    
def m[@specialized T](x: T, f: T => T) = f(x)

m(2, (x:Int) => x * 2)
    

There is a real risk of an explosion of code. Consider what would have to be generated to support every type permutation for Function22! For this reason they only do cases with up to two type parameters in the library. You can also choose to annotate only some of the type parameters, as appropriate, and the annotation will support parameters that let you limit the primitive types that will be supported, e.g., only Ints and Longs.

This feature is not yet in the 2.8 trunk, but it will be soon.

Improved Collections

Collections are getting a major revamp. First they want to eliminate gratuitous differences in package structure and implementations. In many cases, the map method and others have to be redefined for each basic collection type, rather than shared between them.

New Collections Design

The new version of the library will support the following.

  • Uniform structure.
  • Every operation is implemented only once.
  • Selection of building blocks in a separate package called scala.collection.generic. These are normally only used by implementers of immutable and mutable collections.

Because of the reorganization, some Scala 2.7 source code won’t be compatible with 2.8 without modifications.

Better Tools

  • The REPL will have command completion, in addition to other enhancements.
  • They have greatly improved the IDE and compiler interface. Miles Sabin and Iulian Dragos worked on this with Martin. There is limited and somewhat unstable support in Eclipse now.

New Control Abstractions

Several new control abstractions are being introduced.

  • Continuations will be supported with a compiler plugin.
  • Scala has not had the break keyword. It will now exist, but as a library method.
  • Scala will optimize trampolining tail calls (e.g., foo1 tail calls foo2, which tail calls foo1, and back and forth).

More features

  • The Swing wrapper library has been enhanced.
  • The performance has been improved in several ways.
    • Structural type dispatch
    • Actors
    • Vectors, sets, and maps. Their long-term goal is to implement the fastest ones available for the JVM.

These changes are not yet in the trunk.

Beyond 2.8

Longer term, they plan significant improvements in support for parallelism and concurrency, including new concurrency models besides actors, such as:
  • Transactions (STM)
  • Data parallelism
  • stream processing

Clojure is influencing this. Martin praised the competition ;) Fortunately, the original designer of the data structures and algorithms used heavily by Clojure is working on Scala versions. (Name?)

Doug Lea wants to work with the team on concurrency data structures. The lack of closures in Java makes this effort difficult in Java.

There is some exciting work in advanced type system support for guaranteeing actor isolation and effect tracking. For example, this technology wouuld allow actors to exchange references to big objects without copying them while ensuring that they aren’t modified concurrently.

On a final note, Bill Wake described a conversation he had with Joshua Bloch today who admitted that the time has arrived for him to look seriously at Scala. A possible endorsement from Joshua Bloch would be a major step for Scala.

Comments

Leave a response

  1. Avatar
    Alex Cruise 19 minutes later:

    Phil Bagwell is the guy who designed the data structures Clojure uses while at EPFL.

  2. Avatar
    Dean Wampler 23 minutes later:

    Right. Thanks, Alex!

  3. Avatar
    Anonymous about 1 hour later:

    Could you tell more about structural type dispatch? Thanks for the great sum up!

  4. Avatar
    Dean Wampler about 7 hours later:

    @Anon, I wish I could, but I have no idea what’s involved. He quickly listed those few items without taking time elaborate. I would post a question to the mailing list.

  5. Avatar
    Michael Galpin about 11 hours later:
    Structural types are Scala’s version of “responds-to” style programming as seen in many dynamic languages. So like
    def sayName ( x : { def name:String }){
        println(x.name)
    }
    
    Then any object with a method called name that takes no parameters and returns a string, can be passed to sayName:
    case class Person(name:String)
    val dean = Person("Dean")
    sayName(dean) // Dean
    
    My guess is that this is going to run faster in 2.8, i.e. maybe use less reflection? Just a guess though!
  6. Avatar
    Daniel Sobral about 11 hours later:

    Structural types are implemented through reflection. I’d expect this to be optimizable under certain conditions.

  7. Avatar
    Robert Smart about 12 hours later:

    If they are making incompatible changes they could go to 3.0. If not it sounds like they plan to go to 2.10 and so on. I realize this is a very minor matter, but so many projects do this sort of thing, and I’ve never figured out why.

  8. Avatar
    Dean Wampler 2 days later:

    @Robert, Martin Odersky realizes the importance of minimizing incompatibilities. That’s one reason they tackled the collections library now, because they know it will be harder to make changes as Scala adoption grows. Also, they are using features like the new package objects to expose the most commonly used collections, like immutable Lists in the packages where we are used to finding them (“scala”, in this case).

  9. Avatar
    buy fat burner about 1 year later:

    Thank you a lot for information! I didn`t know about it.

  10. Avatar
    cheap vps about 1 year later:

    cheap VPS

  11. Avatar
    Indonesian Teak Furniture: Indoor Teak Furniture, Teak Garden Furniture, Teak Table, Teak Chairs about 1 year later:

    Thank you a lot for information! I didn`t know about it.

  12. Avatar
    oxpdffr about 1 year later:

    Texte en PDF Convertisseur est un logiciel qui permet de convertir des fichiers Texte en format PDF. En plus la fonction essentielle-convertir en PDF, Texte en PDF Convertisseur est capable de fusionner des fichiers Texte et puis les convertir, de protéger votre fichier par les mots de passe. Télécharger gratuitement Texte en PDF Convertisseur et expérimenter ce logiciel.

  13. Avatar
    rebecca ferguson about 1 year later:

    Oh my god, you totally lost me when you started talking about Scala generics!

  14. Avatar
    AAAAAA about 1 year later:

    as shame enough. Goggles Replicas He had also

  15. Avatar
    Pandora about 1 year later:

    It is my favorite patter name (not favorite pattern, just name).

  16. Avatar
    Backup iPhone SMS about 1 year later:

    You know, it is not to understand it, however, you can finish it, enjoy much. Know more about how to backup it from iPhone.

  17. Avatar
    bkf repair about 1 year later:

    def breakOut[From, T, To](implicit b : CanBuildFrom[Nothing, T, To]) = new CanBuildFrom[From, T, To] { def apply(from: From) = b.apply() ; def apply() = b.apply() } > import scala.collection.breakOut > val map : Map[Int,String] = List(“London”, “Paris”).map(x => (x.length, x))(breakOut)

    map: Map[Int,String] = Map(6 -> London, 5 -> Paris) What is going on here? Why is breakOut being called as an argument to my List

  18. Avatar
    access repair about 1 year later:

    Until 2.8, the only things you could put in a package were classes, traits, and standalone objects. These are by far the most common definitions that are placed at the top level of a package, but version 2.8 of the Scala programming language doesn’t limit you to just those.

  19. Avatar
    pandora about 1 year later:

    The best thing about acquiring on the web is you’re able to notice something your presents, where in a store it may be challenging to type on the other hand her or his stock to uncover the right thing. Moms love products which are remarkable. Try to existing your mommy using a reward that is customized, just as one illustration a wedding ring utilizing their brand engraved inside. Platinum jewelry create wonderful presents simply because immortalize the mom?¡¥s brand in gold. A new gold pendant plus a pendant creates a wonderful items for the mum, and items that happen to be frequently ignored .

  20. Avatar
    Silicone Molding about 1 year later:

    Mold making is the core business of Intertech (Taiwan). With world level technology, Intertech enjoys a very good reputation for making Injection Mold and Plastic Moldsfor their worldwide customers.

  21. Avatar
    moncler about 1 year later:

    thanks for Moncler Jackets || Christian louboutin UK || Moncler coats || Christian louboutin shoes || Christian louboutin pumps your post!

  22. Avatar
    pandora about 1 year later:

    Location this of wild hair in between the plates of GHD Straighteners UK and as well , move it down out of your roots to points. Now repeat the exact same process with each and every a natural part of wild hair.

  23. Avatar
    The Holy Gail Body Transformation about 1 year later:

    If they are making incompatible changes they could go to 3.0. If not it sounds like they plan to go to 2.10 and so on. I realize this is a very minor matter,

  24. Avatar
    McAloo Tikki about 1 year later:

    i enjoy you pointing this out due to the fact I have never ever viewed like like this. For that motive I could possibly point out some of your points by myself blog; I hope you’re Okay with this. Do you suppose possibly from the future we can function collectively somehow between our websites? Inform me what you assume.

  25. Avatar
    55 and over communities pennsylvania about 1 year later:

    This really is such a good post to read. Stimulating me to read much more of your posts. Keep up the good work. Hoping to see a lot more excellent posts from you shortly.

  26. Avatar
    Criminal Check about 1 year later:

    Thanks for this great information. At last scala is now available.

  27. Avatar
    Daftar Harga about 1 year later:

    Very well written article, interesting and informative, thank you. i`ve bookmark this site.

  28. Avatar
    Server management about 1 year later:

    An impressive stake. Real informative and squeamish. I apprise the author for presenting much a modify assemblage. This types of posts are e’er bookmarkable. I’ll move for specified posts here all the case. Server management

  29. Avatar
    facebook dating app about 1 year later:

    I’m happy to have found your very good article! I agree with some of your readers and will eagerly look forward to your coming updates. Just saying thanks will not just be adequate, for the wonderful lucidity in your writing. I will instantly grab your rss feed to stay privy of any updates. Good work and much success in your business efforts. facebook dating app

  30. Avatar
    Criminal Records about 1 year later:

    People have complained that they want to define top-level definitions for a package, but they have to put those definitions, like types and methods, in an object or class, which doesn’t quite fit and it’s awkward for referencing through package and type qualification.

  31. Avatar
    pandora charms about 1 year later:

    The earliest form of tattoos and makeup originated when people began to

    paint their bodies with red ochre and lining their eyes with kohl. This was

    supposed to ward off the “evil eye” and keep people safe.

  32. Avatar
    nikeshox about 1 year later:

    his was

    supposed to ward off the “evil eye” and keep people safe.

  33. Avatar
    ugg boots about 1 year later:

    This article is truly relevant to my study at this moment, and I am really happy I discovered your website.

  34. Avatar
    Criminal Search about 1 year later:

    In many cases, the map method and others have to be redefined for each basic collection type, rather than shared between them.

  35. Avatar
    Tenant Screening about 1 year later:

    There is some exciting work in advanced type system support for guaranteeing actor isolation and effect tracking. For example, this technology wouuld allow actors to exchange references to big objects without copying them while ensuring that they aren’t modified concurrently.

  36. Avatar
    Matteo about 1 year later:

    1

  37. Avatar
    mosic about 1 year later:

    2

  38. Avatar
    Jones about 1 year later:

    3

  39. Avatar
    http://www.bootby.com about 1 year later:

    hi..

  40. Avatar
    Designer Sunglasses about 1 year later:

    Buy $10 Replica Designer Sunglasses with 3-day FREE SHIPPING

  41. Avatar
    zby love about 1 year later:

    They had only an hour hand. The face was not covered with glass, but usually had a hinged >the black watchbrass cover, often decoratively pierced with grillwork so the time could be read without opening. The movement men’s pocket watcheswas made of iron or steel and held together with tapered pins and wedges, until screws began to be used after 1550.

  42. Avatar
    Dave about 1 year later:

    Perhaps, this is something that is new people would like to know from world news for these days. ??? ??

  43. Avatar
    dory about 1 year later:

    This was a really fantastic post that I really do appreciate. This is something that is really amazing and interesting to me to say the least. Social Network

  44. Avatar
    Sara about 1 year later:

    I wanted to thank you for the essay help and I definitely been enjoying reading every little bit of it.

  45. Avatar
    tahmid_nsu_bba@yahoo.com about 1 year later:

    This site has supplied me with my desired content. I have searched it for a long time. You have accumulated every bit of information about this topic. It’s impressive how neatly you have done your work. Thanks very much.

    Letting Agents In Glasgow

  46. Avatar
    okey oyunu oyna about 1 year later:

    it is useful.

    internette görüntülü olarak okey oyunu oyna, gerçek kisilerle tanis, turnuva heyecanini yasa.

  47. Avatar
    350-030 about 1 year later:

    one of those informative posts i get interested reading with. this is very helpful not just to bloggers but also to those readers out there. 350-030 220-701

  48. Avatar
    pandora style beads about 1 year later:

    You have a very nice and motivating posting style, it makes me read your articles with great interest.

  49. Avatar
    graham texas about 1 year later:

    Scala is a good and advantageous and user friendly.Named and default arguments are exactly those I am in need for. Go along such so that we can be further facilitated.

  50. Avatar
    Admington about 1 year later:

    ??? ???. ?? ???? ?? ????? ????? ??? 2011 ?? http://buyspice.blogspot.com/ ?? ???? ? ????? ? ???. ???? ??? ??? ?? ??? ?-??? ? ???.

  51. Avatar
    ipad keyboard case about 1 year later:

    I like reading your post sir. It makes me feel that I will be an expert in this field someday. Thanks for giving me the much needed inspiration.

  52. Avatar
    ford leveling kit about 1 year later:

    I always visit your site and looking for some article and its very informative. Thanks :-)

  53. Avatar
    leveling kit ford about 1 year later:

    I always visit your site and looking for some article and its very informative. Thanks :-)

  54. Avatar
    leveling kit f250 about 1 year later:

    Cool website very interesting Thanks :-)

  55. Avatar
    f350 leveling kit about 1 year later:

    Great article and I really like it Thanks :-)

  56. Avatar
    handbags for sale about 1 year later:

    Thich Nhat Hanh is a beautiful communicator.

  57. Avatar
    wholesale gemstone beads about 1 year later:

    I like reading your post sir. It makes me feel that I will be an expert in this field someday. Thanks for giving me the much needed inspiration.

  58. Avatar
    Sildenafil about 1 year later:

    Good blog! I have found here much useful information for yourself. Many thanks to the editors for the info.

  59. Avatar
    Jewellery about 1 year later:

    ok i am happy for your responses

  60. Avatar
    solbriller over 2 years later:

    Thanks, Happy :)

  61. Avatar
    beats by dr dre headphones over 2 years later:

    Beats by dr dre studio with look after talk in white. extra attributes on Monster Beats By Dr. Dre Pro Headphones Black a specific tri-fold design and design and carrying circumstance which make for compact and uncomplicated safe-keeping when not in use. Beats by dr dre solo .

  62. Avatar
    boots zipper over 2 years later:

    supposed to ward off the “evil eye” and keep people safe

  63. Avatar
    boots zipper over 2 years later:

    supposed to ward off the “evil eye” and keep people safe boots zipper

  64. Avatar
    iPhone 4 Repair over 2 years later:

    Nice way to show bay-area

  65. Avatar
    abreuvoirs over 2 years later:

    Wow. Really Scala 2.8 has those awesome figure??? I am definitely buying it.

  66. Avatar
    Testking 117-202 over 2 years later:

    Creativity always inspiring and it should going on Testking 70-236well done.your work is up to mark and interesting tooTestking NS0-153.Thanks for sharing all these.Testking NS0-502

  67. Avatar
    San Diego Law Firm over 2 years later:

    Nice blog on Bay-Area Scala Enthusiasts (BASE).The new feature offer is known when through this blog.Nice way of distributing information.

  68. Avatar
    lose thigh over 2 years later:

    interesting base meeting…

  69. Avatar
    austin defense lawyers over 2 years later:

    Nice blog.Thanks for the sharing.I would suggest my buddies to visit this blog.

  70. Avatar
    hcg diet atlanta over 2 years later:

    Fewer blogs have such attractive layouts. The information is quite handy. More importantly, they are regularly updated which is really helpful. You can put a lot more pictures to make it a really attractive one. Well done with the outlook. hcg diet atlanta

  71. Avatar
    ho chi minh hotels over 2 years later:

    ho chi minh city is a great place for your vacations, is a wonderful city and there are the amazing hotels where you can enjoy to take a brake of your routine.

  72. Avatar
    firepit over 2 years later:

    You can enjoy more your family time with a fire pit in your patio, enjoy your cold nights, too.

  73. Avatar
    stump removal Houston over 2 years later:

    I am totally impressed. The articles have pure clarity. You have great command over this issue. A blog can’t be better than this. Thanks a great deal. stump removal Houston

  74. Avatar
    austin defense attorneys over 2 years later:

    it is really refreshing to see a music artist who is real anddidnt let him becoming a star going to his head i not really in to rapp but i like his song maybe it is because they lyrics are so downto earth.

  75. Avatar
    yoga retreat over 2 years later:

    anamaya resort costa rica offer yoga retreat, yoga retreats, yoga teacher Training

  76. Avatar
    Cost Rica Yoga over 2 years later:

    be a certified yoga teacher by anamaya resort costa rica

  77. Avatar
    san antonio dentists over 2 years later:

    I have read your blog and it seems to me very innovative.Thanks for the nice and informative post.

  78. Avatar
    monicajoy56 over 2 years later:

    What a Nice Article. It is very useful article. Keep Such sharing ideas in the Future.

    Scottsdale Custom Home Builders High End Home Builders

  79. Avatar
    unaac over 2 years later:

    great post, i think i should recommend it to my friends Leilighet i Tyrkia

  80. Avatar
    herdens over 2 years later:

    It was very helpful, i find it very interesting. Actually I was thinking so some :) i have this also i think you should read this one too Bolig i Tyrkia

  81. Avatar
    ikatuloni@gmail.com over 2 years later:

    Good Job my friend, cheers this is a very informative post, i am greatful for this one. This is what is have Leilighet i Alanya

  82. Avatar
    Upatnani over 2 years later:

    WOW this post help me alot, nice post. i was looking for this one but i you would like to see mine you can click in here to check it out Leilighet i Side

  83. Avatar
    limana over 2 years later:

    Leilighet i Belek hi Everyone as i ready this post i was inlightened, it was a nice post btw. i have also mine that shows alot of things.

  84. Avatar
    unomba over 2 years later:

    Thanks for posting this one, this is a great blog, very informative and intertaining. I have a here also köpa lägenhet i Turkiet

  85. Avatar
    pito over 2 years later:

    Hi i would like to say “thanks and cheers!” for this post and for the effort of making one that were very informative köpa lägenhet i Turkiet

  86. Avatar
    wlola over 2 years later:

    At last a very nice post ;) thanks for sharing this one.. id like to share mine too, try to visit me at Lägenhet i Alanya

  87. Avatar
    xanax over 2 years later:

    its good story , very good for me and i see its vegy good in future

  88. Avatar
    cialis over 2 years later:

    good sroty 11At last a very nice post ;) thanks for sharing this one.. id like to share mine too, try to visit me at Lägenhet i Alanya 11

  89. Avatar
    Levitra over 2 years later:

    1For 4 Thanks for posting this one, this is a great blog, very informative and intertaining. I have a here also köpa lägenhet i Turkiet and se int2

  90. Avatar
    www.cnfiberoptics.com over 2 years later:

    Visit us & buy the bestFiber optic patch cord ,We will give you the best products and services. www.cnfiberoptics.com

  91. Avatar
    kali michail over 2 years later:

    fast good post kali michail

  92. Avatar
    first aid kits over 2 years later:

    This is just wonderful, I really like the theme of your blog and the stuff here is really very informative.

  93. Avatar
    Bowtrol over 2 years later:

    hmm ,i’m not sure if this is what i’m looking for but anyway this is interresting and could be useful some day,thanks for taking time to write such cool stuff

  94. Avatar
    bandages over 2 years later:

    That’s very interesting I got to read about, I was just passing by to your site and got the stuff here very informative. Nice site.

  95. Avatar
    Crystal Jewellery over 2 years later:

    Great post! Nice and informative, I really enjoyed reading it and will certainly share this post with my friends . Read everything you ever wanted to know about gold carat and what it means

  96. Avatar
    Essay Help over 2 years later:

    I want to know more about structural type dispatch. Can you teach me or guide me about it. Anyways, thanks for this.

  97. Avatar
    pandora style beads over 2 years later:

    pandora beads on sale, pandora style charms, pandora silver, pandora charms discount, http://www.acsshoes4sale.com">vibram fingers

  98. Avatar
    Betty Wilkinson over 2 years later:

    Good article more useful to me, I will continue to pay attention, and I love discount evening wedding dress,I hope you lot just my site! discount aline wedding dresses http://www.tofuchina.com

  99. Avatar
    senior over 2 years later:

    thanks, i like your blog

  100. Avatar
    Diablo3 over 2 years later:

    hmm ,i’m not sure if this is what i’m looking for but anyway this is interresting and could be useful some day,thanks for taking time to write such cool stuff

  101. Avatar
    pandora bracelets over 2 years later:

    So is a trip to come by. Woman on the word of soft voice robe. Bright eyes between the circulation. In the hall searches the. Joke way.see previous spirit elim younger sister that injustice shape. http://www.beadsonsale.net pandora bracelets

  102. Avatar
    Cheap watch shop over 2 years later:

    If you are already a success that 30 or 40 people, then I suggest you the best choice for a genuine, after all, this age group of consumers still want to have a genuine watch. Read more: buy watch.

  103. Avatar
    blackberry tracking over 2 years later:

    Default Arguments is the Difficult concept in Programing and you explained with the example it will surely work

  104. Avatar
    forex-tradingsystems over 2 years later:

    Thanks for sharing this blog. Keep posting.

  105. Avatar
    Fake Oakley Radar over 2 years later:

    It really a good article.replica Oakley Enduring Pace Sunglassescheap oakley five squared sunglassesoakley five squared sunglasses wholesalereplica oakley five squared sunglassescheap Oakley Fives SunglassesOakley Fives Sunglasses wholesalereplica Oakley Fives Sunglassesoakley flak jacket sunglasses wholesaleReplica Oakley Juliet SunglassesReplica Oakley Fuel Cell SunglassesReplica Oakley Half Jacket SunglassesReplica Oakley Holbrook SunglassesFake Oakley Radar sunglassesFake Oakley Oil Rig sunglassesFake Oakley Polarized sunglassesFake Oakley Antix sunglassesOakley Enduring Pace SunglassesOakley Zero SunglassesOakley Active SunglassesOakley Juliet Sunglasses

  106. Avatar
    Sunglasseshut discount online shop over 2 years later:

    I like the style of this article, is very good.oakley mens flak jacket sunglassesoakley half jacket sunglassesdiscount oakley half jacket sunglassesoakley half jacket sunglasses saleoakley mens half jacket sunglassesoakley jawbone sunglassesdiscount oakley jawbone sunglassesoakley jawbone sunglasses saleoakley mens jawbone sunglassesoakley m frame sunglassesdiscount oakley m frame sunglassesoakley m frame sunglasses saleoakley mens m frame sunglasses

  107. Avatar
    discount oakley fives sunglasses over 2 years later:

    I like it. come on oakley mens antix sunglassesoakley batwolf sunglassesdiscount oakley batwolf sunglassesoakley batwolf sunglasses saleoakley mens batwolf sunglassesoakley dispatch sunglassesdiscount oakley dispatch sunglassesoakley dispatch sunglasses saleoakley mens dispatch sunglassesoakley fives squared sunglassesdiscount oakley fives squared sunglassesoakley fives squared sunglasses saleoakley mens fives squared sunglasses

  108. Avatar
    Fake Oakley Gascan sunglasses over 2 years later:

    I love this article, it’s very well.Fake Oakley Batwolf SunglassesFake Oakley BottlecapFake Oakley CrosshairFake Oakley Flak Jacket

  109. Avatar
    Replica Oakley Polarized Sunglasses over 2 years later:

    It’s wonderful, thank you. Oakley Antix SunglassesOakley Batwolf SunglassesOakley Dispatch SunglassesOakley Fives Squared SunglassesFake Oakley Half X sunglassesFake Oakley Hijinx sunglassesFake Oakley M Frame sunglassesFake Oakley Minute sunglassesReplica Oakley Minute SunglassesReplica Oakley Monster Dog SunglassesReplica Oakley Pit Boss SunglassesReplica Oakley Restless SunglassesReplica Oakley Half WireReplica Oakley Half XReplica Oakley Hijinxoakley m frame sunglasses wholesalereplica oakley m frame sunglassescheap oakley minute sunglassesoakley minute sunglasses wholesalereplica oakley minute sunglassescheap oakley monster dog sunglassesoakley monster dog sunglasses wholesale

  110. Avatar
    Replica Oakley Polarized Sunglasses over 2 years later:

    It’s wonderful, thank you. Oakley Antix SunglassesOakley Batwolf SunglassesOakley Dispatch SunglassesOakley Fives Squared SunglassesFake Oakley Half X sunglassesFake Oakley Hijinx sunglassesFake Oakley M Frame sunglassesFake Oakley Minute sunglassesReplica Oakley Minute SunglassesReplica Oakley Monster Dog SunglassesReplica Oakley Pit Boss SunglassesReplica Oakley Restless SunglassesReplica Oakley Half WireReplica Oakley Half XReplica Oakley Hijinxoakley m frame sunglasses wholesalereplica oakley m frame sunglassescheap oakley minute sunglassesoakley minute sunglasses wholesalereplica oakley minute sunglassescheap oakley monster dog sunglassesoakley monster dog sunglasses wholesale

  111. Avatar
    cctv equipment over 2 years later:

    thanks really great stuff

  112. Avatar
    Ashley Bowling over 2 years later:

    You can’t make an omelette without breaking eggs You can’t make bricks without straw You can’t run with the hare and hunt with the hounds

  113. Avatar
    Pandora Charms over 2 years later:

    Many manufacturers in other countries such asChinaare also good at product Pandora jewelry. They offer endless innovation to their Pandora jewelry, Pandora beads and Pandora charms, Pandora Charmsand you can create your own look and style with those to make Pandora bracelets, Pandora necklaces, Pandora anklets, Pandora earrings, Pandora rings and etc.

  114. Avatar
    christian louboutin over 2 years later:

    The professional design make you foot more comfortable. Even more tantalizing,this pattern make your legs look as long as you can,it will make you looked more attractive.Moveover,it has reasonable price.If you are a popular woman,do not miss it.

    Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:

    Color: Coffee
    Material: Suede
    4(100mm) heel
    Signature red sole x

    Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Tall Boots, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.

  115. Avatar
    christian louboutin over 2 years later:

    The professional design make you foot more comfortable. Even more tantalizing,this pattern make your legs look as long as you can,it will make you looked more attractive.Moveover,it has reasonable price.If you are a popular woman,do not miss it.

    Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:

    Color: Coffee
    Material: Suede
    4(100mm) heel
    Signature red sole x

    Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Tall Boots, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.

  116. Avatar
    coban over 2 years later:

    The site is very useful, especially for those who intend to study the blog. But if for people who are interested in the other stuff, this website must not be useless.

  117. Avatar
    Dissertation Help over 2 years later:

    Yes i m agree with you these designs are looking so unique and unexpected. Really quality work.

  118. Avatar
    Essay Help over 2 years later:

    Good post. Thanks for sharing this useful information with us.

  119. Avatar
    Maine Criminal Justice Academy over 2 years later:

    I liked how the thoughts and the insights of this article is well put together and well-written. Hope to see more of this soon like Maine Criminal Justice Academy perhaps.

  120. Avatar
    tv show reviews over 3 years later:

    thanks for the great stuff!

  121. Avatar
    Steelers Jerseys over 3 years later:

    thanks for the great stuff!

  122. Avatar
    http://www.jewels2sale.org/ over 3 years later:

    cartier love

  123. Avatar
    power scooters over 3 years later:

    I am totally enjoyed with the nice feedback here. Some of the outstanding and speechless stuff you have posted here. I must say thanks. Awesome work!

  124. Avatar
    magazin de piese auto over 3 years later:

    Would you please provide way more information on this issue? This was really helpful. Thank you for posting this!

  125. Avatar
    san antonio carpet cleaners over 3 years later:

    I am very enjoyed for this blog. Its an informative topic. It help me very much to solve some problems. Its opportunity are so fantastic and working style so speedy. I think it may be help all of you. Thanks a lot for enjoying this beauty blog with me. I am appreciating it very much! Looking forward to another great blog. Good luck to the author! all the best!

  126. Avatar
    digital led displays over 3 years later:

    To say the truth I am very impressed by what you told. You share tons of interesting info, neat and excellent design you’ve got here. It’s certainly one of the most informative stuff on this topic I’ve ever read.

  127. Avatar
    iPad to Mac Transfer over 3 years later:

    Very useful tutorial for me and for all of the programmer and who like code on computer or Mac I think. Try to download this useful application to computer and use to. do Practice everytime you can. This application can manage all files on iPad without iTunes and more easily for you to backup all stuff. There is no other way to do a better design other than keep trying. So. why not try this method to improve the skill.

  128. Avatar
    hardware keyloggers over 3 years later:

    This is what I have been searching in many websites and I finally found it here. Amazing article. I am so impressed. Could never think of such a thing is possible with it…I think you have a great knowledge especially while dealings with such subjects.

  129. Avatar
    lipozene over 3 years later:

    This is what I have been searching in many websites and I finally found it here. Amazing article.

  130. Avatar
    mbtshoe over 3 years later:

    Australia Beats By Dre Studio dr dre beats headphones beats studio beats pro beats solo hd pro headphones music Official store Monster Beats By Dre Pro

  131. Avatar
    Melaleuca Review over 3 years later:

    Many thanks for providing such useful information. I really appreciate your professional approach. I have to appreciation for the efforts you have made in writing this post. I hope precisely the same best product within you in the future also.

  132. Avatar
    youngbrown over 3 years later:

    Thanks for the information, I’ll visit the site again to get update information Toys

  133. Avatar
    external hard drives over 3 years later:

    excellent article! Thank you! :)

  134. Avatar
    poker over 3 years later:

    Could you tell more about structural type dispatch? Thanks for the great sum up!

  135. Avatar
    bladeless fans over 3 years later:

    Bay-Area Scala Enthusiasts (BASE) Meeting: What’s New In Scala 2.8 134 good post86

  136. Avatar
    louboutin sales over 3 years later:

    Bay-Area Scala Enthusiasts (BASE) Meeting: What’s New In Scala 2.8 135 hoo,good article!!I like the post!138

  137. Avatar
    ways to get rid of chest acne over 3 years later:

    oh cool, this information is really useful

  138. Avatar
    click here over 3 years later:

    After reading this article, I slowly feel life hard-won, we should cherish the existing, to grasp the future, and should not spend time, fallen yourself, like this is not good. Want to learn the author’s spirit is better, more thinking, positive and uplifting.

  139. Avatar
    celine handbags over 3 years later:

    I completely agree with you. I have no point to raise in against of what you have said I think you explain the whole situation very well

Comments