While the UK government’s plans for wider adoption of open source have been uneven in their application, the new beta version of the gov.uk web site should give proprietary software vendors and contractors pause for thought, as it is almost entirely built on or with open source.
The just published colophon lists the components of the in-development site. Its Amazon EC2 hosting runs instances of Ubuntu 10.04LTS, with Jetty as application server and Nginx, Apache and mod_passenger as HTTP servers. Jenkins provides a continuous integration service, Varnish provides caching and configuration management is organised by Puppet.
The code on the site is written mostly in Ruby, with either Rails or Sinatra providing the framework; the developers have organised a github repository with the gems they have created and used to deliver the site. The one exception is the request router which is written in Scala. The developers began building the system with MySQL but have been moving over to MongoDB as they “realised how much of our content fitted its document-centric approach”. For geocoding, the developers use MySociety.org’s MaPit.
The actual web site is HTML and CSS based and the JavaScript code uses jQuery, jQuery UI and Chosen. An exception to the open source rule was the font used; the developers use Gill Sans from fonts.com. One other notable exception to the use of open source is in collaboration tools; the developers use Campfire for team chats and Google Apps for documents.
KonaKart Releases Version 6.0.0.0 of Its Leading Java eCommerce Shopping Cart Software
DS Data Systems is proud to announce a new release of its increasingly popular KonaKart eCommerce software – now with jQuery library for accessing all eCommerce functionality from the store-front.
DS Data Systems UK Ltd. is pleased to announce the release of KonaKart v6.0.0.0, a java-based eCommerce shopping cart application that provides an extensive set of features to enable retailers to successfully sell their products over the internet.
KonaKart is a Java / JSP / XML based solution with comprehensive easy to use java, SOAP, RMI and JSON APIs that allow you to quickly integrate eCommerce functionality into your existing systems. The customizable parts of KonaKart are Open Source and available under the GNU LGPL.
The new version includes many new features as well as some bug fixes. The new features include:
Introduction of an eCommerce jQuery plugin enabling you to call the full KonaKart Store-Front API from JavaScript AJAX calls. This exciting feature allows the integration of KonaKart eCommerce functionality into any web based application supporting JavaScript.
Added functionality to perform customizable faceted product searches using SOLR. Standard SOLR searches now return category and manufacturer facets by default.
Improved the flexibility in defining products by allowing an unlimited array of miscellaneous items to be attached to a product or category.
New CyberSource and WorldPay XML payment gateways.
LDAP module to connect to an LDAP directory in order to validate customer and admin user credentials.
“Wait… what? .NET I get… Web Parts make sense… Server Object Model I can get behind, but what’s up with v4.Master, CAML, XSLT, XML, core.css, JavaScript, jQuery, SPD, features, solution galleries? Really??? All I want to do is pre-populate a couple of fields and make the screen look less ugly!! I hate SharePoint!!”
Take a deep breath and count to ten. We’ve all been there. Do not despair. You are not unintelligent. You are not a moron. You do not need to quit your job to find work in the fast food industry, and you are not alone in your frustrations with SharePoint.
You would probably be surprised at just how many companies, users and developers do not understand fundamentally what SharePoint is or what SharePoint can do. Just look at the number of “SharePoint Killer” applications that have come and gone. SharePoint is different, it is massive, and it can be the most complicated platform you will ever work with.
Thankfully there is hope and you can succeed. You can not only succeed, but thrive. So, before you trade in that cubicle for a drive-through window, let’s take a closer look at what you can do to alleviate some of that anxiety and wrap your head around this SharePoint Beast.
Take the Time to Get to Know SharePoint
I’m sorry to break it to you, but you are not going to become an expert SharePoint developer by taking a training course, reading a book or attending a few conferences. It’s not going to happen. Don’t get me wrong, there’s some great information out there and some outstanding training courses. It’s possible to become productive in short order, but if you really want to excel, if you want to know what you are talking about and make the best decisions possible, you really need to invest some time in the technology. Here are a few tips to help you out:
Learn the Lingo
Remember when a web application and a web site were the same thing? What the heck is a List View anyway and why do I need to care about a Content Database? SharePoint has its own dictionary of terminology and one of best things you can do to make your life easier is to learn the SharePoint lingo. Whether you are searching for an answer online or trying to articulate your problem to a seasoned SharePoint pro, you need to use the correct words to find the answer you need and to make sure you are understood. So, you have a problem with your site? Well, do you mean Site Collection, Web Application or Sub site? Yes, it matters.
Data binding is one of the best features of XAML, so it’s no surprise that this functionality has become more popular in HTML5. Several great JavaScript libraries help bring common and often-used patterns to HTML5/JavaScript development. Two of my favorite libraries that add data-binding features are Knockout JS, and JsRender with JsViews. There are others, but these are the two I’ve found most useful and they make it a lot more fun for me to write HTML5 apps with JavaScript.
Why You Should Get KO’d
Knockout, developed by Steve Sanderson and available via NuGet, is inspired by Model-View-ViewModel (MVVM) style patterns. It has been around for more than a year and has a very active community. The community has even developed popular plug-ins for Knockout, such as KnockoutJS Mapper, which you can use to map JSON directly into a JavaScript object. Simply put, Knockout allows the binding of a JavaScript object to an HTML page.
In data binding, the concept of observables refers to objects and properties that can notify the UI elements when their values have changed. Knockout builds on this concept by requiring objects and properties to be defined with a custom function named observable. Once you understand that you need to create observable properties and not just plain JavaScript properties, the rest falls into place.
There are three basic things you need to perform data binding with Knockout, after you link to the Knockout script file:
1. A JavaScript object whose properties are ko.observables:
var vm = { person : {
firstName: ko.observable(“John”),
lastName: ko.observable(“Papa”)
}
};
2. HTML elements with declarative binding syntax:
First Name:
"value: person.firstName"/>
Last Name:
"value: person.lastName"/>
Full Name is
"text: person.firstName">
"text: person.lastName">
3. Knockout to apply the bindings between the object and the HTML elements:
This is a trivial example but it really emphasizes the simplicity of the data binding with Knockout. With just a few lines of code, the values in the JavaScript object are pushed to the corresponding HTML elements. When the applyBindings function is called, Knockout binds the object named vm to the page. Knockout then looks for any elements that have the data-bind attribute. When it finds them, it sees that they’re pointing to an object name person.firstName and person.lastName. Notice that the page is bound to the vm object, which becomes the data context for the page. This is why the elements can reference properties directly on the vm object, such as person.
Knockout can do much more including: creating dependent observables (such as a calculated property), templating and binding handlers (which are similar to behaviors in XAML). Starting with version 2.0.0, Knockout supports templating with its own native templates or you can use plug-in templating libraries. The previous example could be rewritten using a template:
First Name:
Last Name:
Full Name is
"template: 'personTmpl'">
Knockout’s native templates support defining templates in any DOM element. This means a template could be defined in a standard div if so desired, instead of in a script tag. This just scratches the surface of what it supports, but the key thing to remember is that it’s easy to get started and once you do, there’s a lot of power under the hood if you need it. And if you get stuck, there’s a great community that’s accessible from the Knockout Web site.
Updated Approach to jQuery Templates
JsViews and JsRender are the vision of Boris Moore. Combined, these libraries offer data binding and templating that can be used with or without MVVM patterns. JsViews handles the data-binding functionality while JsRender adds powerful templating capabilities. Boris offers a great history of JsViews and JsRender in his Dancing with Data blog. He explains the roadmap and why he expects these libraries to replace jQuery Templates.
When you are creating a web site, whether on your own or working with other people, it is not necessarily the case that you will always be working on the same computer. Many offices are home to both Macs and PCs, and it is possible that there are also computers running Linux. While there is nothing to stop you from using different applications to work on your site depending on which computer you are using, it is nice to have a familiar interface to work with. Quick ‘n Easy Web Builder is a cross platform WYSIWYG site creation tool that can be used on Mac, Windows and Linux.
Everything you would expect from a web editor is to be found here, and there is plenty that will appear familiar to anyone that has use Dreamweaver or similar programs. The interface is user-friendly – although there is little, if any scope, for customization – and it would be easy to think that this was just another point and click site builder. In reality, there is a great deal of power hidden beneath the surface.
If you don’t fancy the idea of starting with a completely blank canvas, you can use one of the impressive templates to get you started. There are fewer templates than you might normally expect, but the ones that are present are of a decent standard and there are sure to be more added when the software is officially released. Coming from the same team as WYSIWYG Web Builder, there are similarities between the two products, but also this is most definitely a separate application.