From Our Project Portfolio

Smalltalk in Byte Magazine, August 1981

Smalltalk has been immensely influential over the years, in some respects never more so than today (see Objective-C and Ruby). It was unveiled in the August 1981 edition of Byte. Most of that issue's editorial pages were dedicated to articles on the language, its implementation, the integrated programming environment it provided and some discussion of practical applications. »»

Callable

The flexibility of Objective-C and Javascript's callback mechanisms are compelling, but to some extent at odds with the rigidity of C++'s type system. »»

Natter

Natter is a lovely English word that well describes a lightweight back and forth between participants. »»

YadTranscode

YadTranscode is a useful little command line tool. There's a bunch of data formats out there that might look different at first glance but on reflection can be seen to be isomorphic. »»

ZooLib BBDaemon

The ZooLib BBDaemon lets multiple Mac applications talk to USB-connected BlackBerrys concurrently. Obviously this is something that Research in Motion could make possible, but as they haven't we're posting a pre-built installer that takes the pain out of getting things working.

»»

The Missing Sync for BlackBerry

Mark/Space has released The Missing Sync for BlackBerry 2.0. This latest version provides a rich suite of synchronization options, made possible by a device-side Java application developed by Electric Magic. The Mac application uses our ZBlackBerry Mac/Black SDK for its USB communications. »»

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 the TR1 extensions, 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 over a decade. »»

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... »»