Resources for learning SQL

Whether you’re a sysadmin, an analyst, or use a computer for something else professionally–even if you’re not a database administrator or developer–SQL is a useful skill to know. I’ve gotten by for 20 years without knowing much more SQL other than simple SELECT statements, but those days are rapidly winding down–if I want to be good at my current job, I’m going to have to take some time to learn SQL. If you’re in the same boat, here are some resources for learning SQL.

Here are two resources:

http://pgexercises.com/

https://sqlschool.modeanalytics.com/the-basics/introduction/

SQL is the underlying language behind Oracle, Microsoft SQL, MySQL, PostgresSQL, and probably a few other databases I’m forgetting. If you’re doing something beyond Microsoft Access, it’s probably using some kind of SQL. Each implementation has its own quirks but the basics remain the same between all of them.

Security flaws in security tools are all too common

Fireeye runs a bunch of its processes as root, a practice that’s been a no-no since the late 1990s, and they’re more interested in litigation than they are in working with the guy who discovered it.

The attitude is all too common.

Read more

A meeting secret weapon: the potato

One of the security podcasts I listen to–I’m not sure which one, but this sure sounds like Liquid Matrix–gave some advice the other week about meetings: Bring a raw potato.

With any luck, you won’t need it. But if the meeting gets out of hand, whip out the raw potato and–hopefully you washed it first–eat it. Yes, just like an apple. Supposedly the meeting ends very quickly when you do this.

I was at a meeting about backups last week where I really needed this. We’re at a stalemate. I need some disk space and the ability to connect to it via NFS or SCP. My protagonist wants to come in through MySQL. He’s not coming in through MySQL, and we’re not reverse-engineering a product that costs more than my house. My stance is that we’ll use the product precisely the way it’s designed, so that next week when we need the vendor’s support, they don’t blame whatever problem we’re having on the backups. The product has the facility to back up and restore its data through one of those two protocols, and setting it up takes less time than a single meeting.

Too bad it was a conference call, where I’m not sure it would have the same effect. But the next time I get a meeting request about this when what I need is a destination IP address, account credentials, and a protocol, I’m bringing a potato.

Use Apachebench to test your webserver optimizations

If your web server is slow and you want to fix it, it’s nice to be able to quantify what you got. Enter Apachebench, which is part of Apache and probably already on your server. Read more

Making gradual improvements, starting with whatever bugs you the most

A long project can be paralyzing at times, making it hard to figure out where to start. A trick that I learned in model railroading is to just work on whatever small percentage of the project that bothers you the most. Then, when that’s done, cycle back, create another subproject that fixes whatever bugs you the most now, and keep making incremental improvements like that until you get where you want.

I’ve used the same trick on home improvement projects, and I applied it to this web site over the course of the last few weeks, doing a series of incremental improvements. It led places I didn’t expect it.
Read more

DROP DATABASE wordpress;

This week, I doubled back down in earnest to get my webserver running on the hardware I bought a year ago.

After  getting Apache, PHP and MySQL installed on the box and playing together nice, I installed WordPress and got it running. Then I tried backing up and restoring files from my existing server, and the server didn’t like that one bit.

Read more

Tag your imported WordPress content with Simple Tags

Unlike many bloggers, I blogged for a decade before moving to WordPress. That meant I had a pile of old posts with no tags on them. One of the nice things about WordPress is that you can use the tags in conjunction with a plugin like Similar Posts to display links to related content at the end of each post. And trust me, when you blog for a decade, a lot of your stuff is related.

It’s also sad how much of that old content becomes obsolete, but the 2% that stands the test of time and continues to get readers year over year is satisfying, too.

Here’s how to tag your old content–wherever it came from–quickly and easily.

Read more

Four simple steps to optimize WordPress

A couple of years ago, I stood up a WordPress server. I made no effort to tune it, let alone turbocharge it, which is a decision I later came to regret. If your site gets more than a few hundred hits per day, you need to tune it. If you want to get more than a few hundred hits per day, you need to tune it because Apache and MySQL’s default settings are by no means one-size-fits-all. And you can never have too much speed. There are two reasons for that: Google favors fast sites over slow sites, and Amazon found that a one-second delay in page load drops traffic by 7 percent.

There’s a lot of advice out there on tuning WordPress, some of which seems to be good, and some of it not so good.

Here are four things that I know work. I run Apache and MySQL under Linux; these tools may run under Windows or OS X too.
Read more

A minor (but vital) Apache performance tweak

My problems seem to have become more rare since I started blocking spambots and tuned PHP and Apache but last night my server ran out of memory again and started timing out.

It turns out I still had a critical problem, but one that’s easy to fix with a relatively simple Perl script.

Read more

Cutting Apache preforks seems to help small web servers

I’ve had a ton of downtime this week (this seems to be the busy time of year for my web server), but I think I traced the problem to a known issue.

Read more