Blogs

SVN Bug

Getting an error similar to the following when doing a branch or commit in SVN?

svn: Commit failed (details follow):
svn: MKACTIVITY of '/svn/forms/!svn/act/ebcddac9-12da-4ae4-86d8-bdcfbccdc682': 403 Forbidden

Check the case! In this instance, the svn repo was actually called "Forms." Changing the case got rid of the error.

To Selenium or Not To Selenium?

I've been using Capybara with the Selenium driver for automated testing of a Rails project via Cucumber. Certain scenarios involve dealing with client-side Javascript (such as confirming a popup message before deleting a record), which is the reason I started using the Selenium driver. But I soon discovered that Selenium is slow, taking three or four times as long as the standard Rack-test driver.

Racking my brains

I'm using Cucumber and Capybara for integration testing on a web application that depends heavily on the use of subdomains. Since some features rely on client-side Javascript, some scenarios use the Selenium 2 (WebDriver) driver, while other scenarios use the regular rack-test driver.

Why centralize when you can decentralize?

Like most experienced software developers, I've accumulated quite a few years of experience with revision control systems. We use revision control for many reasons--to collaborate, to track changes, and to have a contingency plan in case something breaks--but maybe the biggest reason is simply to keep ourselves from going insane from the frenzied cat-herding that is software engineering.

Social code project resume networking with Ohloh

Ohloh is a site I've bumped into before, but never really explored it or created an account. Today I signed up and tried it out, and I'm very glad I did. Project tracking meets resume building meets social networking--I've originated or contributed to quite a few open source projects, and this site gives me an easy overview of the work I've done, what languages I've used, and who else is contributing to or using my software.

Cover your nose

Python has some great features for testing. One of my favorites has always been doctest, which allows you to embed executable tests right in the documentation of your modules, classes, and functions. There are some practical limits to what you can do with doctests, and that's where unit testing comes in.

A better way to document

Okay, I admit it; I'm not ashamed. I love to write documentation. Most of the time, I would rather write docs than code. That's one of the reasons I was thrilled to discover Read the Docs, a new website that makes it easy for developers to build and publish documentation. You can create quick one-off docs, or link up to existing docs you may have in a public Git, Mercurial, Subversion, or Bazaar repository.

Views Block with Arguments

Blocks created by a view in Drupal do not have access to the page URL and thus arguments won't work normally. However, by using some custom PHP code in the argument default setting, we can pass information from the URL to the block as if it were a page.

The best tutorial I was able to find on this is here: Drupal View Block With Arguments

The PHP code I used to get a user's blog to show under his team profile page on this site is below. Used as default argument code for "User: Name."

How to learn a new language

Throughout my software development career, I've tried to be open to the prospect of learning new programming languages--not just to accomplish a job or pad my resume, but for my own edification and consciousness-expansion. While I haven't learned as many as I would like, I have picked up a few; most recently, I've been endeavouring to learn Haskell.

Automating procedures using Sikuli

A few days ago, I came across an interesting open-source GUI testing application called Sikuli. This tool promises to automate just about any procedure involving graphical elements displayed on the screen, using a vision engine to intelligently match regions of your GUI display to widgets where you might click, drag, or type things. Sikuli is distributed under the permissive MIT License.

Syndicate content