Heading to Sitecore Symposium

Although I’ve been a .NET developer on a variety of projects over the last 14 years, I am a relative newcomer to the Sitecore space.

For the last two years, I have worked on Sitecore-based projects back to back, and it has been a great experience so far. Being based on ASP.NET, the product has been equally recognisable and alien at the same time and I am loving the challenge.

Each day I learn a little more about the platform and find better ways to get results for my clients. From the intricacies of good information design, templating and building of great working editing experiences, to build and deployment setups to making the best use of the extensive marketing tools available in the platform, I’ve seen and done a lot in this short amount of time.

But, there is only so much one can learn on the job.

Community

Recently, I’ve become a lot more active in the Sitecore community:

  • I regularly attend events run by my local Sitecore user group, SUGNL
  • converse in the Sitecore Community Slack,
  • religiously listen to the unofficial Sitecore podcast “Core Sampler”
  • and I read up on interesting blogs and articles on the web.

The deeper I dove in, the more one term kept on being referenced: Sitecore Symposium.

Sitecore Symposium

Sitecore Symposium is a conference hosted by Sitecore where people from all over the world come to meet and learn.

It’s where Sitecore launches new features and new products and third party vendors show off their latest wares. Above all there will be many, many talks where Sitecore knowledge and experience is shared. There are topics aimed at marketeers, business owners, content editors, integration partners, 3rd party vendors and technologists like myself.

I saw an opportunity to go and I grabbed it by the horns.
So next month, I’ll be heading to Orlando Florida for a week of Sitecore overload.
I’m thrilled!

In preparation for the conference, I have:

Sessions shortlist

Looking at the schedule, I have to say that I am impressed by the variety of subjects and target demographics. There are almost just as many sessions for technologists, consultants and business users.

The addition of the “Getting Started” track is especially intriguing: with just two years of Sitecore experience under my belt I am still looking for ways to use the platform better and work more productively.

I believe that this year the main theme of new Sitecore products will be both scalability through smaller services and more developed application of Machine Learning using Sitecore Cortex.

Here are the sessions I don’t want to miss:

Sessions shortlist table

Fantastic Core Sampler episode

The Core Sampler podcast is always a great listen and the latest episode was right up my alley.

Both regular guest and community personality Akshay Sura and podcast host Derek Dysart shared great tips for what is sure to be a great event.  This is not the first conference I have attended, but their tips were very helpful.

As the tips weren’t in the show notes, I thought I’d break them down here:

1) Great for Networking

Apart from the great sessions at the conference. It always great to meet people and share opinions with them:

  1. Learn how others solved a particular problem or which resources they used to help them solve it.
  2. Hear about Proof of Concept projects or (community) projects people are working on,
  3. Tips and tricks
  4. Best practices.

It’s also a great place to talk to people outside of your field of expertise and talk about things that they care about; be they implementation partners, business users, marketers, front end developers, or product vendors.

2) Attend social events

  1. the Monday welcome reception
    As everyone arrives at the conference, take the time to meet new people and soak up the atmosphere.
  2. Lunch
    The lunches are usually buffets. Grab a plate and sit at a table with people you don’t know and strike up a conversation.
  3. Don’t miss the closing party
    Rumour has it that the evening of the last day will take place at Universal Studios!

3) Visit the booths

When you get chance between sessions or in the breaks, be sure to visit the booths.

You don’t have to visit them all; skip those of your own company or those of your direct competitor. Visiting booths of 3rd party vendors like Digital Asset Management products or productivity tools, etc. could be very useful. It could be beneficial to get acquainted with products you might need for future projects.

Apart from that it’s always a good idea to talk to vendors to get an idea of how their business is doing, where the market is heading and what kind things Sitecore customers are looking for.

4) Pick sessions on topics you don’t know much about

There are a lot of sessions to choose from at Sitecore Symposium, and it might seem counter-intuitive, but it’s great to learn about things you don’t know much about yet.

If go to sessions on parts you already know, you might get about quarter of new knowledge on that subject. You can get a lot more value out of attending sessions you know little about or haven’t had much experience with.

