Skip to main content

Posts

Showing posts with the label Software Development

Adopt Simple Rules that Shrink Your Problem Space

When faced with a problem, you naturally start thinking of a solution. By immediately jumping to the solution space, you forgo a deeper understanding of the real problem. One of the most famous ( actually, mythical ) examples is the Space Pen: legend has it that NASA commissioned a special  pen  that can write in zero gravity. Meanwhile the Soviets recognized that Cosmonauts would need  something  that can write in zero gravity: a pencil. Extending this example a bit, the Cosmonauts' pencils have a smaller problem space: What if the ink leaks? What if they lose the cap? Those questions do not even exist. Back here on Earth, you sometimes have the opportunity to create a rule that slices off a big chunk of your problem space; a simple thing you can do to eliminate a whole class of problems. It does not matter how infrequent such problems are now. The point is to make a set of problems impossible forever . You'll always have problems, but in a ...

Polymorphic C# and Java Using SWIG

By default SWIG generates C# and Java code that does not support downcast for polymorphic return types.  I found a straightforward way to solve this, provided your C++ code has a way to identify the concrete class of the C++ instances that are returned .  That is, this technique will work only if the C++ API you are wrapping with SWIG has something similar to C# object.GetType() or Java Object.getClass() .

Build with CMake in Eclipse

Cross-platform CMake can generate a wide variety of build systems.  The CMake 2.8 project generator for Eclipse does not work, so you must create the project and configure it to build with GNU Make .  Here’s how to do it on Linux.

CMake Directory Variables

CMake creates software build systems for a wide variety of platforms based on a single, unified control file–it’s a makefile maker. You create the CMake control file once and based on this file, CMake will create almost any build environment for you: GNU Make for Linux, Eclipse project , Visual Studio solution for Windows, and the list goes on.

Use Multilingual UTF-8 Strings with any OpenAccess Version

In this article I show you how to use multilingual UTF-8 strings with standard, unmodified OpenAccess oa-22.04p028 release. In the last  article , I introduced UTF-8, the popular 8 bit encoding of Unicode into multibyte character strings that can represent virtually every written language in history.  I presented the OpenAccess software changes required to fully support UTF-8 and showed you how to convert your existing application software to properly manipulate UTF-8 in the OpenAccess oaString class.

Modify OpenAccess to Handle Multilingual UTF-8 Strings Natively

I once had a job scrutinizing Virtuoso schematics that contained many useful annotations written in Italian.  EDA tools generally support only ASCII strings, but the Italian designers were lucky–theirs is one of the few languages that can be written naturally using the same characters as English. Wouldn’t it be nice to annotate designs in OpenAccess databases using any of the world’s languages?  You can do it right now, using any OpenAccess release.

Use Eclipse IDE with OpenAccess

Eclipse works great for me as an C++ integrated development environment (IDE) for OpenAccess -based applications. It supports all the same platforms as OpenAccess, and it’s free software. Here’s how to get started. Your comments and corrections are always appreciated.