Welcome to Scott Watermasysk Sign in | Join | Help

Ancora Imparo

A blog by Scott Watermasysk

Archives

Powered By

  • Powered By Community Server
  • Powered By ASP.NET 2.0
  • Hosted By ASPNix
BarCampNYC

What is BarCamp?

Unfortunately, it has very little to do with an actual bar, but does sound like a lot of fun.

BarCamp is an ad-hoc gathering born from the desire for people to share and learn in an open environment. It is an intense event with discussions, demos, and interaction from attendees.

One will be held this weekend (Sept 30, 2006) at the Microsoft Manhattan office. I had my dates a bit off (could have sworn it was mid-October), but thanks to a timely email from Peter I am all straightened out. I am about 90% sure I will be there and if you can make it in (assuming you likely geeky developer type events) I recommend stopping by.

I will not be able to stay overnight, but I do plan on hanging out for most of the day on Saturday.

When:
Saturday, September 30 - Sunday, October 1, 2006 (with sleepover)
10:00am - 5pm, with dinner to follow on Saturday
Registration starts at 9:30am on Saturday

Where:
Microsoft Office, Midtown Manhattan near Radio City Music Hall

You can add yourself to the attendee list here and see more details here.

Drop me a comment if you are plan on attending. I know Don, Miguel, and Chip are making the trip in from Jersey as well.

Google Down?

What is up with Google today? I have had to use Live.com for all of my searching today. Any site (including this one) which AdSense is also painfully slow.

Speaking of Live, it has gotten much better since the last time I used it. All five of my searches were successful on the first attempt. They may have been softballs, but I am impressed.

Update: It looks like Comcast was to blame instead of Google.

Seth Godin on Ford

Monday, when you sit down with your organization to plan the next decade, perhaps you could ask, "what would the top people at Ford do?" and then do precisely the opposite.  [Full Post]

Success can be distorting thing. We have tried to keep in mind at Telligent. At any time, a product we create, a service we provide, or even an employee we depend on could disappear. You can either sit back and wait for it to happen, or you do something about it.

Amazon and Delicious Plugins

I just uploaded two new LiveWriter plugins:

  1. Amazon - enables the author to quickly add an amazon associate product link with image to a post.
  2. Del.icio.us - enables embedding a list of recent links from Del.icio.us to a post. Currently, this is by tag, but I am planning on a "most recent" version which includes displaying tags.

Here is where you can download the plugins.

Screenshots:

Amazon Plugin  Del.icio.us Plugin

LifeCam
LifeCam

Don Dodge highlighted a couple new Microsoft hardware products. Most notable to me, is LifeCam NX-6000.

The Microsoft LifeCam NX-6000 offers the highest-resolution video (2.0 megapixels4) and still photography (7.6 megapixels interpolated) on the market. This notebook webcam is uniquely designed for mobility and durability. The LifeCam’s lens is fully collapsible and retracts inside the body of the webcam when not in use. The built-in unidirectional microphone offers unprecedented audio performance, rivaling even CD audio quality. For added convenience, the versatile attachment base allows for easy and secure placement on most laptop screens. [Press Release]

Looks like it going to cost about $100 and will be available in November. This just may be my first webcam purchase.

Telligent Community Summit

As Rob mentioned yesterday, we are going to our first community "summit" in Dallas at the end of next week. The agenda is basically to spend a day or so chatting about what we (Telligent) are working on, what we could do better (as a company/product), and what we can do to make you more successful using our products.

It should be a fun couple of days. Both Dave Burke and I are going to fly in as well. If you are going to be in the area, give either Rob or I a ping.

CSMetaBlog LiveWriter Plugin

I wrote my first LiveWriter plugin last week and just uploaded it to the Community Server. You can get it here.

It uses/requires the MetaBlogExtender CSModule I wrote a couple of months ago (and recently updated).

In short, it allows you to control the Url CS gives your post and gives you the option of adding new tags on the fly (like you can in the CS control panel).

 

CSMetaBlog Extender

 

This is accomplished using the CS TagParts API. This let you add small "text tokens" directly to your posts, which CS will then process as part of the CSModule eventing framework. The tokens are usually in the format of [TokenName:TokenValue1:TokenValue2:TokenValueETC]. The tokens can be processed before or after a post is created/updated or even at runtime before the post is rendered.

