From Our Project Portfolio

Unwind_SjLj Top Items in Your Profile?

You've been diligently optimizing your iOS application -- static and stack allocations instead of dynamic, inlining code and removing virtual invocations that turn out not to be needed, algorithmic simplifications ... you know, the usual. You expect to see 'operator new' and 'operator delete' working their way up your profile, but what are '_Unwind_SjLj_Register' and '_Unwind_SjLj_Unregister'? »»

SPARKvue Augmented Reality

Working for Sally Ride Science and PASCO I extended the desktop version of SPARKvue to support augmented reality views of the experimental setup. »»

Cartesian

Every graphics API and many applications define types to represent points and rectangles. Some are expressive, others clunky, and cross-API work is generally inelegant. ZCartesian provides a standard suite of operators and functions that can be applied to any rectangle/point suite by simply providing what is often a trivial traits specialization. »»

MOTOACTV HTTP Proxy

The MOTOACTV communicates with servers to share and manage its user's fitness information. The device is very small and interacting with a complex network configuration UI is not viable. So, when tethered, it communicates through an HTTP proxy I wrote that runs on the user's desktop machine. »»

Wellness!

As a new parent, especially once the children started at school, I was amazed at the number of prescriptions for minor ailments that we'd have to manage at once. Hence the iOS application Wellness!, developed in collaboration with IRMAcreative. »»

Jabber (XMPP) and AIM (OSCAR)

To integrate with existing social networks, the team at Zorap defined a mechanism that passed structured information via instant messages. My role was to implement Jabber (XMPP) and OSCAR, the AOL instant messenger protocol, in a portable and robust fashion. »»

Quality C++ Software | Electric Magic

Electric Magic creates elegant and robust C++ software for iPhone, iPad, Mac, Linux, Android, Blackberry and Windows.

Our experience runs the gamut, from embedded micro-controllers to multi-processor servers; high-level user-interface down to the twiddling of pixels; comms over bare copper wire, through TCP/IP, to all kinds of standard and custom protocols.

We've implemented database engines, file systems, cross-platform application frameworks, real-time hardware drivers, the first low-bandwidth VOIP application, video games and more.

What can we do for you?

Our Services Work for You

Porting Code

Let us help you leverage your existing investment by porting your code to a new operating system or library suite. We can create an abstraction layer so your code just works in its new home, modify your code to use an existing abstraction layer, or we can simply reimplement the parts that have dependencies. »»

Bug Fixing

If you've got buggy code, we can fix it, and provide guidance and affordances to reduce the incidence of bugs in the future. »»

Extending High Level Languages

Your team is productive using a high level language, but you need access to features only available from C or C++, or indeed another high level language. Be it Java, Perl, Python, Ruby or Lua, we can create the glue to make external functionality a fully integrated part of your software toolkit. »»

Plugins

You already have most of what you need in an off-the-shelf application, it’s just missing some key feature. We can implement that feature and incorporate it into your graphics or development workhorse. »»

Refactoring

If your code works and is feature complete, but is hard to grow or understand, then refactoring may be in order. »»

Code review

Maybe you're concerned about the quality of some code you've inherited, or you just need a fresh set of eyes on your own code. We can give you an independent assessment and generate a detailed plan to improve or extend it. »»

Specification Development and Review

Whether you’re simply exploring the scope of a new project, or already have initial technical specifications, we can help. We can manage, participate or simply advise the process of creating rigorous, complete and implementable specifications. »»

The Expertise You Need

C++

We've been working with C++ since its release in 1986. From C-with-objects to C++11, object-oriented, functional and meta-programming, we're experts with all styles of C++. »»

Multi-threading

Electric Magic has been developing robust and efficient multi-threaded client and server software for more than fifteen years. »»

Communications and Networking

Communications once meant RS-232, and now it's encrypted data streams over TCP/IP, encapsulated and packaged in myriad ways. Whether you need to control a robotic arm or screen-scrape a legacy system, put a transparent RPC proxy between your systems, or... »»

Library Design and Development

A lot of our more recent work has been in realm of library development, creating expressive and powerful foundations on which the real work is built. »»

Graphics

We can apply our deep understanding of Mac, Windows and UNIX graphics APIs, file formats and in-memory representations to provide transformational and generational code to meet your needs. »»

Graphical User Interface

GUI generally means frameworks, and we've worked with and extended them all. QT, GTK, MFC, PowerPlant, the venerable MacApp and TCL, and our own ZooLib. And if you have an in-house system, our broad experience let's us get up to... »»