A tiny Christmas present for the Perl community

PAUSE has long had an SSL certificate signed with a CAcert  key. CAcert's aims are noble, but over the past few years, browsers have become incredibly cranky about SSL certificates from all but a few trusted providers.

As a small treat for the Perl community, Best Practical has just bought a "proper"  SSL certificate for https://pause.perl.org. We'd like to thank Andreas König for his tireless work to operate and maintain PAUSE and his help in making this happen.

Share this post:

RT Training in Boston — March 5 & 6, 2012

March 2012 will bring a two-day RT training session to our hometown of Boston!

To learn more and sign up online, visit our shop.

Drop us a line at training@bestpractical.com with any questions you have or to inquire about discounted pricing for academic institutions.

What does training cover?

The first day starts off with a tour of RT's web interface and continues with a detailed exploration and explanation of RT's functionality, workflows and configurability. We'll touch on basic administration, but concentrate largely on helping you and your team get the most out of your RT instance.

The second day of training picks up with RT administration and dives into what you need to safely customize and extend RT. We'll cover point-and-click configuration, upgrading and installing RT, development best practices, RT's API, building an extension, and database tuning.

It goes without saying that you'll get the most out of training if you attend both days of the course, but we've designed the material so that you can step out after the first day with a dramatically improved understanding of how to use RT or show up on the second day and get quickly up to speed on how to make RT do your bidding.

Share this post:

We're hiring! Come hack Perl for Best Practical.

About us

We're Best Practical Solutions, a small software company located in Somerville, MA. We build software and sell support, training, consulting, and custom development. Our main product, RT (Request Tracker), is the premiere open source issue tracking system. We've been around for a decade, and things just keep getting busier.

About the job

We're looking for a Perl hacker to help us enhance and refine our products, and as well as to be excellent to our customers. You'll be responsible for everything from implementing new features, to testing and applying user-contributed patches to our released software. In a typical week, you'll probably spend about half your time working on internal and open source projects, and half working on customer projects; this requires good communication skills, as well as a desire to help customers get the most out of our software.

The hours are flexible, and we all telecommute some of the time...though we work from our office in the heart of Davis Square, Somerville on most days. While we do a fair amount of our collaboration in-person, you should also be comfortable using email and instant messaging to coordinate and get work done, as we have a few employees in other parts of the globe.

About you

You should be a self-starter who has solid experience with Perl, as well as some experience with at least a few of the following buzzwords:

  • Open source development practices (code review, backcompat)
  • Distributed source control (git, branching, patches)
  • Test driven development (smoke testing, Test::More)
  • User interface design (HTML, CSS)
  • Documentation (user-facing, API)
  • Javascript (jQuery, events, AJAX)
  • SQL databases (MySQL, PostgreSQL, Oracle, SQLite)
  • Optimization, profiling, and debugging (nytprof)
  • UNIX systems administration (webservers, mailservers)

It's okay if you don't know everything out of the gate, but you should be able to learn on the fly and be comfortable asking questions when you get in over your head. RT is a large codebase to dive into, so you should be prepared to work with a project that's too big to hold in your head all at once. If you want to see what sort of trouble you're getting yourself into, you can find all of our open source code on github.

We're a small company; you should be comfortable working both independently and in small teams, and prioritizing tasks on your own. Being able to task-switch efficiently and juggle several projects at once is a necessity.

Compensation

DOE - This is a full-time salaried position, but the details are negotiable. We're a small, self funded company. The standard benefits apply, of course: health insurance, dental insurance, and junk food to make that dental insurance worthwhile.

How to apply

Send something approximating a cover letter, a resume in plain text, HTML or PDF, and a sample of some code you've written to resumes@bestpractical.com. If you're involved in open source development of one kind or another, please tell us about it. If you have a CPAN ID tell us what it is; we won't consider applications without some sort of code example to look at. We'll be paying particular attention to the readability, comments, and tests.

Share this post:

RT 4.0.4 Released, fixes RT 3 -> 4.0.3 upgrade regression

RT 4.0.3 contained a serious bug wherein upgrades from any version ofRT 3 to RT 4.0.3 broke template interpolation; please do not use it. If you had previously upgraded from RT 3 to RT 4.0.0, 4.0.1, or 4.0.2, before upgrading to RT 4.0.3, you are not affected by this bug.

