How to Fix A Corrupted Gravity Forms Field Using a SQL backup
Recently we had an instance where a Gravity Form containing some custom JS became corrupted, with half of the code missing. I was able to restore the original Javascript from a SQL backup doing the following: Download a SQL backup (in my case I use Updraft) with a known “good” Gravity form Open the extracted

Refactoring MS SQL Tables To Enforce Referential Integrity
Over the break I was tasked with refactoring an old MVC 2 system for the Educational Opportunity Center. I didn’t build the original system, and this is what their underlying schema looked like:

Get iCal Feed Using Web Service and Adjust Event Times
Here’s some example code to fetch a token and then an iCal feed from a 3rd party service. Unfortunately the times are in UTC and the plugin we are using doesn’t respect the VTIMEZONE attribute, so I have to use regex to individually adjust all event times. private readonly static string tokenUrl = "https://domain:8445/token"; private

Using an External Web Service to Deliver WordPress E-mail
We recently discovered that Gmail doesn’t play nicely with emails that are sent from our Azure instance (which is hosting our WordPress sites). More specifically, Gmail users don’t receive the emails sent to them. Because of this, we have developed an API that resides on a local, on-campus server, wsnet2 to send out WordPress emails.

Student Affairs Sites
What follows is a listing of all sites managed by Student Affairs (WordPress, C#, etc.). View This Data in Google Sheets

Autoptimize, Fail2ban Fiasco
Please log in with your eID below:

CSS-Only Responsive CSU Header
Background CSU’s brand guidelines require that our websites have a responsive header. For large screens, the CSU signature should be written out on one line (Colorado State University); on medium screens, the CSU signature should be written on two lines (Colorado State–University); on small screens, the CSU signature should be shortened to our initials (CSU).

Automating Manual Plugin Updates
Please log in with your eID below:

2022 Conference Opportunities
Note: I make no warranty as to the accuracy of any of the info below; this is just my attempt at aggregating a few conferences of personal interest in one location Conference Name Location Date Price Purpose Url Microsoft Build Online May 24 – 26 FREE (normally $2,395 in person) General purpose Microsoft developer conference

User Registration Across Sites within a Multisite Network
WordPress multisite installs come with many benefits. But they also come with some quirks. One such quirk is how it handles user registration on sibling sites within the multisite network. Hypothetical Situation In this hypothetical scenario, we will have Site A, Site B, and a user named Alice. Previously, Alice had registered as a user

How to Switch From Import to Direct Query Mode in Power BI
I’m not sure why Microsoft sets “Import Query” as the default when creating new Power BI connections, but the tyranny of the default led me to create charts using that option. Weeks later I realized I didn’t want to manually refresh my reports and sought to switch the query mode to be direct instead. Here’s

Element/Widget Glossary
Webpages are made up of various types of elements (or “widgets”). The naming of these elements can sometimes be confusing, so this is a quick reference guide to various elements and their names. Table of Contents Accordion Item #1 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar

Restricting a User To Only Be Able To Access the Entries of One Specific Gravity Form
Quick Background Recently I was contacted by a university staff member who needed to access the Gravity Form entries of a specific form on one of our sites. Though this was a trusted user, they worked outside our Division, so I thought the best thing to do was the following (to ensure they could only

Tracking E-mail Opens
Recently I was asked by a client how she could track which recipients were opening her e-mail messages (without using a read receipt). It turned out to be a pretty easy process, after finding this article: http://dyn.com/blog/tracking-email-opens-via-google-analytics/. As a note of caution, Apple at least offers Mail Privacy Protection which blocks this ability. Anyways, as

How to effortlessly move a WordPress site using bash scripting + rsync + WP-CLI
After recently being tasked with moving around 100 sites (some multisite, some not), I thought it worth the effort to create migration scripts. Now, instead of potentially hours worth of work, running these scripts typically takes less than 1 minute. I chose to split the scripts up, one to place on the source server, and

Protecting WordPress File Uploads
A Go-Daddy backed security company analyzed over 25k infected websites and 4,426,795 cleaned files to determine that the WordPress content management system accounted for 90% of all hacked websites in 2018 (increasing from 83% in 2017). The top three tactics for attacks included backdoors (68%), malware (56%), and SEO spam (51%).

Opening Up A Specific Tab, Toggle, or Accordion Using Elementor
One of the nice things about WPBakery is that you can easily link to and open a specific tab out of the box. Hopefully Elementor will add this feature in the future, but until they do, here’s some JS code to make it happen, using the tab, toggle, or accordion titles as the anchor links

Search Engine Optimization
Learning about SEO Beginner’s Guide to Search Engine Optimization On-Page Search Engine Ranking Factors 9 Ways To Promote Your Site On-Page SEO: The Definitive Guide Tools 45 SEO Tools SEO Optimization with Yoast (if you don’t have Yoast on your site, contact your web developer) Five Minute Guide To Improving Your Ranking In Google While

Caching Explained
This post greatly simplifies some of the core conepts of the web. If you’re interested in learning more about the underpinnings of the web, refer to “Further Readings” at the bottom of this post. Quick Background Before digging into caching, it’s important to briefly cover the core principles of how the Internet works. Within the

Using ASP.NET C# to Read Data from Google Sheets
In the following tutorial, we’ll be reading a Google Sheet (https://docs.google.com/spreadsheets/d/1-6XeX59-zgqi_z5Bm8dqYyO1z37tfi8Ur7o5mxmmVKo/edit?usp=sharing), porting it into an ASP.NET web site. Create a new Visual Studio ASP.NET C# project (Ctrl + Shift + N) Create a new empty web site Create a new master page, naming it site.master, and a new content page, default.aspx Visit https://developers.google.com/sheets/api/quickstart/dotnet and enable

Syncing an Access DB to MS SQL
MS Access has fallen out of favor many years ago, especially for use on the web, but it’s still being used by offices to capture data internally. When recently asked whether that data could be exposed on a website, I thought I’d put together the following ASP.NET code to be able to do so relatively

PowerShell: How To Receive Alerts When A Box is RDP’d
The following PowerShell script sends a text message and e-mail whenever any user RDPs into a Windows machine (obviously you would only want to do this in limited, critical instances). This script is a bit of a work in progress, but got the job done for our purposes. Note, much of this code, and the

WordPress Now Comprises 90% of Hacked Sites, But Is It Inherently Vulnerable?
A Go-Daddy backed security company analyzed over 25k infected websites and 4,426,795 cleaned files to determine that the WordPress content management system accounted for 90% of all hacked websites in 2018 (increasing from 83% in 2017). The top three tactics for attacks included backdoors (68%), malware (56%), and SEO spam (51%).

Using rSync To Quickly Upgrade WordPress Plugins
We occasionally have commercial WordPress plugins that don’t auto-update. In those instances, it’s still easy to upgrade them all at once, across both our multi-site networks/sites using the following bash script. #!/bin/bash # execute script in terminal by running bash scriptname.sh # to generate public/private key pair (to avoid repeated logins) # ssh-keygen -t rsa

Using Templates Within the DSA Bulk E-mailer
This article assumes some basic familiarity with the Division of Student Affairs Bulk E-mailer tool at http://dsalistserv.colostate.edu/emailer.aspx. More information about basic functionality of the system can be found under the “Preview Message” tab on that site. Up until recently, you had to search through the Message History tab to find and re-use a previously sent

Custom Post Types in WordPress
What Are Custom Post Types? While most WordPress sites at CSU primarily use Pages, Posts can be just as, if not more, useful in the right context. Typically, posts are viewed as a blogging feature intended for your everyday, typical blog. However, nothing within WordPress restricts you to use posts solely for blog posts. You can

Creating Your Own WordPress Shortcode
Shortcodes: An Introduction What are shortcodes in WordPress? As WordPress.com elegantly says, A shortcode lets you do nifty things with very little effort. Think of a shortcode as a shortcut to add features to your website that would normally require lots of complicated computer code and technical ability. When Would I Need to Use a

ASP.NET security configuration tips
67% of ASP.NET websites have serious configuration related security vulnerabilities https://www.troyhunt.com/67-of-aspnet-websites-have-serious/ Issue Description Many web developers believe that newer Microsoft development frameworks such as ASP.NET (aka .NET) including MVC, Web Forms, or .NET Core protect them from many of the security vulnerabilities present in classic ASP and other older technologies. However, this is a false

What is Agile?
What follows are two excellent introductions to learning more about agile processes (which are applicable both to software development and to project management as a whole) https://www.youtube.com/watch?v=Z9QbYZh1YXY Why Have a Daily Standup An Introduction To Scrum

How to Check My Site’s Analytics – First Steps
I utilize Google Analytics for all of my public websites. If you want to get to that data without my intervention, you will need a Google account to do so. Here’s the steps that are taken to obtain analytics data: I would create a Google Analytics account profile for you and then wire up your

Adding Outlook Events Via portal.office.com
Here’s how to manage your Outlook calendar via a web browser: Open up your preferred browser and log into portal.office.com. Click the Outlook Calendar icon in the left sidebar. Click the little calendar icon at the bottom left of your screen. Or the direct link is https://outlook.office.com/calendar/. Click the blue “New Event” button in the

Power BI – Switching from Import to Direct Query
When getting data for Power BI, the default setting is “Import” and not “DirectQuery”. Import doesn’t work too well for me at least, because my data sets are all changing every day. Here are some tips in converting a project to instead use DirectQuery. First, back-up your file and then open your new copy (of

Granting Calendar Access – Outlook Calendar Display For WordPress Plugin
Outlook Calendar Display for WordPress is a nifty little plugin that makes it possible to display the full details of any Outlook calendar on a WordPress site. Unfortunately, it requires fairly aggressive permissions in order to generate the necessary tokens to work properly: https://wpintegrate.com/kb-article/outlook-calendar-display-for-wordpress-app-permissions/. However, it’s possible to work around this issue by taking a

Common SQL Queries
Please log in with your eID below:

Power BI Slicer For Multiple Columns
Recently I had the need of creating a slicer in Power BI that would filter against different columns in a system storing the same type of data: case types for Student Legal Services. For purposes of remembering how this functionality was accomplished, I’m documenting it here: https://www.sqlbi.com/articles/creating-a-slicer-that-filters-multiple-columns-in-power-bi/#

Elementor
What is Elementor? Elementor is one of the fastest growing page builder plugins available for WordPress. Like other page builders, it provides website editors the ability to create complex pages using a simple, intuitive interface. Editing Your Page Using Elementor Signing In Sign into the back-end of your site (if you don’t know the url

Tidio Live Chat
What is Tidio? Tidio is a 3rd-party service that can be integrated with your website to allow visitors to engage in real-time (live) chat with you or your staff members. This Documentation is DSA-Specific If you or your office are not within the Division of Student Affairs, we’d recommend you reach out to your unit’s

Slider Revolution
What is Slider Revolution? Slider Revolution is an extremely powerful WordPress plugin that allows editors to create complex image sliders on their website. Most often you will see Slider Revolution being used at the top of a website’s homepage however it can be used anywhere within your WordPress website. Terminology Slides are individual slides that

The Newsletter Plugin
What is The Newsletter Plugin? The Newsletter Plugin (sometimes referred to simply as “Newsletter” within WordPress) is a plugin that allows you to easily create newsletters to send to subscribers. While you can use it to send out a generic email with static text, the real benefit comes from it automatically pulling your website’s posts

WordPress Introduction
What is WordPress? WordPress is the primary content management system (CMS) for the Division of Student Affairs and its websites. It’s open-source software that is not only the most used CMS at Colorado State University but is also the most commonly used CMS across the Internet as a whole. It allows for the rapid creation

Gravity Forms
What is Gravity Forms? Gravity Forms is an extremely powerful and flexible WordPress plugin that can be used in place of nearly any traditional, paper-based form. If you or your office want to convert any existing paper-based forms to an online form, Gravity Forms is the perfect solution. Building & Configuring a Form Adding Fields/Questions

WPBakery Page Builder
What is WPBakery Page Builder? WPBakery Page Builder (sometimes shortened to just WPBakery) is one of the longest maintained WordPress page builders. Due to a rebranding in 2019, you’ll sometimes see references to it using its old name “Visual Composer.” In previous versions of WordPress, it was extremely limited in its design capabilities and, as

Using Task Scheduler To Open Outlook At Predefined Intervals, Using PowerShell
This post is going to show you how to leverage Windows Task Scheduler and PowerShell in order to open Outlook at predefined intervals throughout the day. Why you ask? If you find yourself unable to ignore those pesky new message notifications (or, if you already know how to disable Outlook notifications, but can’t resist the

Installing the Oracle Client In Order To Connect to Banner/ODS
Every time I deploy a new machine I have the chore of installing the Oracle drivers/client in order to be able to connect to odsprod/banprod from my desktop (when testing locally in Visual Studio). As I unfortunately misplaced the old directions to do so, with the help of Mike Brake I was able to recreate

Know When Your Site Goes Down Before Your Clients Do
I’m not too happy when a site I am responsible for goes down. I especially don’t like it when a client alerts me to this fact, when I should have known/fixed the issue myself well before their knowledge of the issue. So, here’s how to prevent such an occurrence from ever happening to you again.

PHP Web Auth
Download php-webauth.zip [insert link] To get started: Sign in to eService, www.eid.colostate.edu, and set the Web Auth Return Destination value https://[DestinationUrl]/result.php Locate and change the eServiceToken and Submit properties to your assigned eService Token and desired submit button (see the code’s comments for more information) in Login method of webauth.php $this->eServiceToken = ‘1234….’; $this->Submit = “Default”;

2022 Conference Opportunities
Note: I make no warranty as to the accuracy of any of the info below; this is just my attempt at aggregating a few conferences of personal interest in one location Conference Name Location Date Price Purpose Url Microsoft Build Online May 24 – 26 FREE (normally $2,395 in person) General purpose Microsoft developer conference

Adding Outlook Events Via portal.office.com
Here’s how to manage your Outlook calendar via a web browser: Open up your preferred browser and log into portal.office.com. Click the Outlook Calendar icon in the left sidebar. Click the little calendar icon at the bottom left of your screen. Or the direct link is https://outlook.office.com/calendar/. Click the blue “New Event” button in the

ASP.NET security configuration tips
67% of ASP.NET websites have serious configuration related security vulnerabilities https://www.troyhunt.com/67-of-aspnet-websites-have-serious/ Issue Description Many web developers believe that newer Microsoft development frameworks such as ASP.NET (aka .NET) including MVC, Web Forms, or .NET Core protect them from many of the security vulnerabilities present in classic ASP and other older technologies. However, this is a false

Automating Manual Plugin Updates
Please log in with your eID below:

Autoptimize, Fail2ban Fiasco
Please log in with your eID below:

Caching Explained
This post greatly simplifies some of the core conepts of the web. If you’re interested in learning more about the underpinnings of the web, refer to “Further Readings” at the bottom of this post. Quick Background Before digging into caching, it’s important to briefly cover the core principles of how the Internet works. Within the

Common SQL Queries
Please log in with your eID below:

Creating Your Own WordPress Shortcode
Shortcodes: An Introduction What are shortcodes in WordPress? As WordPress.com elegantly says, A shortcode lets you do nifty things with very little effort. Think of a shortcode as a shortcut to add features to your website that would normally require lots of complicated computer code and technical ability. When Would I Need to Use a

CSS-Only Responsive CSU Header
Background CSU’s brand guidelines require that our websites have a responsive header. For large screens, the CSU signature should be written out on one line (Colorado State University); on medium screens, the CSU signature should be written on two lines (Colorado State–University); on small screens, the CSU signature should be shortened to our initials (CSU).

Custom Post Types in WordPress
What Are Custom Post Types? While most WordPress sites at CSU primarily use Pages, Posts can be just as, if not more, useful in the right context. Typically, posts are viewed as a blogging feature intended for your everyday, typical blog. However, nothing within WordPress restricts you to use posts solely for blog posts. You can

Element/Widget Glossary
Webpages are made up of various types of elements (or “widgets”). The naming of these elements can sometimes be confusing, so this is a quick reference guide to various elements and their names. Table of Contents Accordion Item #1 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar

Elementor
What is Elementor? Elementor is one of the fastest growing page builder plugins available for WordPress. Like other page builders, it provides website editors the ability to create complex pages using a simple, intuitive interface. Editing Your Page Using Elementor Signing In Sign into the back-end of your site (if you don’t know the url

Get iCal Feed Using Web Service and Adjust Event Times
Here’s some example code to fetch a token and then an iCal feed from a 3rd party service. Unfortunately the times are in UTC and the plugin we are using doesn’t respect the VTIMEZONE attribute, so I have to use regex to individually adjust all event times. private readonly static string tokenUrl = "https://domain:8445/token"; private

Granting Calendar Access – Outlook Calendar Display For WordPress Plugin
Outlook Calendar Display for WordPress is a nifty little plugin that makes it possible to display the full details of any Outlook calendar on a WordPress site. Unfortunately, it requires fairly aggressive permissions in order to generate the necessary tokens to work properly: https://wpintegrate.com/kb-article/outlook-calendar-display-for-wordpress-app-permissions/. However, it’s possible to work around this issue by taking a

Gravity Forms
What is Gravity Forms? Gravity Forms is an extremely powerful and flexible WordPress plugin that can be used in place of nearly any traditional, paper-based form. If you or your office want to convert any existing paper-based forms to an online form, Gravity Forms is the perfect solution. Building & Configuring a Form Adding Fields/Questions

How to Check My Site’s Analytics – First Steps
I utilize Google Analytics for all of my public websites. If you want to get to that data without my intervention, you will need a Google account to do so. Here’s the steps that are taken to obtain analytics data: I would create a Google Analytics account profile for you and then wire up your

How to effortlessly move a WordPress site using bash scripting + rsync + WP-CLI
After recently being tasked with moving around 100 sites (some multisite, some not), I thought it worth the effort to create migration scripts. Now, instead of potentially hours worth of work, running these scripts typically takes less than 1 minute. I chose to split the scripts up, one to place on the source server, and
How to Fix A Corrupted Gravity Forms Field Using a SQL backup
Recently we had an instance where a Gravity Form containing some custom JS became corrupted, with half of the code missing. I was able to restore the original Javascript from a SQL backup doing the following: Download a SQL backup (in my case I use Updraft) with a known “good” Gravity form Open the extracted

How to Switch From Import to Direct Query Mode in Power BI
I’m not sure why Microsoft sets “Import Query” as the default when creating new Power BI connections, but the tyranny of the default led me to create charts using that option. Weeks later I realized I didn’t want to manually refresh my reports and sought to switch the query mode to be direct instead. Here’s

Installing the Oracle Client In Order To Connect to Banner/ODS
Every time I deploy a new machine I have the chore of installing the Oracle drivers/client in order to be able to connect to odsprod/banprod from my desktop (when testing locally in Visual Studio). As I unfortunately misplaced the old directions to do so, with the help of Mike Brake I was able to recreate

Know When Your Site Goes Down Before Your Clients Do
I’m not too happy when a site I am responsible for goes down. I especially don’t like it when a client alerts me to this fact, when I should have known/fixed the issue myself well before their knowledge of the issue. So, here’s how to prevent such an occurrence from ever happening to you again.

Opening Up A Specific Tab, Toggle, or Accordion Using Elementor
One of the nice things about WPBakery is that you can easily link to and open a specific tab out of the box. Hopefully Elementor will add this feature in the future, but until they do, here’s some JS code to make it happen, using the tab, toggle, or accordion titles as the anchor links

PHP Web Auth
Download php-webauth.zip [insert link] To get started: Sign in to eService, www.eid.colostate.edu, and set the Web Auth Return Destination value https://[DestinationUrl]/result.php Locate and change the eServiceToken and Submit properties to your assigned eService Token and desired submit button (see the code’s comments for more information) in Login method of webauth.php $this->eServiceToken = ‘1234….’; $this->Submit = “Default”;

Power BI – Switching from Import to Direct Query
When getting data for Power BI, the default setting is “Import” and not “DirectQuery”. Import doesn’t work too well for me at least, because my data sets are all changing every day. Here are some tips in converting a project to instead use DirectQuery. First, back-up your file and then open your new copy (of

Power BI Slicer For Multiple Columns
Recently I had the need of creating a slicer in Power BI that would filter against different columns in a system storing the same type of data: case types for Student Legal Services. For purposes of remembering how this functionality was accomplished, I’m documenting it here: https://www.sqlbi.com/articles/creating-a-slicer-that-filters-multiple-columns-in-power-bi/#

PowerShell: How To Receive Alerts When A Box is RDP’d
The following PowerShell script sends a text message and e-mail whenever any user RDPs into a Windows machine (obviously you would only want to do this in limited, critical instances). This script is a bit of a work in progress, but got the job done for our purposes. Note, much of this code, and the

Protecting WordPress File Uploads
A Go-Daddy backed security company analyzed over 25k infected websites and 4,426,795 cleaned files to determine that the WordPress content management system accounted for 90% of all hacked websites in 2018 (increasing from 83% in 2017). The top three tactics for attacks included backdoors (68%), malware (56%), and SEO spam (51%).

Refactoring MS SQL Tables To Enforce Referential Integrity
Over the break I was tasked with refactoring an old MVC 2 system for the Educational Opportunity Center. I didn’t build the original system, and this is what their underlying schema looked like:

Restricting a User To Only Be Able To Access the Entries of One Specific Gravity Form
Quick Background Recently I was contacted by a university staff member who needed to access the Gravity Form entries of a specific form on one of our sites. Though this was a trusted user, they worked outside our Division, so I thought the best thing to do was the following (to ensure they could only

Search Engine Optimization
Learning about SEO Beginner’s Guide to Search Engine Optimization On-Page Search Engine Ranking Factors 9 Ways To Promote Your Site On-Page SEO: The Definitive Guide Tools 45 SEO Tools SEO Optimization with Yoast (if you don’t have Yoast on your site, contact your web developer) Five Minute Guide To Improving Your Ranking In Google While

Slider Revolution
What is Slider Revolution? Slider Revolution is an extremely powerful WordPress plugin that allows editors to create complex image sliders on their website. Most often you will see Slider Revolution being used at the top of a website’s homepage however it can be used anywhere within your WordPress website. Terminology Slides are individual slides that

Student Affairs Sites
What follows is a listing of all sites managed by Student Affairs (WordPress, C#, etc.). View This Data in Google Sheets

Syncing an Access DB to MS SQL
MS Access has fallen out of favor many years ago, especially for use on the web, but it’s still being used by offices to capture data internally. When recently asked whether that data could be exposed on a website, I thought I’d put together the following ASP.NET code to be able to do so relatively

The Newsletter Plugin
What is The Newsletter Plugin? The Newsletter Plugin (sometimes referred to simply as “Newsletter” within WordPress) is a plugin that allows you to easily create newsletters to send to subscribers. While you can use it to send out a generic email with static text, the real benefit comes from it automatically pulling your website’s posts

Tidio Live Chat
What is Tidio? Tidio is a 3rd-party service that can be integrated with your website to allow visitors to engage in real-time (live) chat with you or your staff members. This Documentation is DSA-Specific If you or your office are not within the Division of Student Affairs, we’d recommend you reach out to your unit’s

Tracking E-mail Opens
Recently I was asked by a client how she could track which recipients were opening her e-mail messages (without using a read receipt). It turned out to be a pretty easy process, after finding this article: http://dyn.com/blog/tracking-email-opens-via-google-analytics/. As a note of caution, Apple at least offers Mail Privacy Protection which blocks this ability. Anyways, as

User Registration Across Sites within a Multisite Network
WordPress multisite installs come with many benefits. But they also come with some quirks. One such quirk is how it handles user registration on sibling sites within the multisite network. Hypothetical Situation In this hypothetical scenario, we will have Site A, Site B, and a user named Alice. Previously, Alice had registered as a user

Using an External Web Service to Deliver WordPress E-mail
We recently discovered that Gmail doesn’t play nicely with emails that are sent from our Azure instance (which is hosting our WordPress sites). More specifically, Gmail users don’t receive the emails sent to them. Because of this, we have developed an API that resides on a local, on-campus server, wsnet2 to send out WordPress emails.

Using ASP.NET C# to Read Data from Google Sheets
In the following tutorial, we’ll be reading a Google Sheet (https://docs.google.com/spreadsheets/d/1-6XeX59-zgqi_z5Bm8dqYyO1z37tfi8Ur7o5mxmmVKo/edit?usp=sharing), porting it into an ASP.NET web site. Create a new Visual Studio ASP.NET C# project (Ctrl + Shift + N) Create a new empty web site Create a new master page, naming it site.master, and a new content page, default.aspx Visit https://developers.google.com/sheets/api/quickstart/dotnet and enable

Using rSync To Quickly Upgrade WordPress Plugins
We occasionally have commercial WordPress plugins that don’t auto-update. In those instances, it’s still easy to upgrade them all at once, across both our multi-site networks/sites using the following bash script. #!/bin/bash # execute script in terminal by running bash scriptname.sh # to generate public/private key pair (to avoid repeated logins) # ssh-keygen -t rsa

Using Task Scheduler To Open Outlook At Predefined Intervals, Using PowerShell
This post is going to show you how to leverage Windows Task Scheduler and PowerShell in order to open Outlook at predefined intervals throughout the day. Why you ask? If you find yourself unable to ignore those pesky new message notifications (or, if you already know how to disable Outlook notifications, but can’t resist the

Using Templates Within the DSA Bulk E-mailer
This article assumes some basic familiarity with the Division of Student Affairs Bulk E-mailer tool at http://dsalistserv.colostate.edu/emailer.aspx. More information about basic functionality of the system can be found under the “Preview Message” tab on that site. Up until recently, you had to search through the Message History tab to find and re-use a previously sent

What is Agile?
What follows are two excellent introductions to learning more about agile processes (which are applicable both to software development and to project management as a whole) https://www.youtube.com/watch?v=Z9QbYZh1YXY Why Have a Daily Standup An Introduction To Scrum

WordPress Introduction
What is WordPress? WordPress is the primary content management system (CMS) for the Division of Student Affairs and its websites. It’s open-source software that is not only the most used CMS at Colorado State University but is also the most commonly used CMS across the Internet as a whole. It allows for the rapid creation

WordPress Now Comprises 90% of Hacked Sites, But Is It Inherently Vulnerable?
A Go-Daddy backed security company analyzed over 25k infected websites and 4,426,795 cleaned files to determine that the WordPress content management system accounted for 90% of all hacked websites in 2018 (increasing from 83% in 2017). The top three tactics for attacks included backdoors (68%), malware (56%), and SEO spam (51%).

WPBakery Page Builder
What is WPBakery Page Builder? WPBakery Page Builder (sometimes shortened to just WPBakery) is one of the longest maintained WordPress page builders. Due to a rebranding in 2019, you’ll sometimes see references to it using its old name “Visual Composer.” In previous versions of WordPress, it was extremely limited in its design capabilities and, as