What Version Are You?

I started listening to the SitePoint Versioning Podcast this week and they ask each of their guests an interesting question.  In your current career, what version are you? Being a developer, this question really intrigued me. What version am I?

After thinking about this question for a while I have determined that I am version 2.2 in production, but version 3.0 is currently in beta. I felt it was important for me to make this distinction as while I am working to launch my own software/service company, I still have a day job that consumes the majority of my time.

Rather than leaving it at just what version I am now, I decided to write this post more like a change log to look at how I have grown in my career overtime.

Version 0.1
I began writing HTML and publishing websites when I was around 12 years old. Of course it was 1997 so I was using GeoCities and had a number of sites ranging from a personal site to fan sites for different interests.

Version 0.2
While in high school I took over as webmaster for my high school as an independent study. I also started to explore Visual Basic and actually contributed code to a radio telescope project at the local community college which read the values being transmitted from an inclinometer and translated it into the readable angle of the device. I have no clue if this code was ever actually used for anything, but it was still something I remember working on.

Version 0.5
I was offered an internship at my high school and worked in the technology department during the summer and for a couple of hours each day.  My internship turned into a part-time job following graduation where I worked while attending college.

Version 1.0
I was offered and accepted a position at the local intermediate school district in their technology department. I was essentially the technology coordinator for one of the local school districts that they provided services for as well as webmaster for four school district websites.

Version 1.5
All of the local school districts in the county joined together to form an information services consortium. I was placed on the network team and as a team, we were given the task of determining how we would work to merge nine school districts into a single network, single domain structure, etc. The project lasted nearly three years from start to finish, but was successful and a great experience overall and landed me in the role of systems engineer.

Version 2.0
After nearly ten years in the education space, I decided it was time for a change. I had a friend that had worked in the IT department for a local healthcare system and he had been trying to get me to interview there for years. Unfortunately, I was not interested in a third shift job in the data center. However, when he called me about a developement job for their human resources software I was intrigued and eventually took the position.

Version 2.4 (present)
After I learned that there was a push to change the software that Human Resources was using to a cloud-based SaaS offering, I began looking at other initiatives that were getting started and I jumped on board a data archiving project with the friend that got me the job at the healthcare system. It was a very interesting project and would include lots of creativity and development so I was excited to get started on it and we are still working on this project daily.

Version 3.0 Beta (future)
About a year and a half ago I started my own business. The reason I list it as being in beta is because I have not been able to leave my day job and it will remain as so until I am able to do that. This venture is taking me back to my roots and I am working to provide web hosting and development services to local school districts. Web development is where my passion lies and I really have enjoyed working in education over the years and am excited to see where this leads.

Looking for WordPress Developers Interested in Joining a Mastermind

I have been wanting to put together a mastermind group for a few months now, however, I think I would like to focus on WordPress development rather than business development.

I am looking for a few fellow WordPress developers that would like to join a mastermind group to discuss what we are working on and where we are stuck.  I think it would be good to have people to bounce ideas off of, to help point me to the right action/filter when I am stuck on an issue, and just give advice on how they would solve the issue I am working on.

The ideal members would be people who consider themselves to be at least intermediate level WordPress developers.  Preferably you have written an entire plugin yourself at minimum.  My primary focus is on plugins with themes as a secondary concern.  You don’t have to own a business, but it would be nice if you use WordPress as a source of income.

If this is something you might be interested in, hit me up on Twitter or send me an email and let’s discuss it!

Nested Networks Using WordPress Multisite and WP Multi Network

I have a project that I am working on where I wanted to be able to nest one multisite network within the other on a single domain and using a single install of WordPress.

For example:

  • domain.com  (Site 1, Blog 1)
  • domain.com/blog1 (Site 1, Blog 2)
  • domain.com/blog2 (Site 1, Blog 3)
  • domain.com/network1 (Site 2, Blog 4)
    • domain.com/network1/blog1 (Site 2, Blog 5)
    • domain.com/network1/blog2 (Site 2, Blog 6)
  • domain.com/just/showing/that/this/works (Site 3, Blog 7)
    • domain.com/just/showing/that/this/works/blog1 (Site 3, Blog 8)

Note: In case you are new to WordPress Multisite, the terminology is a little confusing. In the list above, “site” refers to a network, and “blog” refers to an individual site on the network.  Site and blog correspond to the appropriate tables and functions in core.

