Geotonics is home of:

Technically sophisticated website programming.

  • E-commerce website development.
  • Quick responses to emails and phone calls.
  • Available day and night.


My name is Peter Pitchford and I am the owner/operator of Geotonics Inc.

I live the New York's beautiful Hudson Valley. I first learned to program in 2001 by writing a website about my grandfather, Cardini. I loved programming so much I decided to do it for a living. I also run, do yoga, fix my house up and play with the kids.

Community Work

Approx 1977-1983 I worked with Plenty on their ambulance project in the South Bronx. We remodeled an abandoned building and started an ambulance service in an area where there was no ambulance service at all after midnight. I lived in an alternative intentional community and helped raise funds by working in a construction company that worked closely with the ambulance service.

Approx 1990-1997 I was a member of Don't Waste NY, an organization that lobbied New York State to resist the Federal Government's effort to force states to build nuclear waste dumps. My job was mostly to explain the world of nuclear politics to the public. The local newspaper, The Woodstock Times allowed me to run regular columns about nuclear waste and nuclear power. NY eventually stopped trying to site nuclear waste dumps in the poorest areas of the state.

I also play music and am frequently at various open mike nights in the midhudson valley.

A Quick Overview

What it is

The Geolib PHP Framework is a small, easy to use system for writing webpages. Unlike most frameworks, the focus is on basic functionality, simplicity, speed, and ease of use. It contains some simple classes for writing html content, including all form elements, along with some wrappers that make the classes very easy to use.

Also included are a few handy utility functions to perform some of the more common tasks that you will encounter when writing web sites, and a method for debugging PHP variables.

Here is the ApiGen Geolib Documentation

What it is not

The Geolib PHP Framework is not an all purpose tool. It can write form elements, but it has no database functions or database interface. However, it can be used along with any database abstraction library, such as The ADOdb Database Abstraction Library, or the Wordpress wpdb object.

Because it doesn't need to get or control data, it doesn't use the Model/View/Controller design pattern, which makes it very easy to use.

Its Better This Way

With Geolib, you have tools to help you write HTML content, but you are not stuck with any particular design pattern or database abstraction. You can use the Geolib framework to help you write your own database interface, or you can use a separate database library. Either way, you can use Geolib to help you write a model/view/controller design pattern to view or control data, or any other design pattern you find convenient. This is actually better than using a framework which insists that you start with a model/view/controller pattern, because the model/view/controller that you write won't have to be a complex monstrousity adabtable to every conceivable situation. It can be specifically targeted to serve your particular website, and will therefore be simpler, more adaptable and easier to use.

Geotonics WordPress Plugin Template

The Geotonics WordPress Template includes libraries for common plugin chores.

  • Standard enqueue functions for the dashboard and the frontend
  • A library for easily registering new post types
  • A library for easily registering new taxonomies
  • A library for handling common admin functions
    • Adding meta boxes to any post type
    • A complete and versatile settings class

Also included are full featured examples of how to use the libraries

  • Creating new post types and thier metaboxes, with examples of almost every possible type of input field.
  • Creating and saving new settings, with examples of almost every possible type of input field.
  • Easily adding a taxonomy filter to a post type.
  • Selecting posts of one post type from another post type.
  • Detecting plugin updates.
  • Creating front-end templates

Assorted other things that every plugin should have

  • PHP version check
  • Full text of the GPLv2 license
  • Nonces on all forms, including settings, metaboxs, and front end template forms

This WordPress Plugin template is coded with the WordPress VIP standard.

WordPress Plugin Generator

To make your own plugin from the WordPress Plugin Template, fill in the form below and then download your own customized template.

You can also download it directly from github and rename everything manually.

This plugin template includes an example of a custom post type. The default name for the example is "Gizmo". If you already know the name of a post type you will want to include in your plugin, you can change the default name by adding your own singular and plural post type names to the fields below. It is customary to capitalize the first letter.