As a developer, also consider attending Getting Started or Business sessions to catch up on the latest best practices or see things from a different perspective.

5) Vote with your feet… respectfully

There are a lot of sessions to choose from and it can be hard to determine if you have chosen the right session based on the talk description alone. Be sure to have backup sessions lined up and leave for those so that you get the most out of your conference experience.

If you find yourself wanting to leave, do so quietly as not to disturb the speaker. A great tip from Akshay is to take a seat near the aisles and the back door.

My tip: make sure you plan the walks between the sessions, as the conference is being held in two adjoining hotels on a large resort complex.

6) There is no such thing as a stupid question

This old adage is still true. Even if it may seem scary, dare to ask questions. Your question may seem trivial to the experts in the room, but you might just be asking that one question on many people’s minds but they were afraid to ask.

If you are less comfortable asking in front of a large group, most speakers are available to answer questions privately at the end of their talk.

7) Take notes

Some of the talks are recorded (most likely the keynote) and they will be shared in various places after the event. Many talks will not be though, and most slide decks will be hard to find later on. Take as many notes and photos as you can and share them with others using the conference hashtag #SitecoreSYM.

Be mindful that some talks will discuss sensitive customer stories or proprietary techniques that presenters may not want to have shared too widely.

8) Pace yourself

There’s so much to see, so much to do. Be sure not to overexert yourself: a week of long, intense days full of sessions, meetings and events can wear you down. Be sure to also stay hydrated and have fun!

9) Register for sessions (via the app)

Although this year’s app isn’t available yet (expecting an email soon), be sure to pre-register for the sessions you don’t want to miss.

The rooms are booked according the expected interest in a topic or speaker. Popular sessions will have people at the door scanning your session “ticket”. If the room hits maximum capacity you will not be allowed in.

This is another reason to have backup sessions nearby lined up.

Excited

These are some great tips!
I’m now even more excited to go the conference.

Are you coming to Sitecore Symposium?
I’d love to see you there!

If not, be sure to follow me on Twitter or the hashtag #SitecoreSYM.

I’ll also be blogging more here and on my company’s blog (in Dutch) during and after the conference.

Debugging responsive websites

For the last few weeks I have been working on the redesign of a website and integrating it into a new CMS. It was also the first web project I’ve worked on that was designed to work on mobiles from the get go.

Although I keep abreast of the latest developments via blogs, podcasts and conferences, a real responsive website had yet “to cross my desk” so to speak.

One of the biggest challenges I found on this project was tweaking the design of the site on a mobile device. Inevitably design choices that were made for a desktop site bled into the mobile one and needed to be tweaked.

Tooling for this has come a long way over the last couple of years, with built in developer tools in major browsers like Safari and Chrome, device emulators for iOS and Android, and even complete testing suites in the cloud.

Responsive Preview

A handy tool to get the ball rolling was the responsive preview function that was built in to the CMS. Umbraco 7.2, a minty fresh version of the popular open source .NET Content Management Server, has a handy preview function that allows the editor to preview their page on different devices by changing the viewport.

https://player.vimeo.com/video/113603024

It’s a really handy tool to get a quick impression of how the design will look on differently scaled devices. A big bonus of this feature is that content editors can see for themselves how their content would look and feel on different devices. It was also instrumental in getting them out of the habit of adding manual <br/>s in their content to make it look “just right” on their own machines.

Chrome Device Mode

Debugging content was one thing, but actually getting into the HTML and CSS was another matter. For that I turned to the great Device Mode tools built into into recent versions of Google Chrome. These tools up the ante and don’t just manipulate the viewport but also allow you to use the document inspector to evaluate CSS and JavaScript and see how your website is affected by your code.

Device Mode in action

Device Mode in action

Other handy features include network throttling (for emulating 2G and 3G mobile phone speeds) and manipulating geolocation data for location-aware HTML5 apps.

As handy as these tools are, they still render your web app using the internal web engine of Chrome on the desktop.