If you are currently running RT 4.0.3 and are affected by this issue, upgrading to RT 4.0.4 will resolve it.

Download it here

Share this post:

RT 4.0.3 Released

I'm happy to announce that RT 4.0.3 is now available.

This release contains a number of bugfixes and small improvements since the 4.0.2 release; a few of the more notable ones include:

  • Due to a change in RT 3.8.9, which also affected RT 4.0.0 and higher, TransactionBatch scrips were run twice; this has now been fixed.

  • A new toggle has been added to expand all quote folding in a ticket's transaction history.

  • New "On Forward", "On Forward Transaction" and "On Forward Ticket" conditions have been added.

  • Ticket searches no longer forget which saved search they were loaded from when being updated.

  • A new "make jsmin" target has been added to aid in downloading, compiling, and installing jsmin.

  • Improved threading for automatically generated emails concerning a ticket.

  • Improved detection of Outlook-style message fowarding headers.

  • No longer error when a user has supplied a non-existant RT style; instead, fall back to the default. This is particularly relevant for users coming RT 3.8 with the 3.6 stylesheet applied, which no longer exists in 4.0.

  • Improved handling of files named "0", and Unicode filenames, in file uploads.

  • Tickets can no longer be linked to deleted tickets.

  • Restore missing menus on simple search result pages.

  • Fix support for perl 5.12 and later by removing a deprecated use of "defined %hash".

Share this post:

RT 3.8.11 Released

I'm happy to announce that RT 3.8.11 is now available.

This release contains a number of bugfixes and a minor security update in one of our dependencies:

  • Adjust FCGI dependency to one which resolves FCGI's CVE-2011-2766

  • New WebHttpOnlyCookies option, enabled by default, which hides RT's cookie from direct Javascript access.

  • Compatibility with perl 5.12 and 5.14, by removing deprecated "for qw(...)" and "defined %hash" syntax.

  • MySQL 5.5 compatibility, by specifying ENGINE=InnoDB rather than TYPE=InnoDB

  • Ensure that RT::Interface::Web's _Overlay, _Local, and _Vendor files are loaded correctly.

  • Fix session cleaner for on-disk sessions, broken since 3.8.0.

  • Ensure that only one "Based on" attribute is stored for each custom field.

  • Fix the loading of Shredder plugins, broken in 3.8.10.

Share this post:

How the University of Oxford uses RT

Ever wonder how a large organization uses RT? The University of Oxford's Computing Services, a very long time user of RT, published a blog post last week giving a peek into their use cases and workflows.

Share this post:

RT 3.6 end of life reminder

This is a reminder that on Friday September 30th, 2011 Best PracticalSolutions will cease support for the 3.6 series of Request Tracker.

We've talked our sales team into including free basic upgrades from RT 3 to RT 4 if you sign up for a new RT 4 support contract. The new RT 4 support contracts are less expensive and come with lots of great new features.

Share this post:

What's New in 4: Options and Preferences

RT 4 adds many options you can put in your etc/RT_SiteConfig.pm totweak the way your RT looks and behaves for your users, as well as how RT works behind the scenes. Some of the new options are also available as individual user preferences by going to the Logged in as … → Settings → Options page.

In this blog post, we'll provide an overview of most of the new options.

$AutocompleteOwners and $UserAutocompleteFields

These options are discussed in our blog post on autocompletion.

$DisplayTicketAfterQuickCreate(user pref)

Enable this to redirect to the created ticket display page automatically when using QuickCreate.

$MoreAboutRequestorExtraInfo, $MoreAboutRequestorGroupsLimit, and $MoreAboutRequestorTicketList

