Open Source Projects
I've been a strong believer in the open source philosophy of sharing and giving back to the community. Here are some projects I've created/been heavily involved in grouped by technology.
I've been working with Drupal for the last 12 year or so (Drupal.org id: cgmonroe). Ever since Drupal 6. Have been working with Drupal 8 for the last 4 years. Have to say that D8's OOP felt right at home after working with Java for many year.
A quick way to see how much I have been involved in the Drupal community is to Google: Drupal cgmonroe (for pages I'm mentioned on) or Drupal Greg Monroe (for video / slides I have presented). I am also a frequent contributor to the Stackexchange Drupal channel.
Or here are some highlights:
Community Presentations
Drupal Camp Asheville:
- 2014 - Introduction to Drupal Module Internals
- 2017 - Facet'-nated with Search API and DB or Solr backends
- 2018 - Tips on Securing Drupal Sites
- 2019 - Structured SEO Data
Drupal Camp Atlanta
- 2018 - Tips on Securing Drupal Sites
- 2019 - Structured SEO Data
Former Co-coordinator of Triangle Drupal Users group (USA/NC Research Triangle area) groups.drupal.org/tridug. Regular presenter (when another one couldn't be found... lol).
- Slides for various TriDUG presentations I did can be found on my Slideshare account.
Contrib Projects
I've been involved in a lot of different Drupal contrib projects over the years. Here's a list of the ones I've contributed the most to over the years.
Layout Options (D8)
I wrote this module to support a new website that used Layouts. It allows non programmers to easily add configuration options via yaml files. Initially, it was just going to be for the site being built but I decided to put in the extra time to make it a contrib module usable by everyone.
The Better Mega Menu (a.k.a TB Mega Menu) (D8)
It became a maintainer for this because the current maintainer had disappeared and there were a variety of D8 versions on Github. I took the most recent of these, modified it to use D8 configuration options, and this became the D8 version.
Require Login by Site (D7/D8)
I wrote this as a companion module the the Require Login module. It allows for dev and test sites to require user login but allow production sites to be open.
LDAP integration (D6/D7)
While working on a project that required SSO for several Drupal sites, I started using LDAP Integrations. After I submitted a bunch of patches and new features, they made me a maintainer. I did most of the work that went into the 1.0-Beta3 release.
General Contributions
I have always made sure to create/update issues with any bug fix/featured enhancements I have added to contributed modules. Especially since having the patch file on d.o make it easier with D8 and Composer applied patches.
Some example submission are:
SimpleSitemap - Improved a patch to add sitemap_index.xml support.
Schema.org - Add support for languages to website / pages
Feeds - Expire feature deletes all imported items
Facets - Multilingual Facet error
I have been programming in Java since Sun released V1.0. Here are some of the open source projects I have been involved with.
Apache Torque (db.apache.org/torque)
In designing a Web applications component system for work, I decided to use Torque as the database interface. It had many nice features that helped get the project up and going quickly. Unfortunately, the MS SQL server "adaptor" was a bit old and neede refreshing... and then my project needed a few extra features... so one thing led to another and now I am currently a Project Management Committee member for the Apache Software Foundation DB / Torque project.
Torque Add-ins (torque-addons.sourceforge.net)
I created this SourceForge project to offer some add in functionality to the Torque package. The intent was for other developers to add to this. Currently it included two Add-In packages that I wrote, the Torque Betwixt Templates and the XML Import / Export Add-in.
These add-in were designed to allow data to be easily transported between sites via XML without having to write much code. The Torque generator would create the required support for this. It was used internally at my work as part of a REST API used to sync info across a firewall.
jForum (jforum.net)
jForum is a java base phpBB clone that became much more. It is quite scaleable. In fact, EA Games uses it as the basis for it's online forums.
I got involved in jForum when we selected it to be the "forum" component in our web applications. It was Java based and had a robust "Single Sign on" api. To learn it, I ended up hanging out on the (now defunct) support forum. In the spirit of giving back to the community, I became one of the major "experts" answering questions posted.
Unfortunately, the developer decided to drop the support forum after his server crashed.
I have been doing Javascript since Mosaic was the only web browser. I discovered the joys of jQuery about the time V1.1 came out. Here are some jQuery packages I have written in the past.
Haven't been doing a lot with packages recently, but I still pull out the jQuery "magic" frequently.
wordFilter (people.apache.org/~gmonroe/wordFilter)
Word filter is a jQuery plug-in I wrote that allows a page to have an "ajax like" search box that will filter information on the page based on user input. E.g., if you have a list of many articles on a single page, this lets you easily add ways that the article list can be trimmed based on use input.
See the link to the site above for details and a demo.
feedReader (people.apache.org/~gmonroe/feedReader)
We needed a way to support RSS feeds on a site. So, I wrote this RSS feedReader plug in. It allows for a lot of different ways to display RSS feeds to users using jQuery as the underlying basis.
See the link above for details and a demo.
urlUtils (never published)
This is a package I wrote to support the HTML/jQuery only sites for the two packages above. It supplies a couple of features to determine actions to take based on the page URI. For example, determining which main navigation tab get the "active" CSS styling. This lets you define actions based on the base URI. E.g., if the URL starts with the URI of /demos do some jQuery magic.
jQuery Package Site Template (never published)
In creating the packages above, I needed a quick way to put together delivery sites. The web server I was using does not support any dynamic languages, so I decided to create a faux dynamic sites using just HTML, CSS, and jQuery. The end result was a template site designed to showcase jQuery plug-ins that could just be copied and the wordsmithing started.