Zach Schneider

Assorted writing and wordsmithery.

Code Golf: Archive Entire Website to PDF

Recently, a friend asked me for help with a research project. He needed to gather data on high school websites, which required him to capture a snapshot of a bunch of complete websites (recursively following links) as a PDF. Obviously, manually printing every page of a website is ludicrously tedious… »

What Matt Walsh is Wrong About Today: Transgender People

This morning, one of my friends sent me a link to Matt Walsh's latest blog post. I resisted the temptation to read it for a solid 15-20 minutes before finally succumbing to morbid curiosity (he's like a really bad haircut or one of those loud street preachers; it's awful but… »

Ray Rice and a League of Lip Service

On February 15, Baltimore Ravens running back Ray Rice was arrested and charged with simple assault for punching his then-fiancĂ©e, now-wife Janay Palmer in an elevator in the Revel Casino in Atlantic City. A security camera outside the elevator showed Rice dragging an unconscious Palmer out of the elevator by… »

Writing Tests for Rails: Controllers

In the previous post, I discussed writing model tests to enhance the coverage of your test suite. In this final post, I'll cover one other specific kind of test: controller tests. Controller tests are similar to model tests in that while model tests test one specific method of a model… »

Writing Tests for Rails: Models

In the previous post, I finished up covering how to write comprehensive feature tests for Rails applications. Feature tests will do the trick most of the time, as they effectively simulate a user stepping through each of the possible flows through your application and thus ensure correct behavior. However, there… »

Writing Tests for Rails: Features

In the last post, I covered mocking data with FactoryGirl and writing a basic feature test using mocked data. In this article, I'll cover writing more complicated feature specs and incorporating helper methods to enhance your feature tests. As I mentioned at the end of the previous post, our first… »