RSS LJ

October 8, 2014

More whining about drawing apps (, , )

by fluffy at 8:32 PM

Every now and then I start trying to draw comics again and every time I do I run into the same roadblocks where I feel like I'm spending too much time trying to work around Photoshop's crappy brush model instead of actually just getting into the basic drawing.

The big fundamental problem with Photoshop (and all of the Photoshop clones, including GIMP and Pixelmator) for inking is that it treats brushes not as continuous lines of varying width, but as sequences of tightly-spaced circular blobs of ink. This is the fundamental reason why its lines tend to be blurry with round tips and that characteristic inked-in-Photoshop look.

October 6, 2014

Unity (, )

by fluffy at 8:51 AM

So, I had a dream in which I was somehow on Unity (completely to scale), and Unity had gotten sucked into a pocket universe. Most of the dream involved me and Juni trying to find their friends. We also tried to find basic sustenance but in this pocket universe, the only food was McDonald's.

I don't remember most of the dream but I do recall quite clearly trying to attract a bunch of Octonas, and Juni using their underpants to do so (on the hypothesis that it would bring Tanya to us, so why not all the others?).

I think Juni is a little bit racist.

April 18, 2014

Yet another round of comic-making app frustrations (, )

by fluffy at 11:43 PM

As implied in my most recent comic, I am basically done with Photoshop CS4. Which is unfortunate, as I am very used to its user interface (warts and all) but it's just no longer working reliably under OSX 10.9, so it's time to finally move on to something else.

So, once again, here's my whirlwind tour of all the comic-drawing software I've been trying...

April 7, 2014

HiDPI image replacement (, , )

by fluffy at 7:41 PM

As often happens, now that I have a couple of devices with so-called "Retina" screens, I got sick of the pixelated 100dpi look and decided to implement HiDPI image support on my comics site. Here's how I did it:

April 5, 2017 It's worth noting that now that srcset is entirely standard and well-supported I have updated this entry somewhat, namely removing my client-side jQuery hacks and switching entirely to srcset, as it should be. The server-side mechanism for automatic attribute generation still remains, though.

PHP end (server-side)

Normally the blog entry texts are emitted directly. Now they're passed through this function:

function renderComic($entryText, $rss = false) {
    if ($_GET["hidpi"] == "disable") {
        return $entryText;
    }

    libxml_use_internal_errors(true);

    $doc = new DOMDocument();
    $doc->loadHTML($entryText);

    foreach ($doc->getElementsByTagName('img') as $img) {
        $ldpi = $img->getAttribute('src');
        if (file_exists($ldpi)) {
            $size = getimagesize($ldpi);
            $img->setAttribute('width', $size[0]);
            if (!$img->getAttribute('alt')) {
                $img->setAttribute('alt', '[comic]');
            }
            $hdpi = preg_replace('/\.([^.]*)$/', '.HIDPI.jpg', $ldpi);
            if (!file_exists($hdpi)) {
                $hdpi = preg_replace('/\.([^.]*)$/', '.HIDPI.\1', $ldpi);
            }
            if (file_exists($hdpi)) {
                if ($_GET["hidpi"] == "force") {
                    $img->setAttribute('src', $hdpi);
                } else {
                    // http://dev.w3.org/html5/srcset/
                    $img->setAttribute('srcset', $ldpi . ' 1x, ' . $hdpi . ' 2x');
                }
            }
        }
    }

    // http://stackoverflow.com/a/10023094
    return preg_replace('~<(?:!DOCTYPE|/?(?:html|body))[^>]*>\s*~i', '', $doc->saveHTML());
}

What this function does is the following:

  1. Adds a width and alt attribute to all images (which I should have been doing anyway, but I'm lazy); it only adds width because I depend on proportional flexible sizing for my responsive layout
  2. For images with a high-resolution version available (as determined by replacing its extension with .HIDPI.jpg or, if that doesn't exist, inserting .HIDPI before its existing extension), adds a data attribute to point to this high-resolution rendition, and adds the now-totally-standard and widely-supported srcset attribute (or, if the query parameter hidpi=force exists, replaces the src attribute)
  3. Adds the experimental/draft-spec srcset attribute, so that future browsers (hopefully) won't need the deferred replacement logic
  4. Unwraps the inner HTML from the document boilerplate that DOMDocument::saveHTML adds (because heaven forbid you might want to just manipulate some HTML data on its own!)

Client-side

I've recently learned to actually quite like jQuery for this stuff (I'm using it a lot in Bagel Voice). So, here's a quick JS function that drives the client side of things:

// HiDPI image replacement
$(document).ready(function() {
    if (window.devicePixelRatio > 1) {
	$("img[data-hidpi]").attr('src', function() {
	    return this.getAttribute('data-hidpi');
	});
    }
});

What this does is, after the document loads, if the screen has a pixel ratio greater than 1, for all images with a data-hidpi attribute, it replaces the src attribute with it. Simple!

Other things I tried

  • Just using srcset isn't enough just yet, as no browsers support it (some people are claiming that the Chrome developer channel does but that's hardly enough to go by)
  • CSS @media rules; in particular, all <img>s that had a HiDPI rendition would get replaced with two images, one with class="ldpi" and one with class="hdpi", and some CSS rules to hide ldpi on HiDPI screens and vice-versa. This actually worked really well, but it had the end result that every device was downloading both images, regardless of what was visible, so that's dumb.