On the occasion that your website has a bug that only shows up on say on iPhone and not in the Device Mode emulator you’ll have to look further afield. Both Google and Apple have hooks into their devices so that you can debug them remotely.

Chrome has the ability to connect to Android devices through a USB cable while the Apple solution allows you to remotely connect to on iOS device if is on the same network and you connect to it from a workstation running MacOS X.

Platform agnostic debugging with Weinre

That’s all well if you have a full Device Lab at your disposal but I only had my personal iPhone and iPad and a PC running Windows.

When you listen to as many podcasts as I do, there always a topic that comes up where you think “that’s cool, I could use that some time”. Similarly I once heard about debugging websites remotely but it must have been a while back as I can’t remember where I heard it, so no attributions I’m afraid.

One of the remote debugging tools that stood out was due to it’s curious name, Weinre. It’s pronounced “winery” or “wien-RE” depending on your lovely choice of accent. It is actually an acronym for WEb INspector REmote, but who has time for long names? We in IT love acronyms, don’t we?

One of the biggest advantages of the Weinre set-up is that it is truly platform agnostic. It uses the power of JavaScript to parse the DOM on the device and sends the data back to a server that displays the results in a friendly interface very similar to the desktop web inspectors we know and love.

To set it all up you need the following:

  1. A workstation running Node.js (a server-side JavaScript environment)
  2. Weinre installed on top of Node.js
  3. A running Weinre server on your workstation
  4. A JavaScript include in your web app that points to your Weinre server
  5. Use the remote inspector

Although the setup is similar for most platforms, I will describe here how I got my set-up working.

1. Installing Node.js

As Weinre requires Node.js to run, the first step involves getting Node.js setup on your machine.

Head on over to the Node.js website and download the installer for your environment.
In my case I downloaded the Windows Installer 64 bit version.

Setting up Node.js correctly

Setting up Node.js correctly

Make sure that you include the npm package manager and Add to PATH options as you’ll need those for the next steps.
To check if Node.js installed correctly, open a new instance of the Windows Command Prompt and type

node –v

You should get back the version of the environment you just installed.

As a final step you should also check if the package manager is up and running. For that you should type in the command

npm –v

Checking that Node.js installed correctly

Checking that Node.js installed correctly

2. Installing Weinre

After you have successfully installed Node.js on your machine you can then use the package manager to install Weinre.

Again from the command prompt, run the command npm command to install Weinre:

npm –g Weinre

Installing Weinre via npm

Installing Weinre via npm

3. Running Weinre

After NPM has finished installing Weinre you should be able to run it using the command

weinre –boundHost –all-

The boundHost flag allows other machines in your network to connect to your server. Without it you would be unable to connect using 127.0.0.1 loopback.

In case you need to set it up using a different port you can use the command

weinre –help

to find the correct flags.

Running Weinre from the command line

Running Weinre from the command line

note: you can stop Weinre by calling terminate command using

Ctrl+C

4. Connecting clients to the Weinre server

The final step of setting up Weinre is to inject a piece of JavaScript that points your clients to your Weinre server. The easiest way to do this is to point your browser to http://localhost:8080 and follow the instructions on screen.

You can either choose to inject the needed JavaScript via a bookmarklet or, my preferred method, is to add the target script to the header of your application:

Example of a target script to add to your web app

Example of a target script to add to your web app

Note that if you want to connect your devices you will need to change the address from localhost to something your clients can reach. Either use a DNS name or the IP address of your server, in my case I used dotsero.local to connect to my server named Dotsero (I name all my devices after volcanoes).

After you have added the target script to you can go ahead and connect your client(s). On your device, pull up the web app you want to to debug. As it loads it will also pick up the extra JavaScript and connect to your server.

5. Using the remote inspector

With your client connected, you should now be able to use the Remote Inspector.

From your server, open up a new browser tab and point it to http://localhost:8080/client/#anonymous. This is the dashboard from which you can select the connected client you wish to inspect.

Connecting to Weinre dashboard

Connecting to Weinre dashboard

