Downtime - not umbraco related

Thursday, December 20, 2007 by Niels Hartvig

A mis-configured SQL Server filled up the servers discs today, which have caused in-stability and downtime on umbraco.org and the forum.

It was not umbraco related, but simply me who thought I was a DBA 18 months ago and made wrong maintanence plans - shame on me. I'll have a proper DBA looking over the setup as soon as possible, so it hopefully won't happen again.

Sorry for the inconvenience! 

Dec 11: Source for extensions

Friday, December 14, 2007 by Niels Hartvig

It shouldn't come as a surprise to you that umbraco is open source, and probably not much of a surprise that there's a ton of free packages out there for you. But did you also realize that most of those packages comes with full source code as well?

For most of the packages that I've initially build, I've added them to a codeplex project called codeplex.com/umbracoext:

dec11-extensions

It includes full source for the Dashboard controls, the MemberControls, the RSS Package, the Utilities and the new umbSearch that indexes Office and Pdf files as well. Casey Neehouse have added his AutoForm Plus package as well, and anyone else is welcome to share their work here.

So if you need to modify a package or are curious how the RSS package are extending the umbraco UI, all the answers are here - for free.

Sharing is Caring - merry Christmas :-)

Dec 10: Dramatic performance increase in two minutes

Friday, December 14, 2007 by Niels Hartvig

The past episodes of the Christmas Calendar has been on a start tutorial, but we'll need some goodies for longtime umbracians as well.

Today is a little easy gem that will make the umbraco admin interface seem much faster - and best of all it'll take a couple of minutes.

umbraco uses quite a number of files to serve it's neat UI. From html to images, css and javascript an umbraco user with full access to the admin UI can quickly download more than a 100 files at the first few page clicks. Now even though these files are tiny (most of them around 2-3kb), IE can only serve 2 files at the time, making the initial start of umbraco as well as opening an editing page seem very slow.

The tricks is to add cache headers in IIS and it's drop dead simple to do. Open up IIS and locate your site. Then right click the "/umbraco_client" folder, select properties and choose the "HTTP Headers" tab. Check the "Enable content expiration" and set "Expire after 7 days":

dec10-add-content-expiration

You can do the same for "/umbraco/images" and "/umbraco/js" as well.

The performance increase will be significant for your users and they'll love it. However, when planning an upgrade that involves changes to the caches directories (3.1 will), remember to set it back to just one day and then do the upgrade afterwards (that way you're sure you won't have any cache coherency issues with the files/js in umbraco).

Dec 9: Using Master Templates

Thursday, December 13, 2007 by Niels Hartvig

If you've followed the past tutorials you've learned about storing data using Document Types and presenting content using Templates. In this tutorial we'll look at have you can use Master Templates to store central parts of your site markup in one place and re-use it in others.

 

Master Templates

A master template is the exact same thing as ordinary Templates and they're created in the same way as we created our "Home Page" template in the previous tutorials. The only difference is that a Master Template includes a bit of information about where Child Templates should be inserted. This is a very simple, but efficient way to ensure that you don't repeat yourself and only need to make modifications in one place. You can even nest multiple master templates for maximum flexibility.

For a start we'll create a Master template based on the markup in our "Home Page" template. Then we'll update our "Home Page" template to use our new master template and at last we'll do the same for our "Text Page" templates. So head over to the "Settings" section of umbraco and let's get started.

 

Creating a Master Template

To create a Master Template, simply right click "Templates" and choose create:

dec9-create-template

In the Dialog, call the new Master Template "Master" and click "Create:

dec9-create

As you can see in the tree view, a new template has been created, so let's copy the markup from our "Home Page" template to the master.

Click the "Home Page" template in the tree view and copy the markup (by either using the mouse or keyboard short-cuts: CTRL+A and CTRL+C):

dec9-copy

Now, click the "Master" template in the tree view and paste the contents into the text area.

