NextSurface is a software for creating interactive surfaces. NextSurface transforms any screen into a surface that people can simultaneously interact with, using hand gestures or pens, like on a physical whiteboard. NextSurface supports input devices such as Apple Trackpad or similar HID device, however, for a better user experience, we recommend a multi-touch device, such as frame overlays produced by PQLabs or ZaagTech, or our remote controller NextGesture on iPad.

NextSurface includes two applications for presentation and collaboration. The applications are based on NextSurface's proprietary toolkit for creating multi-touch and multi-user interfaces. The toolkit supports a natural interaction with visual elements and it supports gestures performed with multiple fingers. Common use cases of the applications are interactive meeting rooms, information kiosks for hotels or estate agencies, and digital whiteboards.

NextSurface provides a JavaScript API for creating custom applications on top of the proprietary toolkit. NextSurface's toolkit provides an abstraction layer which makes easy creating user interfaces and handling touch events and gestures. NextSurface is not a general purpose UI toolkit, but a programmable environment for building multi-user and multi-touch applications.

NextFractal is an application for creating amazing fractal images and other algorithmically generated images. Images are generated processing a script and some user provided parameters, depending on the selected grammar. NextFractal is currently able to interpret two grammars:

  • M which is a domain specific language for creating Fractals such as Mandelbrot Set or Julia and Fatou Sets.
  • CFDG which is a context-free grammar for creating geometric shapes using an iterative process.

NextFractal provides tools for exploring Fractals, browsing images, creating time-based and event-based animations, and exporting images and animations.

You don't need to learn the M language or the CFDG language to enjoy the examples provided with NextFractal. However we recommend to study those languages in order to create new images or modify the examples.

We have created a tutorial to help you learning the M language. The tutorial shows how to implement various techniques for generating orbits and computing colors.

Do you know you can control NextSurface from iPad?

NextGesture is a controller app which enables multiple people to interact simultaneously with the same instance of NextSurface from any iOS device.

Are you passionate about drawing or painting portraits?

NextPortrait helps artists to create portraits from their images in photos library.


Create standalone Kubernetes cluster with Vagrant

I have the impression that Kubernetes is growing in popularity. I base my impression on the trend I noticed in London in 2018, in terms of talks about Kubernetes and companies moving to Kubernetes. This impression seems to be confirmed by what people report on the Internet.

My first contact with Kubernetes was in early 2017, when I attempted to deploy Kubernetes on AWS. Honestly, I got discouraged at that time. That was before discovering Kops, and moving to GCP was not an option.

Since I found Docker Swarm easier to install on AWS, I gave up on Kubernetes for a while. But things have changed since then, and all major cloud providers, including AWS, offer a managed Kubernetes service nowadays.

Eventually, I decided to recycle my previous experience and automate the process of provisioning a standalone Kubernetes cluster for development using Vagrant and Ansible.

But we already have Minikube, why would you do that?

My opinion is that Minikube is good, but it doesn't support some interesting configurations. I want to use a Kubernetes environment which is like a production cluster, but still runs on my laptop.

Do we need story points?

In my career as software developer, I have seen different styles of Agile and I have repeatedly noticed that estimating stories with story points is more difficult than I expected. Some teams decide to live without estimates, and other teams try estimating stories at the cost of requiring an additional effort and spending more time in meetings.

How many times did you run out of time during a planning meeting and had to schedule a new meeting to finish estimating enough stories for starting the sprint? Despite that, how many stories are still lacking of details and acceptance criteria?

In my experience, most of the times the reason for such problems was that too little work was done before the meeting for preparing the stories, and people were arguing too much about estimates.

If you think that your estimates are good, then you can stop right here, and continue doing what you are doing. Instead, if you think that your estimates aren't working, or you feel that you are spending to much time estimating stories, then you might be interested in reading what is my solution for quick estimates.