# My Personal and Research Blog

This is Kyle Niemeyer’s personal and research blog. A complete archive of past posts are available via links at the top of the page.

A feed of the most recent posts is also available.

## Recent Posts

### Importance of CUDA volatile keyword with shared memory

When coordinating information between threads in a warp via shared memory in CUDA, you might need to use the volatile keyword when declaring the shared memory array, as in volatile __shared__ int array[SIZE].

### Careful with the subtraction assignment operator in C

This might be obvious to someone who majored in computer science (and does make sense if you think about it), but a little care is required when using the subtraction assignment operator (-=) in C and related languages.

### PDF decryption tool

If you’ve ever come across an encrypted/protected pdf (or forgotten a password to one of your own, in my case), it’s a huge pain to try to open the file (impossible, in fact, without the password). Fortunately, some clever people have written an easy-to-use PDF decrypter called GuaPDF (“Guaranteed PDF Decrypter”).

### Combustion article for Ars Technica

This is a couple days old now, but I wrote a combustion-related article for Ars Technica. I haven’t been posting every article I write here (since there are usually one or two a week), but this is the first so far to be specifically related to my research–so I figured it deserved special comment.