The Education of a Programmer (Me)

Just another site

New Packt Publishing Offer

As  many of you readers are aware, I do book reviews and occasionally help promote sales for publishers. Well, Packt Publishing is back with a new offer.

They are running every eBook or Video in their collection for $5 each! That’s a great deal in my opinion. They have a lot of high quality titles on various topics and they have great customer service to boot! Here are their details on it: The $5 eBook Bonanza is here! Treat yourself to the eBook or Video of your choice for just $5 and get as many as you like until January 3rd 2014. To get you started, we’ve put together the Top 20 titles of 2013 for you to pick up here. But don’t forget, you can get ANY eBook or Video for $5 in this offer

The link to get the discount is here!

$5 ebook Bonanza1 template 1


Book Review – LEGO Space: Building the Future

I’ve recently read LEGO Space: Building the Future by Tim Goddard and Peter Reid. As usual, the disclaimer is that I received a copy of the book for free in return for the review. As a parent and grandparent, I have some experience with LEGOs. Being honest, the spacecraft were my favourite as a kid as well, so for me this was a great, light, no-brainer. For that, this book was perfect! The story line is great for kids who want to have fun with an easy to grab good v. evil story while learning a few cool things about the history of the space race at the beginning.

Really, the main focus of the book is the great eye candy of various ships, monsters, and backgrounds built by some incredible LEGO artists. There are instructions in the book for making 8 of the pieces you see in the book from robots to ships and even a work station. The directions are straight forward and look easy to complete. The story line is fairly predictable and there are tonnes of details about all of the various ships which I’m guessing will be out on shelves soon. For parents and grandparents, this is a fun way to get the kids to read and leave the video assault behind for a bit. Reading this with them encourages us to challenge their imaginations to keep the story lines going while creating not only these ships but also look at what they could do to modify the ships to make them better.

Overall, this is a fun book. It took me a little over an hour to read and it was great for heading into the office on the bus!

Book Review – Learning R

I’ve recently been reading Learning R by Richard Cotton. As usual, the disclaimer is that I received a copy of the book for free in return for the review. I have never worked with R before, but I work with a lot of data queries and data analysis in my day job. Mr. Cotton’s book is fantastic from the ability to get the foundations and figure out how to write different things in R. His tone is easy going and conversational; so I was able to follow along on something that seemed foreign in relation to what I do. The book is broken down, at the beginning, into various pieces, strings, numbers, etc. I like this approach to it because it gave me the ability to focus on each piece of the puzzle and see how I could access data and gather information from that data.

My only negative is there seemed little information on using R with databases such as Oracle, SQL Server, MySQL, etc. For many of us in a corporate environment, we’re going to be going in and out of those types of data sources so often that I would have appreciated a more in depth coverage there. However, I do feel like the book was excellent for getting your feet wet in something which seems, to me, a potentially very powerful tool. I believe it was the author’s approach to the subject that made the language as accessible as it turned out to be.

Overall, I would suggest, if you work with a lot of data and have to return information on that data, to give this book a read and you will likely find another tool for your toolbox and will feel like you have good knowledge of it out of the gate.

Book Review – Head First C#

I’ve recently been reading Head First C# by Jennifer Greene and Andrew Stellman. As usual, the disclaimer is that I received a copy of the book for free in return for the review. I have read other Head First books before and this one was very much in line with those others. For those who are not familiar, the Head First Labs concept is to turn the reading experience around and deliver the information with a lot of other goodies to keep your brain engaged by not having line after line of text blurring into one another. For some people, myself included, this is a fantastic delivery mechanism. Their Head First Statistics book probably helped me with the class more than the textbook did.

This book is no exception. It is well researched and well written. The examples are entertaining and keep you engaged with the book and with the concepts as they build layer by layer until you have a very solid understanding of the basics of C#. This is a book geared to someone picking the language up for the first time. My only complaint is that they are so centered on Windows 8 and the Windows App Store that they had to put out a separate pdf file for people who don’t have or don’t develop for Window 8. For me, I had not yet made the jump, so I needed the conversions in places. However, the book was so new, it wasn’t immediately available.

I would have preferred them target the .NET 4 and 4.5 frameworks from a Windows 7 perspective only because it’s more in use in the enterprise where many programmers are working. They could also use this to isolate the 4.5 improvements a little better and then demonstrate how those improvements are enhanced in the Windows 8 experience. However, I also admit that being able to build a Windows Phone application with C# and XAML was a fun exercise.

Overall, this book is perfect for the slight to moderate ADHD programmer/student who wants to learn, not want to be boredthumb_hfcs, and tries to cram as much as possible in the shortest time available. The whole “series” is fantastic and well worth anyone’s time to use as a good learning tool.

Better days since

Well, I have a skeleton site up that implements an .edmx file in the Models folder and maps to the respective tables and I have basic CRUD pages which will work when I launch it in test mode. It’s uglier than sin, but it’s getting there.

