Cardinal Peak
Blog Post
Software Development

High School Prior Art

Based on a Slashdot link, I read a blog post today about the Oracle/Google lawsuit over Java virtual machine patents. Among the list of software patents that Oracle has decided to sue Google with are two that I’m fairly certain that I wrote prior art for. This was in 1983 or 1984 while I was... View Article
Cardinal Peak
Blog Post
Networking

Real-Time Ethernet

A recent project for a customer was to implement a transport for a real-time signal processing application over Gigabit Ethernet (GbE). The project was especially interesting because our customer’s requirement was for extremely low latency: The transport needed to be able to send replies to incoming packets with a custom EtherType within 74.4 μsec. This... View Article
Cardinal Peak
Blog Post
Video

Creating Single-Frame Movies

Create high-quality photo-video hybrids effortlessly using ffmpeg! Optimize your AVI or MP4 files for flawless playback on any platform. Boost your media game today!
Based on a Slashdot link, I read a blog post today about the Oracle/Google lawsuit over Java virtual machine patents. Among the list of software patents that Oracle has decided to sue Google with are two that I’m fairly certain that I wrote prior art for. This was in 1983 or 1984 while I was... View Article
A recent project for a customer was to implement a transport for a real-time signal processing application over Gigabit Ethernet (GbE). The project was especially interesting because our customer’s requirement was for extremely low latency: The transport needed to be able to send replies to incoming packets with a custom EtherType within 74.4 μsec. This... View Article
Create high-quality photo-video hybrids effortlessly using ffmpeg! Optimize your AVI or MP4 files for flawless playback on any platform. Boost your media game today!
Cardinal Peak
Blog Post
Image Processing

Creating the Orton Effect in Gimp

Automate the dreamy Orton effect in Gimp for stunning landscape and flower photography. Enhance your images effortlessly with our Gimp script.
Cardinal Peak
Blog Post
Streaming Media

World’s Smallest H.264 Encoder

H.264 has a complicated specification with several options, many of which are not commonly used. So, I decided to write the simplest possible H.264 encoder.
Cardinal Peak
Blog Post
Software Development

Writing Defensive Code to Automatically Find Memory Leaks

In an earlier post, I suggested making all your memory allocations go through a single routine, and deletions through another. When you centralize allocation and deallocation like this, you gain a couple of benefits. First of all, you make the memory allocation more explicit, which will tend to make programmers more careful. Second, you can... View Article
Automate the dreamy Orton effect in Gimp for stunning landscape and flower photography. Enhance your images effortlessly with our Gimp script.
H.264 has a complicated specification with several options, many of which are not commonly used. So, I decided to write the simplest possible H.264 encoder.
In an earlier post, I suggested making all your memory allocations go through a single routine, and deletions through another. When you centralize allocation and deallocation like this, you gain a couple of benefits. First of all, you make the memory allocation more explicit, which will tend to make programmers more careful. Second, you can... View Article
Cardinal Peak
Blog Post
Security

How To Find a Memory Leak

Finding memory leaks and other problems in your code can be challenging, but there are tools available to help simplify that process. Remember to add time to your schedule so that you can apply the available tools for finding memory leaks and other problems.
Cardinal Peak
Blog Post
Software Development

Ben’s Golden Rule for Preventing Memory Leaks

Learn how to prevent memory leaks in C/C++ with Ben's Golden Rule. Follow these steps for effective memory management and ensure your embedded systems run smoothly!
Cardinal Peak
Blog Post
Image Processing

Detecting Well-Focused Images

Our expert discusses how to write a program to automatically determine which photo in a group of pictures of the same scene is in the best focus. The trick is to use a contrast measurement in the passive autofocus algorithm.
Finding memory leaks and other problems in your code can be challenging, but there are tools available to help simplify that process. Remember to add time to your schedule so that you can apply the available tools for finding memory leaks and other problems.
Learn how to prevent memory leaks in C/C++ with Ben's Golden Rule. Follow these steps for effective memory management and ensure your embedded systems run smoothly!
Our expert discusses how to write a program to automatically determine which photo in a group of pictures of the same scene is in the best focus. The trick is to use a contrast measurement in the passive autofocus algorithm.
Cardinal Peak
Blog Post
Video

Uploading Kodak Zi8 Videos to Flickr

Fix your Kodak Zi8 video upload issues to Flickr with our straightforward conversion solution using ffmpeg. Enjoy seamless sharing now!
Cardinal Peak
Blog Post
Software Development

GCC’s Unhelpful Error Messages

Something must be done about the obtuse error messages issued by the GCC compiler, particularly when using C++ and STL classes. Take this, for example, which is the output I got recently after a one-line change: 'std::_Rb_tree_iterator<std::pair<const unsigned int, EMMServer::EMM> >' to non-scalar type 'std::_Rb_tree_iterator<std::pair<const unsigned int, std::map<short unsigned int, EMMServer::EMMSource, std::less<short unsigned int>, std::allocator<std::pair<const... View Article
Fix your Kodak Zi8 video upload issues to Flickr with our straightforward conversion solution using ffmpeg. Enjoy seamless sharing now!
Something must be done about the obtuse error messages issued by the GCC compiler, particularly when using C++ and STL classes. Take this, for example, which is the output I got recently after a one-line change: 'std::_Rb_tree_iterator<std::pair<const unsigned int, EMMServer::EMM> >' to non-scalar type 'std::_Rb_tree_iterator<std::pair<const unsigned int, std::map<short unsigned int, EMMServer::EMMSource, std::less<short unsigned int>, std::allocator<std::pair<const... View Article