These options affect the "More about requestors" box on the ticket display page and will be discussed in a separate upcoming blog post about customizing the displayed requestor information. (If you're eager to customize this, read the sections in etc/RT_Config.pm.)

$ShowMoreAboutPrivilegedUsers

This determines if the "More about requestors" box on the ticket display page shows information about privileged users. By default it only shows information about unprivileged users.

$OnlySearchActiveTicketsInSimpleSearch

By default, the simple search in the upper right corner only searches active tickets. If you want to search for a specific status, you can include the status in your search. If you want to search all ticekts regardless of status, disable this option.

$SearchResultsAutoRedirect

When only one ticket is found in search, use this to redirect to the ticket display page automatically. Disabled by default.

$SimplifiedRecipients(user pref)

Display a simple list of who will receive any kind of mail on the ticket reply page, instead of a detailed breakdown by scrip. Disabled by default.

Screenshot: RT, with SimplifiedRecipients option enabled

$RememberDefaultQueue(user pref)

Remembers the last queue you created a ticket in using the "New ticket in" button and queue list at the top of the page. If you haven't created a ticket in your current session, the Default Queue preference is used. Disabled by default.

$DeferTransactionLoading(user pref)

When set to 1, the ticket display page will omit the ticket history until a link is clicked to load and display the history. This can be useful if you routinely browse long-running tickets but don't need to always read the history. Disabled by default.

Screenshot: RT, with DeferTransactionLoading option enabled

$UseSideBySideLayout(user pref)

Display the ticket create and update pages using two columns on screens that are wide enough. The new two column pages are much more effective at making more information visible on a single page, especially with many custom fields. Enabled by default.

$ArticleOnTicketCreate

Enable this option to display the Articles search and selection interface on the Ticket Create page in addition to the Reply/Comment page.

$HideArticleSearchOnReplyCreate

Enable this option to hide the search and include boxes from the Article UI. This assumes you have enabled the Article Hotlist feature on at least one of your Classes, otherwise you will have no access to Articles. This option does not hide the Articles link in the Tools menu.

%FullTextSearch

The available flags under %FullTextSearch are discussed in our blog post on fast full-text searching in RT.

%Lifecycles

Lifecycles are a powerful way to describe custom workflows for your tickets on a per-queue basis. We'll be covering them in depth in an upcoming blog post. If you're feeling adventurous and would like to dive in early, there is a decent amount of documentation in the Lifecycles section of perldoc etc/RT_Config.pm.

@CSSFiles

Files in this list will be included in the CSS (squished and unsquished) that RT serves. Recommended if you want local CSS changes that apply to all themes. Alternatively, you can use the advanced section of the Theme editor if you don't need a file on disk.

$Framebusting

If set to 0, framekiller javascript will be disabled and the X-Frame-Options: DENY header will be suppressed from all responses. This disables RT's clickjacking protection. It is highly recommended you leave this option set to 1 unless you are embedding RT in an iframe from a different domain.

Removed options

A handful of options were removed in 4.0, because they were made obsolete by new features or we added a better way to change the behaviour. The most used options that are unsupported in 4.0:

  • @ActiveStatus
  • @InactiveStatus
  • $ResolveDefaultUpdateType
  • $SuppressAutoOpenOnUpdate

The first three of these options affect what is now controlled by lifecycles. By defining your own lifecycle or modifying the default, you can reapply the functionality. The last option, $SuppressAutoOpenOnUpdate, can be customized by modifying the stock scrip On Correspond Open Tickets that ships with RT.

Setting options

All the options RT supports are documented in etc/RT_SiteConfig.pm, along with their defaults. To set any of them to a different value for your installation, add the appropriate Set( $OptionName, 'value' ); line to your etc/RT_SiteConfig.pm, clear the mason cache, and restart your webserver. Be sure to only have one Set(...) line for each option, otherwise only the first one will take affect.

Share this post:

RT 4.0.2 Released

I'm happy to announce that RT 4.0.2 is now available.

Continuing with our goal of faster release cycles and smaller changes between releases in a stable series, this release primarily contains fixes for a number of minor bugs. It also includes documentation updates and removal of an inefficient javascript minification option. Notable changes include:

  • Ability to reference global CFs by Name in RT::Action::CreateTickets

  • Installation of the docs/ directory into /opt/rt4/docs

  • Removal of the incomplete --binary flag option for the full-text search indexer

  • Fixes for a regression that caused group dashboards to vanish after creation and not appear in the list of dashboards

  • Rewritten forward functionality to generate mail that better represents the original messages received by RT

  • Removal of the pure Perl Javascript::Minifier module which slowed down the first request to new webserver children. jsmin or another external minifier is now required to minify RT's javascript. Refer to the section about $JSMinPath in perldoc /opt/rt4/etc/RT_Config.pm for how to configure jsmin.

Share this post: