Showing posts with label algorithms. Show all posts
Showing posts with label algorithms. Show all posts

Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) Review

Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))
Average Reviews:

(More customer reviews)
Are you looking to buy Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))? Here is the right place to find the great deals. we can offer discounts of up to 90% on Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) ReviewThe idea of this book is that thirty software developers and/or researchers (respectable ones, no doubt there), had to find the most beautiful piece of code and present its study. Each of them then writes a chapter and there you have it - a volume of "beautiful code" ! Simple as that.
If there was somebody to fully support the idea of such book, it would be me - I believe that the software industry already spent too much time and effort neglecting the art-and-craft in programming, pretending that it all can be reduced to hard math. Didn't work so far, did it ? Then I very welcome books like this one. But not exactly the one.
Let me put it this way - I couldn't say anything good about this book except that I adore the concept and found may be ten of thirty three chapters interesting (not necessarily beautiful). Beauty is in the eye of the beholder they say, but this lame excuse is the last good thing I could say for this book.
It was supposed to be pedagogical. Did not happen. Rather than making it timeless reference for the readers, the book made a tribune for the authors to talk about, uhm, just about anything. We know how programmers love to talk about what they do, and it's ok. But we also know that they often mumble instead of talking and it's very difficult for us to understand one another, no matter friendly or hostile. This is not to mention that there are no commonality in topics or style or language (programming or English) or anything. The editor had simply glued it together.
Not so bad you say, a good assortment is fine you say ? Let me tell you more, and it's all downhill.
It's as though you expected an album of paintings but instead got a book of random excerpts from chemical specifications for producing paints.
Exemplary conventional antimicrobial, antimildew, or antialgae agent includes 3-iodo-2-propynyl butylcarbamate, diiodomethyl-p-tolylsulfone, 1,2-benzoisothiazolin-3-one, 2-methylthio-4-tert-butylamino-6-cyclopropylamino-s-triazine, 2-(4-thiocyanomethylthio) benzothiazole and the mixtures thereof.
See how beautiful it is that can be painted with that ?
If you ask me, a book like this ought to have structure. Remember the classic one by Gamma et al - they also presented abstract things from different areas or levels, but they kept the information stylistically uniform and structured against a clear taxonomy. Not the case here.
Each chapter is about different matter, presented in a different way. One author presents a performance hack in which he compiles code on the fly. The chapter will then contain several pages of dynamic assembly. The other will show an interesting approach to syntax parsing. This one will have 50 short snippets of something JavaScript-like. Yet another will tell you how to automate debugging by automatically mutating the application. This one won't have code at all. Yet another will show a slick algorithm for counting bits in a word. This one will have a lot of bitwise arithmetic.
And I just loved the one that has NASA in it's title. There - "A Highly Reliable Enterprise System For NASA's Mars Rover Mission". Wow ! How promising ! Want to know what it says ? It says - "In NASA they love their software reliable, even a web-based file server, and so we present you a web-based file server built with JavaBeans in three-tier architecture". Ahem, Mars Rover anyone ?
Don't get me wrong, some of the chapters are reasonably interesting. Interesting ! Not beautiful !
With a little exception, the authors don't even mention the word "beautiful" in their texts. They allure with "There, we have this system, it works like this..." . What exactly the author finds beatiful about it and why - remains secret.
The most impressive standout was the chapter written by Yukihiro Matsumoto, the creator of Ruby. Three pages in which he simply speaks about what he believes a beautiful code is. He explains to you his understanding of a beautiful code. This is what the book is all about !
Instead, many chapters just demonstrate a few pages (!) of code and conclude - it is beautiful, see !
Many times I wasn't unable to grasp the problem - what was it that required that so called beauty to emerge ? I couldn't see the whole picture, but the authors sort of presume I do and so my possible appreciation of beauty requires deep understanding. What if I show you a magnified fragment of Mona Lisa's background, some 3x3 blackish pixels ? No doubt, Leonardo had to paint them too. But what was that beauty again ?
Only a few authors were wise enough to use a pseudocode. Something that anyone can read, no matter from which camp. Otherwise it's just weird when the authors present their beatiful code in Ruby or Perl or LISP. Look, I didn't touch Ruby yet, I hate Perl and I can't imagine using LISP in practice. Nevertheless the authors repeatedly say something like "It's easy, I'll show you, this bracket does this and that character does something else. Now you see how beautiful it is ?". They literally show you a piece of poetry in foreign language and ask you to appreciate it.
A classical example of awful poetry in Russian is (transliterated)
Ya poet, zovus' Neznajka,
ot menya vam balalajka.
Can you tell whether it's good or bad and why ? What if I told you it's beatiful ? Would you believe ? Does it appeal to your sense of beauty ? Same thing about this entire book.
Awful implementation of an idea that I fully adore. In fact, implementations like this undermine the idea, that's why I rate this book so low and put it away with disgust.
Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) OverviewHow do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International. tion.

