Follow Me Online

The Mystery of the Disappearing Content

That’s the general nature of these bugs. Except the PublishEmptyItems bug can cause entire sites to disappear. Happened to me. 2 hours of downtime. Was going crazy trying to inspect every single line of my configuration files, restoring DBs, and going through logs.

The new Sitecore v7.2 has a lot of great features and I personally recommend upgrading after a thorough QA test to make sure things run smoothly, but it wouldn’t be “software” if it didn’t cause your site to sink into a pothole once in a while. That’s the nature of the beast.

New PublishEmptyItems Setting

Version v7.2 Released

First and foremost, I’d like to congratulate the Sitecore Dev team on the new v7.2 release. I’ve been using Sitecore since v6.1 and since then, have developed a modest wish list of features I would have loved to see. I can honestly say, this version is jam-packed with features from that list.

Publish Related Items Feature – Explained

One of those new awesome features is the Publish Related Items feature. What. A. Timesaver.
It’s especially great for rapid development and deployment. Imagine you are developing a new feature.

You create the template.

You create the layouts.

You upload the media.

You create the content based on the templates, with the mapped layouts in the presentation layer and associate any media in the image files

You want to publish? Before v7.2, you had to publish each one individually. Not that rapidly deployed. Now, with Publish Related Items checked, all those assets associated with the content item you are publishing will get published, including any and all images contained within the content item, layouts, and templates.

ERROR: The following plug-in has crashed: Shockwave Flash

WTF is going on? Google Chrome is the best, most stable browser out there. Is it a problem with the page/site I’m on?

Other than the page/site being in flash, which is a whole ‘nother problem of itself, it’s not the page/site. It’s the internal Flash plugin in Google Chrome.

Yeah, but how? Why?

Every once in a while, Google Chrome auto-updates itself and unless you check the About Google Chrome page, you will never know, as it happens “automagically.” Part of the auto-update are the plugins that are bundled with the browser. Sometimes those plugins get updated too. The reason that you are getting a crash is there is a conflict between the Flash plugin that gets bundled with Google Chrome and the Flash plugin installed on your OS, used by your non-Chrome browsers.

The Fix

Short Preface

I joined GitHub in June of 2012, just to see what the fuss was all about. It wasn’t until today that I had my first pull request accepted and merged, and it was that feeling of having contributed to something that others may find useful that inspired me to write this post. The inspiration doesn’t come from the contributing part. Don’t get me wrong. I’ve contributed and collaborated before. It was, rather, this new social way of controlling and tracking code, changesets, and comments that really make GitHub… cool.

Origins & Centralized Code Control

My origins with source code control stemmed from the days of Microsoft Visual SourceSafe 6.0. Back in those days, you mention a pull request, and people would probably think you are trying to solicit questionable services/acts. I retroactively learned CVS and Subversion because it was open source (read: free), and hence, preferred by my university’s CompSci department. Outside of the world of academia though, it’s been SourceSafe, followed by TFS. These are centrally managed and were the perfect model for the teams I worked in. Check in, check out, the occasional branch/merge… keeping it simple. Now, slightly alter the code contribution model from 10 people to 100, and it becomes close to impossible to manage the above operations when they need to happen in parallel.Continue reading →

Not sure if this is Sitecore removing the training wheels and bib or movin’ on up to the east side, but as of version 7.1, Sitecore is deprecating the Developer Center and removing it shortly thereafter. As soon as I heard, I reached out to Alex Shyba (@alexshyba) and he pointed me to LINQPad. The LINQPad site had no mention of Sitecore, so I went on a Google scavenger hunt and found Adam Conn’s blog post that covered the steps, along with some pointers Jim Scott’s Coding Blog.

It wasn’t all smooth sailing for me and I was at an hour or two in until I got the everything to work, so I thought why not do a video walkthrough and save my readers the headache.

The video is embedded below and the link to the configuration file is posted to my GitHub here.Continue reading →

I was pleasantly surprised to see the traffic analytics on a post I wrote a while ago on Using jQuery to Send Email with Web Services. However, I found some who were still requiring assistance writing the actual .NET web service. Here you go.

In Visual Studio, when you create a web service (ASMX), the default format is SOAP. You will need add a couple of attributes to the code to make it return results in a true JSON format.

First requirement is that you do a POST, but the AJAX call already takes care of that.

Scenario

Did your fellow broprogrammer leave for the day? Did you reformat your virtual machine or development workstation? When a file gets checked out in TFS, it gets associated not only to a user, but to his/her workspace (the machine/source code folder they are on). That makes it slightly more difficult to regain access to the file and undo their checkout so that you can take over.

Workaround

And what site relaunch would be complete without a #bathroomselfie, am I right?

Why Relaunch?

My main reason for relaunching is the desire to, more or less, take control of my identity on the interwebz, i.e. what you get when you Google me. My name, my identity – that in itself, is, essentially, my brand. Companies invest a ton of resources into managing the PR of their brand. It’s time for me to put in at least some effort into doing the same.

Just to make sure we are all up to speed, a quick concept in extreme layman’s terms

- jQuery is a front-end thing, meaning it gets your browser to do stuff, like move stuff around and change stuff after it’s already been loaded from the server.

- Sending email is a back-end thing, meaning it requires talking to the server to send stuff.

Now that we are all up to speed, including my 5-month-old daughter, I think it’s clear that jQuery alone can’t do this, at least not without help. How does jQuery get help from the server? It uses an AJAX Post method to talk to a server, in our case, a web service, to send something and then get something back in return, like a result, which could be ignored by not specifying it in the AJAX Post call.

For this exercise, because I prefer .NET to PHP, I will be using a very simple .NET web service to send out the email, but this task can be accomplished by any server that accepts HTTP Post commands, like a CGI script.
Let’s review the steps that we will take to accomplish this task: