Who are you?
My name is Lewis Collins; I am based in
Wiltshire in the South of England. I love computer technology and software and
I still am in awe of it every day despite having worked in the industry now since
graduating in 1998! I have a BSc (Hons) in Software Engineering Management from
Bournemouth University and hold
Chartered Engineer status with the British Computer Society.
What do you do?
I am a Senior Software Consultant at Plantronics.
In this role I help develop tools and SDKs, working with different teams to
support an ever widening set of user scenarios that our customers require. The
scenarios cover areas such as Unified Communications, Call Centers, Enterprise
and mobile applications.
I contribute to Innovation projects to
create and test new device concepts that may lead to new applications,
interaction styles and use cases. It is a very exciting time at Plantronics as
we are allowing hackers early access to these concepts to try them out at
hackathon events. The teams at these events have come up with some great ideas
for both our existing and concept devices (check out some here)! I am involved in
creating SDKs and motion-sensing demo apps to show the sensor features,
including a head-controlled music mixer app and breakout game, and sometimes attend
events to provide technical support.
Finally, I support developers through the
Plantronics Developer
Connection (PDC)
and work with software vendors and technology partners to
integrate their solutions with Plantronics devices and SDKs. As part of this I code
sample apps and blog/forum content to show how our unique product features can
be used, like
SmartLock
and Spokes EZ Demo
.
What is your preferred
development environment?
I have tried a lot of languages, platforms
and environments, but my preferred today is Visual Studio – the newest I can
get: 2013. And language: a nice high-level one: C# .NET. I just like that the
.NET Framework has done so much of the hard work for me.
(C# .NET is actually reminiscent of the first
Object-Oriented language I used and loved which was Borland Pascal 7.0 with Objects).
What was your first
programming language?
HP BASIC – Copying out computer game
listings on an HP-85 personal computer (the Ski Game)! (I was about 5).
What new tools, languages or
frameworks interest you?
I am interested in developing mobile apps and
I will be taking an Android course in January with a colleague.
I am also planning to learn a 3D physics
engine to create some new 3D graphics demos!
What is one thing you think a
new developer should know?
The devil is *always* in the details!
(There’s no escaping that).
Also, to believe error messages!
Finally, if something worked before but
doesn’t now, just comment out increasingly large swathes of code until it
compiles/runs again (i.e. go back to first principals!) Then add bits back in
again until you discover the problem.
(Sorry that was 3 things)!
What is your coding pet
peeve?
My coding pet peeve is when developers over
complicate code. I fight against this constantly by functionally decomposing to
(what I think is) the right level, give functions and variables very obvious (long)
names and adding comments!
I usually just think of
headsets as something to listen to, or talk into. What am I missing by not
programming for them?
As well as high-quality audio endpoints,
Plantronics devices also offer features to control and interact with all sorts
of applications involving voice, as well as providing sensor data to achieve
some labor-saving user scenarios. Here is a list of ideas for how the
Plantronics devices and Spokes software platform can be used:
-
Buttons on Plantronics headsets can be used to
connect or disconnect calls and switch calls in a call queue.
-
Headset attached/detached: call agent ready/not
ready for Call Centre ACD applications.
-
Button press to connect to a push-to-talk
service.
-
Button press to start other voice recognition
services.
-
Spokes call state information from around 13
popular enterprise softphone products plus caller id and programmatic call
control of the mobile paired with your Plantronics product can enrich the UC
experience in your app.
-
Sensor data from Plantronics devices can be used
for gesture control of apps, or for tracking user’s interaction with a system:
-
Proximity: I approach my desk, I leave my desk –
what user scenario could this trigger in your app?
-
Wearing sensor: I am wearing my headset, and am
not wearing my headset – can this trigger a custom action or presence update in
your app?
-
Wearable Concept 1 headset (see http://pltlabs.com/):
-
Head
angles: track users’ head angles and gestures in real-time or build up a trend
analysis over time.
-
Accelerometer: track user’s footstep count
(pedometer), detect free-fall, detect multi-taps on the unit as an alternative
user interface.
How can I get started doing
it (What tools do I need, etc.)?
For Windows
Samples available in: C++, C#, JavaScript /
Java / Other languages via Spokes REST/HTTP service or C# middleware app
exposing WebSocket / Socket
Tools needed: Windows XP, Vista, 7, 8 (Desktop),
8.1 (Desktop), Visual Studio versions 2008/2010/2012/2013
Note: the SDK
install comes with a device emulator, however people have had mixed mileage
with this product, therefore I recommend developing with a real
Plantronics device. You can choose any product from Section D. of the
Spokes
install notes
.
To see which
product supports which feature, check out this matrix (PDC membership required).
For Android
Sample available in: Java
-
Tools needed: Android SDK, ADT Plugin / Eclipse
(optional).
-
This
blog post
shows how to access a subset of headset events using the Plantronics
XEVENT.
For Desktop Linux
Sample available in: Python
We don’t have an SDK for Desktop Linux, but
we have
this
blog post
describing how to intercept button events as USB HID messages
(note: this will only expose call control, mute etc. not the full range of
Plantronics sensor features):
Hackathon Wearable Concepts
Samples available (at hackathons) in:
Objective-C (iOS SDK), C# (Windows SDK)
Plantronics "wearable concept" devices have
been appearing at hackathons this fall 2013 (next event to be confirmed).
Plantronics provides the devices to develop on and you can use the PC or
iOS SDKs. Check out PLT Labs and watch
for event announcements on PDC.
Other platforms
Watch for announcements on PDC.