SubSonic 1.0.3

Rob Conery has just released SubSonic 1.0.3. I have been chatting quite a bit with Rob about SubSonic this week and like the directions it is taking.

One new feature in 1.0.3 he did not mention but I think is import (I added it :) is the partial class support I added.

  • All ActiveRecord objects are generated as Partial Classes
  • During the save method, a virtual PreUpdate and PostUpdate methods are executed

This (IMO) gives you an excellent way to add to not only extend your ActiveRecord objects, but also invoke some so logic.

The other change I am really interested in is the refactoring of the data providers which should allow better control over the generated SQL.

For the record, I am also a big fan of Paul Wison's ORMapper. I am not a zealot when it comes to ORM/ActiveRecord/etc. I personally prefer what ever tool will help me get the job done as quickly as possible.

Neither SubSonic or ORMapper are perfect for every project, but then nothing is perfect for every project. Since SubSonic has a query API and is generated at runtime, it is working out quite nicely for the projects on my to do list.

No VC Here

Rob clears up some confusion on how Telligent was started.

  • No VC funding
  • No strategic investment from Microsoft/etc

While the extra VC cash would have been nice (Segway vs. Razor), bootstrapping kept us focused on what users were asking for. Things have not been all roses. We have made mistakes, but we continue to learn from them and refine our processes.

As commenters on Rob's post have noted, this allows us to have much more control over our future and the ability to try some new things.

  • Creative Services - we have slowly been building a world class creative group. We have had great developers from the start. But let's be honest, most sites designed by a developer...well, look like they were designed by a developer. Of course you could hire an external firm, but this adds a lot of complexity, especially under tight deadlines.
  • Black-ops - we have a list of 7 to 10 "potential" products that we devote a little time to every week. In the long run, most of these won't work out (they are unproven ideas). However, it is starting to look like two of them will be available to the public in the next 3 to 6 months.
  • Focus - we still almost exclusively focus on ASP.NET work. We have an insanely talented team. We can play buzz word bingo with best of them, but where we really excel is ASP.NET.
  • Fun - we want to build a profitable sustainable business, however, we also want to make sure we still enjoy what we are doing. VC's are looking for a ROI ASAP. The differences are subtle, but still very important.
SubSonic

