Sam Diamond Design logo

Sam Diamond Design


Screenshot of the Community Impact Directory Wordpress plugin

Wordpress Plugin


Visualizer example:

"music box" was recorded by gumballworld (CC BY-NC 3.0)

One of the most powerful aspects of Wordpress is that anybody can create themes and plugins for it. This means that there are a large number of themes and plugins already available both free and for purchase. Although these solutions work for general needs, often a specific situation will require a custom solution. Such was the case with the Community Impact Directory, where the client wanted a highly specific user experience.

A number of free plugins and themes were used for various component elements of the site, but the core of the directory was a custom plugin created by Sam Diamond Design. This allowed for a specific set of features for each directory listing including an audio visualizer to provide a graphical element to the audio snippets. Further customization was required to ensure proper interaction between the directory plugin and other plugins on the site, such as the improved search capability. The site theme and plugins were then styled to fit the client’s vision.

Additional functionality was built into the plugin on the administration side, allowing easy creation and maintenance of the directory’s listings. This functionality made heavy use of the native functions within Wordpress to easily upload and select media and to create custom meta-information fields.

Screenshot of a chess playing program written in Javascript

Javascript Chess Program



Some developers may not think very highly of JavaScript, but it can be every bit as powerful as compiled languages. Sam Diamond Design has created an entire chess playing program using nothing but HTML, CSS, and of course JavaScript. The program is more than just a chessboard with movable pieces, it displays valid moves, prevents illegal moves, and even has a novice level computer player to play against. The programmed moves even allows for castling and the obscure en passant.

The program follows the model, view, controller design pattern. The model object contains all data about the state of the board, location of the pieces, the validity of moves such as castling, and the endgame. The view object is responsible for displaying the board and pieces, indicating turns, checkmate and stalemate, and other graphical information to the user. Lastly, the controller object controls the movement of the pieces on the board, regulates turns, and makes the decisions for the computer player.