Want to learn more information about Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

C# 4.0 How-To Review

C# 4.0 How-To
Average Reviews:

(More customer reviews)
Are you looking to buy C# 4.0 How-To? Here is the right place to find the great deals. we can offer discounts of up to 90% on C# 4.0 How-To. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

C# 4.0 How-To ReviewThis book's title does not quite match its content but the book's introduction does indicate this. This is primarily a very good book of code and code algorithms in the .NET framework using C#. That being said the book does cover the changes made to the .NET 4.0 framework and to C# 4.0.
The code is very well written--it is beautiful well structured communicative code. The code in the book is sparsely commented; it is so well-written that few comments are needed. As I have said, in many ways the book is a book of code algorithms, for example, in chapter 5 Convert Between Number Bases, Convert a Number to Bytes, Determine if an Integer is Even, Determine if a Number is Prime, Count the Number of 1 Bits etc. All these code examples are useful algorithms but have nothing to do with .NET Framework 4.0 or C# 4.0 per se.
Despite what the Introduction says this is decidedly not a book for beginners. While they may be able to find useful algorithms here and there the content of the book is way too terse for a beginner to follow and they should turn to other books for a more complete introduction to C#. Chapter 8 on regular expressions will only be useful to programmers that already have the basics of regular expressions well-understood otherwise even the first few code examples will leave them scratching their heads. This book does not do any hand-holding but rather shows you in very practical ways how to use the C# language and the .NET framework.
I loved the code examples using dynamic types as this was the best example I have yet seen of using them in a practical straight-forward way. The code is the book is not just useful and terse but it is also elegant. For example, the ternary operator is used multiple times in the CompressFile project in Chapter 11 producing really elegant concise and clear code.
The book, not the down-loadable code, has a few errors and code bugs but very few, for example:
Pg 16 code won't compile since _x is private and therefore not accessible to the derived class
Pg 17 line Console.WriteLine(d.MyProperty().ToString()); wont compile
Pg 17 code wont compile, class Derived not inheriting from Base class--missing : base
DoSomething method in class Derived needs to be marked override not virtual to eliminate compiler warning
Pg 65 example code given says, "Because ArgumentNullException is a type of ArgumentException, and ArgumentException is first in the catch list, it will be called." This is not true as the compiler is smart enough to recognize the problem and results in a compiler error and therefore the code will not even run.
I recommend this book for intermediate and advanced developers. Read the book and study the code examples and you will:
1) Learn the .NET Framework 4.0
2) Learn C# 4.0
3) Add to your inventory of useful code algorithms
4) Improve your written code by reading and studying the elegant code in this book.C# 4.0 How-To OverviewReal Solutions for C# 4.0 ProgrammersNeed fast, robust, efficient code solutions for Microsoft C# 4.0? This book delivers exactly what you're looking for. You'll find more than 200 solutions, best-practice techniques, and tested code samples for everything from classes to exceptions, networking to XML, LINQ to Silverlight. Completely up-to-date, this book fully reflects major language enhancements introduced with the new C# 4.0 and .NET 4.0. When time is of the essence, turn here first: Get answers you can trust and code you can use, right now!Beginning with the language essentials and moving on to solving common problems using the .NET Framework, C# 4.0 How-To addresses a wide range of general programming problems and algorithms. Along the way is clear, concise coverage of a broad spectrum of C# techniques that will help developers of all levels become more proficient with C# and the most popular .NET tools.Fast, Reliable, and Easy to Use!Write more elegant, efficient, and reusable codeTake advantage of real-world tips and best-practices adviceCreate more effective classes, interfaces, and typesMaster powerful data handling techniques using collections, serialization, databases, and XMLImplement more effective user interfaces with both WPF and WinFormsConstruct Web-based and media-rich applications with ASP.NET and SilverlightMake the most of delegates, events, and anonymous methodsLeverage advanced C# features ranging from reflection to asynchronous programming Harness the power of regular expressions Interact effectively with Windows and underlying hardwareMaster the best reusable patterns for designing complex programs

