Advert TechBookReport logo

Independent developer book reviews by and for practitioners

Modern PHP

All computer languages evolve over time or shrivel up and survive as museum pieces of interest only to academics, historians and a few die-hard fans. The funny thing is that there are some languages that have evolved in directions that few would have been able to predict. Two very good examples are JavaScript and PHP, which have both evolved and matured and have established themselves as central players in the modern programming language ecosystem. Who could have imagined that the collection of CGI scripts that Rasmus Lerdorf christened Personal Home Page would end up evolving into the current PHP platform that powers a big chunk of the web, including Facebook.

For those of us who have not looked at PHP for some time the changes in the language are quite significant, and are matched by a maturation in the broader platform and practices that have been adopted by the PHP community. 'Modern PHP' is a book that brings the reader up to speed on these changes - going far beyond purely language constructs to look at standards, development environments, best practices, testing, deployment, profiling, alternative virtual machines and more.

The starting point though is the language itself. The first quick chapter gives a whistle-stop historical run through and then it's on to the second chapter devoted to the language changes. Topics include name spaces, interfaces, traits, generators and closures. This is where you get to see that PHP has indeed kept up with other modern languages - though in a later section of the book you learn about the Hack language which takes PHP further towards languages such as Java and C#.[Continued]
Learn Python The Hard Way

OK, I have to admit it, I just don't get it. Zed Shaw's 'Hard Way' series of books have sold in huge numbers and continue to do so. Aiming to lead the non-programmer into the 'terrifyingly beautiful world of computers and code', these books are pitched at the absolute beginner with no previous knowledge of programming in any language. There is actually a pretty crowded market of books that are pitched at that same audience, so what makes these books different and, more importantly, does this one succeed?

Where most beginner books lure the reader into promises of easy victory - learn X in 5 minutes, 5 hours, 5 days etc - these books sound more honest. Personally I find that approach more appealing than empty promises of an easy road to expertise. But where I don't get it is when we look at what that 'hard way' really entails. It's hard not because the material is difficult or theoretical, but because it's a hard slog of learning by rote. Yep, this is programming as taught by a drill sergeant. You do as you're told, you don't ask too many questions and you keep at it. Again. And Again.

The simple Python scripts that are developed have to be typed in by hand. There's no use here for fancy programming tools like an integrated development environment, it's text editor and command line all the way. That I can live with, it's the having to type in everything again and again. The idea is that cut and paste makes you lazy, it stops things sinking in, whereas manual repetition will help things stick. [Continued]
Doing Data Science

The more savvy types have already latched on to the fact that Big Data is so last year and now the phrase of the moment is Data Science. We've still got CEOs and CIOs making announcements on Big Data strategy left, right and centre, but it's clear that there are still plenty of people out there struggling to catch up with the hype. All of which begs the question of what the hell is Data Science? Is it the same as Big Data? Is this all about scale? In some ways this was an issue that I had to cope with when earning my PhD - how could I easily encapsulate the mix of machine learning, model building and statistics that covered what I was doing? At the time the nearest articulation of it was Intelligent Data Analysis, but that's a phrase that now seems quaint and old fashioned and subsumed into Data Science. All of which brings me to Doing Data Science, edited by Rachel Schutt and Cathy O'Neil, which aims to put some meat on the bones of a definition of Data Science.

The book is a by-product of a course called Introduction to Data Science held at Columbia University in the autumn of 2012. But this is not a collection of course notes or a text book. Rather this is a collection of materials from guest lecturers all attempting to describe what it is they do as data scientists, to come up with their own definitions of what data science is and to give outsiders a feel for the tools, the algorithms and the thinking around data. Now in general I'm not a huge fan of this approach, for example Think Complexity was structured around a class and read like a set of half-finished class notes, but this time it works. Although the range of material is wide, with different styles of writing from different authors, there's a certain consistency about the whole big that makes it hang together as a coherent whole. [Continued]
SQL Success : Database Programming Proficiency

SQL is one of those core skills that the majority of developers need to have in the armoury. Whether you're coding in Java or JavaScript or any language in between, the chances are that at some point you will to connect to a database, run a query and draw down some data. Now, there are plenty of training materials around that will walk the beginner through some basic data definition language and some querying - we've even got that here at TechBookReport. But the truth is there's a huge gap between writing a simple query that joins a couple of fields and something that can group, filter and process huge volumes of data efficiently and effectively. Which is where this book comes in - this is aimed squarely at the developer who wants to step up a level in SQL skills.

Now, one of the key challenges in putting together a book like this is the fact that pretty much every relational database management system sports its own version of SQL - the core might stay the same across products, but there are quirks and exceptions aplenty. It's not so much the syntax, it's things like data types, how you specify constraints, how keys are handled and more. Somehow Stephane Faroult manages to negotiate all of that in the text without it being too obstructive or a big deal. For the record the book covers SQL Server, Oracle, MySQL, PostgresSQL, DB2 and even SQLite.

No real background in SQL is assumed, so the opening chapters start from the basics of data definition to simple queries. Examples are always important and in this case all the examples are structured around building a database of movies and actors/directors. [Continued]
Excel, VBA and Variant Arrays

VBA provides plenty of methods for traversing Excel workbooks using Cell and Range objects. It's relatively straightforward to write code that cycles through a worksheet to process cells. However, when you're dealing with very large worksheets with thousands of rows and columns, then you soon see that while the code is easy to write, the performance can slow to a crawl. And it's not just VBA that starts to slow things down - large worksheets that are heavily studded with array formulas and look-ups can also be painfully slow to perform.

The good news is that VBA provides the tools and objects to massively speed things up. The key to this is to use variant arrays to grab all the data from a woksheet or range and then to work on this array. The performance improvements can be dramatic - something that takes hours can be done in minutes.

The starting point is simple - we grab the values from a range and assign them to a variant array:

Sub test()
Dim vData() As Variant

    vData = ActiveSheet.UsedRange.Value
    Debug.Print "Rows: " & UBound(vData, 1) & " Columns: " & UBound(vData, 2)

End Sub
The important thing to note is that the variant array is two-dimensional, with the first dimension mapping to rows and the second to columns. [Continued]
Coming Soon...
Programming Joomla!, Think Complexity, Scala For The Impatient and more..
Excel/VBA Tutorials
Web TechBookReport

Other recent reviews

Site design by viper69 productions-All contents copyright of authors. No copying for commercial use allowed. Site © 1999 - 2014.