You may be wondering why even try something like this. The reason I started down this road is that it will allow me to leverage the single user base of WordPress Multisite, however, segment functionality by network activating specific plugins on specific networks.  It could also be used for organizational purposes in a large implementation.

To test out the code below:

  1. Setup WordPress Multisite using sub-directories.
  2. Install the WP Multi Network plugin from the plugin repository (following included installation instructions).
  3. Replace the contents of the .htaccess file you updated when setting up multisite with the code below.  There are only 3 small changes that allow for sub-directories more than one level deep to work properly.
  4. Create the file sunrise.php in the wp-content folder and place the code below within.
  5. Add the following line to your wp-config.php file.

Please let me know what you think and if you have any suggestion for improving the code! Thank you!

Error: Invalid XML Returned – PeopleSoft Excel-to-CI

Came across an interesting issue today while troubleshooting an error a coworker was having trying to use the Excel-to-CI tool.

All of the connection settings had been verified, but when trying to load a new template and entering their credentials, they would get the message “Error: Invalid XML Returned.”  I was able to use the Excel-to-CI tool just fine from my computer and later determined that I was able to use it just fine from their computer as well, which meant that the issue was related to the user account in some way.

The solution ended up being that the users password was about to expire in the test environment we were connecting to. They changed their password and everything started working fine!

Just in case the password is not the issue in your case, some other possible causes for this error that I found while researching this issue are:

  • Confirming the information that is set in the “Connect Information” sheet.
  • None of the permission lists of which the user is a member of has access to the WEBLIB_SOAPTOCI iScript.
  • Invalid characters within the actual data that is being uploaded, most commonly the “&”.

Planning a Large WordPress SaaS Product

This past year I have launched a WordPress SaaS product and as I have been adding features and adding to it I keep finding myself asking the same question. Should I build each feature as a separate plugin or group them together in larger plugins?

Based on feedback I received from a few people on Twitter earlier this year, I am under the impression that as long as everything is coded properly there is no performance benefit necessarily from either option. Functionality being the same as well, I am looking at this question purely from an organizational, ease of development, and project management perspective.

I determined early on that I didn’t want the entire product in a single plugin because it is hard to organize tasks and track the development of each feature. Right now, I have features grouped by common functionality.  For example, I have one plugin that has all of my dashboard related features in it, such as modifying roles and capabilities, tweaking the editor, modifying image uploads, etc. As I start looking to integrate third-party plugins, such as Jetpack and Gravity Forms, into my product, I plan to make one plugin to house all code needed to integrate all third-party plugins.

Taking my current structure and breaking it down one step further, I could build each as a separate plugin. For example have individual plugins for roles and capabilities, the editor, the media library, Jetpack integration, Gravity Forms integration, etc. My gut tells me that this level of granularity would be overkill,  but I keep asking myself the question.

With this post,  I am hoping to gather feedback, recommendations and opinions from others in the WordPress development world on how they have, or would, approach this and why. While the product I am working on right now is fairly small, I expect it to grow to be quite large over the coming years and am trying to set myself up for the future and make long-term development and maintenance more efficient.

If you have a few minutes and wouldn’t mind leaving me your thoughts in the comments, I would greatly appreciate it. Thank you in advance!

My Goals for 2016

Something I have never really done is set goals for the new year. I feel like I need to do that this year to pressure myself to dedicate time for them. It is something I have been thinking about more now with my business so I figured I would set some general professional goals for myself as well.

Start a Blog

For years, I have wanted to start blogging, but for one reason or the other, I have never just gotten started with it. Well, this year is the year. I have my blog up and my goals with it for this year is to build a custom theme for it and post at least two posts per month throughout the year.

Become More Involved with the WordPress Community

I made some great connections and found a wealth of help within the WordPress community in 2015. I hope to expand on that and take more of an active role this year.  My goal is to complete at least two of the following items in 2016:

  1. Submit at least one plugin to the WordPress plugin repository.
  2. Volunteer to help with a WordCamp.
  3. Attend a local WordPress Meet-up.
  4. Contribute a patch to WordPress core.

Learn JavaScript Deeply

While I have a decent handle on the JavaScript language over all and have used jQuery quite a bit, I have not ventured into the realm of things like Backbone.JS, AngularJS and React. With the directive from this years State of the Word being to “Learn JavaScript Deeply” I am making that one of my goals in conjunction with learning the WordPress REST API. I would like to:

  1. Build a custom endpoint using the REST API and use it in a production project.
  2. Use Backbone.JS (possibly with the REST API) to create something in the WordPress dashboard.
  3. Build something basic using the WordPress REST API in conjunction with either REACT or AngularJS as the front-end and WordPress as the back-end.

