Updating WordPress Plugins Locally, Without FTP

It’s been the bane of my WordPress life: every time I get a notification of updates available on my local installation (on my MacBook Pro), either for the WordPress core, or one of my installed plugins, I get a request for FTP parameters. This, I’ve learned, is due to WordPress trying to write a small test file to the wp-content directory. When it fails, it reverts to trying to get the files via FTP. But, sadly, I don’t have FTP setup on my local install. Besides, from what I hear, this method seldom works.

Don’t despair, though: there is a solution. And it’s fairly simple. (Don’t be put off if you’re not familiar with the OSX terminal: it’s not that complicated. Really.) Continue reading

Share

Importing a Distribution List in Outlook

So I had to send out a notice to about 700 users. I had the list in the users table of my app’s database. I wanted to create a distribution list in Outlook. It’s not as straightfoward as it may sound.

The first step is to generate the csv file. Small complication: although I had access to the database, I did not have access to the server. So any output files MySQL generates are essentially out of my reach. Therefore, I needed to generate the file locally. No problem: MySQL has an –execute option which allows you to run multiple commands from the command line. It gets long and unwieldy, but it works. Here’s what I used:

mysql -u root -p db01 ^
  -e "select distinct concat(first_name, ' ', last_name, ', ', email) as name from users order by last_name, first_name;" ^
  >users_list.csv

(Yes, you can use the caret to continue a command on the next line. But don’t use a tab to indent your continuation. Spaces are cool though.)

OK, step one done.

Step two is creating a new distribution list in Outlook. You do that under Contacts. Click Select Members, to bring up a dialog box.

See the Members-> button near the bottom? The text field next to it is where you can paste your extracted list. (Now might be a good time to send a shout out to the morons who architected this brilliant bit of user experience. On behalf of users everywhere, I entreat you to find another line of work.)

This is great, but there is a caveat. As I said, my list was about 700 users long. Outlook wouldn’t accept that many records in a single DL: it came back with an error message. So I tried 200. Still no go. It did take 100. So I created 7 separate distribution lists, then one more to rule them all. The last distribution list contained the other 7, so I can just send my email to the one DL.

That’s all I have for now on distribution lists in Outlook. Hope this is useful.

Share

When WordPress Goes Wrong

This past weekend I finally sat down to upgrade my WordPress installation. I was at 2.8.4 and heading for 3.1.2. The automatic upgrader wasn’t working (it would start downloading the zip, and freeze), so I had to upgrade manually. (Using the upgrade instructions here.)

But when the dust settled, my admin dashboard was FUBAR. A number of the blocks on the page weren’t appearing. But the worst of it was that I’d select other pages in the admin and would get a 500 Internal Server Error. Yikes! Interestingly, though, the main site was working just fine.
Continue reading

Share

Alfred’s CSS3 Notes – Multi-Column Text

Only supported in Webkit and Gecko, at the moment. Not available in Opera or IE.

section#mysection {
-webkit-column-count: 3;
-moz-column-count: 3;
column-count: 3;
-webkit-column-width: 15em;
-moz-column-width: 15em;
column-width: 15em;
-webkit-column-gap: 5em;
-mox-column-gap: 5em;
column-gap: 5em;
-webkit-column-rule: 2px solid #ff0000;
-mox-column-rule: 2px solid #ff0000;
column-rule: 2px solid #ff0000;
}

Cannot:

  • select a given column
  • size columns differently
  • specify percentages

column-rule property allows for border type effect between columns.

Share

Alfred’s CSS3 Notes – Text Properties

Text Shadow

text-shadow: 1px 1px 5px #BCBCBC, -1px -1px 3px #FF0000;

In this example, we have two shadows separated by commas. The first element is the horizontal offset, the second, the vertical offset; the third is the blur; and finally, the colour.

Text Stroke

Only available in Webkit. Draws a border around the text.

-webkit-text-stroke: 1px #000;

Also comes with text fill:

-webkit-text-fill-color: #fff;

This overrides the color attribute in Webkit.

RGBA Colour Opacity

Same as rgb() colour, but adds a fourth parameter for opacity. The opacity parameter is between 0 and 1, inclusive; where 0 is fully transparent, and 1 is fully opaque.

background-color: rgba(255,255,255, 0.5);

rgba() is available in all standards compliant browsers, and IE 9+. There is a workaround for dealing with the wrong-headed browsers:

color: #aaa;
color: rgba(200, 200, 200, 0.5);

As you can see we declare two values. In the case of standards compliant browsers, the rgba() declaration, which comes second, overwrites the first, and we get the benefit of the transparency. For the ludicrous browsers, the second declaration will be ignored, and they get the first declaration color.

We can also use a transparent png for backgrounds.

background: transparent url(bg.png);
background: rgba(255, 255, 255, 0.5);

This will not work with IE6, but anything after that will be OK. I encourage dropping support for IE6, to motivate individuals and corporations to upgrade, or better yet, switch to standards compliant browsers.

Share

Alfred’s CSS3 Notes – Selectors

Target Selector

Applies styling when the selector is in a target state. Which is to say it is the target of a hash mark in the URL.

#container:target {
  background-color: #f6f6f6;
}

Adjacent Sibling Selector

From CSS2:

h2 + p {}
Will select the second element when it immediately follows the first. (Reference)

General Sibling Selector

From CSS3:

h2 ~ p {}
Selects all p’s that share a parent with the h2. (Reference)

Share

Starting XAMPP Automatically Upon Login on OSX

I was SO getting tired of opening a terminal window to get my web server going when I needed to do some web dev on my MacBook Pro, I finally started looking around for ways to start XAMPP on it’s own when I booted my machine.

I found the answer deep in the forums. It looks like this:

crontab -u root -e
@reboot /Applications/xampp/xamppfiles/mampp start

I didn’t know you could do an @reboot in crontab. It turns out there are a number of these abbreviations, including @hourly, @monthly, @yearly.

Anyhow, it seems to be working, and I’m delighted.

Share