Let's Get Cuddly! (or not, I'm not judging)

Categories: programming

As a personal preference, I'm a fan of cuddly braces. It's the way I learned, but I feel like it leads to more concise and readable code in most cases. I could go on, but as a topic it's been beaten to death, and there are arguments with merit on both sides.

That being said, at work we use newline braces, and I don't like it. A good programmer follows the in-place coding style, so that's what I've been doing. It doesn't mean I have to like it, though. While I use a separate installation of Visual Studio on an entirely different computer for coding my personal projects, there are times where I'd like to not have to completely switch machines to bang out some lines of code.

After reading that you can export and import Visual Studio settings, I created two settings files trimmed down to only include indentation and newline settings, so now I can simply import a settings file and all the rules I want changed are changed.

Feel free to edit the below files to your needs:

These are only for Visual Studio, though. I've got nothing to offer for other editors, but feel free to contribute settings files for any other IDE.

PHP PDF Libraries

Categories: programming

PDFs are easy! Like riding a...oh.

PDFs are easy! Like riding a...oh.

I wanted to do something I figured would be relatively simple. After all, we're doing it in .Net with a third-party library: Create a PDF with text from a database with vector graphics incorporated in the page. Turns out, it's pretty easy if you want a paid solution; numerous libraries exist for PHP that are non-free. If you insist on going free-only though, be warned: here be dragons (maybe).

Generative Art: Google Logo

Categories: art, programming

I've been impressed with what the Processing community does with generative art, and Actionscript seems to be at a point where it can be used much like Processing. In that vein, I've been watching Mark Knol's generative art for a while, and while I wanted to do something like it, I've never actually bothered to create sit down and start coding it up.

Today, I tried to recreate his work on the Google logo. While mine doesn't seem to have as much depth or chaos, I think it turned out fairly well. With some tweaking, I could improve it, but for now I just wanted to put something out there.

Hope you like it!

Google logo rendered in circles

Great Googly Moogly!

Building a Static Site Generator

Categories: programming

It's been a while since I posted... well, really anything on my site. I don't know that I could give a single reason (I have considered the possibility I might be lazy, but discarded that idea); the problem is the sum of a number of reasons, some of which I'll lay at the feet of WordPress.

SimpLESS: An Easier Way of Getting LESS Done

Categories: open source software, programming

LESS

When I first took a look at LESS as a CSS replacement, I wasn't too interested in having even a command-line compiler. The idea of having my stylesheet loaded and parsed by Javascript didn't sound that great either, but tolerable if it saved me enough time and effort writing CSS.

simpless

While testing LESS on my local server, I used less.js to process my .less stylesheet on the client side. It worked well, and on modern browsers the processing time is minimal, but I decided to look around for LESS compilers anyway. I discovered http://wearekiss.com/simpless nearly immediately, and it looked perfect.

Compiling a .less file is as easy as drag-and-drop, and it monitors the file for changes. When your file is saved, it is nearly immediately compiled into a CSS file. If you've made an error in your file, the file highlights red and specifies the line number at which the problem occurred. Output is pure, minified CSS goodness.

SimpLESS, by default, inserts a comment at the top referring to its website. This can easily be disabled if you like.

When I first started using SimpLESS, I was copying and pasting the output into a WordPress template style.css file, which requires a properly-formatted comment at the top to describe the theme. Since SimpLESS performs minification, comments are stripped out. I thought this was the only way to keep my WordPress theme comment intact while still using the features of LESS. This copy-paste tedium was something I specifically wanted to avoid in the first place.

Note: The remainder of this post was written before SimpLESS users complained enough about this very issue, so theme comment preservation is no longer an issue.

I thought that there must be some way to preserve a comment when compiling. Surely that wasn't an uncommon use case? I checked out the https://github.com/Paratron/SimpLESS to see how it was performing its minification (master/Resources/js/clean_css.js, line 30 if you're interested), and saw they included a special character to preserve certain comments: the exclamation mark.

To preserve a CSS comment in SimpLESS (not that this will not work using the Javascript version, as WordPress will not find a style.less file), simply put an exclamation point after the initial comment delimiter, like so:

/*!
Theme Name: My Super-Cool Theme
Theme URI: https://www.pixelbath.com/
Description: Blah blah blah...
[cut for length]
*/

The exclamation point is ignored by WordPress, and if you have SimpLESS processing your style.less file, you can continue to upload your theme's style.css file as usual.

ROM Checksums and Headers

Categories: programming

Lately I've been futzing around with classic game ROMs a bit more. Since nearly day one of Nesticle hitting the Internet, I've been obsessed with emulation of classic computer systems. I love playing old video games, and I love learning more about the internals of the systems I cut my teeth on back in the day.