Sydney Umbraco user meet-up

In the first week of August Umbraco trainer Peter Gregory will be in Sydney to run Level 1 and Level 2 training courses; we think this will be a great time for everyone to get together and talk Umbraco.

What to expect

TheFARM will host a fairly casual affair, mostly just a chance for those of you using Umbraco to get together and discuss ideas, implementations and anything else that comes to mind.

We’ll also do a few small talks including a look at Umbraco 4.5 which was released at CodeGarden 10 in June and a look at the architecture for Umbraco 5.

Core Developer of the Year Shannon Deminick, core developer Aaron Powell and 2009 MVP (Most Valued People) & Umbraco trainer Peter Gregory will be there to chat and answer your questions. If there’s anything in particular you’d like to know more about feel free to leave us a comment ahead of time.

Who should come?

Everyone!

If you’re taking the Level 1 and/ or Level 2 that week then come on down.
If you’re currently using Umbraco then come on down.
If you’re just plain interested in what the hell this Umbraco thing is then come on down!

When and where

Wednesday 4th August, 6pm – onwards.

TheFARM Digital, Suite 101, 4 – 14 Buckingham St Surry Hills

We’ve put an event up on the our.umbraco website (http://our.umbraco.org/events/sydney-umbraco-user-meet-up) so if you’re planning on coming then register your interest so we can ensure we’ve got the appropriate provisions (read: beer ;)).

We’ll see you there :)

Posted on 7/14/2010 1:08:00 PM by AaronPowell

Permalink | Comments (0) | Post RSSRSS comment feed |

Categories: Technology | umbraco

Tags: ,

 

OMG, it’s finally up and running!

[April 2010] Over the past few months TheFARM has been building a huge brand hub to encompass all of Neutrogena® young skin care, and we’re really excited to announce that it’s launched!

The cross platform, social media hub is One Less Stress, but we like to call it OLS.

OLS was born out of the simple insight that feeling stressed can cause skin to become stressed, which can in turn lead to feeling more stress and so on. The idea is to help break this vicious cycle by creating a dialogue where young women can share some of their stress and alleviate it with advice and stress-busting giveaways.

In a first for our relationship with Johnson & Johnson TheFARM was given the opportunity to be the lead creative agency - leading the development of the master brand, roll out of the platform idea and integration of OLS into print and TV!

The eight month campaign is running across MySpace, Facebook and (for the first time in Johnson & Johnson Australia history) Twitter.

 

The launch phase sees roadblocks and rich media placements on influencer sites like Beauty Heaven, 2Threads and Bella Sugar, who will also provide content for OLS via partner publishing and cross promotions.

The OLS umbrella brand is designed to adapt through the year to promote the various Neutrogena young skin products, with creative and content reflecting the rationales of each sub brand. Right now, it’s all about orange and Acne Stress Control. A phase two facelift will see OLS become pretty in pink to match the Neutrogena® Wave™.

Indications are the folks at Johnson & Johnson are as loving OLS as much as we are! A committed New Zealand roll out is in the works and J&J Pacific has already presented the idea to the global team for further expansion.

 

Posted on 4/8/2010 6:26:00 PM by EmmaSheehan

Permalink | Comments (4) | Post RSSRSS comment feed |

Categories: Project Releases | Technology | The Farm

Tags:

 

Umbraco 5th birthday meetup in Sydney @ TheFARM

Come on down to TheFARM to share in some beers and take part in the global Umbraco 5th birthday festivities.