The next step is to make a little modification to our markup which will turn this template into a Master Template. We'll replace the <?UMBRACO_GETITEM field="bodyText"/> with an instruction to insert a child template instead. That instruction is called "<?UMBRACO_TEMPLATE_LOAD_CHILD/>" and remember that you can always get a list of template elements by clicking the little blue help icon in the toolbar. Remember to click the "Save" icon and then your final markup should look like this:

dec9-master

 

Using the Master Template

The next step is to modify our "Home Page" template so it uses our Master Template. It's very simple, all you need to do is to choose the Master Template from the "Master Template" dropdown. Once that's done, we can remove all the markup from the "Home Page" template which now is stored in our Master Template. So edit the "Home Page" template, choose "Master" as the Master Template and modify the template markup so it looks like this (and remember to save):

dec9-new-homepage

As you can see our Home Page template is much cleaner and because we can repeat this technique on all the other templates we'll use on our site, future changes in the central markup will be very easy to maintain, as it's stored in one single template instead of being spread across all.

So that was Master Templates. The next step is to learn about "Macros" which are used for dynamic lists and forms in umbraco and we'll use it to create a dynamic navigation for our tutorial site. But that's not until a couple of days.

The next couple of Christmas Calendar chapters will be some tips and tricks for power users - they also need a little love from umbraco Santa, don't they :-)

Level 2 Training in Australia

Thursday, December 13, 2007 by Niels Hartvig

This is why I love my job, I'm going down under on January 30-31th to do a Level 2 course in Melbourne, Australia. YAY!

There's six to eight available seats and the price is AUD1.400. For all the details and the sign up form, check out the special Australia Course page.

Kudos to Next Digital to be the nice sponsor of the adventure.

Btw: If you got ideas for sights to see I'd love to hear about them. I'll be staying with the family for three weeks :-)

Dec 8: Adding page information to templates

Wednesday, December 12, 2007 by Niels Hartvig

In the previous tutorial we managed to create a very simple "Hello World" template, which only outputted a hard coded paragraph with Hello World. That's not of much use, so in this tutorial we'll look at how to use dynamic values from our pages in templates.

Before we start, it might be a good idea to recap what we've done so far:

  • We've created two Document Types and templates - "Home Page" and "Text Page"
  • We've added some properties to the Document Types, so an author could edit some content in a WYSIWYG editor as well as add some Meta data information. These properties had:
    • A "Name" which the author will see
    • An "Alias" which is used in code and templates to access the property
    • A "Tab" so we can divide properties into different section for better overview
    • A "Type" which very simplified determines how the property looks like when editing it - is it an upload field, a WYSIWYG editor and a date chooser
  • We've added a few pages to the content tree
  • We've edited the "Home Page" template and hard coded Hello World

Adding html to our template

Now it's time to create a little more advanced template where we'll use the values stored on our pages. Have no fear, it's very easy and we'll take it slow.

Start by going to "Settings", fold out the "Templates" tree and click the "Home Page" template:

dec8-helloworld

We'll replace the "Hello World" with some proper markup, so remove the "Hello World" and paste the following html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>[A title should be placed here]</title>   
    </head>
    <body>
        <div id="container">
            <div id="navigation">
                [Add navigation here]
            </div>
            <div id="content">
                [Add page content here]
            </div>
        </div>
    </body>
</html>

Click the Save icon in the toolbar and your screen should look like this:

dec8-stubs

As you can see, this is some very bare bone html complete with placeholders which will replace with some umbraco template elements in a moment. For now, go look at the website and do a view source:

dec8-viewsource

Notice how the markup outputted by umbraco is completely identical to the markup you added in the template, including whitespace (tabbing). It shouldn't come as a surprise, remember I promised that umbraco wouldn't mess with your markup, but now you got evidence. With umbraco, you finally have a ASP.NET CMS that respects your markup. Now it's time to add some dynamics to the placeholders!

 

Accessing page properties in the templates

Let's head back to our "Home Page" template and replace the placeholders (the text in the square brackets) with some dynamic content - it's time to play with some umbraco template elements. So far we've just been adding good old html to the template, but if you want other than hard coded content in your templates (and that would be nice wouldn't it?) then you'll need to learn a little more.