I also considered rewriting <img> tags to <div>s with generated <style> blocks that would set up the background-image for media queries, but from what I've read, that still has the double-download issue, and also it would have been ridiculously complicated and I couldn't guarantee that it would still work on older user-agents (which I still care about for some reason). It probably would have also prevented Google Images et al from indexing it, which I care about both because I actually get readers that way and also it makes reverse image search easier (for all the comics of mine that get hotlinked and spread without attribution and so on). It also makes auto-excerpting functionality on Twitter, Tumblr, Google Plus, etc. fail, and not to mention how much weirdness there'd be for the occasional multi-image comic and problems with formatting rules and so on. Basically, it's a mess. I'll probably do that for the site graphics, though, if I ever get around to remaking them for HiDPI.

December 31, 2011

Year in review (, , , , , , )

by fluffy at 2:30 PM

The year began just hours after my grandmother died.

October 13, 2011

Findra (, , , )

by fluffy at 10:35 AM

Now that the news is public, I'd just like to spend some time reflecting on the good times with Chris (Findra).

December 31, 2010

Year in review (, , , , )

by fluffy at 4:43 PM
  • ∆songs: 5 Song Fight solo efforts, 2 Song Fight collaborations, 4 covers, 6 remixes, various sound experiments and short soundtracks produced, ~20 songs written but not recorded, 2 live shows (both went way better than any shows I'd done before)
  • ∆comics: 120 published; 1 long-running series completed (Unity), 2 short series in their entirety (Unity:Planetfall and Unity:Breeder), 1 long-running series rebooted (Pernicious), 1 short series started (Unity:Meat), several miscellaneous one-offs and journal comics
  • ∆artwork: various smatterings posted to various art-sharing sites
  • ∆body mass: unchanged within statistical error; still fat a little overweight
  • ∆grandparents: -2; grandfather(paternal, age=99y1w) passed in August, grandmother(maternal, age=99y7m) passed about an hour ago and I'm still processing it. Remaining grandparents = 0

All in all, the year could have been better, but it could have been a lot worse, too.

July 24, 2010

Reevaluating drawing apps again (, , , )

by fluffy at 9:42 PM
Since I'm in a break between comics, and I've been completely redoing my MacBook because of upgrading its hard drive and adding a dedicated NAS to my network and so on, I decided to go ahead and upgrade to Photoshop CS5. Which is, frankly, terrible in how slow and laggy it is.

I've owned a copy of Pixelmator for years, and they've improved it immensely over that time, but there are still a few glaring deficiencies in the UI. They've finally gotten the brushes to work really well, but now I'm finding that all tools are set to use the same brush all the time - including the eraser, which is always sized exactly the same as the brush tool. Which makes drawing much more of a chore than it should be.

So, once again I'm looking at alternate drawing apps. I have VectorDesigner as well, but vector drawing has never really agreed with me for a number of reasons (usually tablet pressure support is rudimentary or even nonexistent, and I also like being able to screw around with things at the raster level which I find to be much more flexible, even with its "inaccuracy"). This also pretty much rules out Inkscape, although I might give it a try again anyway.

GIMP on OSX is of course a joke (the various native efforts are in perpetually primitive states, and the X11 version doesn't support tablet pressure since X11 on OSX doesn't support much of XInput).

Basically, I need a drawing app with the following features:

  • Runs on OSX
  • A drawing/sketching-friendly workflow
  • Tablet support (pressure, subpixel brush positioning)
  • Layers (ideally with groups, and group blend modes)
  • Magic wand selection and filling, as well as fast selection refinement (expand and contract at least, ideally with fast keyboard access)
  • Is affordable and I can justify paying for it with the understanding that I'm an amateur who likes drawing for fun and doesn't intend to ever make money on this
There's a lot of free/cheap drawing apps out there, but most of them have critical flaws that make them pretty much not worth working with. It seems like there's a whole bunch of niche apps which work pretty well for their niche, and then Photoshop is what everyone else turns to, ignoring that it's slow, bloated, and massively overpriced for just a drawing app...

March 1, 2010

New comic series! ()

by fluffy at 12:08 AM
Now that Unity is over and I've gotten tired of drawing journal comics, please allow me to introduce my new series that you have most certainly never seen before, dex/dx.

December 1, 2009

Webcomic convention thingamabobber ()

by fluffy at 6:54 PM
For anyone who wants to meet me in person and, I dunno, watch me work on my comics or something, there's this thing going on that I will be at, December 12 at the Cartoon Art Museum. I'm scheduled to be there 11 AM to 1 PM but I'll probably stick around for more than that.

12/3 Of course, this being the Cartoon Art Museum in San Francisco, CA.

October 17, 2009

An APE of a good time ()

by fluffy at 11:33 PM
Today I went to APE with Pat and Mark. While there I met, chatted with, and bought things from the following cartoonists whom I admire: and I also bought some stuff from a bunch of cartoonists I'd never heard of before. Also apparently I was sharing the same oxygen as Jeff Rowland at one point without realizing it. Oh well.

I also exchanged some words with Stephen Notley and chatted a bit with Andrew Farago and Shaenon Garrity.

After that I went to the Cartoon Art Museum's APE party and hobnobbed with some of the above, and also met Rob McCarthy, Jonathan Lemon, and a few other fellow monsters (whose names I forget, unfortunately), and most importantly, Jesse Reklaw who I have admired for a long time and who was probably the single most influential person when it came to my decision to start webcomics to begin with. As it turns out, he was glad to meet me too — he had been trying to find my email address so he could give me a copy of his first book, which had a strip I'd written back in 1999 (or rather, which my subconscious had written when I was like 5 but which I submitted to him in 1999).

Anyway, between all the merch I bought and the money I donated to CAM, I completely drained my checking account and spent nearly all of it. And it was worth every penny.

August 6, 2009

Monsters of Webcomics (, , , )

by fluffy at 7:39 PM
Thanks again for submitting your work for the Cartoon Art Museum’s Monsters of Webcomics Virtual Gallery.

I’m pleased to say that your work has been selected for inclusion in our exhibition, and will be featured in the Virtual Gallery along with a wide array of webcomics from around the globe. This historic exhibition will include over 100 artists, making this one of the largest exhibitions in the Cartoon Art Museum’s 24-year history, and we’re thankful for your participation.

I am pleased as well! My stuff will be in a museum! I think this is only the second time this has happened.

Here's a full press release of the exhibit, and also you can read more about the goings-on at the Cartoon Art Museum on their LiveJournal.

I will have to finally go to CAM and maybe even meet Shaenon and Andrew in person!

May 1, 2009

My thought process, vis a vis comic writing ()

by fluffy at 11:37 PM
  1. Hm, Juni has gotten into a situation where it's finally talking to Kali again. I guess it should do a recap. It would be a good way to explain some of what's going on to the readers anyway.
  2. Okay, this dialog seems okay but it's not really going anywhere, and what the hell do I draw? Juni, Chandra, and Kali talking to each other with Juni thinking of past events?
  3. Meh, this is really annoyingly boring. Maybe I'll just write it as a chapter of a short story to post over the weekend.
  4. Okay, since this is just text I can be a bit more verbose. I'll expand this dialog a bit. No need to be cryptic, words are cheap.
  5. Okay, what was one boring strip has become a dozen paragraphs of boring dialog. And I'm still stuck with where the dialog goes from here and how this moves the story forward.
  6. REWRITE TIME

August 3, 2008

I've come a long way (, , )

by fluffy at 1:11 PM
It's not like I'm that great an author or artist now, but man I used to really suck. That's so embarrassing.

June 28, 2008

A new experiment ()

by fluffy at 1:17 AM
Yet another comic series, this one intended to fill in that big gap in the market of "things to read on Saturday." (I am also still working on Unity, and there'll still be occasional journal or random comics.)

May 28, 2008

February 6, 2007

New series: Unity ()

by fluffy at 9:16 PM
I'm a glutton for punishment and disappointment, but I'm starting yet another new attempt at a comic (back to my serious, extended-narrative nature, á la Eaveston). Episodes will start running on the 13th (when the current sketchbook buffer runs out). One thing I'm trying hard to do is to avoid planning too much of the story ahead, which I think is where things always go awry for me (because I end up getting bored with all the stuff I've already planned out), so I'm doing whatever I can to avoid thinking of plotline things.

I do have some aspects of the environment worked out (I know some things about the main character, and generally what the environment is, and some of the early setting-establishment things which will happen to the main character) but I'm trying my hardest to not come up with anything else. And of course, the whole need to discover everything as I go along is the design of the comic.

Hopefully this one will last a while.

September 18, 2005

Flexible seating ()

by fluffy at 3:40 AM
(This actually happened on August 4. I sketched it that day but didn't get around to inking it until just now.)

May 13, 2005

Distracting (, )

by fluffy at 4:59 PM
This was back in April, like on the 19th or something.

March 12, 2005

Meta ()

by fluffy at 11:11 PM
Older »