Back in 2005 I launched a new design for botsko.net and it turned out to be a pretty popular design, and I was fairly satisfied with it. However, things change quickly in the web development world and five years meant that there were some problems I needed to address.
Several months ago I began working on a refresh – an upgrade and cleanup of the design without re-designing the entire thing over again. The base design has been re-created with minor changes, the text and content have all been updated, and the markup and css have been completely rewritten. The changes were necessary because the site is much closer to representing how we build markup, and it fixes problems I’ve been tired of noticing.
Continue reading this post…
Published by Michael Botsko on 11/3/2010
In the last decade I’ve seen the wide variety of ways in which PHP has been used to control the output of HTML. Whether you’re using a template system like Smarty or you’re simply using PHP itself as a template language there are many different ways of combining the two.
Continue reading this post…
Published by Michael Botsko on 8/4/2010
I recently had the need to integrate a project with the Authorize.net API and I spent some time searching for an existing PHP class/object that would handle it. While I found several, they seemed to be somewhat out of date, not properly maintained, and most importantly – ugly.
I set out write a very clean, well organized class that was specifically designed for PHP5. I’ve published the class on github and would appreciate any patches you wish to submit back.
http://github.com/botskonet/authorize.net
The class is very basic and will handle the transaction beautifully. It’s working great in a current project. While there are always features I would like to add as the projects grow, this is entirely ready for use and testing now.
Published by Michael Botsko on 4/23/2010
There are many tricks out there to get the git status to show in the command line path, but here’s one that worked the best for me on a Mac OS X Snow Leopard machine.
Continue reading this post…
Published by Michael Botsko on 3/16/2010
In a recent project I wanted to create a separate form for each record from a table using the form helper in CakePHP. After following the instructions found on the net I noticed that there was one big glaring problem.
Continue reading this post…
Published by Michael Botsko on 2/25/2010
Git is an amazing source control system, and is even better when used with GitHub.com. Installing git on Mac is pretty simple.
Continue reading this post…
Published by Michael Botsko on 2/18/2010
I was planning on getting a magic mouse for my office machine sometime in 2010, but my parents got one for me for the holidays. It finally arrived and I’ve had some time to play with it. Here are some briefs thoughts and comments.
Continue reading this post…
Published by Michael Botsko on 1/18/2010
I’ve recently done some work with the Fastspring.com ecommerce website. It’s essentially similar to the flow of a paypal purchase – companies create pages with products and Fastspring acts as the checkout process doing the user information/payment processing work for you.
Continue reading this post…
Published by Michael Botsko on 1/18/2010
I’m not really a fan of CakePHP, but I work with it often and understand it well. I recently had a project where a previous developer modified random cakephp library files directly, thus making it difficult for me to upgrade the framework.
Continue reading this post…
Published by Michael Botsko on 1/8/2010
Today I release a new php caging class for improved security – Peregrine.
I’ve always been impressed by the idea of a “variable cage” in programming. It’s an additional method of protecting your incoming variables and making sure that you only accept what you’re expecting.
If you’re not familiar with a cage, think of it as a class that copies any (usually incoming) data into an object while destroying the original “unclean” data. At this point you must access this data through the “cage”, which provides a whole bunch of ways to filter out what you don’t want.
So an incoming variable (through a GET/POST request for example) may only need to be a integer. You may use a method that returns or checks for integers, and either removes non-integer characters or returns false.
This provides an excellent wall against any malicious attackers, and really helps you define data validation more accurately within your projects.
There are some others out there, and some are very good. However, none worked as well or were as cleanly coded as I would have liked, so I’ve been working on Peregrine.
It’s hosted at github so you’re welcome to fork it and contribute back any fixes or feature requests you would like.
To learn how to use it, please read the documentation provided with the code and look through the class itself.
http://github.com/botskonet/Peregrine
Published by Michael Botsko on 12/30/2009