Your hosts will be core Umbraco team developers Shannon Deminick & Aaron Powell, both of whom work for TheFARM (http://www.thefarmdigital.com.au).

The plan is for Shan and Aaron to run a Q&A session with some demo’s of the fun stuff TheFARM has been doing with Umbraco 4.1 and the work they have been doing on this next release.

  • They'll have a look at all of the new features/fixes for 4.1 (are there are TONS)
  • They'll go into a bit more in detail on some of the new things that we've integrated into the core such as LINQ to Umbraco, Umbraco Examine, new controls, enhancements, preview, etc…
  • They’ll show you some of the sites we’ve built and talk through some of the implementation’s with things like Flash

Hopefully, with two of the core team on hand we should be able to answer most questions thrown at us – give us a go!

Once we're out of beers... TO THE PUB!

All of the details, address, etc.. is on the Our Umbraco website. Have a look and RSVP now!

http://our.umbraco.org/events/umbraco-5th-birthday-meetup-in-sydney

 

Just in case you don’t want to click through here’s the event details:

Tuesday, February 16, 2010 - 6:00 PM
Suite 101, 4 - 14 Buckingham st Surry Hills, NSW

Posted on 2/12/2010 6:46:45 PM by Shannon Deminick

Permalink | Comments (0) | Post RSSRSS comment feed |

Categories: Technology | The Farm

Tags: , ,

 

Nexus One vs iPhone = Google vs Apple?

Google’s answer to the iPhone – the Nexus One smartphone – may be yet to hit Australian shores but it’s already got Farmers' chins wagging.

The topic – not so much the merits of one phone vs the the other – though you can read about this here http://bits.blogs.nytimes.com/2010/01/15/torn-between-two-phones-nexus-one-vs-iphone/?ref=technology – but what the competition bodes for the future of the www.

While the smartphones might work well with their own software they don’t seem to be making an effort to get along with one anothers other services. Some commentators – namely Tim O’Reily - think this bodes a bloody period of competition that could threaten the interoperable web of today. In the 80s it was Macintosh v Microsoft – in the 2010s the war looks set to take place between Apple and Google.

O’Reily may be onto something. While it’s too soon to tell if the Nexus One will emerge as a serious competitor to the iPhone, some Farmers have already taken sides.

Those who like that Google’s Android platform is more open to developers champion the Nexus One. The others, like everyone else, are so deep in iPhone love they can’t see past their touchscreens. One Farmer has even suggested we change the phrase “the best thing since sliced bread” to “the best thing since the iPhone”.

What do you think? Will you trade in your iPhone for a Nexus One? And who’s your money behind in the war for the web?

Posted on 1/20/2010 10:22:00 AM by EmmaSheehan

Permalink | Comments (12) | Post RSSRSS comment feed |

Categories: Hot Press | iPhone | Technology

Tags: , , , ,

 

New Facebook Ad targeting & the future

I came accross some future predictions around Facebook penetration a couple of days ago and is it truly staggering.

Discounting China (Facebook is restricted there) it looks like we will  be approaching 30% of the worlds active internet population will be regular Facebook users by the end of 2009.

In the article they also talked about future projections and the possibility the Facebook audience could possibly top 1 billion users, the digital universe would sure be a different place, for a start we have to play by Facebook's rules while on their platform.

As agencies and marketers what does this mean for us? Well I guess it certainly means no matter who you are at the moment you cannot ignore the big F. The most obvious way to tap in to this huge potential audience is through ads but until now they have been targeted in a fairly standard way. These ads have been more effective in my experience than standard units due to organic impressions generated, context and their non banner like appearance but the targeting has been at best unimaginative, certainly not taking advantage of the social platform.

There is a new option open to us though which seems subtle at first, you can simply target your ads at friends of your connections. These connections are defined by Facebook as: Fans of your page, users of your applications, members of your groups or attendees of your events. Looking in to it a little further this is a different method than the top ten targeting methods currently available. 

Why? Well the ads can have social context which is after all what Facebook is supposed to be about. So if I am working on a new film theatrical release and someone fans my new movie page I can target ads at their friends which will list below the ad that their friend is a fan of my film. If the person viewing the ad would also like to see the film and I am offering pre-release tickets or a competition, who are they going to ask to go with them I wonder.

It is a great step in the right direction I believe for Facebook, there is still much work to be done, I could rattle on for hours about the numerous ways I would like to use the platform but lets save that for another day and simply be happy they are thinking about us little agencies and marketers.

Posted on 11/13/2009 10:29:00 AM by PhillipMcCann

Permalink | Comments (3) | Post RSSRSS comment feed |

Categories: Hot Press | Technology | Marketing | Social Media

Tags: , , ,

 

WiggleTime! rewarded in the KidSpot Best of Awards!

[2009] The FARM is very proud to announce that WiggleTime! has received a Highly Recommended mention in the 2009 Kidspot Best of Awards! We are very pleased to be recognised in the realm of children's education and online learning. A testament to the heights achieved by the FARM's design and development teams. Let's get Wiggling!

Posted on 11/12/2009 11:56:00 AM by KristinaReddaway

Permalink | Comments (0) | Post RSSRSS comment feed |

Categories: Creativity | Project Releases | Technology | The Farm

Tags: , , , , , , ,

 

Attic Living

 

[July 2009] TheFARM launches a site rebuild for Attic Living incorporating brand new design, additional functionality and a clear call to action. Through the rebuild TheFARM contributed to encompassing the business' 3 core services under their strong brand identity, creating a solid 'one-stop-shop' for Attic storage and conversion needs.

Built using the Pegboard CMS the site is compromised of components (or modules) including the introduction of the e-commerce facility. Allowing users to buy products online coupled with demonstration videos enhanced the DIY character of the company. Alternatively the clear call to action to Book a Consultation online reinforces Attic Living's position as leading experts in the field. 

Posted on 7/27/2009 3:40:00 PM by KristinaReddaway

Permalink | Comments (28) | Post RSSRSS comment feed |

Categories: Project Releases | Technology

Tags:

 

The FARM adds a nail to the coffin of IE 6

Days until TheFARM drops support for IE6



We are happy to announce that we will cease to support IE 6 development from Oct 31 2009. We will continue to support our clients’ existing websites but any new development will target Firefox 2+, IE 7+, and Web kit browsers (e.g. Safari, Chrome).

IE 6 was released in Aug 2001, it is 8 years old and 2 more browsers have since been released from Microsoft… it’s about time people stop using this horrible, horrible browser. Other larger players including YouTube have also stated that support for IE 6 will stop. We’re hoping that more agencies will adopt this idea and push for clients to finally make the upgrade or switch to a new browser… it’s 8 years old!

Comments are always welcome!

Posted on 7/20/2009 6:01:00 PM by Shannon Deminick

Permalink | Comments (209) | Post RSSRSS comment feed |

Categories: Technology | The Farm

Tags: , , ,

 

Super easy jQuery events

I've been using jQuery for a while but haven't really been using it much in the form of building custom classes or libraries. I've been working on re-developing Umbraco's JavaScript tree using jsTree (which is great by the way!) and have been writing a JavaScript library to support it. As with most code libraries, events play an important role in writing clean and effective code. In the past I've always used simple callback methods for "event handling" in JavaScript, but this isn't really an event system since it doesn't allow more than one subscriber. After some quick research, jQuery has this all built into the core, and by adding a couple very simple methods to your JavaScript classes, they will instantly support an event model!

Quick example: 

var myObject = { 
  addEventHandler: function(fnName, fn) {
    $(this).bind(fnName, fn);
  },
  removeEventHandler: function(fnName, fn) {
    $(this).unbind(fnName, fn);
  },
  doSomething: function() {
    $.event.trigger("somethingHappening", [this, "myEventArgs"]);
  }
}

The above example is an object defining 2 functions to manage it's event model and another method which raises an event called "somethingHappened" with an array of arguments that will get bubbled to the event handlers.

To subscribe to the events is easy:

function onSomethingHappening(EV, args) {
  alert("something happened!");
  alert("sender: " + args[0]);
  alert("e: " + args[1]);
}
//subscribe to the event:
myObject.addEventHandler("somethingHappening", onSomethingHappening);

You'll notice that the above event handler function has 2 arguments, one called "EV" and one called "args". The EV parameters is the jQuery event object and the second one is the custom arguments object that was created when raising the event.

Since Umbraco's admin section uses an iframe approach, i though that managing events between the iframes would be an issue since they are all using seperate jQuery instantiations, but by raising and consuming events with the above method, this is no problem.


Posted on 3/26/2009 12:08:00 AM by Shannon Deminick

Permalink | Comments (0) | Post RSSRSS comment feed |

Categories: Technology

Tags: , ,

 

Selection Problem with Custom Media Type Content in Umbraco 4

The Problem

You have a custom media type. You want to add a link to it in the WYSIWYG editor. 

You go to add a link as normal, except in the "Insert/Edit Link" pop up, you click on the "Media" tab. You notice that when you click on it, no url is inserted in the Url field. 

 

The problem is due to this method in the Umbraco source:

        private static string findMediaLink(Media dd, string nodeLink)
        {
            Guid uploadGuid = new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c");
            foreach (Property p in dd.getProperties)
            {
                if (p.PropertyType.DataTypeDefinition.DataType.Id == uploadGuid && !String.IsNullOrEmpty(p.Value.ToString()))
                {
                    return p.Value.ToString();
                }
            }
            return "";
        }

 

This method is called from the overrided Render(ref XmlTree tree) method in Umbraco's loadMedia class. Here is the code block:

        string nodeLink = findMediaLink(dd, dd.Id.ToString());
        if (!String.IsNullOrEmpty(nodeLink))
        {
            xNode.Action = "javascript:openMedia('" + nodeLink + "');";
        }
        else
        {
            xNode.Action = null;
            xNode.DimNode();
         }

 

Notice that when findMediaLink() is called, your custom media type is never going to return  "5032a6e6-69e3-491d-bb28-cd31cd11086c" as a Guid. So your media type never gets assiged it's openMedia action, and xNode.DimNode() will always be called.

 

The Work Around

You must replace the Umbraco media tree handler with your own one. We called ours "MediaTree".

Here's how:

  • Create a class (eg. MediaTree) that inherits from loadMedia (see code below)
  • Copy and paste the Render(ref XmlTree tree), and findMediaLink(Media dd, string nodeLink) methods from loadMedia.cs into your new class
  • Modify the findMediaLink(Media dd, string nodeLink) method to get the Guid from your custom media type, and check if it is equal to p.PropertyType.DataTypeDefinition.DataType.Id (see code below)

 

Here's the class:

    public class MediaTree : loadMedia
    {

        public MediaTree(string application) : base(application) { }

        public override void Render(ref XmlTree tree)
        {
            Media[] docs;

            if (m_id == -1)
                docs = Media.GetRootMedias();
            else
                docs = new Media(m_id).Children;

            foreach (Media dd in docs)
            {
                XmlTreeNode xNode = XmlTreeNode.Create(this);
                xNode.NodeID = dd.Id.ToString();
                xNode.Text = dd.Text;

                // Check for dialog behaviour
                if (!this.IsDialog)
                {
                    if (!this.ShowContextMenu)
                        xNode.Menu = null;
                    xNode.Action = "javascript:openMedia(" + dd.Id + ");";
                }
                else
                {
                    if (this.ShowContextMenu)
                        xNode.Menu = new List<IAction>(new IAction[] { ActionRefresh.Instance });
                    else
                        xNode.Menu = null;
                    if (this.DialogMode == TreeDialogModes.fulllink)
                    {
                        string nodeLink = findMediaLink(dd, dd.Id.ToString());
                        if (!String.IsNullOrEmpty(nodeLink))
                        {
                            xNode.Action = "javascript:openMedia('" + nodeLink + "');";
                        }
                        else
                        {
                            xNode.Action = null;
                            xNode.DimNode();
                        }
                    }
                    else
                    {
                        xNode.Action = "javascript:openMedia('" + dd.Id.ToString() + "');";
                    }
                }
                xNode.HasChildren = dd.HasChildren;

                if (this.IsDialog)
                    xNode.Source = GetTreeDialogUrl(dd.Id);
                else
                    xNode.Source = GetTreeServiceUrl(dd.Id);

                if (dd.ContentType != null)
                {
                    xNode.Icon = dd.ContentType.IconUrl;
                    xNode.OpenIcon = dd.ContentType.IconUrl;
                }

                tree.Add(xNode);
            }
        }

        private static string findMediaLink(Media dd, string nodeLink)
        {
            TheFarm.Umbraco.Controls.MultiMediaUploadDT mmDT = new TheFarm.Umbraco.Controls.MultiMediaUploadDT();
            Guid farmUpload = mmDT.Id;

            Guid uploadGuid = new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c");
            foreach (Property p in dd.getProperties)
            {
                if ((p.PropertyType.DataTypeDefinition.DataType.Id == uploadGuid || p.PropertyType.DataTypeDefinition.DataType.Id == farmUpload) && !String.IsNullOrEmpty(p.Value.ToString()))
                {
                    return p.Value.ToString();
                }
            }
            return "";
        }

    }

 

 

Note: For this to work your custom media class must contain a Guid.

eg.

        public override Guid Id
        {
            get { return new Guid("{12345678-ABCD-EFGH-IJKLM-NOPQRSTUVWX}"); }
        }

 

Now go to the database and edit the umbracoAppTree table.

UPDATE umbracoAppTree
SET treeHandlerAssembly = '<your assembly>',
treeHandlerType = 'Umbraco.MediaTree' /* We called ours MediaTree */
WHERE treeAlias LIKE 'media'

 

That's it.

 

 

 

Posted on 3/4/2009 7:41:00 PM by AnthonyDang

Permalink | Comments (2) | Post RSSRSS comment feed |

Categories: Technology

Tags: , ,

 
Copyright © 2010 TheFARM