Category: EnterpriseJS

  • 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.

    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.

    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.

    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.

    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.

    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.

    Read More >>
  • Secrets to a Successful Designer Developer Handoff

    Secrets to a Successful Designer Developer Handoff

    Scott Jensen | April 9, 2019

    Let’s be honest, getting designs from your UX team into the hands of your engineering team in a way that makes sense is rarely easy. Add tight deadlines, team changes, and miscommunication to this process and your application will likely end up looking very different than what you expected.

    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.

    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.

    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.

    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.

    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.

    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.

    Read More >>
  • Web Components in 2018

    Web Components in 2018

    James Milner | July 6, 2018

    For many front-end developers, components have become a central concept in their development workflow. Components provide a robust model for architecting and scaling complex applications, allowing for composition from smaller and simpler encapsulated parts.

    Read More >>
  • Exploring the Resize Observer Proposal

    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.

    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

    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.

    Read More >>
  • CSUN ATC 2018: Attack of the Acronyms

    CSUN ATC 2018: Attack of the Acronyms

    Sarah Higley | April 17, 2018

    Picture lots and lots of dogs wearing vests Now, are you thinking of a Lewis Carroll-esque canine tea party, or a collection of service dogs? If the latter, you may be ready to attend the thankfully-abbreviated California State University: Northridge Assistive Technology Conference (hereafter referred to as CSUN or #CSUNATC18).

    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 >>
  • TSConf: The First TypeScript Conference

    TSConf: The First TypeScript Conference

    Dylan Schiemann | April 12, 2018

    In case you missed it, SitePen was the presenting sponsor of the inaugural TSConf which took place in Seattle on March 12, 2018! The Backstory In 2017, we met the TypeScript team in person after years of being avid members and contributors to the TypeScript project.

    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 >>
  • Web Frameworks: Conclusions

    Web Frameworks: Conclusions

    Kit Kelly | November 10, 2017

    It has come time to read the liner notes and write some conclusions. When we started writing this blog series, we knew that JavaScript/web application frameworks were not easy to summarize.

    Read More >>
  • Common TypeScript Error Messages

    Common TypeScript Error Messages

    Sarah Higley | November 1, 2017

    Whenever you start working with a new programming language or framework, you need to learn a new collection of error messages and how to resolve them. Sometimes those messages are obvious, and others only become obvious as you gain experience with the new technology.

    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 >>
  • Rethinking Inheritance

    Rethinking Inheritance

    Paul Bouchon | September 19, 2017

    Over the past year we’ve been heads-down working hard on Dojo 2 and its component architecture. The ability to change default component behavior is essential to a widget library, and several tactics exist for doing so.

    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.

    Read More >>
  • Polymer Summit 2017

    Polymer Summit 2017

    Anthony Gubler | September 13, 2017

    Recently I was fortunate to be able to attend the Google Polymer Summit in Copenhagen with a SitePen colleague. Having attended the PWA Summit last year in Amsterdam we were expecting a well organised and interesting conference, and we were not to be disappointed.

    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: Testing

    Web Frameworks: Testing

    Kit Kelly | August 29, 2017

    Test early, test often, and test some more. Why put our heart and soul into our web applications only to be let down because we are not completely testing them. Let’s explore how the different web frameworks approach testing.

    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 >>
  • 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.

    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.

    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.

    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.

    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.

    Read More >>
  • TypeScript 2.4: Dynamic imports and weak types

    TypeScript 2.4: Dynamic imports and weak types

    Anthony Gubler | June 28, 2017

    The TypeScript 2.4 release might be a minor update in terms of not requiring substantial changes within our open source work and customer projects, but it provides some major benefits that we are already leveraging throughout the Dojo 2 codebase.

    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.

    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.

    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.

    Read More >>
  • The Law of Diminishing Returns

    The Law of Diminishing Returns

    Dylan Schiemann | May 5, 2017

    Last month we looked at various approaches to scaling enterprise development, and the challenges found within development organizations in our Time for InnerSource? post. This month we continue looking at the need for InnerSource by taking a closer look at the Law of Diminishing Returns.

    Read More >>
  • Typings for dojox/gfx

    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.

    Read More >>
  • 7 habits of highly ineffective developers

    7 habits of highly ineffective developers

    Kit Kelly | April 18, 2017

    While the SitePen team is widely known for its expertise in building JavaScript and TypeScript applications, providing support and training to enterprise teams, and for helping create Dojo and Intern, it also has a fair amount of insight and expertise with helping teams be more effective.

    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.

    Read More >>
  • Time for InnerSource?

    Time for InnerSource?

    Dylan Schiemann | March 23, 2017

    InnerSource is a series of strategies and tactics from the open source world that help companies share source code across teams.

    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 >>
  • 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.

    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.

    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.

    Read More >>
  • Announcing the JS Foundation!

    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.

    Read More >>
  • Solving complex dgrid edge cases

    Solving complex dgrid edge cases

    Ed Hager | October 4, 2016

    We were recently asked by the team at eQuorum to investigate an issue with dgrid performance when leveraging the dgrid/Tree mixin. The issue was challenging to solve, so we thought it would be useful to share our story in debugging and solving it.

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

    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.

    Read More >>
  • Introducing intern-cli

    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 >>
  • Building Better Enterprise Web Applications Part 3: SitePen solutions

    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.

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

    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.

    Read More >>
  • ES6 Symbols: Drumroll Please!

    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.

    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