Author: Paul Shannon

Cats vs Dogs: Answering the Important Questions

Cats vs Dogs: Answering the Important Questions

SitePen participates in a number of conferences around the world presenting new technology and ideas to engineers and designers. Recently Dylan Schiemann and Tom Dye spoke at the HalfStack Conference in London and Paul Shannon spoke at Phoenix TypeScript meetup. We demonstrated what Dojo and the Web could do by using Web Audio, Web Animations, and a number of other technologies to create a fun application.

Read More »
A Quick Look at Nest

A Quick Look at Nest

Nest is a scalable framework for building server-side applications. It is authored in TypeScript and relies on the Express framework. It leans heavily on modern language features such as async/await and decorators to reduce cruft and place the focus cleanly on route-handling business logic.

Read More »
Intern Visual Regression Plugin

Intern Visual Regression Plugin

Thanks to a generous Mozilla Open Source Support program award, Intern has expanded its testing ecosystem to include new and robust sets of tools. Engineers can now easily write tests to benchmark sections of code, test for accessibility (a11y) support, and test for visual differences. Today we’ll show you how to use Intern’s Visual Regression plugin to test for visual changes using a simple web page.

Read More »

ES6 Symbols: Drumroll Please!

Symbols are a new, unique, primitive type introduced in ECMAScript 6 (ES6). They were added to the language in order to solve the problem of extending the functionality of Object while maintaining backwards-compatibility with code written in earlier versions of JavaScript. With their addition comes the ability for developers to affect the behavior of the language in new and interesting ways. This article will introduce the concept of a symbol, explain their purpose, and show a couple of the most

Read More »

TypeScript Decorators

One of the main benefits of working in TypeScript is that it lets developers use modern standards within their source code today. Tools like destructuring, rest and spread operations, and classes make it easier to define structures and work with data. TypeScript also provides support for ES.Next Decorators, giving developers an important tool for defining frameworks and reusable structural patterns. Today we will explain what decorators are, how they can be used to improve your projects, and how to start

Read More »

Dojo FAQ: How to use JSFiddle to provide a functioning test case

Making a case When collaborating with other developers nothing is better for conveying an issue than real, working code. To this end, JSFiddle provides a way to quickly create and share functioning test cases written in HTML, CSS, and JavaScript. It provides a customizable environment with support for Dojo and many other common frameworks, services for mocking Ajax requests, basic change control, and collaboration tools. The interface is simple and gets out of your way allowing you to quickly write

Read More »

Dojo FAQ: Why do I need to use an HTTP server with Dojo?

When developing for the web, it is a recommended best practice to always test your application during development with a web server. This is for two primary reasons. By running a web server, you can approximate a production environment similar to how your application will be served to your users. Also, browsers implement a same-origin policy that is different for quasi-protocols like file://. Many of Dojo’s modules like dojo/i18n, dojo/text, Dijit templates, and dojox/gfx depend on loading files from the

Read More »

Dojo FAQ: When should I provide callbacks to dojo/when?

In JavaScript it is common to use a Promise as a placeholder for a value which will eventually be provided upon completion of some operation. However most JavaScript methods run synchronously and immediately return a value. Dojo’s when module provides a transparent way to apply callbacks to either values or promises. It can do this in one of two ways: Using when(value) to always create a promise Passing callbacks to be applied directly to the value

Read More »