08 Jan 2015

    by The SteelSeries Engine Team

    We recently released Engine 3.3.2, with new features and new devices. Let’s look at what 3.3.2 includes.

    Read full post

    22 Dec 2014

    by Dave Astels

    Since GoLisp powers our software it’s evolution is largely driven by our needs. This is a case in point.

    I’ve updated the map special form to take any number of list arguments.

    Read full post

    12 Nov 2014

    by Dave Astels

    As we use GoLisp for more and more general programming, the lack of debugging capabilities has become problematic. So, I decided to bite the bullet and write a debugger for it.

    This document assumes that you have some understanding of how GoLisp’s eval loop and lexical scoping works.

    Read full post

    10 Nov 2014

    by Adam Perez

    One of the new features in SSE3 v3.3.0 is the Toggle Auto-Repeat playback option. With the click of a button, you can tell SteelSeries Engine to take whatever keyboard/mouse events you give it and play them back forever. Click the button again, and it comes to a halt.

    To help you make the transition to v3.3.0, we’ve come up with a small features guide to give you an idea on how we’re using SSE3. Hopefully this guide will give you an idea of how powerful your device can become with just a few small customizations!

    Read full post

    30 Oct 2014

    by The SteelSeries Engine Team

    We recently released Engine 3.3, with new features and new devices.

    This is a big one, so let’s look at what it includes.

    Read full post

    15 Oct 2014

    by Dave Astels

    I recently needed a more flexible and performant way of manipulating structured data, specifically data coming into the system in the form of JSON.

    GoLisp has a way to convert back and forth between JSON and Lisp which uses lists for arrays and association lists for objects. This worked fine but association lists can be cumbersome to work with and relatively time consuming. To address this, I ported the frame system from my RubyLisp project, making some improvements while I was at it.

    A frame is a collection of slots. A slot is a key-value pair. So frames are structurally much like data structures such as Dictionaries and Maps. In fact, the underlying implementation is a Go map[string]*Data. What makes frames special is the functionality that is built on top of that.

    Read full post