Tavish Armstrong
Tavish wrote his first lines of HTML, CSS, and Javascript at the age of 8, and has been making websites ever since. Now he enjoys writing code in PHP, Javascript, Python, and Java. At Evolving Web, he writes code and documentation.
He studies software engineering at Concordia University, where he hopes to learn how to make great, reliable software. Outside of the software world, he enjoys writing fiction and playing board games with friends.
Tavish has attended Drupal Camps in New York and Boston, and presented at DrupalCamp Boston (Slides).
You can find him on drupal.org as tarmstrong and @tavarm on Twitter.
Tavish Armstrong's Blog Posts
Today is not your lucky day. The production server went down due to a hard disk error on the VM's host machine. You don't have a high availability setup because running additional servers 24x7 is quite costly.
In our previous post, we wrote about how we use custom Redmine plugins to keep specifications up-to-date with our Redmine issues.
In part 1 of this tutorial, I covered how to make your own custom field and widget.
The power of Drupal stems from our ability to customize it. One common requirement is the need to define complex fields with custom widgets and formatters that are unavailable in core or contributed modules.





