Howdy Pierce
Blog Post
Networking

Converting Between Data Rates and Storage

Bordering on the line of "too embarrassingly simple for a blog post," here is an Excel data rate converter.
Cardinal Peak
Blog Post
Outsourced Engineering

Asian Manufacturing Strategy: How Much Is Your IP Worth to You?

I've had several discussions with potential clients that go something like this: "We currently manufacture our product in China and we'd like more control over the hardware design and software source code." When these firms try to get the design files, they realize that they don't have full access to what they thought was their own intellectual property.
Cardinal Peak
Blog Post
Software Development

Inter-Thread Communication Without a Mutex

A simple way to avoid mutex-locking issues is to not use mutexes. This post describes a simple technique for passing objects between threads in a thread-safe manner without mutexes, which makes the entire class of possible mutex-related errors impossible to implement!
Bordering on the line of "too embarrassingly simple for a blog post," here is an Excel data rate converter.
I've had several discussions with potential clients that go something like this: "We currently manufacture our product in China and we'd like more control over the hardware design and software source code." When these firms try to get the design files, they realize that they don't have full access to what they thought was their own intellectual property.
A simple way to avoid mutex-locking issues is to not use mutexes. This post describes a simple technique for passing objects between threads in a thread-safe manner without mutexes, which makes the entire class of possible mutex-related errors impossible to implement!
Bernard Vachon
Blog Post
Outsourced Engineering

With TI, Hard Is Good

Texas Instruments DaVinci™ series offers a range of processors optimized for digital video processing. Although not appropriate for broadcast video, they are well suited for a number of other video applications. TI offers evaluation modules (EVMs), software development kits (SDKs) and reference DVR design kits (RDKs) that allow a company to jumpstart its development effort.... View Article
Howdy Pierce
Blog Post
Video

The Continuing Devaluation of “k”

The digital video industry seems destined to make resolution confusing. I just got back from NAB last week, where “4k video” was everywhere, and I want to tell you a story about video resolutions. (This is all using the resolutions that are common in the NTSC world, which basically means in the U.S. and Canada.... View Article
Cardinal Peak
Blog Post
Outsourced Engineering

Google Is Feeling Creepy

When you enable location access, Android says Allow Google's location service to collect anonymous location data. Some data may be stored on your device. Collection may occur even when no apps are running. This seems both fair and harmless, so I didn't think too much about it. But it turns out to be a little creepier than you might think.
Texas Instruments DaVinci™ series offers a range of processors optimized for digital video processing. Although not appropriate for broadcast video, they are well suited for a number of other video applications. TI offers evaluation modules (EVMs), software development kits (SDKs) and reference DVR design kits (RDKs) that allow a company to jumpstart its development effort.... View Article
The digital video industry seems destined to make resolution confusing. I just got back from NAB last week, where “4k video” was everywhere, and I want to tell you a story about video resolutions. (This is all using the resolutions that are common in the NTSC world, which basically means in the U.S. and Canada.... View Article
When you enable location access, Android says Allow Google's location service to collect anonymous location data. Some data may be stored on your device. Collection may occur even when no apps are running. This seems both fair and harmless, so I didn't think too much about it. But it turns out to be a little creepier than you might think.
Howdy Pierce
Blog Post
Outsourced Engineering

I Wish More Engineers Could Write

Over a year ago, a computer science faculty member asked me what skills I wished CS programs would teach their graduates. I’m sure he expected a response along the lines of “teach Node.js” or “teach more networking” or “teach operating system theory.” (And for the record, I do think they should teach those topics.) It’s... View Article
Cardinal Peak
Blog Post
Outsourced Engineering

Beating Your Internal Estimate

Recently, we've had two potential customers say to us, in so many words, "My internal engineering team has estimated this project to take X months, and I think that's too long — can you do it faster?" There are two ways to interpret this...
Mike Perkins
Blog Post
Video

How Low Can You Go?

Last night I went to the Denver IEEE meeting of the Signal Processing Society. I was particularly interested in this talk because it was given by Gary Sullivan, the co-chair of the recent international standardization effort to create the High Efficiency Video Coding Standard (HEVC).
Over a year ago, a computer science faculty member asked me what skills I wished CS programs would teach their graduates. I’m sure he expected a response along the lines of “teach Node.js” or “teach more networking” or “teach operating system theory.” (And for the record, I do think they should teach those topics.) It’s... View Article
Recently, we've had two potential customers say to us, in so many words, "My internal engineering team has estimated this project to take X months, and I think that's too long — can you do it faster?" There are two ways to interpret this...
Last night I went to the Denver IEEE meeting of the Signal Processing Society. I was particularly interested in this talk because it was given by Gary Sullivan, the co-chair of the recent international standardization effort to create the High Efficiency Video Coding Standard (HEVC).
what is CRC networking blog
Blog Post
Software Development

What is CRC Networking? Understanding the Cyclic Redundancy Check

CRC stands for Cyclic Redundancy Check — an error-detecting code used to determine if a block of data has been corrupted. The mathematics behind CRCs may initially appear daunting, but don’t have to be. Our engineer presents an alternative explanation useful to the software implementor of CRCs.
Cardinal Peak
Blog Post
Outsourced Engineering

TI’s Video SoC Dilemma

We’ve had the pleasure to work with Texas Instruments’ high-end video processor families (DM8168 and DM8148) over the past few years on a number of different projects. These are highly integrated Systems-on-Chip (SoC) that contain many independent subsystems such as an ARM Cortex CPU, a DSP, video compression/decompression engines, a 3D graphics accelerator, and a... View Article
Howdy Pierce
Blog Post
Outsourced Engineering

My Threads Question

If we interview you here at Cardinal Peak, we're going to assume you're competent to use Google, and we'll give you the benefit of the doubt that you can look up answers to weird corner cases. What we really want to know is how deeply you understand how a computer works.
CRC stands for Cyclic Redundancy Check — an error-detecting code used to determine if a block of data has been corrupted. The mathematics behind CRCs may initially appear daunting, but don’t have to be. Our engineer presents an alternative explanation useful to the software implementor of CRCs.
We’ve had the pleasure to work with Texas Instruments’ high-end video processor families (DM8168 and DM8148) over the past few years on a number of different projects. These are highly integrated Systems-on-Chip (SoC) that contain many independent subsystems such as an ARM Cortex CPU, a DSP, video compression/decompression engines, a 3D graphics accelerator, and a... View Article
If we interview you here at Cardinal Peak, we're going to assume you're competent to use Google, and we'll give you the benefit of the doubt that you can look up answers to weird corner cases. What we really want to know is how deeply you understand how a computer works.