Prevent Word from putting page breaks in table rows

If you’re using large tables in Word, you may sometimes find that they run across more than one page. Quite often, the page break occurs inside a row, which means the row gets split across two pages. To the person reading it, this can potentially make it look like two separate rows, which is frustrating.

The usual “Keep lines together” paragraph options don’t prevent this. You need to set the table properties instead.
Read more ›

Posted in General Tagged with: ,

Changing the emulation mode of the Microsoft Web Browser ActiveX control

I’ve been working on an MFC project which embeds a basic web-browser component in a dialog, in the form of a Microsoft Web Browser ActiveX component. (I know… these are ancient technologies… but sometimes you’ve got to work with what’s available on a project!)

Technically, the control hooks into whatever version of Internet Explorer (IE) you’re running on the system. However, it always seemed to fall-back on IE7 emulation mode for us, meaning a lot of our modern standards-compliant HTML wouldn’t work properly. Thankfully, there is a way to fix this problem, although it’s far from obvious!

Read more ›

Posted in Programming Tagged with: , , , ,

New Arduino Q&A site online

If you’re interested in using Arduinos then I recommend checking-out the new Arduino Q&A site over on Stack Exchange. (It’s totally free to use.)

As with most Stack Exchange sites, it was in private beta for a couple of weeks to get it started. It’s now gone into public beta, which means it’s fully functional and anybody can join in. It’s a great place to go if you need help with specific Arduino problems, or if you’ve got some awesome expertise that you want to share.

Posted in Electronics Tagged with:

NSIS Access Control problem with built-in users group

I was dealing with a subtle issue recently involving setting access permissions using NSIS (Nullsoft Scriptable Install System). In the end, it turned out that the problem was not with NSIS at all. Rather, it was a misunderstanding on our part regarding an unexpected quirk in Windows. However, hopefully this post will help anybody who encounters a similar issue.

Our installer was supposed to enable read/write permissions for all users on certain important files and registry keys. However, some users were finding these files/keys were not accessible, and it was preventing the software from working correctly.

Read more ›

Posted in Programming Tagged with: ,

What is a serial-to-parallel shift register?

Shift register functional overview

A serial-to-parallel shift register (or SIPO: Serial In Parallel Out) lets you take a sequence of signals on one output, and split them up into several separate outputs. For example, if you don’t have enough GPIO pins on your Raspberry Pi, Arduino, or other computer/microcontroller, you can use a shift register to add more.

In this post, I’ll be looking at the 74HC595, which is an 8-bit SIPO IC (i.e. it gives you 8 outputs). The advantage of this chip over some dedicated port expanders is that it doesn’t require a complex protocol like I2C or SPI, and it doesn’t need a particular clock speed. That means you can control it with pretty much any digital output channels, and it’s very easy to write simple software to communicate with it.
Read more ›

Posted in Electronics Tagged with: , , ,

Automatically output the callstack on a breakpoint in Visual Studio

When you’re dealing with a large program and multiple developers, it’s not always obvious how and when certain things get executed. One of the very useful ways to debug unexpected behaviour is to set a breakpoint on a suspect line of code, and examine the callstack when it gets hit to see the execution path.

For infrequent events, it’s not always desirable to halt the entire program while you do that though. Instead, you can tell Visual Studio to write the callstack to the output when the breakpoint gets hit, and immediately continue execution.

Read more ›

Posted in Programming Tagged with: , ,

About

Avid Insight is my personal blog about various software, programming, electronics, and occasionally academic things. I also have a few past projects linked in the navigation menu above, so feel free to look around!

Categories

Archives