Wednesday, May 7, 2008

FxCop Now Targeting Speeding

Almost two months ago, at the February Adelaide Geek Dinner, I was expressing my frustration at one of my Visual Studio solutions taking too long to build and how I would like Visual Studio to build using multiple processors just like the new MSBuild /m parameter.

Paul Stovell made the comment that even with the improvement that multi-core builds was giving me, my solution really shouldn't be taking that long to build. Given that Paul wasn't familiar with my particular project layout and I naturally didn't have a copy with me, the conversation quickly went onto other topics.

However, Paul's comment stayed with me for days after, bugging me every time I waited for the latest build to complete. Then, while staring at the VS Output window during a build, I noticed that most of the time seemed to be spent running FxCop on each project.

I decided to rebuild the solution but this time disabling code analysis via the appropriate build switch. I watched the build time drop from 40 seconds to just 10 seconds by skipping the FxCop process.

Excellent! But given that our entire team runs with Option Strict On, Treat Warnings As Errors, and the Code Analysis Check-in Policy, how could I possibly revert to such a lax build process for the sake of decreased build time?

The answer is to disable Code Analysis in each project's settings (and unfortunately the check-in policy too) but leave it enabled in the Team Build script so it runs and gets reported via the continuous integration build that runs after each check-in. Luckily we've also been running with FxCop for so long that we tend to avoid writing code that would cause violations in the first place.

I met with Paul over the weekend and mentioned my success with better build times. When I told him I had been running FxCop with every build, he just laughed, amazed.

Juggle.com

Well, I can finally start releasing the name of our product / company / web site since 1 - we are officially expanding the team and hiring more people, 2 - the placeholder page is up at juggle.com, and 3 - the CEO accidentally updated her LinkedIn profile two weeks ago.  Oops.  But I can't tell you what we are building yet.

Hey, here is a good way to find out.  Join the company!

Hiring in St. Louis

We are a small web development group looking to expand our team. Plain and simple, we are looking for great developers. We are focused on finding people who have a passion for development and are excited to be part of a team that is developing a leading semantic web application. There's no Ruby, Java or PHP here… Microsoft only.

You will be working in a fast paced environment that deals with a lot of Web 2.0 (I really hate that term) technology.  We value team members who make the internet a part of their lives, not just a place they send their hard work for other people to use.  Here's a quick test.  Which search engine just threw in the towel?  What do Alex and Kevin sit on?  What's the point of Twitter?  What should manager Rob write himself?

What to expect from our environment? 

We have one core rule:  Create great software.  There is no team of red tape police who have locked down your workstation and blocked 50% of the sites on the internet.  No crazy rules about reading blogs or blocking IM. 

Each Monday we start a new development iteration where you will commit to the amount of work you can get done for the week.  Thursday's are code reviews, so no sneaking in a DataSet to get the job done quick.  Friday's are iteration review meeting day where you will demo what you finished during the week.  And every morning is a quick standup meeting.

Qualifications:

  • You should know C# or VB.NET (but you will be using C#), ASP.NET 2.0 or higher and SQL Server 2005.
  • It would be helpful if you also knew AJAX and how to write unit tests.
  • It would be really great if you already knew CSLA or ComponentArt.

The Joel Test results: 11 out of 12.

  1. Do you use source control? (YES)
  2. Can you make a build in one step? (YES)
  3. Do you make daily builds? (YES+)  We believe in continuous integration.  No breaking the build.
  4. Do you have a bug database? (YES)
  5. Do you fix bugs before writing new code? (YES)
  6. Do you have an up-to-date schedule? (YES)
  7. Do you have a spec? (YES)
  8. Do programmers have quiet working conditions? (NO) You will be working in an open area with 4 other developers.
  9. Do you use the best tools money can buy? (YES)
  10. Do you have testers? (YES)
  11. Do new candidates write code during their interview? (YES)
  12. Do you do hallway usability testing?  (YES)

Still interested even after #11?  Then send me an e-mail using the contact form or scott.kuhl@juggle.com.

Technorati Tags: hiring,st. louis,asp.net,juggle.com

Dynamic lookup

A while back Charlie Calvert and Mads Torgersen wrote about dynamic lookup being part of the plans for C# 4.0. A code block specified with the "dynamic" key word will allow dynamic lookup with syntax like follows:

