Solving Difficult Problems

Stuck with a genuinely difficult problem with seemingly no solution in sight? Arcamex can help, we're used to solving complex technical problems where others often just reach dead-ends. Since we have in-depth knowledge of software, operating systems and hardware architecture, combined with over 20 years of software development and problem solving experience, we're in a unique position when it comes to resolving complex issues.

Case Studies

Legacy Enterprise Database Migration - Absolute incompatibility

A legacy VB6 system that was tied to an even older multi-valued database needed to be ported across to SQL Server. Achieving this would normally be considered impossible, as the VB6 application was written solely with the proprietary multi-valued database in mind.

To resolve this, an emulation layer was written, complete with custom query language parser and transparent, on-the-fly query translation from the proprietary language into SQL Server. The resulting application not only worked, it worked very well indeed and in certain areas, vastly out-performed the original system, despite the added overhead of the emulation layer.

Bluetooth Printers - Incompatible platforms and firmware faults

A customer purchased a job lot of bluetooth mobile printers, with the intention of using these to print certificates on-the-road from their existing smartphones. Unfortunately, their choice of printer wasn't smartphone-compatible despite being advertised as a "mobile" printer. The outright lack of compatibility between the devices would normally be considered a show-stopper.

Custom printer driver software was written to communicate with the printer over Bluetooth, along with an embedded page description language for use in the application itself. During development, an unexpected communications problem was found, which we narrowed down to the firmware in the printer itself. We worked around this by recommending separate Bluetooth dongles for the printer, which bypassed the issue. As a result, the project went ahead as expected and managed to make good use of previously completely-incompatible hardware.

Unexplained Crashes - Buffer overrun in database driver

A large client-server windows database application was deployed across an organisation - some of the clients used regular PCs, the others used thin client terminals. Bug reports started to arrive of the application crashing hard upon startup when launched on particular workstations. During a day's investigation, we narrowed this down to specific hardware (a particular brand of thin client). Furthermore, we found the cause...which lay in the client database drivers that the application used to connect to the database server. When the application was being used on the offending thin clients via a terminal services session, as part of the licensing checks done on the server, the database driver transmitted the hostname of the thin client in use to the server. Unfortunately, the default hostname assigned to this particular brand of thin client was always exactly 15 characters long, differing only by the MAC address of the embedded ethernet card. When presented with a hostname of exactly 15 characters, the database driver hit a buffer overflow fault, which crashed the client application.

Given that the database driver vendor was unlikely to be in a position to resolve this issue in an acceptable time-frame, we worked around the situation by renaming the thin clients in their firmware setup screens. The buffer overrun problem was avoided and the go-live continued as planned with minimal delay.


Looking at the examples above, none of these issues were straightforward, ranging from absolute incompatibility, firmware issues, down to buffer overflow faults in third-party database drivers - yet we managed to either resolve, or work around these issues in every case.

In short, if you have a seemingly "unsolvable" problem, Arcamex may be able to help - and even if we can't fix the problem directly, we should at the very least, be able to determine where the fault lies and recommend a workaround.

See Also: Consultancy