I’ve been working through some other tutorials for MVC4 so I can make sense of ways to do this on my own and do a better job with formatting and database updates. I do feel immensely better because it is all coming together. I’ve found it’s easier for me to get it when I’m writing it rather than reading about it.

The nice part of the most recent tutorials I’m working through is that I am getting experience with Ninject, Moq, and unit testing in VS2012. I think I have finally turned a corner and am starting to make more sense of what I want to do and how to do it the best way possible.

Frustrations Abound

I’ve read the start of the quote, “These are the days which try men’s souls,” and have now found a way to certainly apply that in my career. I’m trying to re-build some vintage ASP VB6 sites. Currently, I’ve cleaned them up and made them workable, except for one page because the Oracle back end for that table uses a CLOB data type and VB6/ASP can’t handle CLOBs.

What I really want to do is use MVC 4, Entity Framework, and ODP.NET to create something workable and aimed toward being there in the long run. (Basically, I don’t want to have to do a major re-write in 3 years when the database is switched from Oracle to SQL Server and it all becomes easier.) Therein lies the problem. Wiring up 2 of the 3 components isn’t difficult. I can get EF and MVC4 to work well as I can get EF and ODP.NET to play nice, but add in all three and I feel like I’m in uncharted territory. So I’m going to start blogging and documenting what I’m discovering in hopes that someone else might have some info (if anyone else reads this) and can help me find the pieces I’m missing, or will be able to follow my trail into this and hopefully get something productive out of my morass.

I can do the first part on this rig. (I have two rigs I work out of, one faces the world and the other faces a private subnet that doesn’t have outside access.) So I create an MVC4 project and ensure the latest jQuery, ODP.NET, and EF are all part of the puzzle. I have some ideas of the different controllers and models I’m going to need on the first project. It’s the administration piece which will access existing data tables for a program which monitors events as they happen and sends notification emails to subscribers based on agency, call type, and/or the number of responding units. (There is also a portion for notifications based on the address of the event). So I need to administer the subscribers, the locations, and the call types. The subscribers need to be administered overall, but need to also be filtered by the agency to whom they “belong” as well as the agencies to which they subscribe. The locations need to be administered overall and certain groups of locations need to be gathered together for supervisors to monitor. The call types and subtypes need to be administered to determine when we need to make changes to automatic emails. Plus I have a couple of data grids which show what’s in the pipeline being evaluated and what has been sent out to subscribers. Overall, this shouldn’t be hard. I have 3 CRUD areas and a couple of simple dataset queries. Again, this isn’t rocket science. I already have the tables in place, so I don’t need Code First, I need Database First.

I can connect to the database on the second rig and when I create the project,  I create it on the second rig (from the first one) so there won’t be any problems with it pulling up and being able to code. I can edit the web.config file so I can connect to the Oracle DB. (I’ve gotten decent at that) and I know the queries I need at each stage. I should be able to put all of this together easily, but I’m just not making the last connections to link MVC4 through EF to ODP.NET to reach the DB in a meaningful CRUD environment.

Well, more later…..

Book Review – Jump Start CoffeeScript

I recently read Jump Start CoffeeScript by Earle Castledine from SitePoint books.  As usual, the disclaimer is that I received a copy of the book for free in return for the review. The “Jump Start” format seems to hold great promise. Take a scenario and affix the paradigm to it to gain a basic foundation with the highlighted technology. The flow of the book felt episodic in the delivery. In this season, if you will, we tackle CoffeeScript. CoffeeScript is one of a growing number of languages, like Google’s Dart or Microsoft’s TypeScript which try to give a developer a better Javascript when writing the code before it is compiled into Javascript in the delivery to the viewer.

Leaving aside the relative merits of this approach to coding. The book is a quick and comical read by an author who really knows the ins and outs of Javascript and CoffeeScript. In this “season”, the developer (Mr. Castledine and by extension you) has been roped into a seven day “Build-A-Game” competition and partnered with a team of less than diligent designers, artists, etc. So in the end, you’re on your own to build a web based game in 7 days. To make it either more entertaining, or more insane, you decide to code this in a language you’ve never used before. Again, I will leave the relative sanity of such a decision for another day and just follow the book.

Chapter 1 sets you in motion, describing what CoffeeScript is and getting you familiar with the fact that it is much more terse than Javascript and that it will compile, when finished, into Javascript. You are pointed to a few resources to ensure your .coffee files are able to be compiled into .js files and basic syntax structures. The next 5 chapters are 5 days worth of game development. Really, I think the book does a better job of teaching you the whats and hows of creating a browser based game than the CoffeeScript itself. You are exposed to a lot of code snippets and the author explains his thinking, but if you read the code from the book’s site, you see that you’re not getting all of the code to build the game in the book. You cover important pieces, but it’s assumed that you will compile the code and run it. Or at least that’s what it felt like to me. The final chapter is more a pat on the back for finishing the game and the book.his in a language you’ve never worked with before. Again, I will leave the issue of the wisdom of your choice aside and go with the book’s scenario.

