It is 2016, not 2012.

Nothing much has changed. 

After a series of embarassing public disasters involving OOP & mutable state, the world has finally realized the wisdom of John Hughes and switched to functional programming. Google has purchased Typesafe & Scala runs natively on Android. Not to be outdone, Apple has banned all iOS apps not coded in Haskell. The Windows ecosystem is now powered entirely by F#. 

Other than that, nothing much has changed.

The canonical Mr. Shipper graduates from UPenn and lands his first whiteboard interview at the big G.

Google: So Mr. Shipper, do you know FizzBuzz ?
Shipper: Are you kidding me ? This is 2016, not 2012. Everyone and their grandmother knows Fizzbuzz.
Google: OK, lets try a slightly modified fizzbuzz.

Problem: How do you map the list on the left to the list on the right ?
Shipper: So lets see. You are mapping some stuff on the left list to other stuff on the right list.
Google: Yeah
Shipper: But you aren't mapping every element, just the multiples of 3 or 5.
Google: Yeah 
Shipper: Looks like a partial function to me.
Google: Partial Function ? What's that ?
Shipper: Lets start with a predicate that defines who qualifies, 

scala> val isFizzBuzz = ((x:Int) => x%3 ==0 || x%5 ==0)

Google: Fine. So how do you use that ?
Shipper: I'll make another lambda that defines the mapping.

scala> val toFizzBuzz = ((x:Int) => (x%3,x%5) match {     
               case (0,0) =>   "fizzbuzz"
               case (0,_) => "fizz" 
               case _ => "buzz"     
          })


Google: OK. I see you know how to pattern match...
Shipper: Dude, this is 2016, not 2012 ! Everyone & their grandmother...
Google: Yeah, yeah. Got it. Now tell me what this partial function is ?
Shipper: The partial function just bundles together the predicate and the mapping. So

scala> val fizzbuzz = new PartialFunction[Int,String] {     
                  def isDefinedAt(x:Int) = isFizzBuzz(x)
                 def apply(x:Int) = toFizzBuzz(x)   
            }


Now I just collect the results over which this partial function is defined.

scala> (1 to 100).collect( fizzbuzz )

res1: scala.collection.immutable.IndexedSeq[String] = Vector(fizz, buzz, fizz,fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz,
buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizz,buzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz)

Google: Bravo! That is neat.
Shipper: Yeah!
Google: But tell me, Mr. Shipper, why do you need this partial function ? Can't you do something simpler ?
Shipper: You mean like map filter ?
Google: OK, lets try that...
Shipper: So I'd first filter with my predicate and then apply my mapping.

scala> (1 to 100).filter( isFizzBuzz ).map( toFizzBuzz )
res2: scala.collection.immutable.IndexedSeq[String] = Vector(fizz, buzz, fizz,fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz,
buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizz,buzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz) 

Google: Good! But there's yet another way to do this.
Shipper: Hmmm...
Google: Think Sets. How do you define a set in math ?
Shipper: You mean, like a list comprehension?
Google: You got it!
Shipper:

scala> for( x<- (1 to 100); if( isFizzBuzz(x))) yield toFizzBuzz(x)
res3: scala.collection.immutable.IndexedSeq[String] = Vector(fizz, buzz, fizz,fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz,
buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizz,buzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz) 


Google: Excellent! So you know how to do fizzbuzz atleast 3 different ways.
Shipper: Do I get the job ?
Google: Patience, Mr. Shipper. Patience! This is Google. We can't hire everybody who walks through the door and solves a fizzbuzz. This is 2016, after all. Everybody would get hired. 
Shipper: So..
Google: So we here at Google have come up with a new test. Its called the Inverse FizzBuzz.
Shipper: Inverse FizzBuzz !
Google: Good! Looks like you never heard of it.
Shipper: Never!
Google: Well, we just came up with it last week. But its not so hard. You know what an inverse is.
Shipper: Inverse...
Google: Yeah, like 5 plus what is 0 ?
Shipper: -5
Google: So minus 5 is ?
Shipper: Oh! Yeah. OK. Minus 5 is the additive inverse of 5.
Google: So what's the multiplicative inverse of 5 ?
Shipper: Hmmm. 0.2. Because 0.2 times 5 is 1.
Google: You got it! What's the inverse sine of a half ?
Shipper: 30 degrees, because sine(30) = 0.5
Google: Good. What's the inverse logarithm of a half ?
Shipper: The square root of e.
Google: Very Good! So lets talk about the inverse of a fizzbuzz.
Shipper: OK. How do you define Inverse FizzBuzz ?
Google: Very simple. Given a list, give me the shortest contiguous sequence of numbers that produces that list when you run fizbuzz 
Shipper : Huh ?!
Google: Inverse FizzBuzz - Given a list, what's the shortest contiguous sequence of numbers that produces that list when you run fizbuzz ?
Shipper: I don't follow.
Google: Lets do a few simple examples. What's the shortest sequence that produces { fizz }
Shipper: Hmm. { 1,2,3 }
Google: Come on Mr. Shipper. You can do better than that.
Shipper: OK. Its just {3}. 
Google: What's the shortest sequence that produces { buzz }
Shipper: { 5 }
Google: What's the shortest sequence that produces { fizz, buzz }
Shipper: { 3, 4, 5 }
Google: Nope!
Shipper: OK. Wait....its {9,10}
Google: Excellent! What's the shortest sequence that produces { buzz, fizz }
Shipper: { 5,6 }
Google: What's the shortest sequence that produces { fizz, buzz, fizz }
Shipper: { 3, 4, 5, 6 }
Google: What's the shortest sequence that produces { buzz, fizz, buzz }
Shipper: Hmmm. I don't think that list is valid...
Google: Good. So your program will have to detect that. Lets do a few more. What produces { fizz, fizz } ?
Shipper: { 6,7,8,9 }
Google: What produces {fizz, fizz, buzz }
Shipper: { 6,7,8,9,10}
Google: OK. So here's the examples we've seen so far. This is what your lambda must do.