In the previous tutorial I showed you the five different umbraco elements, but I also promised that you didn't really needed to write them yourself because the template editor offers build in UI.

We'll start by adding the title of our umbraco page to the html title header, so remove the text "[A title should be placed here]" and place your cursor inside the "TItle" elements and click the "Insert umbraco page field" button in the toolbar:

dec8-pagefield

A new dialog will appear giving you some handy options for inserting page properties to your template. For now we'll focus on the simplest way to insert a property and then we'll get back to the various options in a later tutorial. If you open the dropdown from the "Choose field" you can see a list of all the page properties that's currently created in your umbraco installation. The ones in the bottom of the list, prefixed with a "@" is build-in properties that exists on all pages created. The ones in the top is the custom ones you've created.

For now choose "@pageName" from the "Choose field" drop down and click the "Insert" button in the bottom of the window:

dec8-choose-pagename

umbraco will insert the template markup needed for the title of the page into your template:

dec8-pagefield-result

Now do the same for the [Add page content here]:

  1. Remove the placeholder text
  2. Click the "Insert umbraco page field" button in the toolbar
  3. Choose "bodyText" in the dropdown (that's the alias of our WYSIWYG property we created in a previous tutorial, remember?) and click "Insert"
  4. Click "Save" in the toolbar

The final result should look like this (we'll work on the navigation in a later tutorial):

dec8-final-template

Now, go see your "Home Page" of your website. Notice how umbraco automatically insert the content into the template. You can try modifying the contents of the WYSIWYG editor or the title of your page. Just remember to Publish the page and then view it afterwards:

dec8-result

And again - view source will reveal the cleanest markup ever seen from a .NET powered CMS:

dec8-finalsource

 

Next steps

Now that you've learned to insert properties into a template the next step will be to look at how we can apply master templates. We'll look at that tomorrow.

1508 - the most beautiful umbraco driven site

Wednesday, December 12, 2007 by Niels Hartvig

1508.dk just got to be the most beautiful umbraco site ever launched (it's in Danish, but look at it for the stunning visuals and to remember that umbraco gives you full design freedom).

I love the handdrawn flash animations in the top, but also remember to take a look a these case story pages (where the usual white background suddenly turns black - awesome):

Great job! We better go add it to the reference page - do you know of a cool umbraco site? Tell us and we'll get it up on the 'org. We'll also soon get the community submitted sites back - promise!

Five days of Christmas Love Wednesday

Wednesday, December 12, 2007 by Niels Hartvig

I'm not dead, just been sick and after that working on getting the forum back up all day. Tomorrow is all about catching up. So santa might be getting old and slow, but he doesn't forget ;-)

Dec 7: Templates part I - The introduction

Friday, December 07, 2007 by Niels Hartvig

Over the past two tutorials we've learned about Document Types and how they were used to organize our data model. We also learned how we could control the visual appearance of the Document Type in umbraco and we tried create some content based on the "Home Page" and "Text Page" Document Types. So far so good.

But one thing is entering and managing data, another thing is actually presenting them and so far all we get when we preview our pages is plain old whitespace:

dec7-before-templates

But  fear not my friend, it's simply because we need to learn a bit more.

 

Introducing templates

One of the things that people really likes about umbraco is that it gives you complete - as in total, non-destructive and non interfering - control over the output. This assures that you can create valid, semantic and accessible markup in anyway you want. And so far we haven't told umbraco anything, so it proves it's worth; I won't do anything, because that's what I'm told. If only I could raise my kids like I raised umbraco ;-)

The solution to our blank page is adding markup to our templates, but before we do that I'd like to take a moment to explain what a template in umbraco actually is - which is very simple. An umbraco template is basically text - usually (X)Html - combined with umbraco tags (elements). This means that you can simply take your own markup and replace the chunk of "Lorem Ipsum" (or whatever you call your placeholders) with umbraco tags. That's it! umbraco will respect your attention to detail when it comes to markup and output exactly the same as you created, including whitespace, tabs and linebreaks and it gets even better - you don't need to learn a new proprietary and obscure template language.

 

The Template Tags

Instead of having it's own template language and re-inventing the wheel by having yet-another-way-to-handle-presentation-logic, umbraco is based on standards for dynamic content, which we'll get back to in a moment. For know, let's focus on the simplicity of the template elements which consists of five element (yes, just 5!):

  1. <?UMBRACO_GETITEM />: This is for inserting a property from the current page that's rendered. So if we wanted to output the name of the page we would simply write: <?UMBRACO_GETITEM field="pageName"/> (in fact we wouldn't as there's a complete UI - you don't even have to learn the element syntax!)
  2. <?UMBRACO_MACRO />: This is for inserting dynamic content like lists or forms. We'll explore macros in depth in a later tutorial, but basically a macro is a wrapper for either a .NET control or an XSL Template, which is a standard made by W3C, the same group who developed Html.
  3. <?UMBRACO_TEMPLATE_LOAD_CHILD/>: With umbraco you can have the central layout stored in Master Templates and this element will determine where to insert child templates that uses the master.
  4. <?ASPNET_FORM />. As umbraco is based on Microsoft ASP.NET, but don't output any markup unless told (you get the picture now, right!) you'll need to tell umbraco where to put a serverside form if you use .NET Controls.
  5. <?ASPNET_HEAD />. If you wish to use an ASP.NET server side Head element, you'll use this element

Help on the elements is always near by - simply click the "Help" button in the toolbar when editing a template and you'll get the list:

dec7-help

 

Updating our template

Enough with the theory - let's try to make a simple templates. Go to the Settings section and foldout the templates. If you've followed the previous tutorials, you can see we have two templates which was automatically created when we added the corresponding Document Types (because we checked the "Create matching template" box when creating the Document Type):

dec7-templates

Click the "Home Page" template and you'll see this view:

dec7-edittemplate

For now we'll concentrate on the "Template" textbox, so try to add "<p>Hello World</p>" into the big textarea and click the Save button in the toolbar. Now try go previewing your Home Page:

dec7-helloworld

Stunning!

 

Adding page information to the template

Now you always need a Hello World Sample, but wouldn't it be great to improve just a little? Well, come back tomorrow and we'll start using the elements (I would have liked this tutorial to been a little longer, but I ran out of time!)

Dec 6: Document Types part II

Thursday, December 06, 2007 by Niels Hartvig

In the last tutorial we learned that Document Types are essential in an umbraco implementation - without Document Types, no content can be created. So we learned that creating Document Types is a very easy point and click process and we can add an unlimited number of properties to a Document Type. That means we can build our data model to fit our needs without any limitations and without writing any code - we even get a beautiful UI for our end-users automatically.

We started off by creating a simple Home Page Document Type and added some properties. Now it's time to add a Text Page Document Type and allow Text Pages to be created below our Home Page. We'll create the Text Page Document Type in the Settings section of umbraco using what we learned in the last tutorial. First go to settings:

dec3-settings

Then right-click the Document Types and choose create:

dec3-create

In the pop-up dialog type "Text page" as the name, remember to check the "Create matching template" box and click the "Create" button:

dec6-create

As you can see a new Document Type has been created named "Text Page":

dec6-done

Again we'll want to add a tab and properties to our Document, this time we'll add a tab called "Content" and a property of a Rich text editor type named "Content" with the alias "bodyText". If in doubt consult the previous lesson, but the final result should look like this:

dec6-textpage

Customizing the looks of the Document Types

So far we've learned about adding tabs and properties to a Document Type, but we can also modify the visual appearance of the Document Type in both the Create dialog and in the tree view. It's done on the "Info" tab where we can choose an icon for the tree in the "Icon" dropdown, as well as a thumbnail and a description to be shown in the "Create Dialog". For the textpage we'll choose the "doc.gif" as the icon and "docWithImage.png" as the thumbnail. In the description we'll write "A text page offers a simple way to add content to the website by using a WYSIWYG editor" (or something else if you prefer):

dec6-info

Now remember to click the "Save" icon in the toolbar.

 

Defining the type structure

So now that we got a Home Page type and a Text Page type, we're ready to add site content. The only thing we need to do now, is to allow the "Text Page" type to be created below the "Home Page" type, so that our Authors can start creating content. It's done on the "Structure" tab when editing a Document Type.

So open the "Home Page" Document Type, click on the "Structure" tab and check the box next to "Text Page". As you can see a Document Type can be allowed below itself making it possible to create hierarchies of unlimited depth:

 dec6-structure

Again, remember to save and then edit the "Text Page" Document Type and do the same; allow the "Text Page" Document Type to be created under neath if self, by checking the box next to "Text Page" on the Structure tab.

 

Adding pages to our site

Now that we got our simple yet powerful structure in place, we can finally create our site hierarchy. So head over to the "Content" section, right click the "Home Page" created in the last tutorial and choose Create:

dec6-about

As you can see the Create Dialog uses our Description and Thumbnail we choose and you can even add your own real thumbnail screenshots to this dialog by copying them into the "/umbraco/images/thumbnails" folder, which will give the authors a nice well-known visual metaphor and make the whole backoffice seem much more tailored for them.

Now go create a couple of pages so we'll have something to play with when I'll see you tomorrow for a tutorial on Templates:

dec6-sitemap

If your pages are dimmed in the tree view, it's because they aren't published. You can either right click a Document and choose Publish or click the "Save and Publish" button in the toolbar when editing a Document.

Dec 5: Sort by name or create date

Wednesday, December 05, 2007 by Niels Hartvig

As promised the Document Type and Template tutorial will continue full speed ahead tomorrow, but until then here's a little trick if you need to sort your documents by either Name or Create Date.

 

Start by right-clicking the parent of the Documents you wish to sort and choose Sort (a huge screenshot with the primary purpose to brag about umbraco naturally being Firefox compatible):

dec5-sort

 

In the dialog you can select and drag the nodes you wish to sort (you can select multiple nodes by either holding down shift or ctrl keys), but you can also click the headers and thereby sort by either Name or Create Date (just remember to click Save when you're done):

dec5-headers

Once you're done sorting, you'll need to republish the entire site in order to make umbraco refresh the cache. Republishing the site doesn't publish all documents, but simply reorder and validates the order of the published nodes and only takes a split second. You republish by clicking the top node and select "Repubilsh entire site":

dec5-result

In future version of umbraco, the last step will automatically be done by umbraco as this obviously isn't logic for the end-user.

 

For more advanced usages this approach can be automated writing an ActionHandler that will sort item on Publish. But that's a topic for the Level 2 Course tomorrow ;-)

Dec 4: How to get the W3C validator to recognize your pages

Tuesday, December 04, 2007 by Niels Hartvig

Today should have been part two on the series on Document Types. But things doesn't always turn out the way you planned and this day was one of them. So it's just one of the quick tricks I had planned to save for later.

Many people are attracted to umbraco because it makes it possible to comply with standards, making it possible to create accessible webpages with valid (x)html. When you've spend time struggling with your markup it's always a big satisfaction to get that big green "VALID" message from W3C. However, if you use .NET controls it's harder that it ought to be.

Now, Microsoft have done massive progress in making their controls produce better markup and with ASP.NET 2.0 we got the possibility to tell it to run our website in XHTML Strict mode by adding an element in the web.config (default in the umbraco distribution). However, I guess that Microsoft wasn't really aware of the W3C Validator that most of us are using as the .NET Framework recognizes the validator as a downgraded browser and starts spitting out invalid html - doh!

But fear not - the fix is easy and all you need to do is add the following to the /config/browsercaps.config in your umbraco installation:

<case match="W3C_Validator*"> tagWriter = System.Web.UI.HtmlTextWriter W3CDomVersion = 1.0 </case>

Now go make your site valid! I'll be back tomorrow with another trick and then continue the Document Type and Template tutorial Thursday and Friday.

Dec 3: umbraco basics, Document Types

Monday, December 03, 2007 by Niels Hartvig

Over the next couple of days, I'll go through some of the essential umbraco concepts:

  • Document Types
  • Templates
  • Macros

umbraco is a bit different from other CMS's as it's more generic and not based on modules. While a module based system might give you some functionality very fast, it's very doubtful that it's actually the functionality you really need and whether you can tailor it to your needs is often a combination of luck and hacking.

umbraco works in another way as it provides a uniformed way to create web based functionality. It's a bit like a toolbox or a collection of Lego bricks which doesn't do anything straight out of the box, but gives you access to loads of things very fast and with just enough flexibility. If we stick to the Lego analogy you could say that

  • The .NET Framework is Lego Technic. Anything is possible, but it can also be hard to start and very time consuming. At the same time you almost don't have any constrains at all which might make it hard to focus
  • A module based CMS is Lego Duplo. This is the complete opposite of Technic - if you need a car, take the Car brick, if you need a plane, well go get the plane. Which is brilliant if it does exactly what you want - you're up and running in no time. But if you need customizing however, you might ended in a blind alley and if there's no brick that does the job - just too bad, the choice is down to convincing someone to build that brick.
  • With umbraco we're trying to be just plain old ordinary Lego. Making most things possible with a well defined set of standard building bricks. The trick for living and working happily with umbraco is to know and understand those bricks. If you try to use umbraco like a module based CMS, you'll hit the wall sooner or later and you might even end frustrated. So it might take a little while to learn, but it'll be worth the effort. If you're one of those who still lives in the last century and believes that comparing CMS by module charts is the right path, then you'll need to open your mind in this tutorial. In return you'll have a chance for an eye opener that will change the way you work and never want to make you look back :-)

BEFORE YOU START:

This tutorial assumes that you have a completely clean install of umbraco without any starter kits installed. To see a large edition of the screendumps used in this tutorial, simply click them.

 

What is a Document Type

A document type is one of the three essential bricks necessary to get a site up and running. Without a Document Type, you can't create content. See, a Document Type is a bit like having a table in a database - it defines the fields that can be edited on a page. Well, in fact it can be even more generic and flexible than this, but for now we'll treat Documents as pages. Later on I'll show you how to treat Documents as true objects for maximum flexibility.

Let's create our first Document Type and examine the way Document Types are edited. Go to the "Settings" section and Right Click "Document Types" and choose Create:

Choose settings

In the dialog box give your Document Type a name - say "Home Page" and also check the box saying "Create Matching Template" and click the Create button:

Create nodetype dialog

Congratulations, you've just created your first Document Type - it wasn't that hard was it?

Home Page created

Now, go to the content section, right click the content node and choose Create. As you can see we now have the choice of your newly created "Home Page" Document Type. So go ahead and create your first Document:

Create Document dialog

When you click create, a new Document is created and you're instantly in editing mode. If you look at the Document in the tree, it's dimmed because it's not published.

Edit the new Document

As you can see, there's not much we can edit on our "Home Page" document type apart from a couple of standard meta data fields like the name of the Document and some release/expire date information. Time to add some Tabs and some "Generic Properties".

Document Properties

Now that the Document Type has been created, it's time to add some Tabs and Generic Properties so we have some editable fields on our Document. A property is very similar to a column in a table, but when you add columns to tables you usually think in types of data like "dates", "nvarchar" or "blob". With properties in umbraco, you should think how an editor would edit the property - like a "Rich text Editor", "An upload field" or "Date chooser".

It's very easy to add, remove and sort properties on a Document Type as there's a full web based ui. No editing of config files and no lines of code needed. To make it even easier for the user to edit properties we have the option of dividing them into separate tabs. So we'll start by adding some tabs called "Content" and "Meta data". Go to Settings, open your "Home Page" Document Type and click the "Tabs" tab. Then type "Content" in the textbox and click the "New Tab" button. Do the same for the meta data tab:

Add tabs

Now that we got the tabs, we can add some properties. Click the "Generic Properties" tab and then click the "Click here to add a new property" label:

Add property

In the form that opens, start by adding "Content" as the name and "bodyText" as the alias. Next we'll have to select a type. Now the type is the way the editor should edit our property and umbraco ships with twenty different types from Date Choosers a Richtext Editor:

List of default Property Types

For this property we'll use the "Rich text editor" which gives us a full WYSIWYG editor that makes it easy to edit content while ensuring that the markup is valid XHTML Strict - quite a nice combo for both editors and developers who appreciate web standards. In the tab combo, choose "Content" and then click the Save icon in the toolbar.

Repeat the step above to create a "Textstring" on the tab "Meta data" with the name "Site name" and the alias "sitename" and a "Textbox multiple" on the tab "Meta data" with the name "Description" and the alias "description". Remember to save in between by clicking the little save icon in the toolbar.

Now you should have a screen looking like this:

Properties added to Document Types

Go back to your content and try to edit your Home Page. As you can see we have our two tabs and a completely integrated WYSIWYG editor for our disposal:

Rich text editor added to our Document

Try clicking the different tabs and add values. As you can see it's really easy to create Document Types and adding fields and your editors will love the simple user-friendly interface.

Tomorrow we'll add some additional Document Types and see how they can be linked together to create a site hierarchy.

Hoped you liked it so far and remember to add comments below if you like.

Our spam filter is learning

Monday, December 03, 2007 by Niels Hartvig

When you submit a comment to the blog, there's a slightly big chance that it gets identified as spam, but fear not. We're constantly monitoring the spam and while it might take a while before your comment will appear it'll get better over time as our wonderful spam filter is getting smarter and smarter.

umbraco.org gets pretty hammered with spam as this chart shows, so unfortunately we had no other choice than to implement a smart but also strict filter. The chart doesn't even show how the FAQ and other forms on this site gets spammed too.

spam

However, we're lucky enough to be using Defensio - a really smart filter that over time will learn what's relevant and what's not on this blog. umbraco MVP Per "objects.dk" Ploug Hansen made the .NET api for Defensio and I'm happy to say that it works sweet with umbraco.

Dec 2: Resources and where to find help

Sunday, December 02, 2007 by Niels Hartvig

Before we really kick off this 24 day umbraco tutorial, I'd think it's nice knowing where to look for help and references when working with umbraco, so here's a list of pointers and blogs I follow.

Official umbraco resources:

  • The official umbraco website - umbraco.org
    You're right here, but do you know about all the gems? The book section is full of neat inspiration to get you started and open eyes for special umbraco functionality like the integration of the Metablog Apis or "umbraco Base" for accessing .net classes via a simple url.
  • The official umbraco forum - form.umbraco.org
    The most friendly forum in the world :-) With more than 10.000 posts and answers and traffic increase up from 2.500 visitors to 26.000 visitors in a year, it clearly shows that umbraco is getting more and more popular.
  • The Package Repository
    The collection of all community packages approved by the Package Repository Group. Mentioned in the december 1st post, but also accessible from outside the umbraco interface
  • Codeplex.com/umbraco
    The one-stop site for getting the umbraco source, submitting ideas and issues and asking core-related questions in discussions.

Semi-official resources:

  • umbraco community search
    A brilliant custom google search engine that indexes all umbraco related site, both unofficial and official. Instant access to more than 25 umbraco related resources including various umbraco related blogs.
    umbraco wiki
    Contains a good bunch of tricks and documentation collected by the community.

Great blogs:

  • Objects.dk
    umbraco MVP Per Ploug Hansen runs the best blog on umbraco. Packed with information on how to use gems well hidden in umbraco as well as releases of great packages like the Tagging Package and the Log Viewer
  • Umbraco Playground of Tim Geyssens
    Tim is hot in the heels of Per when it comes to releasing great packages. Even though it's less than a year since he started using umbraco, he's already released a Poll and Star rating package and are a great help in the forums

Got a resource to add - throw a comment. See you tomorrow where "the real" starter tutorial will begin.