Plugin Name *
Author Name
Plugin Uri
Post Type Singular
Post Type Plural


Best Cigar Prices

New Global Marketing has over 8000 products and tens of thousands of customers. I started with them as a shipper when they were just getting started. From 2003 - 2012 I served as lead webpage programmer while they expanded by leaps and bounds.

Over the years I designed and implemented a user interface for taking customer data, many customized product searches, a system for creating and managing sales, UPS integration and many web other applications. I implemented SEO improvements which helped keep their page in the top 10 of search results.

New Global outgrew 2 locations and eventually moved their whole operation to an enourmous state of the art facility in Pennsylvania.

Enneagram Institute

The Enneagram Institute's website contains information about thier many events and personality tests. It is a .net website written in asp. I updated a lot of old code, revamped much of the site and created a lot of new pages.


Facejam is a unique Wordpress, social media and database driven website based on an idea to connect musicians with well organized jams. I took over the Facejam website after it turned out to be too hard for another developer.

Surf Santana

Surf Santana is a showcase for beach front property in a resort area in Nicauragua. There weren't any prebuilt scripts that were able to meet the clients needs, so I custom built a data based interface for uploading, editing, and displaying property information, along with a custom built photo gallery.

Journey Blue Heaven

Journey wanted a simple but colorful design to show all the music agents. She calls this her "smart site"

Woodstock Tell-a-Vision

A Wordpress website. Woodstock Tell-a-vision was a weekly cable TV show from Woodstock NY. It had lots of interesting guests and musical acts, which were recorded live. I was on the show a couple times and I built this wordpress website which contains all the show's videos.

ABC Timeclock

ABC Timeclock is a free database driven website used by thousands of people to keep track of thier hours. Anyone can create a user or a company account, log in and out, create and save job descriptions and create invoices.


I wrote this site as a tribute to my grandfather, Cardini. The material was given to my family by Grandad and Grandma, and includes much that has never been seen by the general public until now. I put it all into a database and created a way to browse various categories.

This was the first database driven website I ever wrote. I taught myself how to program while writing this website.


Call anytime



Writing HTML

Let Geolib do the work

The html on this website was written with the Geolib library of PHP functions. I didn't have to write one html tag.

There are basically 4 ways to write web pages. One is to write all the html tags out yourself. Another is to use a "What You See Is What You Get" editor such as Dreamweaver. Another is to use a scripting language along with templates for your pages to add the content to the html. And yet another is to use a scripting language to write the html for you. The Geolib library is for those who prefer this last method.

Geolib is so easy to use even kids can use it to write valid html without worring about all the details. There is no need to understand complicated design patterns or templates. You don't even have to keep track of start and end tags. Geolib does that for you. Its more versatile than using what-you-see-is-what-you-get editors like Dreamweaver, and also writes better code because you have more control over the html details. If you do want to debug the html in the source code, the html code can be printed in a pretty format.

Most html tags are represented by wrapper functions. The wrappers are carefully written to utilize the most common arguments in the most convenient order in order to serve the most common purposes. If their interface is not sufficient, you can always use the base classes. The following functions are named with a "geo" prefix and the html tag it produces

  • geoBody() for <body>
  • geoTable() for <table>
  • geoScript() for <script>
  • geoImg() for <img>
  • geoHtml() for <html>

Functions that produce html input elements are named with the "geo" prefix followed by type of input

  • geoText for <input type="text">
  • geoTextarea for <textarea>
  • geoCheckbox for <input type="checkbox">
  • geoRadio for <input type="radio">
  • geoSelect for <input type="select">

Finally, there are eight functions named for the tag they produce without the geolib prefix.

  • div() for <div>
  • p() for <p>
  • span() for <span>
  • h1() for <h1>
  • h2() for <h2>
  • h3() for <h3>
  • h4() for <h4>
  • b() for <b>
  • i() for <i>


