GitHub Projects

So, it's become quite clear that I have a bit of a problem. Perhaps, I share too much. In light of this, I will detail my GitHub projects and try to point out why they are there, and what they are useful for.

This list will likely be in no particular order.

General Libraries

PffTaskSync

This project was built to reduce redundant data maintenance when using two services to manage your workflow. We have been using Asana to manage our task lists, and wanted to incorporate some time tracking with Toggl, but didn't want the overhead of managing the data in two places.

In come PffTaskSync which offers a library set for developers to build a tool to keep such task synced between services. That's what it does. It tries to do it well.

PffTextSizeCalculator

The PffTextSizeCalculator project provides a simple tool to help you set your text up to be positioned precisely into a fixed medium (say, images, or in my use case, PDFs).

The example in the readme provides a pretty clear usage. The edges are a little rough right now, but with a little work it will get the job done nicely. It's already moved my project from impossible to win.

MajaxTagParser

This is a rather interesting library solving a particularly specific problem. I wanted a way for users to easily build complex queries against a tag database. This library allows you to convert "tag1 + tag2 - tag3" into an array of IDs to feed into your lookup query. It uses an actual tokenizer and parser, and tries to be as efficient as possible, detecting duplicate pieces and reusing answers where possible.

MajaxTwilio

This is a library I am building to be able to more deliberately use the Twilio API in PHP. Focusing on ensuring your IDE can complete the code while your typing, the goal is to make already easy to make Twilio apps even easier to make.

MajaxEnewsletter

This is a toolset to help build an internal Enewsletter system. It provides an API you can attach into your framework and with at least semi-minimal fighting have an operating enewsletter system with a few nice features, such as dynamic templates powered by Twig.

MajaxInstaller

This is a tool I was building to help simplify an install process. I was preparing a project for another developer to take over, and I wanted to make their life easier with the project dependancies. It's not very far in to development as it was mainly built to scratch my own itch, but maybe it will help someone.

Framework Tools

Symfony-Sonata-Distribution

I have to be honest with you guys. I installed Symfony 1.x about 4 times. Then I copied my working install, and made my configuration changes. This is like that, but better.

I like the Sonata admin generator. I use Doctrine ORM. If this sounds like you, this will be your new best friend. It comes out of the box configured with:

  • FOSUserBundle
  • SonataAdminBundle
  • SonataDoctrineORMAdminBundle
  • SonataUserBundle
  • DoctrineMigrationsBundle

It's everything you need to get started. Clone it, configure your parameters.yml, run composer install and doctrine migrate. Your project will be ready for you to begin doing the things that matter.

Pagoda Symfony Sonata Distribution

This is the same as above, except it is a ready to go Quickstart for PagodaBox. Don't know what PagodaBox is? You should check out my post about PagodaBox.

Symfony 2 Bundles

MajaxWidgetBundle

This is a usability plugin mainly aimed at making some standard symfony widgets more end-user friendly. It will provide new HTML5-friendly Date, Time, and DateTime widgets, along with any others I can come up with along the way.

Symfony 1 Plugins

majaxWidgetsPlugin

This is essentially the same project as MajaxWidgetBundle except for Symfony 1. The goal was simply to provide more user friendly interfaces to common widgets via JavaScript overloading of the original components.

majaxDoctrineMediaPlugin

This plugin provides a rather robust solution for handling media types within your Symfony 1 project. With pre-made tools to build easy file uploads, handle photo, video, audio, and galleries (combining any combination of photos, videos, and audio clips), it gives you an easy way to add richness to your application without overly complicating everything.

On the user side, there's specific sections for each type of content, with uploads and previews available.

On the programmer side, there's tools to easily control display (height, width, aspect ratio, cropping method) for all media types (yes, it can resize your videos, with ffmpeg).

majaxMarkdownPlugin

This plugin provides a nice widget and code support for integrating Markdown into your application. The editor features a side-by-side code and live preview pane, with filters able to be added through your Symfony configuration.

majaxInstallerPlugin

This is the Symfony 1 framework implementation of the majaxInstaller library, adding console commands and config ties to help make it easier to use.

majaxPheanstalkPlugin

This used Pheanstalk (a php library interface to the beanstalk message queue) to help provide a nice Symfony friendly way to interface with it. It adds some queue management commands as well as a base worker class, and an easy way to run a worker from the command line.

Miscellaneous

Sirtet

This is just a little 'because I could' tech demo building a Tetris like clone in JavaScript. It's nothing terribly special, just addictive.

Shared Hosting PERL Wrapper

A very common problem in shared hosting is older scripts being exploited. In my experience, I've found 99% of these scripts tended to then rely on PERL to run. So I built this small wrapper to sit in PERL's place, subjectively rejecting execution requests based on the file path. It's not perfect, but it reduced actual successful exploits by a ridiculous amount.

AJAXLogger

This tool can help with debugging AJAX rich environments by allowing an easy way for a working developer to tap into a live response feedback loop, and smartly disabling itself when the developer is no longer watching.

Forks

AppendAround

I have submitted a PR adding a buffer to the resize call, and consolidating the number of timers used.

iosSlider

I ran into some issues when trying to get the slider to scale the way I needed it to for the site it was being implemented on, and offered those changes (along with the test case as an example) back as a PR.

WhiteOctoberTCPDFBundle

Ran into a simple issue with the required symfony2 version in the composer file.

sfPHPUnit2Plugin

Added some tweaks to colinux's original plugin mainly focused on including plugin's unit tests to help make running tests easier.