Google: Now write a lambda for Inverse FizzBuzz !
Shipper: Well, the solution is not unique. The sequence {fizz} maps to { 3 }, but it could also map to {6}. Or {9} ...
Google: Yeah, well, I don't care about uniqueness. Just the shortest sequence.
Shipper: So what's the problem again ?
Google: Given a list, what's the shortest contiguous sequence of numbers that produces that list when you run fizbuzz ? 
Shipper: I honestly don't know.
Google: Well, what do you do when you don't know how to solve a problem ?
Shipper: Try everything. Brute force.
Google: Exactly!
Shipper: But brute force! That would be like an infinite number of input strings.
Google: Lets say we only care about the first 100 numbers. 1 to 100. Just like before. How many possible combinations on those ?
Shipper: Well, I could run fizzbuzz on 1. Then  {1,2} Then {1,2,3}, Then {1,2,3,4} etc. upto {1,2,....100}
Google: So that's a 100 combinations.Shipper: But then I could run fizzbuzz on 2. Then  {2,3} Then {2,3,4}, Then {2,3,4,5} etc. upto {2,....100} 
Google: So that's how many ?
Shipper: 99. Ok I got it. So its like 100 + 99 + 98 + ...1 = (101)*100/2 = 5050 combinations.
Google: So five thousand plus. That's a small number.
Shipper: Right. But we kill duplicates. And we only keep the mapping that produces the shortest sequence. 
Google: Yeah, so your final list will be much smaller than 5050.
Shipper: OK. I think I can do that quite easily.


