Blog Archives

securing WordPress

Part of securing a WordPress installation is checking up on your file permissions. In order to prevent overwriting by malicious code, limit the permissions to read-only except where necessary.

Here’s a good start:

Relative PathSuggested permissions
/0755
/wp-admin0755
/wp-includes0755
/wp-config.php0444
/wp-content0755
/wp-content/themes0755
/wp-content/plugins0755
.htaccess0444

I should also mention that I highly recommend WordFence for securing the internal WP system itself.

Tagged with: , , , , ,
Posted in how-to

email the entire Wisconsin state legislature if you want

Ever wanted to send a message to every Wisconsin state senator and representative in the legislature? Here are their email addresses:

Continue reading “email the entire Wisconsin state legislature if you want” »

Tagged with: , , , , , ,
Posted in resources

firing background tasks in PHP

Background case

madisonrightnow.com is a collection of near-real-time information about a metropolitan area. Traffic, weather, parking lot usage, and loads of web cam images are displayed on one page. Data come from a wide variety of sources: images come from cameras, weather data comes from a web API, and parking lot utilization come from good ol’ fashioned page scraping. All these transactions are triggered when a user wants to view the page. It is a challenge to get near-real-time information to the client from so many sources without a lot of pre-processing on the server end, and without the client having to make connections to a myriad of hosts to get images and other data. I found that asking the client to load all this makes the page too slow to load.

The solution is to build a server-side caching mechanism, so all the data and images are ready to go when the page is hit, and so that all transfers are between madisonrightnow.com and the client without having to wait on anybody else. This can cause the data served to be a little older, but is much better than asking the client to open connections to dozens of hosts and wait for every one to completely reply before the page can render. Under the caching scheme I developed, all data on the page are loaded from my server in order to give the user a smooth experience when expanding UI panels after the client renders it.

Continue reading “firing background tasks in PHP” »

Tagged with: , , , ,
Posted in how-to

email mail merge in Office 2010 with hyperlinks

The goal of this tutorial is to perform a mail merge which includes a unique URL (web address) for each record. That way, you can send email with unique URLs for each recipient, which may be useful when sending surveys or tracking individual followup.

This is the procedure to embed a hyperlink into a mail merge in Microsoft Office 2010, using Word and Excel.

Continue reading “email mail merge in Office 2010 with hyperlinks” »

Tagged with: , , ,
Posted in how-to

how to create an iPad video kiosk

Screen shot 2013-10-18 at 4.07.21 PM

I was recently tasked with building an iPad floor display that would loop a series of video clips indefinitely in a public place. Surprisingly, it’s not very obvious how to do this, and the third-party applications for looping video don’t work, are expensive, or show ads on the screen while the video plays.

The following solution requires no extra software or apps at all.

Continue reading “how to create an iPad video kiosk” »

Tagged with: , , , , , ,
Posted in how-to

up and running with Google Earth Flight Simulator Online

GEFS-Oline running on Mac OS X 10.8.5

GEFS-Oline running on Mac OS X 10.8.5, flying Airbus A380 over Seattle, WA.

I’m excited about Google Earth Flight Simulator Online (GEFS). It’s an online flight simulator based on Google Earth that runs in a web browser.

Features:

Tagged with: , , , ,
Posted in unsorted

search & replace tabs, returns, wildcards and more in Microsoft Office

You can search for and replace with these invisible characters in Microsoft Office 2010 Find & Replace functions:

^? – wildcard character
^# – wildcard number
^p – paragraph mark
^t – tab
^l – line break
^s – non-breaking space

Hope this helps you!

Tagged with: , ,
Posted in unsorted