Friday, September 03, 2010 by Michael H. Pryor
Every week we do a 10-15 presentation internally where someone from the office gives a quick how-to or instruction on some tech related topic. Last week Ben Kamens talked about how we do AB Testing for FogBugz and Kiln using Google's Website Optimizer. I edited it a bit to keep all our secret stuff secret, but I've included it below so you can learn how to do it yourself.
Thursday, July 22, 2010 by Michael H. Pryor
I noticed that FogBugz spam on public discussion groups started heating up recently. Apparently someone who has zombie bots (coming from all different IPs) has added them to its attack vector. Unfortunately most of the posts are 'similar' but not 100%, and the Bayesian filter doesn't pick up all of them. We're helping this some in the next release of FogBugz by using honeypots, but the bot makers are getting smarter and that's becoming less effective. We really need captchas.
I have not written any code in probably six months and the dev team is working on our next major release with the interns, so I didn't want to interrupt them to handle this. Lucky for me, you don't really need to know that much to implement this plugin.
-
Start with the bare bones instructions on making a "hello world" plugin. Your code should end up looking like so:
public class Recaptcha : Plugin
{
public Recaptcha(CPluginApi api)
: base(api)
{
}
}
-
Make your class inherit from the IPluginDiscussTopicCommit interface (we want to make sure posts are not created if the captcha is not correct) and the IPluginDiscussTopicDisplay interface (so we can show the captcha on the page).
public class Recaptcha : Plugin, IPluginDiscussTopicCommit, IPluginDiscussTopicDisplay
{
public Recaptcha(CPluginApi api)
: base(api)
{
}
}
Note: Visual Studio and Visual C# Express make adding these methods easy. Once you type IPluginDiscussTopicCommit as an interface to implement, hover over IPluginDiscussTopicCommit and the "I" will be underlined. Hover over that and a menu appears. Click the menu and choose "Implement Interface 'IPluginDiscussTopicCommit'" and it will create the method stubs for you!
-
Head on over to the
ReCaptcha site (now owned by Google) and sign up to get your private and public key.
- In DiscussTopicDisplayPostCreate we just return a new CDialogItem with the HTML from the ReCaptcha site.
- In DiscussTopicCommitBefore we just check the captcha form variables match using the ReCaptcha API. If it matches, return true. Else return false.
Two tricks: First, FogBugz makes it a bit obscureto read form variables that aren't prefixed with api.GetPluginPrefix. Thisisn't for security; it's so people don't rely on FogBugz form variables as anunpublished API. In our case, we can't mess with the names of the inputs thatReCaptcha uses because they are tweaked at run time by a JS file downloaded fromGoogle's servers. But we do have jQuery in FogBugz, so I added two linesof jQuery that rename the input fields after the Google script has run to have theAPI prefix in their name. The other trick was just to not use the ReCaptcha ifit's a logged in user.
Download the source:
Recaptcha.cs (4.14kb)
Wednesday, May 12, 2010 by Michael H. Pryor
We have a customer who is need of assistance. They are looking for a consultant who is familiar with FogBugz and can help them with:
- Perform Gap analysis
- Analysis of current FogBugz configuration
- Analysis of current FogBugz usage(i.e. workflow)
- Current Issues being encountered
- Reporting status
- Tracking progress
- Others identified during discussions/interviews with company users
- Recommend Solutions
- Provide\Brief estimate for labor, materials, and training(if necessary) to implement improvements
- Implement Solution
- Implement Improvements as approved by the company from the recommendations given
The work would be done at their offices in Orlando, FL. We'd love to get some time down south in sunny Florida ourselves, but we're way too busy working on the next version of FogBugz.
If you can help out, please send your info to damian at fogcreek.
Thursday, November 19, 2009 by Michael H. Pryor
We've had a recent problem with potential and current customers finding old and outdated information on our discussion boards. One option we had was to archive the discussion board each time we have a new release (probably the best idea), but we didn't do that unfortunately. Our other option is to just erase all old topics from our database (not nice to Google and we don't want people to think we're hiding our warts). The third option is to leave the content up and figure out a way to really make sure people know the info they are about to see no longer applies to our current product (probably). It took me about ten minutes to come up with a solution using the BugMonkey plugin, which allows you to insert arbitrary JavaScript and CSS into your FogBugz site.
You can see an example in this post about FogBugz 4.0.
You can view the code I used for the lightbox effect.
You can also download and view the javascript: sample.js (880.00 bytes)
In doing this I realized it would helpful if there was a systematic id system for text portions of the page (in this case, it was difficult for me to get the date of the topic, since I didn't want it to be applied to current topics). Definitely something to think about in the future...
Thursday, November 05, 2009 by Michael H. Pryor
In this video, Dan and Babak talk about how we got to FogBugz 7.
(Click to watch the large version on YouTube).
Friday, August 21, 2009 by Michael H. Pryor
Daniel Root has posted a walkthrough on how he uses FogBugz 7 and Scrum.
"Every day of the Sprint, a very short meeting is held where the each team member says what they did yesterday, what they will do next, and if there's anything holding them up. If something is holding them up, it's up to the Scrum Master to make sure the problem gets resolved. At the end of the Sprint, the Team has a working product that is shown to the customer in a Sprint Review and/or deployed into production. Feedback is received and items added to the product backlog, and the process repeats until the project is complete. I'm sure true Scrum Masters will balk at some of this - we typically combine what would be a Sprint Review and Sprint Retrospective, and are fairly informal with the process. We don't call the meetings or people by their official scrum names- in fact most of our customers don't even know we're doing this to them!"
Read More...
Thursday, March 19, 2009 by Michael H. Pryor
Bug: The FogBugz installer by default would turn on server side debugging for FogBugz on a new install. This means that the FogBugz application would run in single threaded mode and performance is greatly impacted.
Fix: We will address this in our next update but if you are running 6.1.44 or anything less, go to the asp settings in IIS7 for FogBugz and expand the Debugging node. Turn of server side debugging and save your changes. FogBugz will resume normal speed after this.
Wednesday, December 31, 2008 by Michael H. Pryor
We've had a number of customers contact us asking us if we were going to create an iPhone app for FogBugz, or if they could create one themselves. For the last few months, we've had a spec sitting around but we're so busy working on FogBugz 7 that we haven't had time to implement it (and I don't see it happening anytime soon).
While we're still going to reserve the right to build this app ourselves, I figured I'd post the spec anyway in case someone wanted to beat us to the punch. Maybe someone will write something so awesome, that we won't even bother competing -- we'll just point people to theirs.
Read our first draft iPhone FogBugz application specification.
Thursday, October 30, 2008 by Michael H. Pryor
Using the FogBugz Output Accessory with SnagIt
The FogBugz Output is the easiest way to get screenshots
into FogBugz.
Configuring the FogBugz Output Accessory:
The only thing necessary to configure the output accessory
is telling it the URL for your FogBugz site, so it knows where to submit the
screenshots.
From the SnagIt Editor, go to the Send tab and click
on the arrow below FogBugz. Choose Options from the menu.
Enter your FogBugz URL:

Capture the Screenshot with SnagIt:
SnagIt includes a huge number of options for capturing and
editing images.
Send the Screenshot to FogBugz:
On the Send tab, click
on the FogBugz icon to create a new case with the image:

If you are not already logged on to your FogBugz account
using Internet Explorer, you will be prompted to log on.
Other Options
Use the Existing Case... menu item to send a
screenshot to an already existing case instead of opening a new one.
Use the New Email menu item to send a screenshot as a
new email message through FogBugz.
Use the Send Reply menu item to send the screenshot
as the reply to an email message received through FogBugz.
Troubleshooting
The FogBugz Output Accessory always uses Microsoft Internet
Explorer to transmit the screenshot to FogBugz, even if your preferred browser
is set to something else. Therefore, Microsoft Internet Explorer needs to be
setup so that it can reach the FogBugz server. If you are having trouble
sending screenshots to FogBugz and use a different browser, try running
Internet Explorer once, and ensure that it can reach the FogBugz server and get
you logged on.
Note that once the screenshot has been transmitted, the
FogBugz Output Accessory will launch your preferred browser so that you can edit and submit the case with the
attached screenshot.
Wednesday, October 22, 2008 by Michael H. Pryor
Have you ever just needed to export a FogBugz filter to CSV to import into Excel or some other application and you really didn't want to figure out the API? Well, John Januszczak from Meta Software just made that really easy for you.
BugzReport is an open source Windows desktop app that will export any FogBugz filter to CSV files.
In the next version of FogBugz, this action will just be one click, but right now you can do it with the current version using this awesome tool.
Tuesday, October 14, 2008 by Michael H. Pryor
- Create a shortcut to your screenshot.exe program under c:\program files\fogbugz\screenshot
- Move the shortcut to your desktop
- Right click the shortcut and choose "Properties..."
- Add /picture to the end of the target - making it "C:\Program Files\FogBugz\Screenshot\screenshot.exe" /picture
- Assign a hot key to the shortcut.
- Drink a lemonade.
More info courtesy of
Stack Overflow's question on screenshot tools.
Sunday, October 05, 2008 by Michael H. Pryor
We have a fair number of customers who contact us with MySQL corruption horror stories. Hopefully this blog article will help them
recover their database.
Thursday, October 02, 2008 by Michael H. Pryor
FogBugz 6.x will work fine on Windows 2008. The only things you need to do are
- Install IIS 7 (it doesn't come preinstalled) and check off the boxes for .NET/ASP/CGI/etc

- Disable DEP by typing "bcdedit.exe /set {current} nx AlwaysOff" on a command prompt. And then make sure you reboot afterwards.

Friday, September 26, 2008 by Michael H. Pryor
Fog Creek Copilot now has a
feedback page on Uservoice. The developers are monitoring this site, so please post any suggestions you have about how Fog Creek Copilot should work.
Thursday, September 25, 2008 by Michael H. Pryor
Morten Nisker, from the CS dept at Aarhus University, has created a FogBugz plugin for the CMS Typo3.
All of the Feedback Links on the website send a new case message via the API to their FogBugz installation.