I would recommend this book for someone who wants to build browser based games. This book taught me a lot about that. It gave me a few ideas for what and how to make some killer games. However, I will look for more sources on CoffeeScript, especially if they can explain why I want to do this in the first place.

Book Review: CSS Fonts

I recently completed CSS Fonts by Eric Meyer. As usual, the disclaimer is that I received a copy of the book for free in return for the review. Mr. Meyer is very well known as a CSS expert and I follow his blog and his writing carefully because I feel certain I will learn a new trick here or there. This book most certainly continues with that trend and justified my wanting to review this book.

The book covers one topic and one topic only, fonts and how to use them better with CSS. It is slim, more reminiscent of an O’Reilly Pocket Guide than anything else. However, that is certainly not a statement against this book. In the course of 60 pages, this book covers every font selector in CSS and covered a few that I’d never heard of as well. There were clear explanations for each selector, how to use it, and why you would want to use it. In the end, if the viewer looks at a site I wrote in a Gecko-based browser, then they would see something that could rival anything developed in InDesign.

I’m looking forward to a day when a lot of the tricks I’ve read about in this book are common throughout the major browsers so hand tuning the typography in a website can add a new depth and dimension to any website. This is a fairly recent release and I think this should be in every web developer/designer’s arsenal to start making web typography as elegant as anything which appears in print.

I am going to play with a lot of these ideas in website I build when I get the chance. Buy this book!

Book Review: The Modern Web

I’ve just finished The Modern Web by Peter Gasston. As usual, the disclaimer is that I received a copy of the book for free in return for the review. Having said that, after I started reading this book, I realized if I hadn’t received it as a review copy, I would still want to go out and buy it. This was one of the best books I’ve read at introducing many of the new options available in web construction, from HTML5, through CSS3, all the way to Javascript and APIs and how to use the basics. The companion website, The Modern Web, is kept up to date by the author to cover any changes and updates to the base material, as this topic always seems to be changing.

Mr. Gasston has a dry wit, which really is engaging and fun to read. He’s also well versed on the subject and has a wonderful additional reading section at the end of each chapter which links you to not only his source materials, but to materials designed to push you further down the pathway to better programming. The book is aimed to the intermediate level developer who, like me, write good solid web pages, but knows there are a lot of things I can do to both help myself and improve my work as I go along. My favourite section had to be Chapter 3 with the device responsive CSS ideas. This really gave me a lot of ideas as to what to do with a portfolio site I work on. I also was very interested in the information about device APIs from Chapter 6.

My only criticism was in the forms section, Chapter 8, where he speaks about form input types like tel and discusses that they can be pretty much anything. While that is true to the surface, I know, and I hope many other developers know, to use the pattern attribute to ensure the proper format for the country at hand. Combined with some Javascript, this makes a great filter for ensuring the phone number matches the expected format (especially if inserted into a database somewhere.). While he mentioned the pattern attribute much later, it felt like an aside more than anything else.

That criticism aside, I heartily recommend this book and following up with it on the website he’s created for it. It will make your web work stronger!

Book Review: F# for C# Developers

I recently read F# for C# Developers by Tao Liu. As usual, the disclaimer is that I received a copy of the book for free in return for the review. This one was a challenge. Not because of the programming paradigm shift from imperative driven programming in C# to functional programming in F#, but because the density of the book and my having read a different book on F# rather recently.

Mr Liu is most certainly an expert on F#, both from his work at Microsoft and this book. However there were times when I felt a little frustrated in reading the book. My favourite chapter of this book was Chapter 3 where he examines design patterns which can be found in C# and then applies these patterns to F# code. It remains dense reading, but it demonstrates those patterns very well. Mr Liu takes the notion, as I read this, of showing you how to do something you typically do in C# and redo it in F#. The biggest question about the code samples included is why do I want to? Unlike other books I’ve read where the idea of functional programming and how it can do more in fewer lines can easily be demonstrated with examples like a quick Fibonacci Sequence; many of his earlier examples really don’t show any savings in coding at all. They do demonstrate that if you can do something with C#, you can also do the same thing with F#, but really I never got a lot of benefit analysis or convincing as to why I want to do this at all.

To me, this book really is written for a programmer who has started hearing more about F# and wants to know what could be done with it and wants to get his or her feet wet with the language. I have a feeling if I would have read this before the other O’Reilly book I reviewed on F#, I would have been far more impressed with it and gotten a tonne more out of it. It’s a good book, well written and full of exemplar code which builds on itself, but I felt like I’d covered too much of the same ground with a better guide earlier. That should not, in any way, dissuade a C# programmer who is curious from picking up the book. However, if you have a good deal of exposure to F# through other avenues, this will be a bit redundant.

My recommendation is if you want to get started, get this, then graduate to the other book I reviewed a while back. Both books will make more sense that way!