The geoTable function completely eliminates the needs to write out html for tables. Its quicker, you never need to keep track of tags for tables, table rows or table cells, and when you come back to edit the page you don't have wade through all those tags to get to your content.

To build a table, create an array for each row, and then add those arrays to another array.

  • $row[]="cats;"
  • $row[]="frogs;"
  • $row[]="dogs";
  • $rows[]=$row;
  • $row2[]="onions";
  • $row2[]="grapes";
  • $row[]2="tomatoes";
  • $rows[]=$row2;

Another way to do the same thing:

  • $row=array("cats","frogs","dogs");
  • $row2=array("onions","grapes","tomatoes");
  • $rows=array($row,$row2);

Then simply add the array as the first argument to the geoTable() function:

  • $table=geoTable($rows)

And it looks like this:


View or Download

Go to github to view or download the Geolib git project.

Peter Pitchford

PO Box 584, Accord, New York 12404


Results-oriented, technically sophisticated programming professional with solid history of effective website design and development, software development, and application design. Exceptional ability to work under high pressure, offering solid skills in systems architecture/design, full cycle of project development, and visionary productivity/performance/systems enhancement, complimented by a proven ability to deliver innovative improvement strategies to meet organizational objectives. Seeks telecommuting position.

Areas of Expertise:

  • Website Development & Execution
  • Database Design/Development
  • Project Management/Coordination
  • Systems Strategy & Implementation
  • Troubleshooting & Problem Resolution
  • User Training and Support

Technical Proficiencies


Linux, Apache, Windows NT, Mac OS


UltraEdit, Dreamweaver, Flash, Fireworks, Photoshop, Illustrator, Microsoft Word, Excel, Outlook, PowerPoint, PHP, ASP, HTML, CSS, JavaScript, Mysql, Pgsql, Ajax, Actionscript

Professional Experience

2014 – PresentProgrammer, Web Developer, Geotonics, Accord, New York

As the owner/operator of Geotonics I have contracted with various startups as they got off the ground.

  • Took over an event driven Wordpress social media website.
  • Built a showcase for beach front property in Nicaragua.
  • Built a front and backend for dealers partnered with Verizon to sell network equipment to retail franchises across the country. The application keeps track of hardware sales, customer data, and subscription services.
  • Built plugins and added custom algorithms to Word Press sites.

2003 - 2014 Programmer, New Global Marketing, Rosendale, New York

Served as lead webpage programmer. Designed and implemented web applications; supported and administered web-enabled applications and web serving systems, and identified and resolved technical issues. Oversaw and troubleshooted a database of 8000+ products. Conducted extensive systems administration, reporting/distribution, and software configuration. Identified/resolved technical issues, and database/web breaches. Conducted extensive project coordination/planning, troubleshooting, and application installations and implementations. Assessed, mitigated, resolved deficiencies, and strategically recommended corrective actions.

Key Achievements:

  • Implemented search engine optimizations, directly aligned company visibility and presence; added and updated links for various brands and categories.
  • Resolved and conducted extensive troubleshooting of numerous technical issues; re-authored code to optimize e-commerce website.
  • Edited PHP, HTML, CSS and JavaScript; implemented flash audio streaming, and developed database.
  • Supported cross-functional teams in planning and execution of special projects. Critically evaluated project requirements and coordinated delivery of appropriate resources to meet operating demands.
2004 - 2014

Website Editor, Enneagram Institute, Stone Ridge, New York

Collaborated with the Director of Special Programs to update and manage website using ASP, HTML, CSS, and JavaScript. Identified and resolved technical issues. Conducted and prepared daily/weekly/monthly processing of reports. Performed regular support and administering of website development.

Key Achievements:

  • Implemented processes and systems that generated higher productivity and revenues through daily operations management and superior leadership.

Education and Training

Computer Science, Ulster County Community College, Stone Ridge, New York

~ Cisco Networking Academy Program