scala> val all = (1 to 100).map(x=> (x to 100).map( y=> (x,y) )).flatten
all: scala.collection.immutable.IndexedSeq[(Int, Int)] = Vector((1,1), (1,2),(1,3), (1,4), (1,5), (1,6), (1,7), (1,8), (1,9), (1,10), (1,11), (1,12), (1,13),
 (1,14), (1,15), (1,16), (1,17), (1,18), (1,19), (1,20), (1,21), (1,22), (1,23), (1,24), (1,25), (1,26), (1,27), (1,28), (1,29), (1,30), (1,31), (1,32), (1,33), (1,34), (1,35), (1,36), (1,37), (1,38), (1,39), (1,40), (1,41), (1,42), (1,43),......(2,2),(2,3),......

scala> all.size
res22: Int = 5050

Google: So we have the 5050 possible ranges.
Shipper: Yes. Now I just run fizzbuzz on every one of those 5050 ranges.


scala> val results = all.map( x=> (x._1 to x._2).collect( fizzbuzz ))

Shipper: Now I'll line up the inputs with the outputs.
scala> val io = all.zip( results )



Shipper: Now I'll group by the output. That should give me a mapping from the list of strings to a list of sequence of numbers.

scala> val inverses = io.groupBy( x=> x._2)


Google: Lets first see if you are on the right track so far. Count the keys in your mapping. It should be much smaller than 5050.


scala> inverses.keys.size
res36: Int = 302

Google: Good! Only 302 unique keys, not 5050. Now how would you find the smallest value the key maps to ?
Shipper: Lemme first test with "fizz".


scala> inverses(Vector("fizz"))
res28: scala.collection.immutable.IndexedSeq[((Int, Int), scala.collection.immutable.IndexedSeq[String])] = Vector(((1,3),Vector(fizz)), ((1,4),Vector(fizz)), ((2,3),Vector(fizz)), ((2,4),Vector(fizz)), ((3,3),Vector(fizz)), ((3,4),Vector(fizz)), ((6,6),Vector(fizz)), ((6,7),Vector(fizz)), ((6,8),Vector(fizz)), ((7,9),Vector(fizz)), ((8,9),Vector(fizz)), ((9,9),Vector(fizz)), ((11,12),Vector(fizz)), ((11,13),Vector(fizz)), ((11,14),Vector(fizz)), ((12,12),Vector(fizz)), ((12,13),Vector(fizz)), ((12,14),Vector(fizz)), ((16,18),Vector(fizz)), ((16,19),Vector(fizz)), ((17,18),Vector(fizz)), ((17,19),Vector(fizz)), ((18,18),Vector(fizz)), ((18,19),Vector(fizz)), ((21,21),Vector(fizz)), ((21,22),Vector(fizz)), ((21,23),Vector(fizz)), ((22,24),Vector(fizz)), ((23,24),Vector(fizz)), ((24,24),V...

Shipper: OK. That gives me all the ranges my key maps to. I just need to find the smallest range. Lets try minBy.
scala> inverses(Vector("fizz")).minBy(x=>x._1._2 - x._1._1)
res33: ((Int, Int), scala.collection.immutable.IndexedSeq[String]) = ((3,3),Vector(fizz))
Shipper: Hey, I think I got it!

scala> val answer = inverses.keys.map( k=> (k,inverses(k).minBy(x => x._1._2 - x._1._1)._1)).toMap

answer: scala.collection.immutable.Map[scala.collection.immutable.IndexedSeq[String],(Int, Int)] = Map(Vector(fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz) -> (3,33), Vector(buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz) -> (10,93), Vector(fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz, fizz, buzz, fizz, fizz, buzz, fizz, fizzbuzz) -> (15,75), Vector(fizz, buzz, fizz, fizzbuzz) -> (9,15), Vector(fizzbuzz, fizz, buzz, fizz, fizz, b...

Google: Lets check the answers to the 7 examples.
scala> answer(Vector("fizz"))
(3,3)
scala> answer(Vector("buzz"))
(5,5)
scala> answer(Vector("fizz","fizz","buzz"))
(6,10)
scala> answer(Vector("fizz","buzz"))
(9,10)
scala> answer(Vector("buzz","fizz"))
(5,6)
scala> answer(Vector("fizz","buzz","fizz"))
(3,6)
scala> answer(Vector("fizz","fizz"))
(6,9)

Shipper: Voila!
Google: Absolutely. Voila!

Shipper: So do I get the job now ?
Google: Well, you've used a brute force approach. Tell you what. Come up with a non-brute force answer & the job's yours.

Shipper: Thinking.....Thinking.....Thinking.....


PS: Its actually not that hard :)


So, to recap:
Question: Inverse FizzBuzz - Given a list, what's the shortest contiguous sequence of numbers that produces that list when you run fizbuzz ?

Brute force solution:
val all = (1 to 100).map(x=> (x to 100).map( y=> (x,y) )).flatten
val results = all.map( x=> (x._1 to x._2).collect( fizzbuzz ))
val io = all.zip( results )
val inverses = io.groupBy( x=> x._2) 
val answer = inverses.keys.map( k=> (k,inverses(k).minBy(x => x._1._2 - x._1._1)._1)).toMap
 


Comments

David Bell
05/04/2012 9:38am

The fizzbuzz pattern is a periodic sequence of the form fbffbfx, where x is a fizzbuzz. We know that x is a multiple of 15, and the values of f are determined by one lookahead and b by two. We can also use the same idea in reverse to extend a pattern indefinitely.

Thus, the general algorithm is given our pattern to extend it to the nearest x, which we seed with an initial value equal to (number of x's)*15. Then, we iterate backwards over the pattern and fill in the values based on the lookahead. If there is no valid lookahead (say for a b followed by another b) then we throw an error.

Finally, we iterate over the original pattern to get the values of the sequence.

This approach will take linear time proportional to the length of the initial sequence and constant extra space to solve, since both the look-up table and pattern extension are bounded by the alphabet and periodicity of the pattern.

Reply
foobar
05/05/2012 6:27am

I can't believe everyone is ignoring your superior solution.

Reply
Ming
05/04/2012 10:37am

The John Hughes' paper is dated in 1984. That was before Java, C#, and the explosion of OOP popularity. Is the paper still relavent?

Reply
dxbydt
05/04/2012 10:49am

In academia, its generally accepted that Professor Hughes has more wisdom in that single paper than all the OO getter setter mutable state ftw garbage that pervades industry these days. But if you want corporate endorsement, read this paper by Don Syme at Microsoft Research : http://cufp.org/archive/2008/slides/SymeDon.pdf

Reply
shawn
05/06/2012 7:43am

YES! very much so. It's a pretty safe to say that the most relevant papers in CS are still most papers from the 60's (and a select few from the 50's ans 70's). There have been a few scatterings of good papers since (e.g. Hughes, Milne, Sussman and a few other great names). I'm obviously simplifying a little.

Java and C# are actually much more similar to the "structured programing" style that the inventors of OO were trying to move away from than they are similar to languages like Simula and especially Smalltalk.

But yes, we tend to think anything more than 5 years old in CS is antiquated but do a terrible job at teaching CS history. "Those who don't know their history are bound to repeat it." Psychology, in contrast very much teaches it's history even though some of the earlier theories have been dispelled.

Reply
05/04/2012 12:56pm

Hmm.. which version of scala was this? and which java does it run on? am a python programmer jumping into scala. looks like the <Range>.collect and .<RandomAccessSeq>.flatten methods have been moved. Am on scala 2.7.7 and java-6-openjdk.

As for a non-brute force one pattern to eliminate would be any fizz sandwiched between two buzz's (see you can't get two multiples of five with only one multiple of 3 in natural numbers).

Reply
dxbydt
05/04/2012 1:04pm

Scala 2.9.2 and jdk 1.7
There are many patterns like the one you found. Some code would be nice:)

Reply
dave
05/04/2012 1:28pm

Something more elegant will come to me. I hope...
https://gist.github.com/2597800

Reply
05/04/2012 1:40pm

I'm not sure if this is better than the brute force one. My naieve attempt in Haskell: https://gist.github.com/2597922

Reply
Kikito
05/04/2012 3:54pm

"Given a list, what's the shortest contiguous sequence of numbers that produces that list when you run fizbuzz ?"

Well, the answer is, obviously

"the shortest contiguous sequence of numbers that produces that list when you run fizbuzz"

:P

Reply
Zack Maril
05/04/2012 7:16pm

A possible solution with clojure:
https://gist.github.com/2599321

Not sure how close to O(n) it is. There is a better way to do it somewhere.

Reply
05/17/2012 7:05pm

Yet another Inverse Fizzbuzz solver in Clojure:

https://gist.github.com/2717342

Reply
Juan Lopes
05/04/2012 8:45pm

Solution in functional python:

https://gist.github.com/2599776

Reply
Chris Kuklewicz
05/09/2012 4:26am

Efficient solution in haskell, not bound to first 100 characters:

https://gist.github.com/2644157

Reply
Tomohito Ozaki
05/14/2012 9:16pm

Solution in Scala Using Strream.

https://gist.github.com/2699068

Reply
Chris Kuklewicz
05/17/2012 2:59am

Solves different problem that keeps track of blanks. Does not seem to look for shortest sequence.

Reply
05/14/2012 10:41pm

https://gist.github.com/2699263

Reply
Brian Balke
06/27/2012 8:26am

So this guy gets shown the door because he didn't think to ask:

"Why do you care?"

Which leads to questions like "How does this scale to larger symbol sets?"

For example, "fizz, buzz, Doh!"

Reply
12/02/2012 8:05pm

I was unable to understand inverse fizz buzz, but after reading your blog i got the answer . You have updated a great detail about this inverse buzz.

Reply
03/20/2014 5:08am

Thank you for sharing such great information with us. I really appreciate everything that you’ve done here and am glad to know that you really care about the world that we live in

Reply
12/18/2012 10:27pm

The concept of Inverse Fizzbuzz is indeed quite new to me. After reading this post, I got a clear idea about it.

Reply
12/21/2012 1:14am

Great news that scala seeks to integrate features of object-oriented and functional languages that's why code sizes are typically reduced which is a good news for programmers.

Reply
03/20/2014 5:09am

I was not aware of the fact that Apple has banned all the iOS applications which is not coded in Haskell. Thanks for sharing such interesting information.

Reply
12/27/2012 11:58pm

Thank you for sharing such great information with us. I really appreciate everything that you’ve done here and am glad to know that you really care about the world that we live in

Reply
01/15/2013 1:37am

You have indeed shared very vital post regarding Fizzbuzz. I was aware of this concept but thanks to you.

Reply
01/22/2013 11:26pm

I was not aware of the concept Fizzbuzz. The above post has indeed given me the entire information about Fizzbuzz.

Reply
03/26/2013 12:55am

Your article tells me you must have a lot of background in this topic. Can you direct me to other articles about this? I will recommend this article to my friends as well. Thanks

Reply

To write a such kind of article is really awesome,I daily read your blogs and give my notice for that here this article is too great and so interesting.

Reply
03/20/2014 5:10am

I wasn't fully able to understand this but your post really helped me thanks

Reply
04/16/2013 3:02am

I was not aware of the fact that Apple has banned all the iOS applications which is not coded in Haskell. Thanks for sharing such interesting information.

Reply
04/16/2013 10:44pm

I am really amazed by the interview questions posted by Google to the Shipper. Thanks for sharing such interesting information.

Reply
05/07/2013 1:17am

Brand sunglasses are not worth that much, most of the brand sunglasses (such as Bulgari, Prada glasses) are actually manufactured with an Italian manufacturer Luxottica.

Reply
05/08/2013 11:51pm

Quack,Quack the frogs were singing in the fields. The crickets were blowing

Reply
05/26/2013 6:36am

I wasn't fully able to understand this but your post really helped me thanks

Reply
06/03/2013 3:00am

For anyone who is considering hiring or leasing a car, whether for single trips or daily life, there will always be that additional concern of how to finance your arrangement.

Reply
06/03/2013 3:00am

Finding a good dentist is as difficult as finding yourself a good general physician. Health is the most precious wealth we have and dental well-being is an integral part of it.

Reply

Look for Provisions: An good institute always have provisions like separate classes for working students, scholarships for students who are good in academics

Reply
06/03/2013 3:01am

Being an integral part of the Indian lifestyle from decades, jewellery is the best way of personal adornment. Over the years, different empires had ruled India.

Reply
06/03/2013 3:01am

Jewelry boxes make a wonderful gift. Not only are they practical and attractive, they will create long lasting memories as they hold and protect items that are special to a woman. Men often buy their wives jewelry

Reply
06/03/2013 3:10am

Thrift stores are organizations that resell used items at a discounted price. While some thrift stores operate on a profit basis, others do not; they donate money earned to local charities. 

Reply
06/03/2013 3:10am

There is always a way to find the auto finance online option that is right for you.

Reply

I previously highlighted a purple (technically lavender, but purple sounds better) pair of Cole Haan Air Colton Casual Wing Tip Oxford’s and have enjoyed them so much that I’ve bought a second pair.

Reply
03/20/2014 5:08am

This is Google. We can't hire everybody who walks through the door and solves a fizzbuzz. This is 2016, after all. Everybody would get hired.

Reply
06/03/2013 3:11am

Smoking can cause staining of your teeth that can develop over time, and it can be hard to clean from your teeth in the future. Chewing tobacco can cause bad breath, tooth loss and oral cancer. It is recommended that you try to quit using tobacco to reduce serious risks to your oral health.

Reply
06/03/2013 3:11am

If you are going to give a gift to a cat lover you know try to find out what kind of cat they have if you don't know already.

Reply
06/14/2013 3:40pm

interesting post - I think I understand this now..lol..

Reply

I love reading through your blog, I wanted to leave a little comment to support you and wish you a good continuation.

Reply
06/27/2013 4:38am

I have got to know that everyone has a different style to write the article, but I must say your article sounds very good.

Reply
03/20/2014 5:14am

I absolutely enjoying every petite bit of it and I have you bookmarked to test out new substance you post.

Reply
07/01/2013 3:37am

My naieve attempt in Haskell: https://gist.github.com/2597922

Reply
07/04/2013 2:40am

This is Google. We can't hire everybody who walks through the door and solves a fizzbuzz. This is 2016, after all. Everybody would get hired.

Reply
07/05/2013 5:33am

Good post. This is a very clear, informative and helpful post. Thanks for sharing. Will come to visit again.Click here to find more information.

Reply
07/05/2013 8:03am

This page is very informative and fun to read. I appreciated what you have done here.

Reply
07/09/2013 2:07am

You can look for African American synthetic wigs in your own local area, but the huge selection available on the internet makes it mandatory that you should at least look there before making a purchase.

Reply
07/09/2013 3:31am

Google has purchased Typesafe & Scala runs natively on Android. Not to be outdone, Apple has banned all iOS apps not coded in Haskell.

Reply
07/10/2013 4:17am

I absolutely enjoying every petite bit of it and I have you bookmarked to test out new substance you post.

Reply
07/11/2013 5:24am

The Persuasion essays below are all written by former students both in the US and Mexico.  I'd like to give a hearty "thanks" to these students for allowing me to publish their essays here.

Reply
07/13/2013 2:21am

Hi, Nice work, I've bookmarked this page and have a feeling I'll be returning to it regularly.

Reply
07/23/2013 4:56am

That is really amazing. Thank author for it. it is rare articles. Thanks for putting in the effort to put it all together.Thank you for new issue, I really like this website.

Reply

Really appreciate you sharing this post.Really thank you! Want more.

Reply
07/26/2013 10:37pm

It’s impressive and beyond my expectations in many aspects. Your points are made in an intelligent and clear manner making this high quality content

Reply
08/12/2013 4:28am

I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.

Reply
08/19/2013 2:45am

I love the blog. Great post. It is very true, people must learn how to learn before they can learn. lol i know it sounds funny but its very true. .

Reply
08/21/2013 12:52am

It is so interesting. I want to know some other information about this site. So please give me this news quickly. I always will be aware of you.

Reply
08/23/2013 2:56am

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles.Keep up the good work!

Reply

Thank you for this post. Thats all I are able to say. You most absolutely have built this blog website into something speciel. You clearly know what you are working on, youve insured so many corners.thanks....

Reply
09/02/2013 6:30am

This is very informative site. It has great knowledge about what I want to know. Great work.

Reply

Thanks for taking this opportunity to discuss this, I feel fervently about this and I like learning about this subject.

Reply
09/05/2013 3:37am

In today's digital technology, black and white photography is still regarded as favorite with many photographers. In most situations, black and white photography has the tendency to make photos look more like works of art.

Reply
09/05/2013 6:17am

Thanks for posting this article. From your content, I can see the real significance of the phrase satisfied. This content, I believe many individuals are beneficial. Very lucky to discuss this content to your. Look ahead to your up-dates.

Reply
09/05/2013 8:36am

I read your post.it was amazing.Your thought process is wonderful.

Reply
09/06/2013 12:05am

This is a smart blog. You have so much knowledge about this issue, and so much passion.

Reply
09/06/2013 3:24am

First of all let me tell you, you have got a great blog .I am interested in looking for more of such topics and would like to have further information. Hope to see the next blog soon.

Reply
09/06/2013 4:38am

Thanks for taking the time to discuss this i feel strongly about it and love learning more on this topic. It is extremely helpful for me.

Reply

Gurukul institution is the leading and the topmost Fashion Designing Institute in jaipur which has a global recognition throughout the world.”Take Admission Now”

Reply
09/06/2013 9:42pm

I enjoyed your weblog. It’s easy to scan, the content is good, and you’re an informed author not like most of the blogs I locate when reckoning on this subject.

Reply
09/07/2013 3:30am

OOP and mutable state disturbed people a lot. your thinking can be the best solution to this. i have told many persons to imply this.

Reply
09/07/2013 4:57am

I am truly pleased to read this post which carries lots of helpful data, thanks for providing these kinds of information.

Reply
09/08/2013 2:24am

This is a really good read for me. Must agree that you are one of the coolest blogger I ever saw. Thanks for posting this useful information. This was just what I was on looking for.

Reply
09/08/2013 9:29pm

Google has purchased Typesafe & Scala runs natively on Android. Not to be outdone, Apple has banned all iOS apps not coded in Haskell......

Reply
09/09/2013 1:32am

Nicely presented information in this post. I really prefer to read this king of stuff. The quality of content is fine and the conclusion is good . Thanks for the post. Keep it up in future.

Reply
09/09/2013 5:23am

Really I impressed from this post. the person who created this post is a genius and knows how to keep the readers connected. thanks for sharing this with us.

Reply
09/11/2013 7:46am

I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work

Reply

Thanks for sharing nice information with us. i like your post and all you share with us is uptodate and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job.

Reply
09/16/2013 5:38am

This is a great idea of fund raising. I think these types of ideas should be utilized by every organization to raise funds for their programs. Thank you for posting this useful information to us, and keep posting such good articles.

Reply
09/18/2013 12:01am

Really appreciate you sharing this post.Really thank you! Want more.

Reply
09/18/2013 4:09am

The main rules in this game are that any number that contains the number or is divisible by that number is replaced by an occurrence of the word. Thanks for sharing.

Reply

I read your post.it was amazing.Your thought process is wonderful.

Reply
09/19/2013 6:48am

This is very informative site. It has great knowledge about what I want to know. Great work.

Reply
09/20/2013 3:02pm


Hi there, I desire to subscribe for this blog to get hottest updates, so where can i do it please help.

Reply
09/21/2013 1:39am

This page is very informative and fun to read about week event. I appreciated what you have done here. I enjoyed every little bit part of it. I am always searching for informative information like this.

Reply
09/21/2013 4:03am

I have been planning to buy one so that I can take my family on fishing trips on the weekends. I hope that I do not get looted in the process!

Reply
09/23/2013 12:31am

I am currently looking into a career change and this post helped to see another aspect of the industry. I appreciate your article.

Reply
09/23/2013 6:06am

Thank you for this post. Thats all I are able to say. You most absolutely have built this blog website into something speciel. You clearly know what you are working on, youve insured so many corners.thanks....

Reply
09/25/2013 12:12am

This topic has always been one of my favorite subjects to read about. I have found your post to be very rousing and full of good information. I will check your other articles shortly.

Reply
09/25/2013 2:15am

I have found this article very exciting. Do you have any others on this topic? I am also sending it to my friend to enjoy your writing style. Thanks

Reply
09/25/2013 3:49am

Your website is very chatty. It will be useful for all of us. You have done a work. I will come here again to inspect new updates. Thanks for posting.

Reply
09/25/2013 4:21am

: Yeah, so your final list will be much smaller than 5050.

Reply
09/26/2013 1:55am

Very interesting post. really informative. of all the blogs I have read on the same topic, this one is actually enlightening.

Reply
09/26/2013 4:00am

I have got to know that everyone has a different style to write the article, but I must say your article sounds very good.

Reply
09/26/2013 4:47am

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles.Keep up the good work!

Reply
09/27/2013 3:19am

functional programming. Google has bought Typesafe & Scala courses natively on Android. Nay to be outdone, Apple has illegal total iOS apps nay coded in Haskell.

Reply
09/27/2013 7:41am

Really I impressed from this post. Post is a genius and knows how to keep the readers connected. thanks for sharing this with us.

Reply
09/27/2013 10:40am

You know as the saying goes, you live and you learn.

Reply
09/28/2013 2:58am

I have been planning to buy one so that I can take my family on fishing trips on the weekends. I hope that I do not get looted in the process!

Reply
09/29/2013 4:51am

Past a series of embarassing populace casualtys involving OOP & changeable posture, the mankind has ultimately recognized the foresight of John Hughes furthermore switched to useful programming.

Reply
10/01/2013 3:50am

Scala restraints natively on Google android. Veto to be outdone, Apple company company features unlawful quite a few iOS software nay coded throughout Haskell. The particular Gashs ecosystem can be instantaneously centric completely simply by Y.

Reply
10/02/2013 3:03am

Everything is just so perfect and I really like the way it’s easy on my eyes. Thanks for a lovely post.

Reply

Resignation! This is Google. We can't charter everyone who stretchs over the barrier plus unravels a fizzbuzz.

Reply

Great info. I love all the posts, I really enjoyed, I would like more information about this, because it is very nice., Thanks for sharing...

Reply
10/04/2013 4:03am

This post truly made my day. You can’t imagine just how much time I had spent for this information! Thanks.

Reply
10/04/2013 3:29pm

I really like this post, i enjoy every minute reading it. It's cool, that author decided to write on this theme. I would like to read another post this author with great pleasure. It might be really interesting.

Reply
10/04/2013 10:59pm

Amazing weblog. I experienced studying your content. This is truly an excellent study for me. I have saved it and I am eager for studying new content.Keep up the good work!

Reply
10/08/2013 10:47am

I would like to say thank for sharing this great article. We can’t get this kind of information from.

Reply
10/09/2013 5:14am

Your website is very chatty. It will be useful for all of us. You have done a work. I will come here again to inspect new updates. Thanks for posting.

Reply
10/10/2013 3:19am

The way you tell about things is awesome. They are inspiring and helpful.Thanks for sharing your information and views.

Reply
03/20/2014 5:14am

I really like this post, i enjoy every minute reading it. It's cool, that author decided to write on this theme. I would like to read another post this author with great pleasure. It might be really interesting.

Reply

Indies Artikel, wir gebenSie den Basic charakteristische Sie in kennenlernen Den Optionender Mode design class. Lacoste bilig Täglich wersind vormit aSuperAnzahl der Entscheidungen die im Grunde Änderungen wie Deneigene Schicksal Leistungenup. 2Jahren danach er vorgeschlagen, aber wara maid of Honor in tolles HochzeitBlick auf die High Cliff als Teil derMalibu.

Reply
10/14/2013 3:00am

can;t understand the codes but good work i'll try to get them.

Reply

decided I wouldn't cheat. Instead I will solve Inverse Fizzbuzz from first principles, using a Finite State Machine Regex approximate.
Observation: I'm negative attentive so very in the sums on the RHS as ample as making confident if a course of chains indeed matchs to a sufficient "Opposite Fizzbuzz" . So the ambition is to audition phraseology seats. Sum gymnastics can happen subsequently.

Reply
10/21/2013 3:43am


Thanks for a marvelous posting! I definitely enjoyed reading it, you may be a great author.I will make certain to bookmark your blog and definitely will come back later on. I want to encourage yourself to continue your great writing, have a nice holiday weekend!

Reply
10/21/2013 2:48pm

This is truly a great blog thanks for sharing. Excellent and decent post. I found this much informative, as to what I was exactly searching for. Thanks for such post and please keep it up.

Reply

We’re a group of volunteers and opening a new scheme in our community. Your web site offered us with valuable info to work on. You’ve done a formidable job and our whole community will be grateful to you.

Reply

The depth and quality of this work is superb. If only all articles were as informative as this one. I shall be sharing this with my colleagues.

Reply
12/06/2013 11:43pm

Nice blog dear I get the many information in this kind of blog comments . Thank s for nice blog and this site.

Reply

The post is written in very a good manner and it entails much useful information for me. I appreciated what you have done here. I am always searching for informative information like this. Thanks for sharing with us.

Reply
12/09/2013 6:44pm

Very good blog post. I definitely love this site. Keep it up!

Reply
12/19/2013 5:18pm

Among the many Jordan retros coming up in 2014 will be one of the more highly regarded team shoes from back in the early days of the Jumpman brand.

Reply
01/19/2014 9:38pm

This is great the blog that I always bookmarked are those who has a good information which is viewable and informative and you are one of those who provide good informations. <a href="http://www.sbobet.ibetlucky.com/">Sbobet</a>

Reply
01/19/2014 9:41pm

I was excited to uncover this great site. I want to to thank you for ones time due to this fantastic read!! I definitely savored every part of it and i also have you book marked to look at new stuff in your website. <a href="http://www.sgbettors.com/sbobet/">Sbobet</a>

Reply

Very interesting, not something I'm completely school in however.

Reply
01/24/2014 2:06am

Vey good blog post i have just subscibed

Reply
03/19/2014 9:14am

Very interesting, not something I'm completely school in however.

Reply
wasidah
03/21/2014 4:59am

If you produce content that Google perceives as useful and relevant, then it will rank better in search results, plain and simple

Read more: http://blogpagiku.blogspot.com/2014/02/eyangtogelcom-togel-singapura-togel.html
http://blogmalamku.blogspot.com/2014/02/rgopokercom-bandar-judi-poker-situs.html
http://blogsubuhku.blogspot.com/2014/02/sukabetcom-agen-bola-terpercaya-untuk.html
http://blogsoreku.blogspot.com/2014/03/afatogelcom-bandar-terbesar-situs-togel.html
http://blogsiangku.blogspot.com/2014/03/batikpokercom-judi-poker-online-uang.html

Reply

Thanks with this write-up. An individual most certainly have got developed this site site into one thing speciel My partner and i enjoyed reading ones posts. This is the great go through for me personally. Thanks regarding placing this particular beneficial data to be able to all of us.

Reply
04/02/2014 10:51pm

Thanks a lot for sharing. You have done a brilliant job. Your article is truly relevant to my study at this moment, and I am really happy I discovered your website.

Reply
04/15/2014 10:07pm

Thanks for taking the time to discuss this, I feel about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me. <a href="http://togelsingapura.org/">Togel singapura</a>

Reply
04/15/2014 10:08pm

<a href="http://togel99.net/">prediksi togel</a>
I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post

Reply
04/15/2014 10:09pm



Definitely a great post. Hats off to you! The information that you have provided is very helpful.

Reply
04/15/2014 10:10pm

<a href="http://togel99.net/">prediksi togel</a>
I’m completely enjoying as of it and that I have you ever bookmarked to ascertain out new stuff you'll post.. Can you also check

Reply
04/15/2014 10:10pm

Excellent post, I agree with you 100%! I’m always scouring the Internet for new information and learning whatever I can, and in doing so I sometimes leave comments on blogs. I don’t do it for SEO purposes necessarily, but to learn new things.

Reply
04/15/2014 10:13pm

must say that overall I am really impressed with this blog. It is easy to see that you are passionate about your writing. If only I had your writing ability I look forward to more updates and will be returning.

Reply
04/16/2014 8:01am

nice post....

Reply
04/16/2014 8:02am

amazing....

Reply
04/16/2014 9:17am

Nice blog! After a game plan of embarassing open disasters including OOP & impermanent state, the world has finally comprehended the understanding of John Hughes and traded to utilitarian programming.

Reply
04/19/2014 1:45am

http://headlinebola.com/prediksi-real-madrid-vs-bayern-munchen-22-april-2014/
http://headlinebola.com/prediksi-atletico-madrid-vs-chelsea-22-april-2014/
http://headlinebola.com/prediksi-hull-city-vs-arsenal-19-april-2014/
http://headlinebola.com/prediksi-norwich-city-vs-liverpool-20-april-2014/
http://headlinebola.com/prediksi-chelsea-vs-sunderland-20-april-2014/
http://headlinebola.com/prediksi-barcelona-vs-bilbao-21-april-2014/

Reply
04/20/2014 8:12pm

Definitely a great post. Hats off to you! The information that you have provided is very helpful.
<a href="http://vegas88.asia/">vegas88.asia</a>

Reply
04/20/2014 8:31pm

Excellent Post

Reply
04/20/2014 8:37pm

Thank you for another fantastic posting. Where else could anyone get that kind of information in such a perfect way of writing? I have a speech next week, and I was looking for more info ;)

Reply
04/22/2014 9:35pm

Definitely a great post. Hats off to you! The information that you have provided is very helpful.

Reply
04/22/2014 9:38pm

This is a very good post. Just wonderful. Truly, I am amazed at what informative things you've told us today. Thanks a million for that.
<a href="http://dewasbo88.com/">judi bola online</a>

Reply
sbobet
04/22/2014 9:48pm

I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post

Reply
04/22/2014 9:53pm

I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post
<a href="http://dewasbobet.com/">sbobet</a>

Reply
04/22/2014 9:49pm

This is a nice and informative, containing all information and also has a great impact on the new technology. Thanks for sharing it

Reply
04/22/2014 9:54pm

Thank you for another fantastic posting. Where else could anyone get that kind of information in such a perfect way of writing? I have a speech next week, and I was looking for more info ;)

Reply
04/22/2014 10:01pm

I’m completely enjoying as of it and that I have you ever bookmarked to ascertain out new stuff you'll post.. Can you also check

Reply
04/22/2014 10:04pm

This is a very good post. Just wonderful. Truly, I am amazed at what informative things you've told us today.

Reply
04/22/2014 10:07pm

The you have is very useful. The sites you have referred was good. Thanks for sharing...

Reply
04/22/2014 10:10pm

I really appreciate the kind of topics post here. Thanks for sharing us a great information that is actually helpful. Good day!

Reply
04/22/2014 10:18pm

must say that overall I am really impressed with this blog. It is easy to see that you are passionate about your writing. If only I had your writing ability I look forward to more updates and will be returning.
<a href="http://www.buatwebsitemurah.co.id/">jasa pembuatan website</a>

Reply
04/23/2014 8:02pm

Thanks for taking the time to discuss this, I feel about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me.

Reply
04/23/2014 8:04pm

I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post

Reply
04/23/2014 8:06pm

Definitely a great post. Hats off to you! The information that you have provided is very helpful.

Reply
04/23/2014 8:09pm

I’m completely enjoying as of it and that I have you ever bookmarked to ascertain out new stuff you'll post.. Can you also check

Reply
04/23/2014 8:11pm

Excellent post, I agree with you 100%! I’m always scouring the Internet for new information and learning whatever I can, and in doing so I sometimes leave comments on blogs. I don’t do it for SEO purposes necessarily, but to learn new things.

Reply
04/23/2014 8:13pm

I'm impressed, I must say. Very rarely do I come across a blog that's both informative and entertaining, and let me tell you, you've hit the nail on the head. Your blog is important; the issue is something that not enough people are talking intelligently about.

Reply
04/23/2014 8:14pm

must say that overall I am really impressed with this blog. It is easy to see that you are passionate about your writing. If only I had your writing ability I look forward to more updates and will be returning.

Reply
04/23/2014 8:16pm

This is a nice and informative, containing all information and also has a great impact on the new technology. Thanks for sharing it

Reply
04/24/2014 8:21am

This is often a highly awesome post. Can I use this on my internet site? Also, though I'm here I'd like to see if you would like to take a look at my web page about producing money on the web. I'm positive there is a number of pointers on there that you'd like. Thanks!

Reply
04/26/2014 6:44pm

This website offers excellent content. Thanks for the fantastic post I did enjoyed reading through it. I have to reading this blog.

Reply
05/02/2014 9:37pm


Find more Details About <a href="http://www.hotelmetropole.mobi/">Metropole Hotel</a> visit here.

Reply
05/03/2014 6:43am

https://www.facebook.com/marjo.kanu?ref=tn_tnmn
http://win99bet.com/prediksi-real-madrid-vs-valencia-5-mei-2014/
http://win99bet.com/prediksi-crystal-palace-vs-liverpool-6-mei-2014/

Reply
05/23/2014 11:47pm

Riley for Kids

Reply
05/23/2014 11:49pm

Austin Auto Guide | All About Car , New Car Reviews , Car Insurance and Car Parts

Reply

Personal Parenting | A blog dedicated to Personal Parenting , Child Care and Parenting Advice, Information Etc

Reply
06/20/2014 1:23am

I like your site and content. thanks for sharing the information keep updating, looking forward for more posts. Thanks

Reply
06/20/2014 11:08am

This is a fantastic website and I can not recommend you guys enough. I really appreciate your post. It is very helpful for all the people on the web.

Reply
06/20/2014 10:48pm

Very nice and useful information. Why not write a book about this particular subject. For today’s economic variation and be short of of opportunities, it actually will be a very hot topic. Thanks a lot

Reply
06/21/2014 12:31am

Here is the worthy reading articles I have to recommend to you. You would earn much useful information like me.

Reply
07/01/2014 12:53am

Great article! We will be linking to this particularly great article on our site.

Reply
07/02/2014 6:43am

Thanks for give me information on this topic. you have sharing very nice post.

Reply
07/03/2014 9:24pm

Nice article ,Thanks for sharing.

Reply
07/12/2014 2:18am

For more advice, check out <a href="http://ukrealmoney.blogspot.com/"rel="nofollow">ukreal money blogs</a>
Check out <a href="http://wowgambling.blogspot.com/"rel="nofollow">WowGambling.Blogspot.Com</a>
For more Gambling Details <a href="http://letsgambling.blogspot.com/"rel="nofollow">Letsgamblsing.Blogspot.Com</a>
For more advice with <a href="http://onlinegamblerblog.blogspot.com/"rel="nofollow">onlinegamblerblog blogspot</a>

Reply
07/16/2014 3:23am

There ar many various ways that poker <a href="http://www.diavolitapoker.com/">DIAVOLITA POKER</a> players opt to play the sport, however, there ar bound basics you ought to commit to adhere to. currently these could appear terribly straightforward and clear-cut however it\’s superb what percentage poker players out there merely dismiss them.

Reply
07/27/2014 6:07am

The information and the aspect were just wonderful. I think that your viewpoint is deep, it’s just well thought out and truly incredible to see someone who knows how to put these thoughts so well. Good job!

Reply
08/05/2014 10:24pm

With such games, one could either play against other people or a computer. If a person goes up against a machine, it would contain thousands or millions of card combinations.

Reply
08/11/2014 12:21am

Only visit the online casinos or their offline counterparts with money that you can afford to lose. People who disobey this unwritten rule of responsible gambling inevitably end up making poor decisions.

Reply
08/11/2014 12:31am

The Ten Top Casino Guide Online is the list of online casinos that offer only casino sites with large networks.

Reply
08/29/2014 6:47am

This is first time that I visit here. I found so many exciting matter in this particular blog, One thing I would like to request you that pls keep posting such type of informatics blog.

Reply



Leave a Reply