Favorite Podcasts of 2015

Something I had never gotten into nearly as much as I always wanted to was listening to podcasts.  My current commute to work is between 45 minutes and 1 hour so I have plenty of listening time.  For most of the year, I went back and forth between audio books and podcasts, however, more recently, I placed my Audible subscription on hold and have been listening to podcasts everyday.

Below is a list of my favorites from this year.  If you are looking for something to listen to, give them a try!

Apply Filters
If you are a WordPress developer, you definitely want to check out Apply Filters! Brad Touesnard and Pippin Williamson do an excellent job sharing their experiences, in-depth information on plugin development, and discussing details on new and upcoming features within WordPress. I enjoyed this podcast so much, I went back and listened to every episode!

Bootstrapped Web
Are you bootstrapping a business online? If so, then you definitely want to listen to Bootstrapped Web!  Brian Casel and Jordan Gal give you a view into their businesses and discuss their experiences running their businesses online. They also cover a wide array of topics in detail that will help anyone get started if trying to launch an idea online!

I started listening to the DradCast fairly recently, but it is already one of my favorites. They have made some changes to their format and so far, I really enjoy it. While still somewhat focused on WordPress, Brad Williams and Dre Armeda host a special guest each week and discuss current topics in WordPress, the Internet, and technology in general.

Free Beer and Hot Wings Show
The Free Beer and Hot Wings Show is a syndicated radio show that is based out of Grand Rapids, Michigan on WGRD 97.9 FM.  They can be heard on a number of stations, however, they also offer a VIP Podcast for a small fee a year which gives you access to recordings of every show as well as extra content.  I have been listening to them for over 10 years and if you are looking for some great laughs, check them out.

Post Status Draft
Have trouble keeping up with the fast-moving WordPress community? Brian Krogsgard and Joe Hoyle do great job discussing the latest WordPress news and interviewing members of the WordPress community. Because Joe is part of the WordPress REST API team, there have been quite a few episodes with good discussions involving that topic this fall as well.

Startups for the Rest of Us
There is a wealth of entrepreneurial experience between hosts Mike Taber and Rob Walling.  Whether you have launched your software product or just thinking about starting one, you will be able to take something away from each episode. If you are starting or running your own software business, give these guys a listen!

The Talking Dead
Not to be confused with AMC’s show The Talking Dead, this podcast recaps each episode of The Walking Dead and has actually been around longer than the TV counterpart.  I find the in-depth review of each episode great and find myself learning things I might have missed when watching the episode from time to time. If you are a fan of The Walking Dead and looking for a way to get more out of the show, give this one a listen!

WordPress Weekly
Hosted by Jeff Chandler and Marcus Couch, WordPress Weekly is an in-depth review of pressing topics in the WordPress community. Whether it be details on the latest release or great discussion with a special guest there is a lot to be gained from the content they put out. It is recorded live if you want to tune in as well!

WP Dev Table
Jason Resnick and Bronson Quick host WP Dev Table via Google Hangouts and then record it for release on the podcast.  Primary topics of discussion include best practices, source control, workflow, and other development based topics. Hopefully this show will see more regularity in 2016, but if you are a developer looking for a great podcast, listen to their back episodes.

Do you listen to others I should look into? Let me know in the comments!

Happy New Year!

The past year was particularly rough. From starting a new business to just dealing with the typical day-to-day stuff it has seemed to be to be one thing after another. Regardless, we made it through and will keep on going!

I look forward to the new year and hope it will bring new experiences and excitement to myself and my family. Starting this blog is something I have wanted to do for years and I look forward to sharing my experiences as I go through the next year.

I hope you all have a fun and prosperous 2016!

Hello world!

Hello world! …and welcome to my new blog! Being a developer and at this point assuming that the majority of the blog posts I will write will be related to development in one way or another I figured that was an appropriate way to get things started.

Over the years, I have benefited greatly from the willingness of countless others around the world that have spent their time and resources posting how-to’s, tutorials, tips, tricks, and other general information on their own blogs and websites. Those efforts have proved to be invaluable and it has been a goal of mine for the last few years to start my own blog so that I can post my own tips, tidbits, or anything else I feel is worth sharing. In hopes that someone following in my footsteps may benefit from something I have learned, stumbled upon, or discovered with a stroke of luck as I have in the footsteps of others.