Archive for the Category: Uncategorized

SDK Design Goal #8: Design for Synergy

This is the last  article in the SDK Design Goal series. Please see the introduction article “How to present the licensed technology the right way?”. You have made your core technology available for licensing. Because you followed the recommendations, your first SDK has been very successful on market. Licensees praised it for its easiness of […]

Leave a comment

SDK Design Goal #7: Design for Troubleshooting

This is a eights article in the SDK Design Goal series. Please see the introduction article “How to present the licensed technology the right way?”. No matter how good your SDK is, and how easy to integrate you made it, some licensees will still encounter issues during the integration. Those issues, ranked by the occurrence […]

Leave a comment

SDK Design Goal #3: Design for Backward Compatibility

This is a fourth article in the SDK Design Goal series. Please see the introduction article “How to present the licensed technology the right way?”. This goal works together with the prior one, Design for Extensibility. Let’s assume your SDK has passed the evaluation, the partner has integrated your product and is shipping. They are […]

Leave a comment

SDK Design Goal #2: Design for Extensibility

This is a third article in the SDK Design Goal series. Please see the introduction article “How to present the licensed technology the right way?”. So if you followed the Design Goal #1 article, your design is good and you assume you got everything needed for quick integration. Your SDK provides all the functionality you […]

Leave a comment

Building a Raspberry Pi-based camera powered by Ethernet

The first built camera was installed in a remote place with no Ethernet connection, so it had to be WiFi-connected. The second camera, however, would replace an existing outdated IP camera, so there was Ethernet connection. Considering this, I decided to power it through Ethernet.

Leave a comment

Reverse-engineering the EMZ karaoke format, or watch out the API calls

Worked on adding support for the EMZ karaoke format to the Karaoke Player application, and would like to share another good reverse-engineering technique. EMZ is a Karaoke format similar to the old Karafun, based on a password-protected ZIP archive. Unlike Karafun, the password is not embedded into the archive, but is derived from a some […]

Also posted in reverse engineering 2 Comments

Generating C or Java byte array from a binary using command-line tools

Once in a while during development a software engineer needs to embed the binary object as byte array in C or Java language. While coding a solution is simple, it could be achieved by the following command line on Linux or cygwin: For unsigned data: od -v -t u1 <binary file> | cut -c9- | […]

Leave a comment

OpenSuSE 13.2: do not use BTRFS as rootfs

OpenSuSE 13.2 comes with BTRFS chosen as your default rootfs, replacing the old trusted ext4. Unfortunately the kernel version it ships with contains a known flaw which breaks some software using preallocated files and mmap() on them. Known issues have been reported for rtorrent (failed synchronization) and KDE (plasma-desktop crashes and could not be restarted […]

3 Comments

Running Mac OS X under qemu/KVM on AMD CPU

Due to the excellent work of Gabriel L.Somlo it is possible to run the emulated Mac OS X on Linux under Qemu/KVM. The changes seem to be minimal, and the operating system emulation works well – as long as you have the Intel CPU, that’s it. If you have only the AMD CPU, the emulation […]

28 Comments

Practical difference between epoll and Windows IO Completion Ports (IOCP)

Introduction This article compares the difference between the use of epoll and Windows I/O Completion Port (hereby IOCP). It may be of interest to system architects who need to create a high-performance cross-platform networking servers, and to software engineers porting such code from Windows to Linux or vice versa. It may also be of interest […]

1 Comment