-
Transposing Rows and Columns in ag-grid
Real-world Angular applications often need to present tabular/grid data, and most grids make the most sense when presented with each…
-
Thinking hard about a project launch
Here at Oasis Digital, we are always agile, and depending on the project needs, sometimes use Agile (in the “capital…
-
Querying without OR in Firestore
Background Here at Oasis Digital we have successfully used the Firebase Realtime Database, and more recently the (beta as of…
-
Writing a Generic Type-Safe ng-bootstrap NgbModal Launcher
For an Angular project for one of our clients, I've recently started using ng-bootstrap to implement standard modal dialogs in a ModalService.…
-
ng-conf 2018
ng-conf 2018, one of the two "main events" of the Angular calendar, just wrapped up. As usual Oasis Digital was…
-
Oasis Digital developer hiring process
Candidates keep asking: what is the process to be hired at Oasis Digital as a software developer? Our process is…
-
Angular Boot Camp Unleashed
Oasis Digital is pleased to announce that... ...we are publishing extensive example code that we use in Angular Boot Camp.…
-
Printable reports in a Node application
Imagine your shiny new web application, JavaScript from end to end (perhaps Node plus Angular/React/Vue/etc) offers a great set of…
-
Loopback 3, TypeScript, and Custom Connectors
Loopback is a powerful Node.js API framework built on top of Express that comes with a lot of functionality in-the-box.…
-
Software Product Quality at Oasis Digital
A long-studied topic Decades ago, business guru Philip Crosby famously defined quality as “conformance to requirements". This definition seems useful…
-
CSS grid with Angular and CLI – the time is now
Today, early December 2017, is the time to begin using CSS grid for layout in Angular applications, even if they…
-
Angular routing – advice for real applications
There are plenty of examples and documentation about the Angular router, but these things sometimes leave important questions unaddressed. Documentation…
-
Angular routing, a basic Q&A
At Angular Boot Camp, we thoroughly introduce and teach the Angular router - over the course of 3 days, spread…
-
Software Demonstration and Project Status: Use Video
At Oasis Digital, custom software projects work at various cadences: weekly, biweekly, or sometimes in variable-length cycles. Regardless, at each…
-
Angular Runtime Performance Guide
Co-authored by Paul Spears and Andrew Wiens 1.0 Introduction Smooth, highly-responsive interfaces increase users’ confidence in an application and create…
-
Product Development Launch – Default Software and Practices Stack
Context Here at Oasis Digital, some of our projects are (approximately) "green field" product development launches. The scope of such…
-
Frameworks and commercial ecosystems
Or, "why we don't teach Aurelia" Here at Oasis Digital and its sister company (Expium), we offer training and services…
-
Analysis Projects – expedited, insightful project review
We deliver a wide range of services at Oasis Digital - training, mentoring, development, and plenty in between. Occasionally we…
-
Environment-specific modules, services and components in Angular
Sometimes your Angular application needs to be a little bit different depending on the environment. Maybe your local development build…
-
Angular universal / server side rendering
The current state of server-side rendering (so-called "universal") for Angular is somewhat in flux in mid-2017. There had been an…
-
Angular 4 rc.1 AOT build options – with example projects
From the summer 2016 production release of Angular, most users have treated AOT as a future curiosity. As of late…
-
The Heart of BI / OLAP is your data
There are plenty of vendors eager with a sales pitch for BI/OLAP projects, eager also to give you the impression…
-
How we use Git, and why
Here at Oasis Digital, we use Git for source control for nearly all of our projects. There are numerous different…
-
The Oasis Digital Spectrum of Services
In the early years of Oasis Digital, we offered exactly one service: outsourced software development contracting. Since then, we've expanded…
-
Building a proof of concept – off the ground in a few weeks
Many iterative-development thinkers have a notion of an "iteration zero" at the beginning of a project, that does not involve much software…
-
Angular 2+ Build Tooling – Recommendation
As of December 2016, what tooling should be used for a new Angular 2 project? This is a question we…
-
Managing State in Angular 2 Applications
Here is a video of the talk "managing state and Angular 2 applications" from the October 2016 St. Louis Angular…
-
Angular 2.0.0
Major congratulations to the Angular team, who just shipped version 2.0.0. In development somewhere approaching two years, it is an…
-
Angular 2, angular-cli, 2 minutes, Cloud 9.
Spoiler Sorry, the title is actually a lie. It takes 2 minutes of human work to get up and running,…
-
Fast Angular 2 compile cycle with TSC
There are numerous choices for tooling in a TypeScript Angular 2 project. This list is no doubt incomplete: SystemJS with…
-
Angular 2 and the rise of the Elm / Redux architecture
As I write this in April 2016, Angular 2 is in beta (with a recent comment from Google about a…
-
Writing AngularJS 1.x Application to Prepare for Angular 2
How should AngularJS 1.x be used, to make things easier (as easy as they can be...) if the time comes…
-
Is Angular 2 Production Ready? Yes (*)
As of March 2016 (Angular 2 beta.11) the answer is yes... or rather, yes*. Google offers an existence proof. The…
-
OLAP/BI as a system component
There is a thriving market, of software makers, system integrators, service firms of all kinds, and so on around OLAP…
-
Angular 2 – Staggeringly Ambitious
By now, most readers know a little about the motivations and features of Angular 2.0. Here I recap them briefly,…
-
Expert Angular Developer-Trainers Wanted
Here at Oasis Digital, a sizable portion of our work revolves around AngularJS and soon Angular 2: writing software, reviewing…
-
Online vs In-Person Classes
Earlier this year, we started offering some of our classes (most prominently Angular Boot Camp) online as well as in…
-
Angular Firebase Observable – Simple Weather Example
In preparation for Angular 2, we have been digging into its capabilities extensively. One of the most interesting areas is…
-
Creating a 3D Configurator with ThreeJS
(Maneesh Tewani was a summer intern at Oasis Digital in 2014, and returned to lead the Summer Intern Program in…
-
Dependency Injection in Angular 2.0 (alpha) – Angular Lunch
Another in our series of Angular lunch talks. Paul Spears walks through dependency injection in Angular 2.0. This covers an…
-
Typescript Now – for AngularJS
Another "extended Angular Lunch" talk, Kyle Cordes explains why you would want to make the switch to TypeScript today rather…
-
JIRA Integration using AngularJS
After the September Angular Lunch Jack discussed building an Angular app that uses the JIRA API. We work with the…
-
JIRA Board Case Study
I recently gave a talk about a somewhat non-traditional approach to using Agile boards in JIRA. This was recorded 2015-09-15…
-
AngularJS Testing Frameworks – Mark Katerberg – Angular Lunch
At our September 9, 2015 Angular Lunch, Mark Katerberg compared the different testing frameworks with AngularJS 1.x. He shows and…
-
Will Atlassian Be Recognizable in 2016?
As the largest purveyor of JIRA classes outside of Atlassian, we are as keen as anyone on their plans for…
-
Angular 2 Observable Data Flow
(The usual warning: This is code from a couple weeks after Angular 2Alpha 45 - if you're watching this months…
-
First Angular 2 Class Completed
Today we finished teaching our first Angular 2 class. This was our "Early Start with Angular 2", a special, preview…
-
Data Field Directive Example – AngularJS
Toward the end of our Angular class we typically present some example code that uses various Angular concepts in an…
-
Rapid Development with Hibernate in CQRS Read Models
In this post I'm going to share a few tricks for using Hibernate tooling in CQRS read models for rapid…
-
Filters are the “Language” of JIRA
Often I describe JIRA as a large set of Legos in a bucket. JIRA is one of those tools that…
-
JIRA Customization
Technology platforms mature and improve over time. The Atlassian ecosystem is no exception. One area where Atlassian has matured dramatically…
-
Persistence in CQRS Read Models
One of the biggest benefits of CQRS is the ability to implement multiple read models. Business rules and the domain…
-
angular-phonecat Using TypeScript
As mentioned in some previous posts, TypeScript is a very useful tool (language) for writing more correct code in larger…
-
Writing an Event-Sourced CQRS Read Model
Discussions about event sourcing and CQRS seem to usually focus on the overall system architecture or various flavors of domain-driven…
-
Angular 2 Plans – Angular Boot Camp
Here at Oasis Digital, we have been receiving lots of questions about our plans around our popular Angular Boot Camp…
-
Getting Started With DI in Angular 2
One of the core features of Angular 2 is dependency injection. This post serves as an introduction to using DI…
-
Angular Boot Camp, London UK
A number of companies in Europe have inquired about our Angular Boot Camp immersive Angular class, and a few threatened…
-
Achieving Consistency in CQRS with Linear Event Store
In a recent project involving an event-sourced CQRS system, we decided to do some things that seem somewhat unusual compared…
-
Early Start with Angular 2 – New Class Offering
We have been using Angular version 1.x for years now, and following version 2 development with great interest. Things have…
-
Introduction to Event Sourcing and Command-Query Responsibility Segregation
The concepts of event sourcing (ES) and command-query responsibility segregation (CQRS) have been around for quite a while. They are…
-
Learn TypeScript Now, Prepare for Angular 2.0
Like most organizations building client-side web applications (SPAs), here at Oasis Digital we have most commonly written code in plain…
-
Angular 2: Working With Alphas
At the St. Louis Angular Lunch this month, I talked about working with the recent Angular 2 alpha versions. The…
-
Rapid Prototyping
Here at Oasis Digital we work on many kinds of projects. We start new projects in a “green field”. We…
-
St. Louis Atlassian User Group – Aug 2015
On Aug 11, 2015 the St. Louis Atlassian User Group (AUG) met at the Urban Chestnut Brewery in the Grove…
-
Preparing for Angular 2.0
Here at Oasis Digital, we have been excited about the possibilities for Angular 2.0 ever since its (somewhat contentious) public…
-
Summer 2015 Intern Hackathon
Oasis Digital summer intern program starts with 3-4 weeks in which the interns primarily learn (at a firehose pace) as…
-
Our Summer 2015 Interns Enter the OnePlus Contest
In 2015 we completed our 5th year of a successful summer intern program. In this program high school students engage…
-
Building a Configurator in Angular
Introduction Modl Buildr is a configurator that allows users to select and configure a product of choice. It was inspired…
-
Modl Buildr – A Rules Based Configurator Demo
Introduction Modl Buildr is a demo application we created at Oasis Digital, a rules-based "configurator". Its inspiration comes from older…
-
Angular 2.0 Discussion – Angular lunch
At Oasis Digital we host a St. Louis Angular Lunch each month. Many months an outside speaker comes in (especially…
-
Angular 2 Component Router
This month at the St. Louis Angular Lunch I spoke about Angular's upcoming "component router". Originally created for Angular 2…
-
Automated User Acceptance Testing – Matt Follett – Angular Lunch
This month (May 2015) at the Angular Lunch we had a very special guest speaker. Matt Follett (currently working at…
-
User Adoption = Success
System Administrators often find themselves caught trying to fulfill the promises and hype that come with a new system purchase.…
-
The Cobbler’s Kids
The old saying about the cobbler’s kids that have no shoes is as true in concept now as it was…
-
ng-conf Review Roundtable – Angular Lunch
Several members of the Oasis Digital team attended ng-conf in Salt Lake City recently. This month for the St. Louis…
-
Iterative Thinking is a Lifestyle
A student in a recent JIRA Boot Camp commented on how I described agile processes differently than a consultant her…
-
Mantis to JIRA Translator / Importer
A few years ago we needed to migrate a large project issue tracker from Mantis to JIRA. At time, JIRA's…
-
JIRA: A Fluid Interface
Strategies for successfully traversing the ever shifting Atlassian UI Atlassian’s JIRA is a fascinating platform for me to use, teach…
-
JIRA Case Study: Nested Workflows
Using custom issue types and multiple nested workflows to bring business management processes into a project without disrupting the core…
-
Custom Issue Types, A Real Asset in JIRA
I often receive questions from JIRA users arising from a lack of understanding of the underlying system architecture. It is…
-
Controller As, and dividing controllers for modularity – Angular lunch
This month at the St. Louis Angular Lunch (which we host), John Baur explained the "controller as" syntax, which has…
-
JIRA Workflow Design Principles
Anyone familiar with JIRA understands that jumping into building a workflow without an overall plan can lead to problems. While…
-
Task Based User Interfaces
Here at Oasis Digital, the bulk of our work is on complex business data systems. These projects sometimes involve a…
-
ES6 for AngularJS – Angular Lunch
A few months ago, Oasis Digital started a monthly St. Louis Angular Lunch. At the November 2014 lunch, we had…
-
The Good, the Bad, and the Ugly – Toshiba CB2
I have written hundreds of articles and dozens of reviews over the years. I can honestly say that reviewing the…
-
JIRA Workflows for 1st Timers
New JIRA users often run into a predictable set of problems when they jump in to build a workflow. If…
-
Jira Jumble, a Test Data Generator for Jira
Update: Jira Jumble, and a wide range of Jira-related training and services, are now available through our sister company Expium.…
-
JIRA Training 103 – The Right Tool
I was reflecting on my time at the Atlassian Summit today and put some pieces together. Throughout the conference I…
-
Data Services for AngularJS Applications
I wrote recently about data/API services for complex "single page" JavaScript-heavy web applications. Everything there applies to AngularJS as well…
-
Data/API Servers/Services for Single Page Web Applications
A Client needs a Server, or at least a Service Over the last few years the team at Oasis Digital has created…
-
Taking CSS Seriously
At Oasis Digital, we have spent much of our effort over the last several years creating complex “single page” web…
-
Europe on a Chromebook
Much has been and will continue to be made of the viability of Chromebooks as a primary computing device. Microsoft…
-
Bits are Free, People are Valuable
A few days ago, I caught myself thinking about whether to save some images and video; whether the likely future…
-
Has Google Crossed Over?
In the life of corporations, especially technology companies, there appears to be a tipping point where they cross the line…
-
Summer 2014 Intern Program Wrap-up
Our Summer 2014 program has wrapped up, and was a great success. Look for a video about it in coming months.
-
Google’s Go language
Google's Go language ("golang") was first released in early form in 2009, and reached 1.0 in 2012. Go has matured quite quickly…
-
Localization in AngularJS
At the St. Louis Angular Lunch this month (which we sponsor), Mark Volkmann of OCI gave a talk on localization.…
-
Samsung Chromebook 2 11 and HP 11, Better Than The Dell?
Last week I contrasted the Samsung CB2 13” with my stable of Chromebooks and my Chromebox. I purchased a couple…
-
How Does Samsungs Chromebook 2 13″ Really Work?
When a product category has matured to the point of multiple good offerings from many manufacturers, comparing devices gets more…
-
Using GulpJS
I recently gave a talk at the St. Louis Angular Lunch on GulpJS. While not directly related to Angular, GulpJS…
-
Advanced Directives in AngularJS
AngularJS directives have a wide array of uses, some more difficult to implement than others. Understanding how the link function,…
-
The Cloud Life, Backups are for People Too
I had a real life cloud crisis moment occur this week. Fortunately some wise choices prevented disaster. The crisis was…
-
Custom Directives in AngularJS
Here is another talk from the St. Louis Angular Lunch we sponsor / operate here at the Oasis Digital. In…
-
Social Media Presence
We now publish various content, videos and otherwise, to Facebook, Google+, and Youtube. See the links at the upper right…
-
Chromebooks, Coming to the Surface
When I consider the Chromebooks I use, I constantly think of the future. The constant, steady expansion of features. The…
-
JIRA Training 102 – The Little Things
When I observe various JIRA installations, some common problems tend to bubble to the surface. Many cases of poor adoption…
-
JIRA Training 101 – Workflows
Atlassian’s JIRA is a powerful tool to manage your team and your projects. Having a tool and bringing a tool…
-
Summer 2014 Intern Program Announcement
Information about our Summer 2014 program is now online.
-
Beware of Prototyping
There are many threats to a successful software development project. While prototyping seems on the surface to be a 100%…
-
Leaders vs. Entropy
The other day my wife made a funny word association looking at our company’s timesheets. She commented that the category…
-
Learning AngularJS
At a recent St. Louis Angular Lunch Brian Gilstrap talked about his experience with learning AngularJS. In his talk Brian outlined…
-
Traditional Project Management is Dead
The discipline just does not know it yet. When I speak of traditional project management, I mean a very rigid…
-
Oasis Digital sponsors Clojure West 2014
Oasis Digital is a sponsor of Clojure West 2014 in San Francisco, CA.
-
Oasis Digital sponsors ng-conf 2014
Oasis Digital is a sponsor of ng-conf 2014 in Salt Lake City, UT.
-
AngularJS UI-Router
AngularJS contains basic client-side routing functionality in-the-box. This is great for small applications and simple websites. However, the functionality needed…
-
2014 Guide to Chromebook Apps
One of the challenges when entering the Chrome ecosystem is the lack of familiar names and products. The go-to apps…
-
Code Reviews – Use a gate, not a drive-by
Does your team / project use code reviews? If not, I suggest starting today. There are countless resources online about…
-
Using JIRA: Be a Winner not a Loser!
When using a tool like JIRA to curate your project management processes it is important to use it effectively. It…
-
JIRA Training Launched
Oasis Digital now offers JIRA Training in a boot-camp / workshop format. See the linked site for details.
-
The Failure of Not Failing
We place such an emphasis on success in our culture and it is quite annoying to me. Perfection seems to…
-
Oasis Digital sponsors Clojure Conj 2013
Oasis Digital is a sponsor of Clojure Conj 2013 in Alexandria, VA.
-
Cloud Computing & Business
Over the last few years there has been a raging debate over the intelligence of cloud computing for consumers. With…
-
A Year With Chromebooks
A year ago we purchased the Samsung $249 Chromebook from Amazon. For a long time it was easily the best…
-
Three Critical Principles Of Developing Enterprise Software
Understanding, Workflow, Delivery. These three concepts sound trite, soundbites in technology for decades (substitute Execution for Workflow during the 1990s).…
-
AngularJS Training Launched
Oasis Digital now offers AngularJS training in a boot-camp/workshop format. See the linked site for details.
-
FlashFiler to RDBMS Data Converter
Our work at a Oasis Digital often includes migrating legacy code or data into a new system. We often find…
-
Summer 2013 Intern Program Wrap-up
Our summer 2013 intern program was a great success. Here is a video we made explaining the program and showing…
-
Oasis Digital sponsors Strange Loop 2013
Oasis Digital is a sponsor of Strange Loop 2013, again this year. Strange Loop is again at the spectacular Peabody Opera…
-
3D Configurator Intern Project
One of our specialties at Oasis Digital is in rules-based configurator systems of various types. For example, we have worked…
-
Summer 2013 Intern Program Wrap-up
Our Summer 2013 program has wrapped up, and was a great success.
-
RE: Design/UXD Conference Day 2, San Jose 2013
Day 2 in San Jose, and I need to give the same disclaimer as yesterday. “You can find more information…
-
RE: Design/UXD Conference Day 1, San Jose 2013
I am attending a two day conference focused on User Experience Design. At the end of the first day I…
-
A Misunderstood OS
I have read a number of articles about Chromebooks, the new Pixel, and some of the implications of Google going…
-
I love this Chromebook
Ok, first off, a mea culpa. I have thumbed my nose at the Chromebook since its launch. I thought it was pointless…
-
Manufacturing Case Study Video
We have published a new case study video about a long-term project for a St. Louis area remanufacturing firm.
-
Summer 2013 Intern Program Announcement
Information about our Summer 2013 program is now online.
-
Learn Clojure
At Oasis Digital we have been working with Clojure intermittantly since its release several years ago, and recently we used it for…
-
Summer 2012 Intern Project Client Design
This is another excerpt from this summer's 31-page intern project report (PDF). All of this was written entirely by our…
-
Summer 2012 Intern Project System Design
This is another excerpt from this summer's 31-page intern project report (PDF). All of this was written entirely by our…
-
Summer 2012 Intern Project Tools (4/4)
This is another excerpt from this summer's 31-page intern project report (PDF). All of this was written entirely by our…
-
Summer 2012 Intern Program Mini-documentary
We've published a video mini-documentary about our Summer 2012 Intern Program: It is also available on Kyle Cordes’s web site and on YouTube.
-
Summer 2012 Intern Project Tools (3/4)
This is another excerpt from this summer's 31-page intern project report (PDF). All of this was written entirely by our…
-
Summer 2012 Intern Project Tools (2/4)
This is another excerpt from this summer's 31-page intern project report (PDF). All of this was written entirely by our…
-
Summer 2012 Intern Project Tools (1/4)
This is another excerpt from this summer's 31-page intern project report (PDF). All of this was written entirely by our…
-
Summer 2012 Intern Project Overview
This summer's interns have finished their project, and written a long and detailed report about it. You can read the…
-
New Office Space Again
We have relocated again, this time to accommodate our growing team. Our new office space is in Des Peres, MO,…
-
The Clojure Programming Language
What is Clojure? Clojure appeared in 2007, which makes it still a relatively new programming language. Clojure is a dialect of…
-
Summer 2012 Intern Program Announcement
Our intern program returns this year, this time with three interns building a mobile/web application.
-
Adapting a Microsoft Project Mind to a JIRA World
Over the last two years I have been steadily transitioning from project based, hardware-centric systems, to the world of software…
-
Oasis Digital sponsors Strange Loop 2012
Oasis Digital is a sponsor of Strange Loop, again this year. This time the event moves to the Peabody Opera House.
-
New Office Space
We have relocated to new office space in Chesterfield, MO, a much more convenient location.
-
Apple the Great!
Market forces bring us to decisions we often would not make on our own. Part of the beauty of our…