Wordpress - Great Web Site Platform

I’ve been using Wordpress as a blogging platform for a few years now. It’s an awesome blogging tool. Up until last week I never thought of Wordpress as anything more than just a blogging platform, but last week I started looking into how to create my own Wordpress template and discovered that Wordpress is so much more than just a blogging platform.

Wordpress provides a framework that can be used to create dynamic web sites that look like a “normal” (i.e., non-blog) web site.  One of the benefits of using Wordpress is that it already provides great administrative tools and the ability to quickly add new pages and posts, as well as modifying existing content. Then there’s the list of plugins available and great SEO capabilities.

My first foray into using Wordpress for a real website has been converting my Flintvalley.com web site over to Wordpress.  It only took me a couple of days, and that included the time I spent reading and learning about the Wordpress framework.  While the site is operational (which is obvious since your reading this on the site :)), I still have some work to do on it. There’s just so many features available from Wordpress that it will take me a while to really grasp all of the possibilities and put them to work.  I’ve also started to migrate a few other sites I have over to Wordpress.

Categories: Site Development, Wordpress
January 4, 2009 4:15 pm


Cross-Domain Issue - JSON to the Rescue

About two weeks ago I started out on a little project for one of my web sites that I figured would be rather trivial.  All I wanted to do was provide a way for my customers to put a search box on their own web sites and have the search call a “service” hosted on my web site to then display results.  This is essentially what Google allows you to do, so I knew it was possible and assumed it wouldn’t be very hard.

I wanted it to be easy for my customers to put the search box on their web pages, so I went down the path of create a Javascript file that they could just reference via a <script src=”…” /> block.  Again, this is the same way that Google Adsense and Google Search works.  Inside the Javascript code I would create the HTML to display the search box and then have a function that would get called when the search button was clicked.  The search function would then use XMLHttpRequest to call a service on my web site that would perform the search and return results that would then be display in a <div> on the web page.

Ah, it all seemed so easy and was working great on my internal development sites. I then made the “mistake” of testing using Firefox and quickly ran into a problem. When I clicked the Search button nothing happened.  It took me a little while to track down the issue, but eventually discovered that what I was doing was a cross-domain security issue.  You see, it is not allowed having client-side script use XMLHttpRequest to access a file/script/service located on a different domain from the one the web page was served up from.  Doh!  This really sucked.  I searched and searched for ways to resolve the issue.  One common approach is to create a “proxy”, but that wasn’t a valid option for me since the web site using my search control wasn’t my own web site.  I really didn’t want to force my customers to create or install some proxy file.

After more searching I came across another solution — use JSON (JavaScript Object Notation).  Like most things, it’s not quite as simple as just flipping a switch and using JSON.  There was some work involved, but it wasn’t that hard and the result is excellent.

For starters, I recommend getting familar with JSON by checking out this Mastering JSON post.  It’s brief but covers the key things you need to know about the layout of JSON.  The next thing I had to do was change my service so it formatted and returned JSON text instead of HTML/XML like it was doing.  The last (and perhaps most important) step was to change my Javascript code to do two things:

1) On the button click I needed to dynamically add a “<script>” block to the HEAD section.  The source of the script is my search service.  Doing this causes the pages to automatically call the search service.

2) Create a function that will process the JSON data that is returned from the search service.

The real “trick” in all of this is that the text that the search service returns is actually the call to the function that processes the JSON text.  (If you’re thoroughly confused at this point don’t worry…so was I…but let me try to make it easier to understand).

Here’s an example that will hopefully bring all of the pieces together for you:

User.html (my customer’s web page)

<html><head></head><body>
<script type=”text/javascript” src=”http://www.MyWebSite.com/Search.js”/>
</body></html>

Search.js (Javascript file stored on my web site)

function process_json_data(jsondata) {
var resultCtrl = document.getElementById(”resultDiv”);
resultCtrl.innerHTML = jsondata.Results[0].Title;
}

function onSearchClick() {
// Add a script to the HEAD which has the Search service as the source
request_script = document.createElement(”script”);
request_script.src=”http://www.MyWebSite.com/search.aspx?kw=abc&jf=process_json_data”;
request_script.setAttribute(”id”, “myscript”);
request_script.setAttribute(”type”, “text/javascript”);
document.getElementsByTagName(”head”)[0].appendChild(request_script);
}

// code that displays the search control…
document.writeln(”<input id=\”searchBtn\” type=\”button\” value=\”Search\” onclick=\”onSearchClick();\” />”);

 Search.aspx (my search “service” on my site)
This will perform the search and return JSON formatted data, but also includes the function name:

process_json_data({ “Results” : [ { "Title":"ABC" }, { "Title":"XYZ" } ] });

Categories: General
November 5, 2008 7:31 am


Microsoft Azure Services Platform

Today Microsoft has officially announced their cloud computing platform and strategy.  They made the announcement at their Professional Developers Conference and also put up a new web site for Azure Services Platform at Azure.com.  If the term “cloud computing” is foreign to you, don’t despair because your not alone.  The good news is that cloud computing is slowly moving out of the fantasy land and into the reality land.

Last week Amazon announced they would be providing support for Windows and SQL Server on their Elastic Compute platform.  The Amazon approach is certainly different than the Microsoft approach. I’m not going to say one is better than the other because it just depends on what you want to accomplish.  With Amazon you need to start up and shutdown server instances yourself, while with Azure you have the ability to define the characteristics and requirements of the app and the platform will scale up/down instances as needed.  It sounds good in theory, but I’ll wait to see it before I vote :)

The Azure Services Platform comes with some SDKs and it will be easy for developers familiar with .NET development to build applications for the cloud. The Azure Services Platform is also very much focused on eliminating the complexity of building highly scalable, multi-tenant applications. If you’re an ISV that means you can focus on the business functionality instead of the technical details.

There are still questions I have about Azure Services Platform and the core services it provides, so I have some research to do. I’m downloading the SDKs and what ever other info I can find to see what this can do to help me.  So stay tuned!

Categories: General
October 27, 2008 11:38 am


Newer Posts »






Copyright © 2008 Flintvalley LLC, All rights reserved.