Robuta

https://cbloomrants.blogspot.com/2009/06/06-17-09-inverse-box-sampling-part-2.html cbloom rants: 06-17-09 - Inverse Box Sampling - Part 2 Okay, in Part 1.5 I asked about the downsample that was the best inverse of bilinear upsampling. I have a solution that pleases me. Se... cbloomrantsinverseboxsampling https://cbloomrants.blogspot.com/2010/08/08-31-10-loop.html?showComment=1283391314598 cbloom rants: 08-31-10 - LOOP Every once in a while I think this is a good idea : #define LOOP(var,count) for(int var=0;(var) =0;var--) but then I never wind up usi... cbloomrantsloop https://cbloomrants.blogspot.com/2009/02/02-10-09-image-compression-blues.html cbloom rants: 02-10-09 - Image Compression Blues Good lord the world of image compression is so screwed up. There's no standard image test set (the old Kodak images are archaic, and even... image compressioncbloomrantsblues https://cbloomrants.blogspot.com/2009/03/03-01-09-clean-up.html?showComment=1236071460000 cbloom rants: 03-01-09 - Clean Up It does actually help to clean up your machine from time to time. One issue is that NTFS dir listing on large dirs is really slow, so huge... cbloomrantsclean https://cbloomrants.blogspot.com/2009/02/02-01-09-swap-and-templates-part-2.html?showComment=1233630960000 cbloom rants: 02-01-09 - Swap and Templates Part 2 So I'm back into the nightmare of std::swap and template overloading. I've been working on my cb::hash_table a bit, which I built on cb::... cbloomrantsswaptemplatespart https://cbloomrants.blogspot.com/2010/09/09-04-10-holy-fuck-balls.html?showComment=1283794728768 cbloom rants: 09-04-10 - Holy fuck balls holy fuckcbloomrantsballs https://cbloomrants.blogspot.com/2011/10/10-12-11-post-backpacking-recalibration.html cbloom rants: 10-12-11 - Post-backpacking Recalibration 1. 65 degree house is fucking blazing hot at night. 2. Of course I'll walk a mile in the rain to get lunch. No big deal. 3. Everythin... cbloomrantspostbackpackingrecalibration https://cbloomrants.blogspot.com/2014/02/02-03-14-understanding-ans-5.html cbloom rants: 02-03-14 - Understanding ANS - 5 First in case you aren't following them already, you should follow along with ryg and Yann as we all go through this : RealTime Data Compr... cbloomrantsunderstandingans https://cbloomrants.blogspot.com/2009/03/03-07-09-malloc.html?showComment=1236902520000 cbloom rants: 03-07-09 - Malloc Arseny Kapoulkine has a nice new blog post about replacing CRT malloc . I looked into it a while ago and gathered these links on the s... cbloomrantsmalloc https://cbloomrants.blogspot.com/2012/09/09-23-12-patches-and-deltas.html?showComment=1348451028068 cbloom rants: 09-23-12 - Patches and Deltas addendum: the description of how rsync/rdiff works here is not correct. They use a different method. See later posts. A while ago Jon p... cbloomrantspatchesdeltas https://cbloomrants.blogspot.com/2009/09/09-29-09-aliasing-is-pretty.html?showComment=1254257928048 cbloom rants: 09-29-09 - Aliasing is Pretty I made some images of aliasing/moiray patterns : (BTW inherent to these images is the fact that they don't look at all right except at fu... cbloomrantsaliasingpretty https://cbloomrants.blogspot.com/2010/10/10-11-10-deunicode-v10.html?showComment=1318437472399 cbloom rants: 10-11-10 - DeUnicode v1.0 cbloomrants https://cbloomrants.blogspot.com/2012/06/06-19-12-two-learnings.html cbloom rants: 06-19-12 - Two Learnings Two things that I got wrong in the past and have only recently come around to what I believe is the right way. 1. Use pointer-sized ints... cbloomrantstwolearnings https://cbloomrants.blogspot.com/2012/05/05-30-12-on-c-atomic-fences.html cbloom rants: 05-30-12 - On C++ Atomic Fences C++0x's atomic_thread_fence is weird. Preshing asked some questions and pointed out some errors in this blog post which has got me to loo... on ccbloomrantsatomicfences https://cbloomrants.blogspot.com/2014/02/02-25-14-wifi.html?showComment=1395759752506 cbloom rants: 02-25-14 - WiFi So our WiFi stopped working recently, and I discovered a few things which I will now write down. First of all, WiFi is fucked. 2.4 GHz i... cbloomrantswifi https://cbloomrants.blogspot.com/2011/07/07-27-11-callimport.html cbloom rants: 07-27-11 - CALL_IMPORT cbloomrantscallimport https://cbloomrants.blogspot.com/2012/03/03-08-12-oodle-coroutines.html?showComment=1331302280512 cbloom rants: 03-08-12 - Oodle Coroutines I wrote a year ago ( 03-11-11 | Worklets , IO , and Coroutines ) about coroutines for doing tasks with external delays. (a year ago! wtf) ... cbloomrantsoodlecoroutines https://cbloomrants.blogspot.com/2009/02/02-19-09-of-code-and-old-boss-stories.html?showComment=1235075760000 cbloom rants: 02-19-09 - Of Code and Old Boss Stories I think every good programmer is defensive about their code. It's like a good chef or any good artist, if you find someone who doesn't ca... and oldcbloomrants https://cbloomrants.blogspot.com/2012/10/10-04-12-hash-link-match-finder-tricks.html cbloom rants: 10-04-12 - Hash-Link match finder tricks match findercbloomrantshashtricks https://cbloomrants.blogspot.com/2010/12/12-11-10-perceptual-notes-of-day.html cbloom rants: 12-11-10 - Perceptual Notes of the Day You have to constantly be aware of how you're pooling data. There's no a-priori reason to prefer one way or the other; when a human looks a... of thecbloomrantsperceptualnotes https://cbloomrants.blogspot.com/2009/06/06-22-09-redraw-dilemma.html?showComment=1245735175261 cbloom rants: 06-22-09 - Redraw Dilemma This apartment searching is really annoying me. I can't handle having "many balls in the air" ; when I put something on my todo list, I l... cbloomrantsredrawdilemma https://cbloomrants.blogspot.com/2016/07/improving-compression-of-block.html cbloom rants: Improving the compression of block-compressed textures ADD: the best solution for this now is our new product Oodle Texture I'm leaving this post for historical reference, but it is now obso... cbloomrantsimprovingcompressionblock https://cbloomrants.blogspot.com/2012/10/10-22-12-windows-7-start-menu-input-race.html?showComment=1350950252625 cbloom rants: 10-22-12 - Windows 7 Start Menu Input Race I've been super annoyed by some inconsistent behavior in the Windows 7 start menu for a while now. Sometimes I hit "Start - programname - en... start menucbloomrants https://cbloomrants.blogspot.com/2012/10/10-02-12-small-note-on-buffered-io.html?showComment=1349212541713 cbloom rants: 10-02-12 - Small note on Buffered IO Timing On Windows, Oodle by default uses OS buffering for reads and does not use OS buffering for writes. I believe this is the right way to go 99... small notecbloomrants https://cbloomrants.blogspot.com/2012/09/09-11-12-lz-minmatchlen-and-parse.html?showComment=1347548726632 cbloom rants: 09-11-12 - LZ MinMatchLen and Parse Strategies I've been thinking about this and want to get my thoughts down while they're (somewhat) clear. We've seen in the past that changing the L... cbloomrantslzparsestrategies https://cbloomrants.blogspot.com/2011/12/12-05-11-surprising-producer-consumer.html cbloom rants: 12-05-11 - Surprising Producer-Consumer Failures I run into these a lot, so let's have a quick glance at why they happen. You're trying to do something like : Thread1 : Produce 1 sem... producer consumercbloomrantssurprisingfailures https://cbloomrants.blogspot.com/2018/05/ cbloom rants: 05/2018 cbloomrants https://cbloomrants.blogspot.com/2010/09/09-14-10-threaded-stdio.html?showComment=1284607153816 cbloom rants: 09-14-10 - Threaded Stdio Many people know that fgetc is slow now because we have to link with multithreaded libs, and so it does a mutex and all that. Yes, that is t... cbloomrantsthreadedstdio https://cbloomrants.blogspot.com/2009/09/09-26-09-habits-code-inlining.html cbloom rants: 09-26-09 - Habits - Code Inlining There's been an off and on discussion with some peers in email about the issue of putting small code functionality directly inline in a bi... cbloomrantshabitscodeinlining https://cbloomrants.blogspot.com/2009/01/01-05-09-paging.html cbloom rants: 01-05-09 - Paging Somebody sent me this paper : "I3D09 A Novel Page-Based Data Structure for Interactive Walkthroughs.pdf" a little while ago. While t... cbloomrantspaging https://cbloomrants.blogspot.com/2011/11/11-22-11-mature-programmer.html?showComment=1322977910581 cbloom rants: 11-22-11 - The Mature Programmer 1. The Mature Programmer The mature programmer manages their own time and productivity well. The MP knows that maintenance is as much wo... cbloomrantsmatureprogrammer https://cbloomrants.blogspot.com/2011/07/07-29-11-problem-with-software.html?showComment=1312050016648 cbloom rants: 07-29-11 - The problem with software The problem with software is that it allows you to do lots of complicated things that you probably shouldn't. Why is adaptive power steer... the problemcbloomrantssoftware https://cbloomrants.blogspot.com/2011/06/06-17-11-c-casting-is-devil.html?showComment=1310576285632 cbloom rants: 06-17-11 - C casting is the devil C-style casting is super dangerous, as you know, but how can you do better? There are various situations where I need to cast just to mak... cbloomrantscastingdevil https://cbloomrants.blogspot.com/2012/06/06-01-12-on-c-atomic-fences-part-3.html?showComment=1338761496080 cbloom rants: 06-01-12 - On C++ Atomic Fences Part 3 Finally a small note of confusion. There are cases where I think "what I need is a #StoreLoad", but a seq_cst fence doesn't work, and chang... on ccbloomrants https://cbloomrants.blogspot.com/2009/ cbloom rants: 2009 cbloomrants https://cbloomrants.blogspot.com/2011/04/04-01-11-dirty-coder-tricks.html?showComment=1301703953914 cbloom rants: 04-01-11 - Dirty Coder Tricks A friend reminded me recently that one of the dirtiest tricks you can pull as a coder is simply to code something up and get it working. ... cbloomrantsdirtycodertricks https://cbloomrants.blogspot.com/2011/01/01-12-11-imdiff-sample-run-and-jxr-test.html?showComment=1294951779121 cbloom rants: 01-12-11 - ImDiff Sample Run and JXR test This is the output of a hands-off fully automatic run : (on lena 512x512 RGB ) : I was disturbed by how bad JPEG-XR was sho... cbloomrants https://cbloomrants.blogspot.com/2012/07/07-15-12-libpng-dll-delay-load.html?showComment=1343197830179 cbloom rants: 07-15-12 - libpng DLL Delay Load cblib for a long time has used libpng , which creates a damn DLL dependency. Annoyingly, that happens at app startup, which means even if y... cbloomrantslibpngdlldelay https://cbloomrants.blogspot.com/2018/02/oodle-260-hydra-and-space-speed.html cbloom rants: Oodle 2.6.0 : Hydra and space-speed flexibility Oodle is an SDK for high performance lossless data compression. For more about Oodle, or licensing inquiries, visit the RAD Game Tools web... cbloomrantsoodle https://cbloomrants.blogspot.com/2011/09/09-26-11-tiny-suffix-note.html?showComment=1317124730302 cbloom rants: 09-26-11 - Tiny Suffix Note Obviously there are lots of analogies between suffix tries and suffix arrays. This old note about suffix arrays which provides O(N) ne... cbloomrantstinysuffixnote https://cbloomrants.blogspot.com/2010/11/11-09-10-new-technology-fucking-blows.html?showComment=1289496852530 cbloom rants: 11-09-10 - New Technology Fucking Blows I recently "upgraded" to an HDTV and a PS3 and have been watching some Blu Rays. WTF. Why didn't you all tell me this is a fucking dis... new technologycbloomrantsfuckingblows https://cbloomrants.blogspot.com/2009/02/02-16-09-low-level-threading-junk-part.html?showComment=1234909680000 cbloom rants: 02-16-09 - Low Level Threading Junk Part 2.5 Back to threading. See the old posts to catch up . We talked a bit about memory models and singletons and such in the last section. On... low level https://cbloomrants.blogspot.com/2011/07/ cbloom rants: 07/2011 cbloomrants https://cbloomrants.blogspot.com/2014/02/02-25-14-wifi.html?showComment=1393444813051 cbloom rants: 02-25-14 - WiFi So our WiFi stopped working recently, and I discovered a few things which I will now write down. First of all, WiFi is fucked. 2.4 GHz i... cbloomrantswifi https://cbloomrants.blogspot.com/2011/05/05-20-11-lzp1-variants.html?showComment=1306231358280 cbloom rants: 05-20-11 - LZP1 Variants LZP = String match compression using some predictive context to reduce the set of strings to match LZP1 = variant of LZP without any entr... cbloomrantsvariants https://cbloomrants.blogspot.com/2009/01/01-10-09-simple-image.html?showComment=1231978440000 cbloom rants: 01-10-09 - Simple Image libPNG is such overcomplicated shizzle. I could easily make a little image format that was just BMP with a LZ that was like maybe 1000 li... cbloomrantssimpleimage https://cbloomrants.blogspot.com/2014/02/02-25-14-ans-applications.html?showComment=1393364701734 cbloom rants: 02-25-14 - ANS Applications Some rambling on where I see ANS being useful. In brief - anywhere you used Huffman in the past, you can use ANS instead. ANS (or ABS)... cbloomrantsansapplications https://cbloomrants.blogspot.com/2009/01/01-14-09-allocator-alignment.html?showComment=1232083020000 cbloom rants: 01-14-09 - Allocator Alignment I like it when allocations of size N are aligned to the next lowest power of 2 below N. So eg. an allocation of 4000 bytes is aligned t... cbloomrantsallocatoralignment https://cbloomrants.blogspot.com/2020/07/performance-of-various-compressors-on.html cbloom rants: Performance of various compressors on Oodle Texture RDO data Oodle Texture RDO can be used with any lossless back-end compressor. RDO does not itself make data smaller, it makes the data more compres... cbloomrantsperformancevarious https://cbloomrants.blogspot.com/2010/05/05-27-10-loop-branch-inversion.html cbloom rants: 05-27-10 - Loop Branch Inversion A major optimization paradigm I'm really missing from C++ is something I will call "loop branch inversion". The problem is for code sharing... cbloomrantsloopbranchinversion https://cbloomrants.blogspot.com/2012/10/10-22-12-windows-7-start-menu-input-race.html?showComment=1351097597109 cbloom rants: 10-22-12 - Windows 7 Start Menu Input Race I've been super annoyed by some inconsistent behavior in the Windows 7 start menu for a while now. Sometimes I hit "Start - programname - en... start menucbloomrants https://cbloomrants.blogspot.com/2011/10/10-18-11-to-wrap-it-up-or-move-on.html cbloom rants: 10-18-11 - To wrap it up or move on One of the things I've really struggled with in the last few years at RAD is the trade off between wasting time on a side shoot of the main ... wrap it up https://cbloomrants.blogspot.com/2010/08/08-20-10-deobfuscating-lzma.html cbloom rants: 08-20-10 - Deobfuscating LZMA I've been trying to figure out LZMA for a while, if anyone can help please chime in. LZMA is very good, and also very obscure. While the... cbloomrantslzma https://cbloomrants.blogspot.com/2017/07/well-crap.html?showComment=1504514362063 cbloom rants: Well Crap I was cleaning my blog, deleting a bunch old posts, and accidentally deleted some I didn't want to. I'm going to repost a few, so if you ha... cbloomrantswellcrap https://cbloomrants.blogspot.com/2010/11/11-05-10-brief-note-on-perceptual.html cbloom rants: 11-05-10 - Brief note on Perceptual Metric Mistakes A lot of perceptual metrics have some weird ideas about things that are important. Some things that are not actually important : 1. Symm... brief notecbloomrants https://cbloomrants.blogspot.com/2009/01/01-10-09-simple-image.html?showComment=1231955580000 cbloom rants: 01-10-09 - Simple Image libPNG is such overcomplicated shizzle. I could easily make a little image format that was just BMP with a LZ that was like maybe 1000 li... cbloomrantssimpleimage https://cbloomrants.blogspot.com/2009/05/05-26-09-storing-floating-points.html?showComment=1243525913513 cbloom rants: 05-26-09 - Storing Floating Points I rambled a bit before about how to store floating point images . I think I have the awesome solution. First of all there are two iss... cbloomrantsstoringfloatingpoints https://cbloomrants.blogspot.com/2009/06/06-17-09-dxtc-more-followup.html?showComment=1353851076835 cbloom rants: 06-17-09 - DXTC More Followup I finally came back to DXTC and implemented some of the new slightly different techniques. ( summary of my old posts ) See the : NV... cbloomrantsfollowup https://cbloomrants.blogspot.com/2010/11/11-19-10-games-without-strings.html?showComment=1290980096030 cbloom rants: 11-19-10 - Games without Strings Quite a number of major video games have shipped with embarassingly large amounts of time spent in "strcmp" and embarassingly large amounts ... cbloomrantsgameswithoutstrings https://cbloomrants.blogspot.com/2009/02/02-16-09-amusing-word-problem.html?showComment=1234909680000 cbloom rants: 02-16-09 - Amusing Word Problem Found this and it confused me for a second : in a country in which people only want boys, every family continues to have children unti... cbloomrantsamusingwordproblem https://cbloomrants.blogspot.com/2012/09/09-23-12-patches-and-deltas.html?showComment=1348454272032 cbloom rants: 09-23-12 - Patches and Deltas addendum: the description of how rsync/rdiff works here is not correct. They use a different method. See later posts. A while ago Jon p... cbloomrantspatchesdeltas https://cbloomrants.blogspot.com/2010/06/06-20-10-some-notes-on-png.html?showComment=1277117543095 cbloom rants: 06-20-10 - Some notes on PNG Before we go further, lets have a look at PNG for reference. Base PNG by default does : Filter 5 = "adaptive" - choose from [0..4] p... some notescbloomrantspng https://cbloomrants.blogspot.com/2010/05/05-29-10-x64-so-far.html cbloom rants: 05-29-10 - x64 so far x64 linkage that's been useful so far : __asm__ cmpxchg8bcmpxchg16b - comp.programming.threads Google Groups _InterlockedCompareExcha... cbloomrantsfar https://cbloomrants.blogspot.com/2012/07/07-15-12-libpng-dll-delay-load.html?showComment=1342399973372 cbloom rants: 07-15-12 - libpng DLL Delay Load cblib for a long time has used libpng , which creates a damn DLL dependency. Annoyingly, that happens at app startup, which means even if y... cbloomrantslibpngdlldelay https://cbloomrants.blogspot.com/2020/08/oodle-2811-with-rdo-for.html cbloom rants: Oodle 2.8.11 with RDO for BC1_WithTransparency Oodle Texture 2.8.11 adds support for RDO encoding of "BC1_WithTransparency" and BC2. We now support RDO encoding of all BC1-7 variants. ... cbloomrantsoodle https://cbloomrants.blogspot.com/2021/01/avif-test.html?showComment=1610473855472 cbloom rants: AVIF Test AVIF is an image format derived from I-frames of AV1 video (similar to HEIC/HEIF from H265/HEVC). See also my 2014 Test of BPG , which i... cbloomrantsaviftest https://cbloomrants.blogspot.com/2010/11/11-12-10-some-notes-on-function.html?showComment=1290041372753 cbloom rants: 11-12-10 - Some notes on function approximation by iteration People often blindly use Newton-Raphson method to iteratively improve function approximations. It's worth taking a moment to think about wh... some notes https://cbloomrants.blogspot.com/2013/03/03-06-13-sympathy-for-library-writer.html?showComment=1363043209231 cbloom rants: 03-06-13 - Sympathy for the Library Writer Over the years of being a coder who was a library-consumer and not a library-writer, I've done my share of griping about annoying API's or w... for thecbloomrantssympathylibrary https://cbloomrants.blogspot.com/2020/09/how-oodle-kraken-and-oodle-texture.html?showComment=1605994955519 cbloom rants: How Oodle Kraken and Oodle Texture supercharge the IO system of the Sony PS5 The Sony PS5 will have the fastest data loading ever available in a mass market consumer device, and we think it may be even better than yo... https://cbloomrants.blogspot.com/2010/10/10-26-10-image-comparison-hipix-vs-pdi.html cbloom rants: 10-26-10 - Image Comparison - Hipix vs PDI If you actually want to make a fair test vs. JPEG : 1. Don't test JPEG at quality levels below 40, it doesn't work. 2. Don't compare t... image comparisoncbloomrantsvspdi https://cbloomrants.blogspot.com/2008/11/11-11-08-reyes.html?showComment=1226536560000 cbloom rants: 11-11-08 - REYES Gritz' course on Renderman : To Infinity and Beyond is the best reference I've found on REYES. I'm still curious about the details of h... cbloomrantsreyes https://cbloomrants.blogspot.com/2012/05/05-27-12-prefer-push-restore-to-push.html?showComment=1338488534080 cbloom rants: 05-27-12 - Prefer Push-Restore to Push-Pop It's a standard paradigm to use a Stack for a subsystem which parallels the execution stack. Some common examples : profilers that push/p... cbloomrantspreferpushrestore https://cbloomrants.blogspot.com/2013/03/03-01-13-zopfli.html?showComment=1362438508541 cbloom rants: 03-01-13 - Zopfli zopfli seems to make small zips. There's no description of the algorithm so I can't comment on it. But hey, if you want small zips it se... cbloomrants https://cbloomrants.blogspot.com/2009/02/02-16-09-amusing-word-problem.html?showComment=1234908300000 cbloom rants: 02-16-09 - Amusing Word Problem Found this and it confused me for a second : in a country in which people only want boys, every family continues to have children unti... cbloomrantsamusingwordproblem https://cbloomrants.blogspot.com/2020/09/how-oodle-kraken-and-oodle-texture.html?showComment=1611764589804 cbloom rants: How Oodle Kraken and Oodle Texture supercharge the IO system of the Sony PS5 The Sony PS5 will have the fastest data loading ever available in a mass market consumer device, and we think it may be even better than yo... https://cbloomrants.blogspot.com/2009/02/02-01-09-swap-and-templates-part-2.html?showComment=1233606300000 cbloom rants: 02-01-09 - Swap and Templates Part 2 So I'm back into the nightmare of std::swap and template overloading. I've been working on my cb::hash_table a bit, which I built on cb::... cbloomrantsswaptemplatespart https://cbloomrants.blogspot.com/2015/02/02-07-15-lzma-note.html cbloom rants: 02-07-15 - LZMA note First a big raw bunch of raw text I previously wrote, then nicer blog afterward : I just had a look in the LZMA code and want to write ... cbloomrantslzmanote https://cbloomrants.blogspot.com/2010/05/05-26-10-windows-7-snap.html cbloom rants: 05-26-10 - Windows 7 Snap My beloved "AllSnap" doesn't work on Windows 7 / x64. I can't find a replacement because fucking Windows has a feature called "Snap" now, s... cbloomrantswindowssnap https://cbloomrants.blogspot.com/2014/02/02-25-14-ans-applications.html?showComment=1393368813656 cbloom rants: 02-25-14 - ANS Applications Some rambling on where I see ANS being useful. In brief - anywhere you used Huffman in the past, you can use ANS instead. ANS (or ABS)... cbloomrantsansapplications https://cbloomrants.blogspot.com/2011/03/ cbloom rants: 03/2011 cbloomrants https://cbloomrants.blogspot.com/2011/07/07-10-11-mystery-do-you-ever-need-total.html?showComment=1310523653117 cbloom rants: 07-10-11 - Mystery - Do you ever need Total Order (seq_cst) - The seq_cst memory model ops in C++0x are very mysterious to me. In particular, when exactly do you need them and why? Let's talk about som... https://cbloomrants.blogspot.com/2015/10/ cbloom rants: 10/2015 cbloomrants https://cbloomrants.blogspot.com/2010/11/11-19-10-games-without-strings.html cbloom rants: 11-19-10 - Games without Strings Quite a number of major video games have shipped with embarassingly large amounts of time spent in "strcmp" and embarassingly large amounts ... cbloomrantsgameswithoutstrings https://cbloomrants.blogspot.com/2009/02/02-23-09-low-level-threading-annotated.html?showComment=1235460480000 cbloom rants: 02-23-09 - Low Level Threading - Annotated Linkies Part 1 : Background Stuff about C++0x. I now believe that C++0x is the right way to talk about multi-threading. You require the bas... low levelcbloomrantsthreadingannotated https://cbloomrants.blogspot.com/2010/08/08-02-10-spu-developing.html?showComment=1281338988537 cbloom rants: 08-02-10 - SPU Developing Programming for the SPU might be really fun if it didn't take like 10 minutes to get the debugger loaded. The whole MSVC editor-is-my-deb... cbloomrantsspudeveloping https://cbloomrants.blogspot.com/2010/07/07-27-10-2d-arrays.html?showComment=1280301057276 cbloom rants: 07-27-10 - 2d arrays Some little things I often forget and have to search for. Say you need to change a stack two dimensional array : int array[7][3]; i... cbloomrantsarrays https://cbloomrants.blogspot.com/2012/07/07-15-12-libpng-dll-delay-load.html?showComment=1343089759188 cbloom rants: 07-15-12 - libpng DLL Delay Load cblib for a long time has used libpng , which creates a damn DLL dependency. Annoyingly, that happens at app startup, which means even if y... cbloomrantslibpngdlldelay https://cbloomrants.blogspot.com/2010/08/08-31-10-loop.html?showComment=1283467387092 cbloom rants: 08-31-10 - LOOP Every once in a while I think this is a good idea : #define LOOP(var,count) for(int var=0;(var) =0;var--) but then I never wind up usi... cbloomrantsloop https://cbloomrants.blogspot.com/2010/07/ cbloom rants: 07/2010 cbloomrants https://cbloomrants.blogspot.com/2010/08/08-12-10-lost-huffman-paper.html?showComment=1281660665732 cbloom rants: 08-12-10 - The Lost Huffman Paper "On the Implementation of Minimum Redundancy Prefix Codes" by Moffat and Turpin , 1997 , is a brilliant work that outlines very clearly th... the lostcbloomrantshuffmanpaper https://cbloomrants.blogspot.com/2012/03/03-08-12-oodle-coroutines.html?showComment=1331282021241 cbloom rants: 03-08-12 - Oodle Coroutines I wrote a year ago ( 03-11-11 | Worklets , IO , and Coroutines ) about coroutines for doing tasks with external delays. (a year ago! wtf) ... cbloomrantsoodlecoroutines https://cbloomrants.blogspot.com/2011/11/11-30-11-basic-sketch-of-worker-thread.html cbloom rants: 11-30-11 - Basic sketch of Worker Thread system with dependencies You have a bunch of worker threads and work items. Work items can be dependent, on other work items, or on external timed events (such as I... https://cbloomrants.blogspot.com/2016/02/ cbloom rants: 02/2016 cbloomrants https://cbloomrants.blogspot.com/2008/12/12-26-08-in-defense-of-less-typing.html?showComment=1230540720000 cbloom rants: 12-26-08 - In Defense of Less Typing In the C++ rant we got a bit into the discussion of "that just reduces typing". It's become a common wisdom these days that "anything tha... in defense ofcbloomrantslesstyping https://cbloomrants.blogspot.com/2010/06/06-15-10-end-of-ad-hoc-computer.html?showComment=1276674583821 cbloom rants: 06-15-10 - The end of ad-hoc computer programming I think we are in an interesting period where the age of the "guerilla" "seat of the pants" , eg. ad-hoc, programmer is ending. For the last... the end https://cbloomrants.blogspot.com/2009/09/09-08-09-dxtc-addendum.html cbloom rants: 09-08-09 - DXTC Addendum Ryg pointed out that there are a few very important little details that I took for granted and didn't mention in my original DXTC postin... cbloomrantsaddendum https://cbloomrants.blogspot.com/2017/07/well-crap.html?showComment=1523581949128 cbloom rants: Well Crap I was cleaning my blog, deleting a bunch old posts, and accidentally deleted some I didn't want to. I'm going to repost a few, so if you ha... cbloomrantswellcrap https://cbloomrants.blogspot.com/2013/04/04-04-13-oodle-compression-on-bc1-and.html?showComment=1365542731933 cbloom rants: 04-04-13 - Oodle Compression on BC1 and WAV I put some stupid filters in, so here are some results for the record and my reference. BC1 (DXT1/S3TC) DDS textures : All compress... cbloomrantsoodlecompressionwav https://cbloomrants.blogspot.com/2011/10/10-27-11-tiny-lz-decoder.html cbloom rants: 10-27-11 - Tiny LZ Decoder I get 17 bytes for the core loop (not including putting the array pointers in registers because presumably they already are there if you car... cbloomrantstinylzdecoder https://cbloomrants.blogspot.com/2012/09/09-01-12-lzp1h.html cbloom rants: 09-01-12 - LZP1.h In my continuing STB-ificiation of old code, I did a single file header version of the original "LZP1" (this is "LZP1b" in the nomenclature... cbloomrantsh