Category: JavaScript

  • Sensible Improvements in TypeScript 3.9

    Sensible Improvements in TypeScript 3.9

    Nick Nisi | May 15, 2020

    The recent TypeScript 3.9 release primarily focuses on performance and stability, but it does include some language updates that are worth a closer look. Expansion of uncalled function checks Continuing its quest to save you from yourself, TypeScript 3.9 expands on the uncalled function checks that were introduced in version 3.7. These checks report when

    Read More >>
  • The Definitive TypeScript Guide

    The Definitive TypeScript Guide

    Jason Cheatham | April 10, 2020

    Originally published Oct 29, 2018. Updated May 29, 2020. This article describes the features and functionality of TypeScript 3.9.  One of the most interesting languages for large-scale application development is Microsoft’s TypeScript. TypeScript is unique in that it is a superset of JavaScript, but with optional types, interfaces, generics, and more. Unlike other compile-to-JavaScript languages, TypeScript

    Read More >>
  • Getting Started with React Native

    Getting Started with React Native

    Tom Dye | April 6, 2020

    What is React Native React Native is a JavaScript framework for writing hybrid native mobile applications for both iOS and Android platforms. React Native uses the same JSX and React development approach you would take for developing for the browser, but applications get built as native applications in Objective-C (for iOS) or Java (for Android)

    Read More >>
  • New TypeScript Features that Improve the Developer Experience

    New TypeScript Features that Improve the Developer Experience

    Nick Nisi | March 18, 2020

    In many ways TypeScript is more like a powerful linting and documentation tool to author better JavaScript, rather than a separate programming language. One significant benefit of TypeScript is its deliberate support for some of the latest ECMAScript language features. Updating to new versions of TypeScript provides support for new language features but in a

    Read More >>
  • What Makes Intern Different

    What Makes Intern Different

    Jason Cheatham | March 10, 2020

    Intern has always taken a different path in the pursuit of flexible automated web app testing. In the early days, Intern leveraged AMD modules when most other testing frameworks were not modular or only supported CommonJS modules, allowing Intern to support modular code in any environment. Intern was also one of the first tools to

    Read More >>
  • Why did we start TSConf?

    Why did we start TSConf?

    Nick Nisi | March 6, 2020

    The ubiquity of JavaScript is undeniable; it’s the universal language of the web — a position that no other languages hold. JavaScript is flexible, able to adapt and grow as the web grows. But that flexibility is often the downfall of JavaScript; without a disciplined team working diligently to keep the codebase maintainable, JavaScript can

    Read More >>
  • HalfStack Conference – Phoenix, January 2020

    HalfStack Conference – Phoenix, January 2020

    Mangala SSS Khalsa | March 3, 2020

    HalfStack is a series of tech conferences focused on half of the web development stack – specifically, the part you interface with. It lives up to its claims of being “an authentic, high value experience for attendees and sponsors focused on UI-centric JavaScript and web development.” Friday, January 17, 2020 Alamo Drafthouse, Chandler, Arizona The

    Read More >>
  • Exploring the Network Information API

    Exploring the Network Information API

    Dylan Schiemann | November 18, 2019

    In 2007, we were invited to speak at the Apple WWDC event. At the time we didn’t know why we were invited. We later learned that because there was initially no native SDK, developers were advised to use JavaScript, HTML, and CSS to create iPhone apps, and were encouraged to attend our session. Obviously the

    Read More >>
  • How to Pick a Web Mapping Library for your App

    How to Pick a Web Mapping Library for your App

    James Milner | November 7, 2019

    With the boom of location-based technologies like mobile location services and the Geolocation API in the browser, we have seen the growth of mapping and location inside of applications. Alongside this we have seen numerous mapping libraries appear for the web, allowing developers to build map based experiences into their apps. These libraries abstract away

    Read More >>
  • JSConf US 2019: Pushing JavaScript Beyond the Browser

    JSConf US 2019: Pushing JavaScript Beyond the Browser

    Anthony Ciccarello | September 30, 2019

    As a first-time JSConf attendee, I happily embraced the welcoming culture and fun atmosphere – surfing, anyone? But I was even more impacted by the presentations centered around JavaScript expanding beyond the browser, using JavaScript to help others, and the focus on community. Of course I’m an avid JavaScript engineer and believer (why else would

    Read More >>
  • Next Generation Virtual Scrolling

    Next Generation Virtual Scrolling

    Dylan Schiemann | September 25, 2019

    Rendering large data sets in the browser while optimizing for performance and accessibility is a complex problem. The current approach to handling long lists of data is using an infinite scroll pattern to incrementally load and render data just before the data enters the view. This approach comes with trade-offs that we will look at

    Read More >>
  • Getting Started with Electron, Typescript, React and Webpack

    Getting Started with Electron, Typescript, React and Webpack

    Justin Ellison | September 17, 2019

    If you need to build a desktop application today, Electron is an increasingly common choice. It is cross-platform and is built using the same web technologies that you probably already know. We’re long-time users of Electron at SitePen, and have previously talked about Setting up Electron with Dojo. Here we will explore an opinionated approach

    Read More >>
  • Using WebAssembly with Web Workers

    Using WebAssembly with Web Workers

    James Milner | July 22, 2019

    When building web apps, writing processing intensive code can be a challenge. One issue is getting predictable running times across browsers and JavaScript engines that optimise different code paths differently, as well as producing code that doesn’t interfere with user experience. Since 2010 we’ve had a standardised way to manage interactivity for long, non-DOM related

    Read More >>
  • Deploying a Dojo App with Docker

    Deploying a Dojo App with Docker

    Rory Mulligan | July 16, 2019

    So you’ve built an amazing app using Dojo and now you are ready to go live. After a bit of research, you learn that traditional deployments are challenging! Luckily, the days of FTPing files are long gone, and we can rely on Docker for fast, reliable deployments. Using Docker will not only document your build

    Read More >>
  • Augmented Reality on the Web in 2019

    Augmented Reality on the Web in 2019

    James Milner | May 21, 2019

    Augmented Reality (AR) brings digital information or media and interweaves it with our experience of the real-world. In recent years Augmented Reality has become apparent in the consumer space in two major formats: head mounted displays such as the Microsoft HoloLens and the Magic Leap along with more widely available experiences on mobile devices. Here

    Read More >>
  • 2019 Esri Developer Summit Recap

    2019 Esri Developer Summit Recap

    Dylan Schiemann | March 21, 2019

    Esri provides the excellent ArcGIS for JavaScript API for building geospatial applications. Their approach has grown substantially over the years, from basic two-dimensional maps comparable to early Google Maps implementations to now cover nearly everything I can imagine wanting to do in a 2-D or 3-D map. Underneath the API, Esri still finds significant value

    Read More >>
  • Reducing First Input Delay for a Better User Experience

    Reducing First Input Delay for a Better User Experience

    James Milner | February 28, 2019

    One common complaint around web applications is that they can feel slow or clunky compared with native applications. Sometimes we find sites that can take a long time to load (let’s say longer than 3 seconds) and sometimes those sites feel non-interactive or ‘janky’ when we try to interact with them. Many sites, especially those

    Read More >>
  • Codemods: Effective, Automated Refactoring

    Codemods: Effective, Automated Refactoring

    Nick Nisi | January 29, 2019

    Maintaining software is challenging. Stagnant software quickly becomes obsolete and this couldn’t be truer than in the JavaScript ecosystem. JavaScript firmly holds the reigns as the language of the web and with that comes a unique opportunity for the language and ecosystem to learn and adopt best practices and paradigms from other languages and ecosystems,

    Read More >>
  • Compiling Go to WebAssembly

    Compiling Go to WebAssembly

    James Milner | January 15, 2019

    For many years there has been the only way to write client-side logic for the web; JavaScript. WebAssembly provides another way, as a low-level language similar to assembly, with a compact binary format. Go, a popular open source programming language focused on simplicity, readability and efficiency, recently gained the ability to compile to WebAssembly. Here

    Read More >>
  • Updating the Decorators Proposal for the Holidays

    Updating the Decorators Proposal for the Holidays

    Anthony Ciccarello | January 3, 2019

    Photo by Annie Spratt on Unsplash The Ecma TC39 committee, which standardizes the JavaScript language (officially known as ECMAScript), has been discussing a decorators proposal for several years. Transpilers like TypeScript and Babel implemented the initial version of the decorators proposal, allowing developers and frameworks to start using the proposal before the feature became an

    Read More >>
  • Cats vs Dogs: Answering the Important Questions

    Cats vs Dogs: Answering the Important Questions

    Paul Shannon | December 19, 2018

    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,

    Read More >>
  • TC39 Binary AST Proposal to Improve JavaScript Performance

    TC39 Binary AST Proposal to Improve JavaScript Performance

    Dylan Schiemann | November 30, 2018

    WebAssembly has grown in popularity due to its ability to improve application performance and support transpilation of source code in other languages into something that may get leveraged in a web browser. Every time the JavaScript language gets challenged, the community strives to create mechanisms to improve performance bottlenecks, which we have seen over the

    Read More >>
  • Advanced TypeScript Concepts: Classes and Types

    Advanced TypeScript Concepts: Classes and Types

    Nick Nisi | November 28, 2018

    This article describes the features and functionality of TypeScript 3.9. While TypeScript is very simple to understand when performing basic tasks, having a deeper understanding of how its type system works is critical to unlocking advanced language functionality. Once we know more about how TypeScript really works, we can leverage this knowledge to write cleaner,

    Read More >>
  • Reflecting on ffconf 2018

    James Milner | November 14, 2018

    Last Thursday I was lucky enough to get over to the highly regarded web development conference ffconf in Brighton. This was my first time at the event and I can say that it lived up to and even exceeded my expectations. In this post I want to share with you the key takeaways from the

    Read More >>
  • Building a Modern JavaScript Framework

    Building a Modern JavaScript Framework

    James Milner | November 12, 2018

    Every year, Esri, the world’s largest geospatial software vendor, runs its developer summit in Europe. This conference, the Esri EU DevSummit, attracts around 350 developers working with Esri technology from across Europe, all coalescing in Berlin. Attendees come to find out the latest in Esri tech updates and technology changes at large that affect them

    Read More >>
  • React Already Did That at All Things Open 2018

    React Already Did That at All Things Open 2018

    Dylan Schiemann | November 7, 2018

    All Things Open is a large, community-created open source conference in Raleigh, North Carolina, with nearly 4,000 attendees and 20 concurrent sessions. At this year’s event, I was invited to deliver a talk similar to one I had presented at JSConf titled “React Already Did That.” The session itself is not actually about React, but

    Read More >>
  • Node+JS Interactive 2018: From Accessibility to JS Interoperability

    Node+JS Interactive 2018: From Accessibility to JS Interoperability

    Dylan Schiemann | October 23, 2018

    The 2018 edition of the Node+JS Interactive conference featured nearly 1,000 JavaScript and Node.js enthusiasts at the first combined event organized by the Node.js Foundation and JS Foundation. The event included nearly 100 sessions, panels, and community events designed to help grow and foster the JavaScript ecosystem. The big announcement this year was the intent

    Read More >>
  • The Return of SharedArrayBuffers and Atomics

    The Return of SharedArrayBuffers and Atomics

    James Milner | September 19, 2018

    A common complaint of modern web apps is the concept of jank; web pages being unresponsive to user input and frame rates being low. Left unmitigated, this problem leads to a poor quality experience for end users of our web applications. You might ask: is this what causes jank? One common cause apart from complex/inefficient

    Read More >>
  • Programmatically create images with the CSS Paint API

    Programmatically create images with the CSS Paint API

    Umar Hansa | August 27, 2018

    The CSS Paint API is a modern web platform feature to programmatically create images in JavaScript which are rendered to the page when referenced by CSS. You create images using the Canvas API, an API with which you may already be familiar.

    Read More >>
  • Cross-tab Synchronization with the Web Locks API

    Cross-tab Synchronization with the Web Locks API

    Umar Hansa | August 14, 2018

    The Web Locks API is a new addition to the Web Platform which allows you to execute JavaScript in a lock, a resource which can potentially get shared with other browser tabs. This API is currently available in Chrome and other Chromium-based browsers with no major signals from other browser vendors. Use cases which are

    Read More >>
  • FullStack London 2018 – Improving User Experience With Web Workers

    FullStack London 2018 – Improving User Experience With Web Workers

    Lisa Flood | July 27, 2018

    At this months’s FullStack London 2018, SitePen Engineer James Milner presented the talk “Improving User Experience With Web Workers”. Web browsers use single-threaded JavaScript to perform tasks; business logic, layout, reflows, and garbage collection. This means complex and heavy JavaScript functions can block the main thread from rendering. This results in low frame rates and

    Read More >>
  • FullStack London 2018: Choosing a Framework

    FullStack London 2018: Choosing a Framework

    Lisa Flood | July 26, 2018

    At this month’s FullStack London 2018, our CEO, Dylan Schiemann, presented the talk “Choosing a Framework”, based on our Choosing a Framework blog series. Given our long history in web development, we’ve seen JavaScript evolve from an obscure simplistic scripting language to the language of the internet. We’ve seen frameworks rise and fall and it’s

    Read More >>
  • Exploring the Resize Observer Proposal

    Dylan Schiemann | June 4, 2018

    Resize Observer allows developers to receive notifications when the size of an element’s content rectangle changes. This helps manage a variety of application layout scenarios including responsive application layout, flexible layouts such as split panes, or dynamic changes in content within an element in a page. This proposal is part of the Web Incubator Community

    Read More >>
  • A Quick Look at Nest

    A Quick Look at Nest

    Paul Shannon | May 9, 2018

    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 >>
  • Escape the Office: Designing Interfaces for Other Developers

    Dylan Schiemann | May 4, 2018

    At the recent TSConf, SitePen engineer Sarah Higley delivered a talk titled Escape the Office: Designing Interfaces for Other Developers. The moment you step into any large project or open source venture you must accept that code you write gets used in ways you did not originally intend. Part of creating any good codebase is

    Read More >>
  • Don’t forget your keys

    Don’t forget your keys

    Dylan Schiemann | April 16, 2018

    At the recent NEJSConf, SitePen engineer Sarah Higley delivered a talk titled Don’t forget your keys. People tend to assume everyone navigates the world in the same way they do: on two legs, responding to visual cues, hearing speech, reading emotion. For developers, this often means web accessibility comes as an afterthought, if at all.

    Read More >>
  • Introduction to WebAssembly

    Introduction to WebAssembly

    Dylan Schiemann | April 13, 2018

    WebAssembly is an emerging standard for a low-level assembly-like language in a compact binary format that runs with near-native performance, and is available as a compilation target for a variety of languages. We’ve heard significant misunderstanding around WebAssembly and what it means for the web and JavaScript.

    Read More >>
  • Intern Recorder 2 now supports TypeScript, ES Modules, and Intern 4

    Intern Recorder 2 now supports TypeScript, ES Modules, and Intern 4

    Jason Cheatham | April 12, 2018

    Intern Recorder is a Chrome extension that can kickstart the process of creating functional tests for Intern. It was initially released in 2015 users of Intern authored test suites as AMD modules. Intern has changed quite a bit since then; in particular, the standard suite module format has changed from AMD modules to ES Modules

    Read More >>
  • A case for accessibility

    A case for accessibility

    Sarah Higley | March 23, 2018

    We have somehow reached a point in time where the integration of life in digital and physical spaces has spawned scores of scholarly articles with titles like “The emerging online life of the digital native.” In a practical sense, it has become increasingly difficult to participate in society without using the internet in some form.

    Read More >>
  • Testing TypeScript with Intern 4

    Testing TypeScript with Intern 4

    Jason Cheatham | February 12, 2018

    Intern is a popular JavaScript testing framework with an extensive feature set. While Intern has traditionally been focused on testing applications written in standard JavaScript, it has also had great support for TypeScript. With version 4, Intern has been completely rewritten in TypeScript, allowing it to provide a more seamless testing experience for TypeScript projects.

    Read More >>
  • Web Frameworks: Community

    Web Frameworks: Community

    Kit Kelly | October 31, 2017

    It is like the old proverb, “It takes a village to raise a web framework.” As we explored in the previous post, choosing a framework goes beyond the technical features of a framework and this is certainly true when it comes to the wider community, which includes considerations like licensing, how open the framework is,

    Read More >>
  • State of Modules in JavaScript

    State of Modules in JavaScript

    Umar Hansa | October 26, 2017

    Many modern web applications depend on JavaScript. When the complexity of your JavaScript increases, so does the maintenance cost. To improve the maintenance of complex JavaScript codebases, you most likely adhere to some clean code practices in your codebase.

    Read More >>
  • Improving Performance with the Paint Timing API

    Improving Performance with the Paint Timing API

    Umar Hansa | October 6, 2017

    Introduction Outline Accessing paint metrics from JavaScript Reporting paint timing metrics to a server Viewing paint metrics in the Chrome DevTools Browser Implementations Traditionally, front-end performance focused primarily on page load times as an important performance metric. Commercial web performance dashboards would show granular level performance metrics for back-end aspects, like database lookup times, template

    Read More >>
  • Browser Automation with Puppeteer

    Umar Hansa | October 4, 2017

    Automating browsers provide many benefits including faster execution of repetitive tasks, ability to parallelise workloads and improved test coverage for your website. Google recently announced Puppeteer, a new tool to assist with Chrome browser automation.

    Read More >>
  • Web Frameworks: Soundness

    Web Frameworks: Soundness

    Kit Kelly | October 3, 2017

    For a web framework to be effective, it should offer you more than just functionality. It doesn’t matter how much hard work you put into your application if it breaks when people use it. Beyond testing, let’s explore how frameworks can help us build better code before we test it.

    Read More >>
  • A Guide to Faster Web App I/O and Data Operations with Streams

    A Guide to Faster Web App I/O and Data Operations with Streams

    Umar Hansa | October 2, 2017

    Why should you care about streams? On the modern web platform, many interesting features appear which enable new functionality which were not previously possible, for example, Web Bluetooth, Background Sync & Web VR. For new features in JavaScript specifically, many are just syntactic sugar for things you could already do in an alternative way, like

    Read More >>
  • Using Web Components With Angular

    Using Web Components With Angular

    Bryan Forbes | September 14, 2017

    Angular is an application framework favored by many in the JavaScript community. Angular provides a library for building encapsulated components, dependency injection, a templating language with data binding, an application router built on observables, and a command line interface that lowers the barrier to entry. While being slightly less flexible than some frameworks, Angular’s opinionated

    Read More >>
  • Observing Intersection Observers

    Observing Intersection Observers

    Carrie Rice | September 5, 2017

    As developing for the web has matured and JavaScript engines have become faster, one area remains a significant bottleneck – rendering. It’s because of this that so many of the recent development efforts have been focused around rendering, with virtual DOM being one of the more popular examples. In Dojo 2, being aware of these

    Read More >>
  • Five of our favorite emerging web standards

    Five of our favorite emerging web standards

    Sarah Higley | August 31, 2017

    As we create and improve open source software, and build many applications for our customers, we’re constantly looking for things that will improve the software we create. Part of this is looking at an often dizzying array of proposed and emerging standards, and finding those that feel efficient and ready for use. Here we’ll explore

    Read More >>
  • Getting started with Intern 4

    Getting started with Intern 4

    Dylan Schiemann | August 30, 2017

    Unless you have a time machine or a TARDIS, it’s pretty rare to have solid documentation in place before an open source project is released! While we’re getting close to a beta release with the Intern 4 and while we still have a fair amount of documentation and refinements to complete, a number of people

    Read More >>
  • Web Frameworks: Using and Developing

    Web Frameworks: Using and Developing

    Kit Kelly | August 23, 2017

    Let’s figure out how to play our album. Is it a 45 vinyl or some sort of fancy SACD? Gaining insight into how we might develop and deploy an application built on a web framework helps us figure out if it is the right fit for our team.

    Read More >>
  • State of Modern Component Styling

    State of Modern Component Styling

    Tom Dye | August 17, 2017

    As new user interface component frameworks are created and old frameworks are replaced with emerging technologies, methods for styling those components must change with them. Long gone are the days of creating a simple HTML component and importing a simple CSS file with corresponding class names. Concerns such as style leaking, local DOM manipulation and

    Read More >>
  • Higher Order Components in React

    Higher Order Components in React

    Rory Mulligan | August 15, 2017

    Traditionally, engineers use mixins, decorators, inheritance, and plain code duplication to add common functionality to a handful of components. Mixins and decorators can modify the target object in such a way that you are never really sure what methods are safe to override without unwanted side effects. Inheritance can quickly get out of hand as

    Read More >>
  • Web Frameworks: Common Usage

    Web Frameworks: Common Usage

    Kit Kelly | August 10, 2017

    Previously on Web Frameworks, we looked at how various frameworks deal with the concept of applications. Akin to listening to the whole album, we got a sense of how the frameworks pull it all together. In this post, we explore what are common types of applications and how the frameworks we are considering might work

    Read More >>
  • Wrapping Web Components With React

    Wrapping Web Components With React

    Nick Nisi | August 8, 2017

    There are many reasons to like React. It provides a nice library for writing reusable components and leverages its own virtual DOM, abstracting away the obtuse native DOM APIs in favor of a simple method calls, which are further abstracted away with a JavaScript language extension, JSX. Numerous other reactive and virtual DOM solutions exist

    Read More >>
  • Web Frameworks: Applications

    Web Frameworks: Applications

    Kit Kelly | August 3, 2017

    Applications built with web technologies, something that was a curiosity a few short years ago, have emerged onto the scene as a must have for most organizations. Transcending websites and providing users with a more open and unbounded experience, web applications are everywhere. Likely the main reason you are reading this series is to determine

    Read More >>
  • The State of Internationalization in JavaScript

    The State of Internationalization in JavaScript

    Matthew Wistrand | July 19, 2017

    As businesses expand into new markets and existing markets become more diverse, it is increasingly rare that enterprise applications can expect to serve speakers of only one language, with identical expectations for how they should be addressed or be presented data. In spite of this, globalization — the process of catering an experience to users

    Read More >>
  • Event Delegation: Pattern or Anti-Pattern?

    Event Delegation: Pattern or Anti-Pattern?

    Neil Roberts | July 11, 2017

    A significant amount of work on JavaScript toolkits and frameworks has centered around trying to fix, normalize, and optimize browser implementations. Doing so requires making many assumptions about what the problems are, how our tools will be used by developers, and what we expect of the future. The assumptions made often turn out to be

    Read More >>
  • Web Frameworks: Foundational Technologies

    Web Frameworks: Foundational Technologies

    Kit Kelly | July 6, 2017

    We have previously discussed the look and feel of web frameworks. While we often become interested in a framework based on the stylishness of the widgets and applications it can create, this may lead to a similar approach to how we have historically selected music. Traditionally, you would go out, buy an album, maybe from

    Read More >>
  • Web Frameworks: User Experience Design

    Web Frameworks: User Experience Design

    Kit Kelly | June 27, 2017

    While instruments such as guitar and drums are part of a band, how they are used by the musicians define the style of the band’s music. Similarly, the elements of an application user interface connected together define the user experience. In this post as part of our ongoing series about frameworks, we are going to

    Read More >>
  • Intern and JavaScript Testing in 2017

    Intern and JavaScript Testing in 2017

    Jason Cheatham | June 22, 2017

    Since we released Intern in 2013, the state of JavaScript testing has changed substantially. The JavaScript world was a very different place. Node.js was at version 0.8, and core modules like http were still being heavily developed! Popular tools like webpack, React, and TypeScript were still in the early stages of development. Jasmine was probably

    Read More >>
  • Web Frameworks: User Interface Development

    Web Frameworks: User Interface Development

    Kit Kelly | June 16, 2017

    Whether it is Top 40 or classical or R&B, artists and music have a recognizable look and feel. When looking at frameworks, some simply provide us with a bag of instruments, while others provide us with chord progressions and album covers we can customize.

    Read More >>
  • If we chose our JavaScript Framework like we chose our music…

    If we chose our JavaScript Framework like we chose our music…

    Kit Kelly | June 13, 2017

    …we would all be using justin-bieber.js. We as an organization have been working with JavaScript since 2000. We have seen frameworks rise and fall, including being responsible for some of them. We have seen trends come and go. We have seen browser dominance ebb and flow. We have seen winners and losers. We have seen

    Read More >>
  • Ahead of the Curve: TypeScript & Enterprise Web Development

    Ahead of the Curve: TypeScript & Enterprise Web Development

    Carrie Rice | June 12, 2017

    For a concise read on why the enterprise should care about using TypeScript in its applications, look no further than Remo Jansen of the Aon Centre for Innovation and Analytics’ presentation on the 6 reasons you should be using TypeScript. The SitePen engineering team has been using TypeScript since it came onto the open source

    Read More >>
  • ECMA-414: Modularizing the JavaScript Standard

    ECMA-414: Modularizing the JavaScript Standard

    Dylan Schiemann | June 7, 2017

    As we noted in our post about the open and incremental approach to TC39, one of the challenges facing TC39 is that it has grown in size substantially along with the community interest in JavaScript. ECMA has started to address this by creating a few additional standards bodies for sections of JavaScript that can be

    Read More >>
  • TypeScript 2.3: The Sexy Default Type Argument

    TypeScript 2.3: The Sexy Default Type Argument

    Dylan Schiemann | May 9, 2017

    TypeScript 2.3 is the latest version in the quarterly release cycle from the TypeScript team. This release contains several useful additions to TypeScript which we have already started to leverage within some of our current projects. Let’s take a closer look!

    Read More >>
  • Typings for dojox/gfx

    Dylan Schiemann | April 25, 2017

    dojox/gfx is Dojo 1.x’s vector graphics library, with support for SVG, Canvas, and other legacy rendering environments through a drawing API based on the semantics of SVG. This API also provides the foundation for dojox/charting. Often the biggest challenge in working with vector graphics is the large number of possible configuration settings and permutations. TypeScript

    Read More >>
  • TC39: Open and Incremental Approach Improves Standards Process

    TC39: Open and Incremental Approach Improves Standards Process

    Dylan Schiemann | April 6, 2017

    In our recent post about the key features in ES2017, I was reminded just how much the standards process has changed in the past 15 years. As someone who tried to get involved early to improve standards, the process was broken and I was quickly discouraged. However, much has changed since the early days of

    Read More >>
  • What TypeScript can offer to Dojo 1.x

    What TypeScript can offer to Dojo 1.x

    Kit Kelly | March 29, 2017

    As many of you know, Dojo 2 is being built on TypeScript. Many of us involved in Dojo 2 believe that TypeScript brings several advantages to developing with web technologies these days. Features like structural typing and interfaces help us write code that is less prone to errors as well as being able to express

    Read More >>
  • The 5 features of ES8 and a wishlist for ES9

    The 5 features of ES8 and a wishlist for ES9

    Dylan Schiemann | March 21, 2017

    As we near the finalization of the proposal, it’s looking like ES8 is going to deliver much more than the simple updates of its ES7 predecessor! We wanted to take a few moments to highlight our 5 favorite things about the upcoming 2017 release.

    Read More >>
  • Functional reactive programming and Observables in JavaScript, TypeScript, and Dojo 2

    Functional reactive programming and Observables in JavaScript, TypeScript, and Dojo 2

    Dylan Schiemann | February 27, 2017

    Functional programming and reactive programming principles are not new to JavaScript, but their adoption has recently become widespread across most modern frameworks and toolkits. The ease of using these approaches has improved as we’ve finally seen the decline of legacy browsers, and as we’ve seen the introduction of functional and reactive paradigms within ES6 and

    Read More >>
  • Mixins and more in TypeScript 2.2

    Mixins and more in TypeScript 2.2

    Dylan Schiemann | February 22, 2017

    The TypeScript team recently announced the TypeScript 2.2 release candidate which will contain key improvements to the TypeScript language. Most notably, are the introduction of the object type and improved support for mixins and composable classes.

    Read More >>
  • Dojo FAQ: How do I optimize a Dojo app for mobile?

    Dojo FAQ: How do I optimize a Dojo app for mobile?

    Nick Nisi | February 14, 2017

    Web applications can be deployed to many environments, including desktops, tablets, and mobile devices. We can even deploy web applications natively using a wrapper such as Apache Cordova to gain access to device features such as GPS, battery, and accelerometer data. However, it is not always optimal to package our application into a universal layer

    Read More >>
  • Moving 4-ward with Intern

    Moving 4-ward with Intern

    Jason Cheatham | February 10, 2017

    The motivation for Intern 4 is to make it easier to author tests with ES6+ features within tests, with or without transpilation. Want to skim? Here’s the Intern Roadmap which lists our high level status for each Intern release going forward. Or if you’re curious to know the details for our plans for Intern this

    Read More >>
  • Introducing Milestone Mayhem

    Introducing Milestone Mayhem

    Dylan Schiemann | February 1, 2017

    Introducing Milestone Mayhem With years of building large scale web apps, we’ve experienced almost everything that goes right and wrong during software development projects. So we created Milestone Mayhem, a card game that reflects the challenges and successes with app development.

    Read More >>
  • State of JavaScript 2017

    State of JavaScript 2017

    Dylan Schiemann | January 25, 2017

    It’s been two very active years since the release of ES6, and we’ve seen pretty substantial changes in how we build JavaScript applications. While some complain of fatigue, there’s never been a more exciting time to be a JavaScript engineer. So with the new year upon us, it’s time to look at where we are,

    Read More >>
  • Intern Visual Regression Plugin

    Intern Visual Regression Plugin

    Paul Shannon | December 15, 2016

    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

    Read More >>
  • Accessibility Testing with Intern

    Jason Cheatham | December 13, 2016

    Intern already has a wide array of capabilities and today we’re pleased to announce one more: accessibility testing. Thanks to a generous award from Mozilla Open Source Support we’ve created the intern-a11y plugin, which allows users to run accessibility tests on pages or components using Intern.

    Read More >>
  • Intern 3.4 Released

    Jason Cheatham | December 8, 2016

    Today we’re pleased to announce the release of Intern 3.4. This release brings usability enhancements and bugfixes, including a new benchmarking mode! We’ve outlined some of the features below, but as always, visit the release notes for more details. A number of contributors made this release possible. Thanks to all of them for their code

    Read More >>
  • Exploring WebVR

    Dylan Schiemann | October 26, 2016

    This October, we delivered meetup talks on WebVR in London and Phoenix on the same day to share our early efforts in exploring WebVR with TypeScript, Dojo 2, Intern, and A-Frame. What is WebVR? WebVR is an experimental JavaScript API that provides access to Virtual Reality (VR) devices, such as the Oculus Rift, HTC Vive,

    Read More >>
  • Announcing the JS Foundation!

    Dylan Schiemann | October 17, 2016

    The official name of the rebranded and relaunched merging of the jQuery Foundation and the Dojo Foundation is the JS Foundation. SitePen is excited to be a member of this new organization!

    Read More >>
  • Running Intern Tests in the Cloud

    Jason Cheatham | October 11, 2016

    With Intern you can easily run tests using your local machine’s web browser or on any other machine running a Selenium server. Sometimes a project will need to be tested across a wide range of platforms and browsers, more than an individual user or even an enterprise may have available. Cloud testing services such as

    Read More >>
  • Inside Answers: Intern and async functional testing

    Paul Bouchon | September 20, 2016

    SitePen Support is a service used by companies to improve the productivity and efficiency of their enterprise development teams. Our customers often ask questions about best practices when using various development tools for modern JavaScript and TypeScript development. Recently, we were asked to better explain some of the asynchronous syntax used by Intern. For example,

    Read More >>
  • The long and winding road to Dojo 2

    Kit Kelly | August 24, 2016

    Recently on GitHub, someone accused Dojo 2 of being vapourware. This opinion came from a position of misinformation. I was glad the individual then engaged with the Dojo 2 project to understand where we are today. We are making swift progress and a beta is on the horizon. It has taken Dojo 2 a long

    Read More >>
  • Mixing Dojo widgets and Angular 2 components

    Anthony Gubler | August 19, 2016

    We were recently asked about options for mixing Dojo widgets and Angular 2 components into the same application: Is it possible to render an Angular 2 component and Dojo widgets on the same page? Are there any special configuration settings needed? What’s the best way for Angular 2 and Dojo to communicate and/or send messages?

    Read More >>
  • Intern 3.3 released!

    Jason Cheatham | August 18, 2016

    Today, we’re very happy to announce the release of Intern 3.3! This is the result of several months of work to improve Intern and its Dig Dug and Leadfoot dependencies, as well as the introduction of a new intern-cli package to make command-line testing configuration even easier. sitecues by Ai Squared generously sponsored some of

    Read More >>
  • Introducing intern-cli

    Jason Cheatham | August 3, 2016

    Intern makes writing high-quality tests easier and now running the tests is even easier using intern-cli. This package provides an intern command that has a POSIX-like interface, using familiar flags and options like –help. It follows some conventions that make running Intern simpler, and provides plenty of inline help. It even makes getting started with Intern easier with a new init command.

    Read More >>
  • JavaScript Pub Quiz

    Dylan Schiemann | July 26, 2016

    A quintessential British tradition is the pub quiz, a test of a group’s knowledge of obscure facts and trivia, typically shared over dinner and drinks at a pub. In the era of the smart phone, pub quizzes have needed to implement strict no phone policies to make sure people are answering from their knowledge rather

    Read More >>
  • FullStack 2016

    Dylan Schiemann | July 20, 2016

    FullStack is a large London JavaScript conference hosted at the Skills Matter CodeNode. The conference brings together an impressive line-up of speakers and workshops covering five tracks over three full days of festivities. We were invited to speak at FullStack, and also enjoyed many of the other sessions and met many great engineers. The sudden

    Read More >>
  • Building Better Enterprise Web Applications Part 3: SitePen solutions

    Dylan Schiemann | June 30, 2016

    In this installment of our series on building web applications, we look at the SitePen approach to solving challenges in web application development. We employ all of the solutions described in part 2 of the blog series. Additionally, we have some overarching principles we apply to our work. The right architecture and an emphasis on

    Read More >>
  • Building Better Enterprise Web Applications Part 2: Solutions

    Dylan Schiemann | June 29, 2016

    While there are many challenges today with building web applications, there are also many options to address the issues we face with technology, process, and people, allowing us to reap the benefits of the web as an application platform. Technology solutions While many of the challenges with today’s web applications come from the vast array of

    Read More >>
  • Building Better Enterprise Web Applications: Challenges

    Dylan Schiemann | June 28, 2016

    Web applications provide many benefits. Most organizations seek to improve the efficiency and effectiveness of business processes through the use of software. The benefits of web applications include: Simple distribution model for end users (e.g. no installation required) Instant propagation of changes Unified code base to support many platforms (desktop, tablet, mobile, etc.) Easy piloting

    Read More >>
  • A quick look at Intern’s findByXpath

    SitePen Support | June 14, 2016

    Intern‘s Leadfoot API makes it easier to author functional tests in JavaScript. One of the fundamental concepts for authoring functional tests is to access an element within a page to test it. While most developers are familiar with CSS selectors, this is not always the most efficient mechanism for referencing a particular element in a

    Read More >>
  • Dojo is Doing it Again

    Kit Kelly | June 9, 2016

    Peter Higgins, former project lead for Dojo, gave an excellent talk at JSConf in 2013 titled “Dojo Already Did That” (which reflected a humorous meme started at the first JSConf). It was highly informative about how Dojo had already solved problems that the JavaScript community were solving again in 2013. Even 3 years later, there

    Read More >>
  • Intern wins Mozilla award!

    Dylan Schiemann | April 26, 2016

    Last fall, Mozilla announced its Mozilla Open Source Support program, specifically focused on supporting the Free & Open Source Software movement. AND THIS JUST IN: Intern was selected to receive a MOSS award in the amount of $35,000! Initially focused on awarding grants to fund projects used in its own development initiatives, Mozilla is giving

    Read More >>
  • Simplifying Intern tests with Command helpers

    Jason Cheatham | April 19, 2016

    Intern, via the Leadfoot WebDriver library, provides a lot of low-level control over the browsers it uses to run tests. Tests can navigate to new pages, resize the browser window, examine elements on a page, and interact with controls like inputs and buttons. Unfortunately, with all this power can come great complexity. Many testing tasks

    Read More >>
  • ES6 Symbols: Drumroll Please!

    Paul Shannon | April 13, 2016

    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

    Read More >>
  • Intern test suite and CI updates

    Dylan Schiemann | March 28, 2016

    We’ve recently made a number of updates to Intern, providing additional flexibility and integration for writing and running tests. Seth Holladay and sitecues by Ai Squared generously sponsored some of these efforts! Continuous integration Intern has long supported continuous integration, officially supporting travis-ci, Jenkins, and TeamCity. Intern provides a very flexible reporter system, making it

    Read More >>
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Privacy Policy