A couple days ago I came across a very an interesting project by Rob Conery called "SubSonic". I will probably butcher the description, but essentially it is a very simple (simple as in, why didn't I think of this) .NET implementation of Rails ActiveRecord. Basically at compile time (using a build provider), SubSonic will inspect your database (with a little configuration help) and generate a DAL on the fly.

I have been pinging Rob with some ideas/etc for the last couple of days and finally made a little check in tonight. For an application I have been prototyping I wanted to use SubSonic, but needed to be able to add both validation and some additional "helper" properties and methods to the generated data objects. Using .NET 2.0's partial class feature made this a snap. The code generator now generates all classes using the partial keyword, which means you can add to an existing object without the need to derrive/etc.

This was also my first foray into actually contributing code to CodePlex. Having used Vault daily for the last 2+ years and recently switching to SubVersion I have to say I miss the simplicity.

If this is the first you have heard of SubSonic, I recommend watching Rob's video overview.

Site Update and Anti-Spam

I did a quick update to this site tonight. I had been running beta 1 of Community Server 2.1, which was doing a fairly good job. I had hoped to skip the RTM and jump right onto one of the early Calypso (CS 3.0) with the new theming engine. However, we are another couple weeks away from having enough stability to run it here and I wanted to take advantage of a some new spam rules released last week.

  • Telligent.SpamRules for Community Server 2.1
    A set of six new blog spam rules designed to reduce blog comment spam for sites running Community Server 2.1. Included in the assembly are the Anonymous User, Comment Length, Single Email, Flood from IP, Recent Duplicate, and Regex blog spam rules
  • Akismet Spam Rule
    Thomas Freudenberg has created a spam rule that works with Akismet and Community Server 2.1 (ASP.NET 2.0 only).
New Jersey Dev Dinner Summer 2006

As Don XML mentions, we are going to have another New Jersey Dev Dinner.

It has been a very long time since we last had a New Jersey Developers Dinner, but that is going to change this week. Any Information Technology professional (developer or ITPro) that lives or works in New Jersey is welcome to attend the NJDD. The date is August 24, 6PM, at the Harvest Moon in New Brunswick, NJ. The only people guaranteed to be there is ScottW and myself, but we always seem to attract at least a few others.

The Harvest Moon has free wireless Internet, great beer, and good food, and you know you have nothing else to do this Thursday, so why don’t you stop on by and commiserate with some others working in your profession of choice. Odds are we will be chatting about the next New Jersey Code Camp (and maybe the next NYC, Boston & Richmond Code Camps too), what’s going on in the blogging world, and others technology tidbits.

Leave a comment on my or Don's blog if you plan on attending.

CS 2.1 - Go Download It Already

Community Server 2.1 (aka, Johnny) has finally been released. It was a long battle...but I think we came out on top!

Improvements to existing Features

  • New blogs skins - some professionally design blog skins to help make your blog stand-out.
  • Improved Editor - simple to use WYSIWYG editor.
  • Improved blog authoring experience - simplified workflow for creating, editing, and saving posts.
  • Improved comment editing/management tools for blogs - designed to help you edit and manage a large number of comments quickly.
  • Better SPAM Protection - changes to the built-in spam rules to more effectively deal with spam.
  • New reports - new reports for a variety of statistics maintained by the Community Server database.
  • Per-post answer status -allows users to track answer status on a per-post level for forum posts.
  • Better fixed-width support - design changes to enable better support for fixed width sites.

New Features

  • Tags - ability to add free form tags to content and then use tag clouds and other tools to filter content.
  • Content Mirroring - ability to configure a blog to be subscribed to one or more external RSS sources bringing that content into the site for visitors and making the content searchable.
  • Post Relevance sorting - allows site owners to use new post relevance algorithm (optional) for blog aggregation page. This feature allows popular content to stay “above the fold” longer.
  • Invitations - ability to configure site so that only invited users can join the community.
  • Badges - members of the site each receive a community badge that can easily be displayed in a variety of locations, such as external blogs.
  • Feedburner / external RSS support - easily use tools, such as Feedburner, for sharing your RSS feeds on blogs.
  • Runs in Medium Trust - better support for hosting organizations that want to run ASP.NET applications in a reduced trust level.

Work on v.Next (aka chameleon) which features a brand new skinning engine is already underway.

Downloads, discussions, etc can be found over here.

The null Coalescing Operator

As the title (as of now) of this blog states, "I am still learning", I learned something new about C# 2.0 that I had never seen before on Phil Haack's blog.

From "The C# Programming Language":

A new ?? token is added to the C# lexical grammer...A null coalescing expression of the form a ?? b requires a to be of nullable type or reference type. If a is non-null, the result of a ?? b is a; otherwise, the result is b. The operation evaluates b only if a is null.

...it's the little things that make me smile. But think about how many times you write something like this:

if (someobject == null)
    return someDefaultObject;
else
    return someobject;

Of course, this can be replace with: return someobject== null ? someDefaultObject : someobject;

However, IMO, the null coalescing expression is much more readable: return someobject ?? someDefaultObject;

Finally, as Phil points out, this makes working with "object bags" such as viewstate much cleaner as well: return (bool)(ViewState["IsPaged"] ?? true);

Telligent Open Positions Part IV

I have two developer openings on my team at Telligent. My team is responsible for Community Server, another new product, and a couple very large ASP.NET sites.

Requirements:

  1. You must be able to work in the US.
  2. Experience using ASP.NET, C#, and SQL Server. Strong client side skills (CSS/JavaScript) are a big plus.
  3. You wake up everyday loving to write code.

Local (Dallas, Texas) candidates are preferred, but for the right candidate, telecommuting may be an option

If you are interested, please send an email to careers@telligent.com with the following information:

  1. Your Resume (Word or PDF)
  2. Type of position you are interested in (contract or FTE)
  3. A summary about your past experiences and why that makes you a great candidate
  4. The last book you have read
More Posts Next page »