Jul 30 2014

Got bored – wrote code.

Got bored one afternoon, so I wrote some Ruby code. I also needed an excuse to write a post and to install a new plugin. This is an implementation of the Rabin-Karp algorithm, a string search algorithm. A friend posted a reference to it on Facebook so I decided to see how beautiful the code would look in Ruby (which is obviously looks amazing).

Sep 29 2013

Zend Framework 2.0 Book

Occasionally I am asked to review a software development book and I am always happy to do so, as I don’t get to read nearly as much as I’d like. Today’s book is a subject I am very well versed in, Zend Framework. “Zend Framework 2.0 by Example: Beginner’s Guide” by Krishna Shasankar V is a newer book available from the fine folks over at Packt Publishing. This is the first book I have read that covers the 2.0 branch of the Zend Framework. As some of you might remember I started using Zend over 5 years ago on a huge SaaS based platform, and I have kept up with the development of this MVC framework ever since.

This book is exactly what it claims to be, a beginners guide. The author takes the time to help you setup a working environment using the Zend Server Community Edition packages, unfortunately the examples on how to install are all in Linux so any Mac or Windows users will need to refer to the Zend site on any questions they may have on how to install, not a big deal. One of the first things I noticed that is a slight negative is that the author has you install the PHP 5.3 version, and PHP 5.3 is now deprecated, that might be something to add to an addendum chapter. While ZF2 supports PHP 5.3, I’d prefer beginners to use a supported version regardless.

If you peruse the table of contents, you will see that the book covers a wide range of concepts, including: HTML5, mobile, Lucene Search (a personal favorite), etc. The framework is huge, and if you ever expect a book to include every topic, you are dreaming, and this list seems like a good assortment of goodies for the beginner. The main goal of any beginner book is to give you the tools necessary to learn on your own after you complete the examples. This book also sprinkles a bunch of quizzes to demonstrate your understanding of the materials.

Two of the aspects of the book that are exciting ones for me are the Zend\Form and Zend\Lucene chapters. The form chapter does a good job covering the basics of creating forms in the framework including validation, model interaction, and an example integration with Zend\Authentication. It is always nice to see two different topics being covered by one example, it lets you put it all together, so that is a great plus for a beginner here. Lucene on the other hand is a very complex topic and a chapter in a beginners book was surprising to me, because it is rather advanced. This book does a good job of breaking it apart in terms of how to add data, index, and search. There is even sample code for indexing MS Office documents contents which is something I have personally had to deal with in the past, kudos right there.

So, while this book is a beginners book, it does cover a wide range of interesting topics. It’s delivery is still for basic knowledge, so if you are looking for something more than a cookbook type approach, I’d stick with other more advanced books. But still very impressed by the topics covered.

Sep 05 2013

All apps should have…

As I sit in Panera on my new MacBook Air I realize that some of my applications aren’t configured the same way on it that they are on my other computers. For example Xcode (although not a great example since I’m not currently using it.) I believe that all applications should support syncing settings and preferences via some sort of cloud based storage application, and I am partial to Dropbox. Alfred (http://alfredapp.com) has been supporting this for a while now and it really is a simple solution. Alfred simply allows you to set a folder that you want to save your settings that are going to be sync’d, and all you do is create a folder in your Dropbox folder and let Alfred know about it – simple – no API calls needed. Obviously they had to write some logic to handle checking if there are current settings and how to merge/import/export settings to this location, but that’s something as a developer that would excite me. ReSharper’s plugin is a little more complicated and uses the Dropbox API, but still it serves a purpose. However I wish the ReSharper plugin would extend to ALL of Visual Studio. Intellij uses its own service, which while this helps a lot I’d prefer to have all of my settings in one place. So this is my thought on computer applications, if you have a lot of settings in you application that can be customized, then you should allow them to be sync’d to the cloud. That is all for today.

Jun 28 2013

Thanks JetBrains

I just wanted to write a quick post thanking JetBrains. This has nothing to do with my previous post declaring my un-dying love for their products. Conveniently enough I pay attention to their happenings including development of the products I use: AppCode, ReSharper and PHPStorm. A few days ago they posted on Facebook asking people to predict their big announcement of a feature coming to ReSharper. They also posted about it on Twitter adding that it had to do with languages. I quickly guessed that they were adding C++ support to ReSharper, and was correct! For this I was one of 5 people selected who had guessed C++ to win a free copy of ReSharper. Now, for those who you who know me, know that I don’t use .NET outside of work (I don’t even own a PC that runs Windows or a copy of Visual Studio), so I had no use of a personal copy of ReSharper. Luckily the nice folks at JetBrains were ok giving me a license for IntelliJ IDEA 12 Ultimate, which is their Java/Polyglot IDE which can do everything PHPStorm can do plus support any other language.

So the short of it THANKS GUYS!!! I will get a lot of use out of this license, maybe I’ll get back into Java development again, who knows…

Jun 15 2013

JetBrains Addiction

I very rarely fanboy over software, especially not IDE products, but I must in this case do so. When I was working on MemberFuse™ I was introduced to PhpStorm by JetBrains and was hesitant to switch from my very comfortable relationship with Eclipse. I had been using Eclipse for many years in different variations (Zend Studio and Eclipse PDT), and was very set in my ways. However, between two of my coworkers, Nikos and Derek I was convinced to give the demo a try and was impressed enough to purchase a copy (two in fact commercial and personal).

PhpStorm 6

Fast forward to 2013, I am now no longer working in PHP but in C#, and when moved over to C# one of the other senior guys put a request in for me to get a license for ReSharper which is another product by JetBrains, however instead of being an IDE, it is a plugin for Visual Studio which adds all the features of an IntelliJ (the technology-ish behind all JetBrains IDEs) IDE that I love. It was at this point that I was addicted to JetBrains features. As I was fairly new to the C# language in its current iteration (I had not used it since college time) its ability to catch syntax error and also propose improvements was second-to-none. It was such a good experience that I caved and bought AppCode which is their IDE for Objective-C, the language used to make Mac and iOS applications. I have left Xcode for a better friend.

So it is with this being said that I have a JetBrains addiction…