The State of Things

A few articles that are interesting as a web developer/human at this point in time.

App-pocalypse Now – Jeff Atwood – Coding Horror

Your platform now has a million apps? Amazing! Wonderful! What they don’t tell you is that 99% of them are awful junk that nobody would ever want.

The Evolution of the Developer – Ben Uretsky – Re/code

But that has changed. I’m hard-pressed to think of any paradigm shift, in terms of personnel, quite as drastic and rapid as the new role of the developer. With software being free and readily available, the sole ball and chain left shackled to the ankles of developers was hardware — but with the development of the cloud market, developers have a newfound stray-dog freedom.

How to Get a Job at Google – Thomas L. Friedman – New York Times

What else? Humility and ownership. “It’s feeling the sense of responsibility, the sense of ownership, to step in,” he said, to try to solve any problem — and the humility to step back and embrace the better ideas of others. “Your end goal,” explained Bock, “is what can we do together to problem-solve. I’ve contributed my piece, and then I step back.”

The internet is fucked – Nilay Patel – The Verge

But we can fix it, I swear. We just have to start telling each other the truth. Not the doublespeak bullshit of regulators and lobbyists, but the actual truth. Once we have the truth, we have the power — the power to demand better not only from our government, but from the companies that serve us as well.

Platformed. – Ethan Marcotte

I don’t really have any answers here—hell, I’m not entirely sure what I’m griping about. But I do wonder if our collective short-term frustrations leads us to longer-term losses. And seeing the web not as a “platform” but as a “continuum”—a truly fluid, chaotic design medium serving millions of imperfect clients—might help.

Thanks to @timothy_snyder and others on Twitter for sharing these.

A Quick Poster I Designed for St. Louis Pet Rescue

mouse-race-poster

This is for my wife’s awesome pet rescue – St. Louis Pet Rescue. It’s our first event of this kind and we really wanted to make it easy for folks to help us promote in an inexpensive way. This is a grayscale 8.5×11 in poster/flyer made totally in Illustrator. I’m not an Illustrator guru, but I’ve been doing more with it recently.

The margins are funny, we’ll be printing a large quantity via a professional printer which allows for smaller margins than say what you’d find on a home ink-jet printer. The top and bottom of the poster are cut off when printed on the latter – eliminating the top row of checks. Not intentionally it looks like the little mouse is crossing a finish line! Don’t believe me? Print out a few copies and take a look. Oh, and while you have a couple on hand, stick them up at work or at the local coffee shop!

MediaWiki Statistics and Panic’s Status Board

I’m a big fan of Panic Inc. I use Coda daily and am an advent follower of the smart dudes out of Portland.

They have a new app out called Status Board that allows you to mix different data sources to provide at-a-glance information on your iPad. What is even better is that it can output to a HD display for big screen status board updates.

At work I help manage a MediaWiki environment that we use to document stuff.1 Lately I’ve been trying to figure out how to leverage the MediaWiki API and the External Data Extension to manipulate data from external sources and content within the wiki.

With a few minutes time I figured out how display statistics from MediaWiki on a Status Board!

Basically I use the MediaWiki API to return some XML into a wiki page. That page is then in turn included as an HTML widget in Status Board. The result is something that looks like this:

mediawiki-status-board

Here’s the secret sauce. First create a wiki page to house your content. Then use the #get_web_data function of the External Data extension to pull in a xml feed from the MediaWiki API. Here’s what my code looks like for query of the number of jobs currently in queue.

{{#get_web_data:
url=http://yourwiki/wiki/api.php?action=query&meta=siteinfo&siprop=statistics&format=xml
|format=XML
|data=Jobs=jobs,Pages=pages
}}</pre></pre>
<div style="width: 100%; text-align: center;">42px;">Jobs in Queue</div>
<pre>

74px;">{{#external_value:Jobs}}
<pre>

Then in Status Board enter in the address for your wiki page using the &action=render2 attribute.

http://yourwiki/wiki/index.php?title=wikipagetitle&action=render

Some other examples, as you can see in the screenshot above, are a list of the N newest articles, most recent edits, or even additions to specific categories (at the bottom). The sky is the limit!

WordPress & Security Notes From The St. Louis WordPress Developers Meetup

This week at the The St. Louis WordPress Developers Meetup we discussed tips and tricks on how to ensure your WordPress installations are as secure as possible. I’ve collected my notes below.

For further reading, check out Eric Juden’s notes as well.

Things you can do “Out of the Box”

  • Check the Codex for some general tips on Hardening WordPress.
  • Check your file permissions to make sure they are as secure as possible.
  • Change default “wp_” prefix to something unique. This is used by MySQL injections that search specifically for “wp_” (As Ken Johnson points out in the comments of the WordPress Meetup, this is probably only a good idea on new installations!)
  • Delete Default Admin account. You should never post from admin as it looks dorky and gives away that you’re using WordPress.
  • Use strong passwords! Don’t give clients the same lame password over and over. Be unique.
  • Delete unused themes and plugins. They just take up space and are yet another vector for attacks.
  • Use Akismet for managing comment spam. Not exactly security, but part of decreasing the amount of time you dedicate to meddlesome maintenance.
  • Hide your version number and change the readme.html file to something random. Nefarious people are looking for easy targets, changing things up a bit makes these automated attacks more difficult to pull off.
function remove_wp_version() {
     return '';
}
add_filter('the_generator 'remove_wp_version');

 

  • Change Salts often – you can even use this handy tool to generate new ones – https://api.wordpress.org/secret-key/1.1/salt/
  • Move wp_config.php to the directory above public_html. If they can’t get to it via the web, they can’t see your database username/password or salts.
  • Update your stuff. Here’ a list of security fixes just in 3.5.1 alone!
    • Server-side request forgery (SSRF) and remote port scanning via pingbacks. Fixed by the WordPress security team.
    • Cross-site scripting (XSS) via shortcodes and post content. Discovered by Jon Cave of the WordPress security team.
    • Cross-site scripting (XSS) in the external library Plupload. Plupload 1.5.5 was released to address this issue.
  • Find a good, respectable host! someone who keeps up with new version of PHP, MySQL, etc. – not GoDaddy.
  • When all else fails, having a good backup will be your last line. Test your backup regularly.

 

Extra Things You Can Do

Some useful plugins that can help give a piece of mind or help with managing WordPress.

 

Further Reading

http://www.netmagazine.com/tutorials/protect-your-wordpress-site-htaccess

http://wpsecure.net/secure-wordpress-advanced/

 

Themes Mentioned During the Chat

 

Join Us

If you’re thinking about attending one of the meetings I encourage you to do so. The diversity of knowledge and skill sets almost guarantees that there’s something new to learn. Everyone is approachable and there to share and grow together.