Adventures in TypeScript Typing

This week I had the need to create a rather simple object that I wanted to be properly typed. This object consists of a couple of enums that will be categories with sub-categories that contain an object. This is a simple enough structure really:

const categories = {
category1: {
sub-category: {…}
},
category2: {
sub-category: {…}
}
}

So, let’s type this out shall we? First we need to define the object that will be the value of the sub-categories.

Continue Reading

Polymer and Webpack

I’ve started using Webpack in my build process and I must say, I’m quite impressed. So over the past couple of years my build process has migrated a bit. I started by using Grunt, moved to Gulp and then created my own build process to address some custom items working with Red Pill’s infrastructures and Domino. But since finding Webpack, I’m finding that it does a much better job, with much less effort.

So,

Continue Reading

Making Domino “Real Time”

In my last post I spoke about some technologies for real time operations. In this post I would like to take it a bit farther and talk about making Domino a “Real Time Database“. I use that term rather lightly as there is no means of scheduling and prioritizing transactions thus Domino isn’t really real time, but only behaves as real time.

The Pieces

First off we developed an Event Bridge plugin that taps into Domino’s C API for events which are fired when documents are created,

Continue Reading

Some new “Real Time” technologies

Right after Collabsphere 2018 I was introduced to a couple of new technologies. These were WebSockets and Redis. I must say that since discovering these technologies my mind hasn’t settled even a little bit. This has opened up a whole new world of possibilities for DIG and other projects I’ve been working on. So, what exactly do these things do?

WebSockets

This technology has actually been around for a while, but I’ve never had the time or thought I had the need to investigate it.

Continue Reading

node.js and Domino – Part 2

Part 1 – node.js and Domino

In Part 1 we got a very small taste of node.js and a simple example of what it is. It’s basically a JavaScript engine that runs on the desktop. While Part 1 wasn’t very in depth or that useful, I think it’s a perfectly simple example of node.js in action.

So that leaves to question, what can we do with it? Well, we can do a whole lot with it actually.

Continue Reading

node.js and Domino – Part 1

With the recent announcement of upcoming node support for Domino, I think we need to start looking into what it takes to get into node.js development. The truth of the matter is, it’s not really that difficult. To start with you need to install node.js.┬áThen find a decent editor (I recommend Visual Studio Code).

Once you’ve got these things, create a new project directory somewhere (I’m gonna use hello-world).

Continue Reading

JavaScript: The Strange and Wonderful

I’ve been thinking about this post for quite some time. I just haven’t had the time to write it. But, JavaScript is both a weird and wonderful programming language. It has some features which are totally NOT the norm but make it cool and interesting to work with. While there are many flavors of JavaScript out there in the wild (ES1 -> ES6, TypeScript, CoffeeScript, etc.) the weirdness remains no matter how your JavaScript is written.

Continue Reading

now-confirm-dialog an OpenSource element

We needed a means to produce a “pretty” confirm dialog instead of the old and busted default JavaScript confirm dialog. While the JavaScript confirm dialog is functional and probably provides more functionality than this one, we’ve found this meets our needs quite nicely. For reference, here is a default JavaScript confirm dialog. This shows up centered right under the address bar:

Here is our our now-confirm-dialog which shows up in the center of the screen:

The goal of this element is to provide a simple confirmation dialog and then have the ability to do something based on which button the user clicked.

Continue Reading

Adventures in tooling

Here lately I’ve been writing a lot of tooling in preparation for upcoming projects. This tooling is meant to lessen the amount of work to start up a new project. A while back I watched this video. That video inspired me to come up with a repository in which a front-end developer could clone, run a couple of commands and be ready to write code for the new project. Going down this route has been quite the eye opener to the complexity of what a modern progressive web app is today.

Continue Reading