static void Main(string[] args) {     dynamic     {         object myDynamicObject = GetDynamicObject();         myDynamicObject.SomeMethod();         // call a method            myDynamicObject.someString = "value"; // Set a field         myDynamicObject[0] = 25;              // Access an indexer     } }

While this is a welcome feature I want it now! Of course I could resort to reflection but it gets tiresome writing all the code needed just to get a simple field or property so I made a little library that lets me write the previous example as follows:

static void Main(string[] args) {     dynamic     {         object myDynamicObject = GetDynamicObject();         myDynamicObject.Member("SomeMethod").Call();			// call a method            myDynamicObject.Member("someString").Set("value").Call();	// Set a field         myDynamicObject.Member("Item")[0].Set(25).Call();		// Access an indexer     } }

 

This also allows me to access private, protected or internal members of objects and on top of that it can compile functions for invoking the member on several instances of the same type.

I provide the code here but I'm sure there are several bugs in it so please don't use it in your applications as is. Actually please don't use it for anything like that without asking permission first...

#region Using Directives using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Globalization; using System.Reflection.Emit; 

Interactive MAD Fold-ins - coolness

This is awesome, and has nothing to do with tech(found via twitter):

Interactive MAD magazine fold-ins from the sixties to today.

ProfileCommon in WebApps fixed quite easily with no addins required

In my previous post, I was sort of happy to see an update for WebProfile for use in VS08.  The thing is, I really dislike the error you get in the build with this approach, I just can't use that in a production environment.  So... I did some more digging and came across this solution by Jon Galloway.  You should read his article for a full explanation of what is going on.

His samples are in C# which is great, but there are some caveats to doing it in VB.

Here is the same code in VB:

 

    Public Class UserProfile         Inherits ProfileBase          Public Shared Function GetUserProfile(ByVal username As String) As UserProfile             Return CType(Create(username), ProfileBase)         End Function          Public Shared Function GetUserProfile() As UserProfile             Return CType(Create(Membership.GetUser().UserName), ProfileBase)         End Function          <SettingsAllowAnonymous(False)> _         Public Property Description() As String             Get                 Return TryCast(MyBase.GetPropertyValue("Description"), String)             End Get             Set(ByVal value As String)                 MyBase.SetPropertyValue("Description", value)             End Set         End Property          <SettingsAllowAnonymous(False)> _         Public Property Location() As String             Get                 Return TryCast(MyBase.GetPropertyValue("Location"), String)             End Get             Set(ByVal value As String)                 MyBase.SetPropertyValue("Location", value)             End Set         End Property          <SettingsAllowAnonymous(False)> _         Public Property FavoriteMovie() As Integer             Get                 Return CInt(MyBase.GetPropertyValue("FavoriteMovie"))             End Get             Set(ByVal value As Integer)                 MyBase.SetPropertyValue("FavoriteMovie", value)             End Set         End Property     End Class 

When using this approach in VB, I still get some occasional errors in the designer when using SplitView, a recompile makes these go away and the code does indeed run fine.  It seems to be something in the background compiler... I wish Microsoft would fix this silly 4 year old bug.

Anyway, I really like this approach MUCH better than placing the profile data in web.config.  If you are relying on the code and some genius decides to add a field or change the name it will cause any dependent code to go haywire anyway when the CodeSpit is regenerated.

When I am controlling the Fields in Code (where it should be anyway...) That is not a major concern since we know what we are doing when the code changes and its not in an editable file by someone not actually Testing the code.

Therefore, all the other methods have many problems that just aren't worth dealing with when this is simple, elegant, effective and safe.

I also find it much easier to just use an instance rather than some other suggestions of using a Property in a BasePage. 

i.e

Dim prof = UserProfile.GetUserProfile()
or
Dim prof = UserProfile.GetUserProfile(username)

I also found that turning off Automatic updates seems to help with the errors for some reason, with it turned off, I don't seem to get them any more and thus you need to do your saves with an instance or you will have to perform a save after changing any item since getuserprofile will overwrite any unwritten changes to the object because it is creating a new instance every time.

So my resulting web.config looks like this:

<profile automaticSaveEnabled="false"
           enabled="true"
           inherits="ProfileUtility.UserProfile">

This is for the Default Provider, if you use  Custom Provider as well, use the following:

<profile defaultProvider="<YourProviderName>"
           automaticSaveEnabled="false"
           enabled="true"
           inherits="MonetaModel.UserProfile">

IE8 will be the only browser not to support opacity

I recently blogged about that IE8 beta1 currently doesn't have any support for the CSS3 opacity property or the alpha filters that is used in IE5.5/IE6/IE7. Microsoft had noted in one of their whitepapers that they would plan on adding some CSS3 support based on customer feedback. The lack of opacity is one of the most requested features in their bug tracking system, so natually I figured that they were going to add opacity to a future beta.

However, this week the IE team wrote that they are NOT going to include this in IE8 but will consider it for a future version.

This would make IE8 the only browser to not support any form of opacity, and "break" A LOT of exisiting websites, tools etc. that rely on this (including several of Microsoft's own websites and API's). I'm flabbergasted.

If you as me think this is wrong, go and sign up for the IE8 beta program and vote and comment on this issue.

Click here to sign up for the IE8 beta program. Afterwards you should be able to see, vote and comment on the opacity bug entry:

https://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=331735

Semantic Web in the news

In scanning new Semantic Web news, I'll be looking out for re-use of data. The momentum around Linked Open Data is great and exciting -- let us also make sure we make good use of the data.

Saved By: James Kim | View Details | Give Thanks

Tags: Semantic Web, Tim Berners-Lee, mashup, re-use of data, Web of data

Book: Fructose ‘missing link’ in obesity epidemic

GAINESVILLE, Fla. — Could the simple sugar responsible for putting the sweet in everything from bananas to root beer be the missing link in understanding what puts the fat on a person’s thighs? Yes, according to a book penned by a University of Florida researcher that was published today.

In his book, “The Sugar Fix: The High-Fructose Fallout That Is Making You Fat And Sick,” Dr. Richard Johnson reviews the increasing evidence that fructose may play a role in the obesity epidemic and proposes a low-fructose diet he believes could help people lose weight and potentially prevent diabetes and cardiovascular disease.

“We recognize that obesity has multiple causes, including eating too much and exercising too little, but we think a missing piece of the obesity puzzle is fructose intake,” said Johnson, the J. Robert Cade professor of medicine and chief of the division of nephrology, hypertension and transplantation in the UF College of Medicine. “It’s not fructose itself that is the problem, but eating too much of it.”

Americans consume nearly three times as much fructose as a century ago, Johnson said. Although the major source of fructose is soft drinks, it’s found in a variety of foods such as fruit, juice, sweetened cereals and pastries.

“We think fructose makes you obese not simply by the calories it provides but because it also tricks hormonal systems that control appetite,” Johnson said. “You don’t get a sense of being full so you keep eating. It (fructose) may also be important in the development of diabetes, kidney disease and heart disease.

“An additional problem is that the more fructose you eat, the more sensitive you become to it,” Johnson said. “If you want to have success losing weight, you have to cut out fructose for two weeks. At that point you are no longer as sensitive and you can resume a low-fructose diet with ease.”

Johnson’s book, which was published by Rodale, contains a diet he developed with nutritionist and dietitian Elizabeth Gollub, as well as tables listing the fructose contents of common foods. Fructose content is not found on most labels.

Unlike other low-carbohydrate diets, which require dieters to reduce all carbs, Johnson’s plan targets fructose. Starchy foods like potatoes and rice aren’t a no-no as in low-carb diets. And after the first two weeks, dieters can resume eating fruit and having treats such as cake in moderation.

“Most people are used to eating about 50 percent of their diet as carbohydrates,” Johnson said “When you cut it way back and have a very high-protein, high-fat diet, it’s very hard to sustain. It’s also not necessarily healthy. What’s great about our diet is we can maintain a normal carbohydrate-protein-fat balance, and when you do that, the diet is much easier to sustain.”

Johnson became interested in fructose while studying hypertension. He and his colleagues discovered that uric acid increased blood pressure in animals and that ingesting fructose seemed to spur production of uric acid. Reducing uric acid in these animals helped control blood pressure and other problems such as pre-diabetes.

“The effect of fructose to cause pre-diabetes and raise blood pressure may be more important than its effects to increase weight,” Johnson said. “Our studies suggest that, even if one can control one’s weight, that excessive intake of fructose may increase the risk for high blood pressure and diabetes. Going on a low-fructose diet will have benefits above and beyond losing weight.”

The research in Johnson’s book came from studies in his own lab as well as from other scientists studying fructose in cells, animals and humans at other institutions, he said.

He also reviews the history of fructose consumption, comparing it with the rise of obesity. The two histories mirror each other, he writes.

Although fructose consumption was already on the rise when high-fructose corn syrup was invented, the introduction of this sweetener in the late 1960s accelerated the increase. High-fructose corn syrup contains about as much fructose as table sugar but is cheaper to produce, leading companies to produce bigger portions of sweets and soft drinks for the same price, Johnson said.

Today, Americans eat 30 percent more fructose than they did in the 1970s and three times as much as in 1900, when the obesity rate was 5 percent, Johnson said. About 33 percent of adults are now overweight or obese, according to the Centers for Disease Control and Prevention.

“After reading this book I found myself looking more carefully at labels, looking specifically for high-fructose corn syrup,” said Dr. Andrew Whelton, an adjunct professor of medicine and the former director of clinical nephrology at Johns Hopkins University. “I was amazed to see it so often.

“Although this book was put together for a lay audience, I thought it would be useful for health-care providers, particularly for anyone who deals with issues of obesity and diabetes.”

Scientists: New technique identifies molecular ‘biomarkers’ for disease

GAINESVILLE, Fla. — University of Florida chemists are the first to use a new tool to identify the molecular signatures of serious diseases — without any previous knowledge of what these microscopic signatures or “biomarkers” should look like.

Reported this month in the online edition of the Journal of Proteome Research, the advance could one day lead to earlier detection and improved treatment of some types of cancer as well as other diseases.

“With many diseases, the problem has been that we really don’t know what to look for,” said Weihong Tan, a professor of chemistry and the lead author of the paper. “What we’ve done is create a technique to identify the biomarkers despite that limitation.”

Doctors often diagnose cancer and other diseases based on the appearance of a tumor or a patient’s symptoms. While such traditional methods can be effective, they sometimes identify a disease only after it is established. For example, clinicians may get tipped off to the presence of lung cancer — which kills more people than any other type of cancer — based on visible images of a tumor that appear on radiological exams of a patient’s lungs.

Because earlier detection typically improves outcomes, doctors would like to spot disease at the molecular level, before it grows or spreads and manifests itself in more obvious and harmful ways. Given that diseased cells’ molecular structures differ from those of healthy ones, that approach should be possible, and researchers have had some success finding such “biomarkers” using antibodies, Tan said. But despite years of research, biomarkers for most diseases remain elusive or unreliable, he said.

His group turned to “aptamers,” single-strand chains of DNA or RNA that recognize and bind to target protein molecules, as a new tool. His paper reports the first-ever successful use of the aptamers to discover a molecular biomarker — in this case, one for leukemia.

Tan said his group used cell-SELEX, a process his group developed and patented.

Researchers create trillions of different varieties of aptamers in a solution. They then immerse cells known to carry the sought-after disease in the solution. After an incubation period, they rinse the cells.

The vast majority of the aptamers wash away, but those with stronger molecular affinity for the diseased cells remain. The researchers repeat the process several times, eventually shrinking the pool of aptamers to as few as 10 to 25 very strongly attached aptamers — those most closely associated with the diseased cells. Analysis then reveals these aptamers’ molecular structure, as well as the molecular structure of the cells’ biomarkers they bind to.

“As long as the molecules in question are expressed in a substantially different way on diseased and normal cells, they can be identified,” Tan said.

Rebecca Sutphen, associate professor and director of the Genetic Counseling & Testing Service at the H. Lee Moffitt Cancer Center & Research Institute in Tampa, said improved diagnosis may not be the only application of the research.

“The opportunity to identify cancer cell-specific biomarkers and potentially detect small numbers of cancer cells has many potential clinical applications, including disease detection, better imaging of tumors and even potential application for stem cells,” she said.

Other biomarkers have been found for leukemia, but none is particularly reliable, Tan said. Tan and his colleagues reported using aptamers to recognize cancer cells in a 2006 paper in the Proceedings of the National Academy of Sciences. Tan said the latest paper advances that work by revealing the target biomarkers the selected aptamers recognize, Tan said. These targets will form a molecular foundation in understanding diseases, he said.

“In 2006, we did not know what the aptamer recognized on the cancer cell surface,” he said. “In this current work, we report discovering these biomarkers, which then form the molecular foundation for us to understand the cancer and to prepare different molecular tools for molecular medicine.”

Tan said the research is particularly promising because aptamers are relatively easy and inexpensive to manufacture compared with antibodies. “This offers the potential for wider application,” he said, adding that aptamers could one day be used not only to detect disease, but also to ferry therapeutic agents to diseased cells.

The research was funded in part with two grants from the National Institutes of Health. It was also funded with two grants from Florida’s Bankhead-Coley Cancer Research Program and one grant from the State of Florida Center of Excellence in Bio/nano sensors.

The paper’s co-authors are Dihua Shangguan, Zehui Cao, Ling Meng, Prabodhika Mallikaratchy, Kwame Sefah, Hui Wang and Ying Li.

UF family finance expert gives top 10 ‘What Not to Do’ list for taxpayers

GAINESVILLE, Fla. — Tax season is one of the most stressful times of the year. And a University of Florida expert cautions against making common mistakes that can complicate matters as we go about accounting for our income with the federal government.

So Michael Gutter, an assistant professor in family financial management with UF’s Institute of Food and Agricultural Sciences, has compiled a list of Americans’ top 10 tax-season gaffes.

1. Not making use of VITA (Volunteer Income Tax Assistance) sites. If your taxes aren’t terribly complicated–you don’t own a business or have a lot of investment income to report–then VITA is an underused resource worth checking out.

“That’s the first thing I would tell people, is to make use of those sites. They have a lot of oversight by state regulatory agencies and the IRS and they’re audited internally before tax forms are sent up and approved and they’re e-filed for free,” he said. “It’s a free service, done by people who literally work with tax code day in and day out.”

Check with your local county extension office or the Florida Prosperity Campaign, www.prosperitycampaign.com, to find your closest VITA site.

2. Not keeping organized records and missing deductions or credits you deserve.

Gutter said taxpayers should keep in mind that the tax code is designed to promote and encourage good-citizen type behavior: Getting an education, taking care of your children, buying a home, giving to charity, etc.

“There are so many opportunities for people to try and save legitimately between deductions and credits,” he said. “A tax credit is a dollar for dollar reduction in your tax liability, so by not taking advantage of it, you’re really giving away your own money.”

3. Not using your kids to your best (tax-saving) advantage.

If you have children, Gutter said, a number of tax credits might be relevant for you. If you have college-age offspring, there are even more.

Go to www.irs.gov and search “education tax credit.”

4. Not realizing that if you’re struggling financially, you might be eligible for the Earned Income Tax Credit, a credit for low-income workers. Even if your income isn’t high enough to require a tax return, you can still get the credit.

Go to www.irs.gov and type “Earned Income Tax Credit” in the search box.

5. Spending your tax-refund windfall instead of filling out IRS Form 8888. The 2-year-old form can be used to automatically funnel your tax refund into one or more accounts, such as a savings account or an IRA or other safe place where you won’t be tempted to spend it on an impulse item.

Go to www.form8888.org

“It helps people with the self-control issue that we all have with money,” Gutter said. “It burns a hole in everyone’s pocket, it just depends on what temperature it burns in your pocket and how fast.”

He advises taxpayers to use tax refunds sensibly: Reduce debt first, put money toward retirement or pay bills.

6. Not realizing you can go back and amend previous years’ returns.

If you find this year that you haven’t been taking a tax deduction you’re legitimately eligible for, Gutter says, it’s perfectly acceptable to go back and file amended returns for those years.

7. Buying into the hype over speedy refund anticipation loans.

Unless you are in a true financial emergency, tax refund anticipation loans are “not typically in people’s best interest,” Gutter said.

The loans are similar to paycheck advance loans, he said. The “refund” you get is generally the refund you would have gotten if you’d waited–minus a fee or interest.

8. Not realizing you can make IRA contributions for the previous year up until tax filing day.
So until April 15, 2008, you can contribute to your IRA for tax year 2007.

9. Delaying filing a return without a good reason.

This just leaves your refund in the government’s hands when it could be accruing interest for you, Gutter said. There are some instances where it might make sense to sit on one’s tax return until the last minute–such as waiting to pay Uncle Sam if you still owe taxes, as a way to keep the money working for you until the last moment.

10. Breaking the law by lying on your taxes or not filing a return at all.

“We always tell people, even if you owe the IRS money, work on it–you’re not going to get away with this for very long,” he said. “And if you don’t know how to file your taxes, get some help. But not filing is not in your best interest.”

Economy slows Florida population growth to lowest level in 30 years

GAINESVILLE, Fla. — The bursting of Florida’s housing bubble and overall economy has also let the air out of the state’s famed population growth, which has shrunk to its lowest levels in three decades, according to the latest projections from the University of Florida.

“A tremendous slowdown is forecast over the next few years compared to what we’ve experienced during the last five years,” said Stan Smith, director of UF’s Bureau of Economic and Business Research. “The state has not experienced a decline of this magnitude since the mid-’70s, when we were in a national recession.”

The Sunshine State is expected to add an average of only about 209,000 residents a year between 2007 and 2010, compared with annual increases of about 418,000 people between 2002 and 2006, he said.

Although Florida remains a major destination for retirees, far more young and middle-aged people move into the state to find work than their older counterparts arrive to retire, Smith said. But declining job opportunities have stanched the influx of younger people, he said.

“The vast majority of Florida’s population growth is due to migration, and during a recession the rate of job creation slows down in Florida,” he said.

The biggest group moving to the state during the last four or five decades has typically been those in their 20s and 30s, with those 65 and older accounting for only about 15 percent of in-migration, Smith said. But younger people in their 20s and 30s also make up the biggest share of those leaving the state, which is why Florida became the nation’s oldest state after World War II, he said.

Robust real estate markets and burgeoning construction fueled Florida’s growth from 2002 to 2006, just as it did during the boom years of 1971 to 1974, Smith said. In turn, the housing market’s decline dramatically curbed population growth after 2006, just as a national recession in the ’70s sharply limited expansion between 1974 and 1977, he said.

Another reason growth typically slows during a recession in addition to the availability of fewer jobs is that people have difficulty selling their houses, which delays their move, he said.

“We’ve certainly seen a slowdown in economic growth nationally, and it’s even possible we may be in a recession right now, although we won’t know for sure until later this year,” he said.

Projections call for Florida’s population to return to more normal growth levels of about 317,000 a year between 2010 and 2020, similar to the 1980s and 1990s, Smith said. Although there also was a slowdown in growth during recessions in the 1980s and 1990s, it was nowhere near the steep decline of the 1970s or that which is taking place now, he said.

“It’s really sort of a boom-and-bust pattern that we have seen in Florida,” Smith said. “The years between 2002 and 2006 were the biggest in terms of absolute increases since the early ’70s, and then just as we experienced in the ’70s we are going from a period of high- to low-growth numbers.”

The county projected to grow the fastest in percentage terms between 2007 and 2010, Lafayette in Florida’s Big Bend, is something of an anomaly because it owes its top spot to prison construction, Smith said. It is predicted to grow from 8,215 in 2007 to 9,200 in 2010, he said.

Otherwise, many of the high-growth counties are the same as in past years, he said.

Flagler, which was the fastest-growing county between 2000 and 2007, jumping from 49,832 to an estimated 93,568, is expected to continue to expand at a rapid rate, to 103,500 by 2010, Smith said. Its coastal location, proximity to Jacksonville and relatively low cost of living, as well as the presence of the large Palm Coast development, contribute to its high ranking, he said.

Other rapidly growing counties are Sumter, which owes its surge in part to prison expansion and the increasing number of residents at The Villages retirement community, and Osceola County, which receives spillover from nearby Orlando.

In terms of absolute numbers, the counties expected to make the biggest gains between 2007 and 2010 are Miami-Dade, from 2,462,292 to 2,512,300; followed by Orange, from 1,105,603 to 1,154,200; and Hillsborough, from 1,192,861 to 1,234,900.

Off-What? The New Breed Of Regulator...

There's been quite a bit of chat in the media today of Ofwat - the regulator of the water industry - after they imposed a massive fine on Severn Trent Water.

We have Ofcom that regulates the communications industry.

Ofgem regulates gas and energy markets - not to be confused with a regulator of jewellery.

And if Ofwat is water, should the travel industry be regulated by Ofwhere?

Apart from the ski-ing holiday industry, which should be regulated by Ofski.

Then we have the regulator of public schools and the upper classes - Oftoff - not to be confused with the health regulator - Ofcough.

And of course the regulator for deference - Ofdoff - but I like to leave that to them.

Can anyone else think of some good possible regulators?
-
(Image Source: Stannered, http://commons.wikimedia.org/wiki/Image:Inverted_question_mark_alternate.svg)