Want to learn more information about C# 4.0 How-To?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites Review

Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites
Average Reviews:

(More customer reviews)
Are you looking to buy Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites? Here is the right place to find the great deals. we can offer discounts of up to 90% on Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites ReviewMining the Social Web does a great job of introducing a wide variety of techniques and wealth of resources for exploring freely available social data and personal information. If you are willing to spend the time tinkering with the examples, the book is pure fun. It offers a nice compliment to Segaran's Programming Collective Intelligence: Building Smart Web 2.0 Applications. The two books overlap but where they do offer different perspectives and explanations of common techniques (e.g., TF-IDF, cosine similarity, Jaccard index). If you are well-versed in data mining the web you may find much of the discussion familiar. If you have only been casually engaged to date, your toolbox will fill quickly.
In order to work with the book's examples related to LinkedIn and Facebook you really need to have a robust collection of connections. In terms of the source code itself, most of it worked as is. I wasn't able to install the Buzz library which limited my interaction with material in chapter 7 and opted to not get involved with the LinkedIn or Facebook but found the discussions around them easy to follow. By far my favorite chapter in the book was chapter 8, "Blogs et al.: Natural Language Processing (and Beyond)..." It was quite fascinating and caused my reading list to grow considerably.Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites Overview
Facebook, Twitter, and LinkedIn generate a tremendous amount of valuable social data, but how can you find out who's making connections with social media, what they're talking about, or where they're located? This concise and practical book shows you how to answer these questions and more. You'll learn how to combine social web data, analysis techniques, and visualization to help you find what you've been looking for in the social haystack, as well as useful information you didn't know existed.

Each standalone chapter introduces techniques for mining data in different areas of the social Web, including blogs and email. All you need to get started is a programming background and a willingness to learn basic Python tools.

Get a straightforward synopsis of the social web landscape
Use adaptable scripts on GitHub to harvest data from social network APIs such as Twitter, Facebook, and LinkedIn
Learn how to employ easy-to-use Python tools to slice and dice the data you collect
Explore social connections in microformats with the XHTML Friends Network
Apply advanced mining techniques such as TF-IDF, cosine similarity, collocation analysis, document summarization, and clique detection
Build interactive visualizations with web technologies based upon HTML5 and JavaScript toolkits

"Let Matthew Russell serve as your guide to working with social data sets old (email, blogs) and new (Twitter, LinkedIn, Facebook). Mining the Social Web is a natural successor to Programming Collective Intelligence: a practical, hands-on approach to hacking on data from the social Web with Python." --Jeff Hammerbacher, Chief Scientist, Cloudera

"A rich, compact, useful, practical introduction to a galaxy of tools, techniques, and theories for exploring structured and unstructured data." --Alex Martelli, Senior Staff Engineer, Google


Want to learn more information about Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...