When your clients are connected, you should see them popup in the Targets list.
(I won’t paste it here as I don’t want to publish my iPhone’s MAC address).

Eh voilà: you should be able to remotely inspect the website on your mobile!

Inspecting HTML on my iPhone

Inspecting HTML on my iPhone

 

Breaking through my impostor syndrome

Despite the fact I have have kept this domain running since it feels like forever (at least as far back as 2005), I have rarely posted a thing.

Like many people who have at one time set up a blog, I felt enamoured by the idea that I could share my thoughts and acquired knowledge with the rest of the world.

But I quickly found that having a potential audience of millions was rather daunting: what was my opinion worth when people who knew more than me or were more entertaining than me were just a few clicks away?

The last year I have worked in an environment where I quickly felt like a one-eyed man in the land of the blind. It was then that I realised how much I have learned and how far I have come since my first days as professional developer.

With a little bit of encouragement from @ZenSavona and a few others, I am getting back into the game.

So here goes nothing!

HTML5 IntelliSense support in Visual Studio 2008

HTML5 Logo As the ASP.NET scene is getting more involved in all the talk about HTML5, I’ve discovered that I have become a second class citizen in the world of .NET.

As a developer in a small firm, I don’t have access to the latest and greatest tools or the room to implement new technologies. We still build our webapps with ASP.NET Web Forms, VB.NET 3.5 and Visual Studio 2008. In the meantime, Microsoft have come along with many new innovations and tools I’ve had to miss out on: .NET 4.0, Visual Studio 2010, ASP.NET MVC, NuGet, ASP.NET Websites with Razor. These tools are all great and “nice to have” but a little more difficult to integrate into our current environment. One thing I really do miss though is support for HTML 5.

Continue reading

DRM, ebooks and the iPad

A little while ago I got involved in a discussion on Digital Rights Management (DRM) and the iPad on Twitter. @MacMK had recently bought a digital book at Bol.com, and complained that she was given no warning that this would not work on her shiny new iPad.

Young girl balancing a book and an apple on head

Most eBooks are sold in PDF or ePub format and are commonly protected with Adobe’s Digital Experience Protection Technology (ADEPT) DRM scheme. Although there are quite a few ebook readers that support this format, Apple products are one of the few that don’t. This is because Apple sells ebooks through its own iBook Store, protecting the files with their own proprietary FairPlay DRM scheme. As a result, the standard iBooks app on Apple’s iOS (iPad, iPhone, iPod Touch) only read unprotected and FairPlay-protected ebooks. This is also the case of the very popular Stanza app.

Continue reading

Funny sign in Singapore

Having lunch at a food court normally doesn’t cause you to giggle. But if you’re a Dutchman at the ION Food Court in Singapore there are plenty giggles to be had at the expense of Chinese business owners.

I just couldn’t help myself when I read the name of one restaurants name and just cracked up: Balestier Bak Kut Teh. Now if you’re not a Dutch speaker you won’t catch the Bak Kut reference which translates as “box of cunt”: not something to associate a restaurant with, but oh so sophomorishly funny.

A song for grandma Tromp

Recently my uncle Theo requested a song on the radio for grandma Tromp.

Although the song uncle Theo requested was not to exactly to my taste (bleh when it comes to most Dutch music) the song had great sentimental value anyway. Below is the recording of his message and the song he requested (Danny de Munk – “Een bloemetje voor jou”), all in Dutch of course.

[audio:theo.request.mp3]

It was very sweet of him and a great way to say thanks for the great support she is for so many of us. Uncle Theo went on to say how through all the tough times in her life his mother has always been cheerful and optimistic. All of her 10 remainging children (of 12), 22 grandchildren and 8 greatgrandchildren wish her all the best.

This blog has been resurrected!

After having left my personal website to rot for the last 9 years (!) I’ve decided to breathe fresh air into this site.

First order of business is to get a spanking new WordPress MU 2.8 instance up and running and it seems to be working very well.

Stay tuned as I will soon find my voice and start writing again!