Peregrine Lake – A Weekly Webcomic Written by Trae Dorn and Drawn by Ethan Flanagan

A Northwoods Gothic
  • Home
  • About
  • Characters
  • Archives
  • UnCONventional
  • Merch
  • Buy Book 1!
  • RSS

Order Peregrine Lake Book One!

Order Peregrine Lake Book 1

Convention Schedule!

Trae @ Cons:

  • Big Minneapolis Anime
    Aug 8-9, 2026
    Minneapolis, MN
     
  • Eau Claire Comic Con
    Sep 12, 2026
    Eau Claire, WI
     
  • Booked Eau Claire
    Sep 18-19, 2026
    Eau Claire, WI
     

Ethan @ Cons:

  • Big Minneapolis Anime
    Aug 8-9, 2026
    Minneapolis, MN
Buy Trae's Books

The Amazon Movie ‘Playdate’ Has a Weird Fucking Ending

by Trae Dorn on January 20, 2026 at 1:59 am
Posted In: Blog

PlaydateIf I told you that a Kevin James/Alan Ritchson buddy comedy ended with our leads purposefully killing dozens of children in a fiery explosion, you’d probably look at me sideways. If I told you they were the heroes, and this was supposed to be a “cool and funny’ moment, you’d think I’ve lost my god damned mind. But the movie Playdate is real, it’s been out for two months, and you can watch the scene unfold with your own eyes if you want to.

Not sure why you’d want to, but you’re an adult. You can make your own choices.

I’m going to spoil the movie here, so if for some reason you cared about the plot of this thing, you might want to stop reading here. The basic setup of the movie is that Kevin James plays a stepdad whose socially awkward kid befriends the apparent child of Alan Ritchson’s character at the park. Ritchson invites James and his son over to their house (which they’ve recently moved into), and chaos ensues because people are coming to kill Ritchson.

CJ, the character we’ve been told is Ritchson’s son is in fact not his son, but actually a genetically modified clone of Ritchson created to be a super soldier that Ritchson freed from a lab. Occasionally fun (and occasionally dumb) comedic action scenes follow. And frankly, I found myself mildly enjoying the film. It wasn’t deep, and Ritchson is funny (and James manages to not get in his way). I wouldn’t describe it as a good movie, but I was enjoying myself.

And then the last scene happened, and I just went “What the fuck?”

You see, at one point it’s revealed that CJ isn’t the only clone. There are, in fact, a couple dozen, but Ritchson and James just weren’t aware of the rest. Apparently all the clones (including CJ) have had their empathy and emotions removed from them, but the film establishes that CJ genuinely cares for Ritchson.

And then they blow up all the other clones.

In a massive fireball as our heroes walk away.

And I’m like… did no one think about this? The only difference between CJ and the rest of the clones is the short amount of time CJ spent with Ritchson’s character. That means every single one of those kids could be easily rehabilitated just by someone giving a shit about them. But, like, why think about that when you can murder them. It’s clear that literally no one making this movie thought for more than two seconds about the scene, but what a weird message to end your action buddy comedy on. It’s just… it’s just weird.

What a weird way to end that fucking movie.

View Comments

Maybe Try Being Normal to Strangers on the Internet?

by Trae Dorn on January 16, 2026 at 5:27 am
Posted In: Blog

So there’s a thing that happens when you make stuff and post it to the internet — people who’ve never directly interacted with you before feel like they know you. I don’t mean like your beloved social media mutual who you’ve had online conversations with, but instead people who really have never said word one to you to begin with.

I’m far from the first person to point out the existence of this kind of parasociality, but I’ve had several weird experiences with it this month which has left me either scratching my head or oddly angry. Because I think it’s important to remember to the vast majority of people who consume the stuff I make I am stranger. Statistically, if you’re reading this, we’ve never had a conversation, and you’re only familiar with the public image I project on social media and the various works of commentary, podcasts, and fiction I produce.

And you know what? I’m glad you’re here! I have real world friends I’ve made who’s first exposure to me is something I’ve made and tossed online. Heck, technically my wife watched one of my YouTube videos long before we met. She’d totally forgotten about it by the time we were actually introduced, but it still counts! I, frankly, want you here. I’m making this stuff so someone will look at it after all.

But, like, again — I’m a stranger to most of you. And while most of you seem to keep that in mind, sometimes an occasional person will talk to me in a way that is really fuckin’ weird.

Like on TikTok a few weeks ago, someone who clearly thought they were teasing me like we were friends made an offhand joke that was, honestly, deeply offensive to me. I’m not going to repeat it, but if you follow me on TikTok, Tumblr, or Bluesky you probably saw my follow up videos about it. The person who posted the comment has apologized, but the important thing is it never clicked in their brain that we did not have the kind of relationship where they could make that kind of joke with me.

Because, again, I’m a stranger.

Now I’m going to mention that this commenter was from Minnesota. This wasn’t really important to the original story, but is for what happened next. You see, a random passerby decided that I was a horrible person for my angry response I recorded and posted on January 6th.

Because we all know what happened in Minnesota on January 7th.

This random dude, who had nothing to do with the original conversation, made a video calling me all sorts of names because I was *checks notes* “mean to someone from Minnesota.” Now, let’s be clear: Fuck ICE and Renee Good was murdered in cold blood by Jonathan Ross. I don’t want there to be any confusion. I talk to people in Minneapolis and Saint Paul pretty regularly, and I know how bad things are right now.

But first off, like, I can think that while also having a problem with something someone from Minnesota did that’s completely independent of the awfulness that’s happening right now. A thing that, again, the person who said it has since apologized for.

And secondly, linear fucking time exists as the entire interaction was done twenty-four hours before the awful, unrelated tragedy. Like I’m struggling to figure out why this lunatic was trying to connect a random person from Minnesota and I having a little bit of an issue with each other and fucking that.

But this weirdo who, to the best of my knowledge, has never interacted with me or my content before, made a whole call out video about it. Dude makes a lot of assumptions about me, and it’s insane.

Because I’m a stranger.

And he doesn’t know the first thing about me.

Look, I’m just going to be real with you. You should talk to creators on the internet like a stranger you’re standing in line behind at the supermarket. Maybe you’ve overheard them say some stuff. Maybe you’ve learned a few things about them by seeing what’s in their cart. It’s not insane to say something to them if it’s applicable to the situation you’re in, but not everything is appropriate. If it’d creep out, bother, or insult that stranger in line, it’s going to creep out, bother, or insult the creator you’re saying it to.

I hope that made at least a little bit of sense.

View Comments

We Will Find a Way Forward

by Trae Dorn on January 10, 2026 at 9:37 am
Posted In: Blog

I’ve been trying to put my feelings into words about the events of the last week. In theory, I’m a writer. That’s a thing I should be able to do easily. I’ve sat here with a blank document for the last hour though, and mostly just given up on trying to be remotely eloquent or thoughtful at all.

I’m just mostly angry and sad.

It’s not the first time something like this has happened in the last twelve months, just the first time it happened on camera from multiple angles. It’s been shoved on to every social media platform I’m on, and I’ve seen it far more than I wanted to. The adminstration has predictably toted out the a flat denial line, and the the comment sections of the internet are filled with real cultists and fake bots who will ignore the reality in front of their eyes for the narrative provided by their dear leader.

But we stand, and we fight. I don’t know what the way forward is. I know there is one though, and I’m confident we’ll find it.

I don’t really have anything else deep to say. Like I said, the words are escaping me right now. The Joe Hill quote “Don’t waste any time mourning. Organize!” comes to my mind again. I know I posted that a lot in November of 2024, but it still applies. They want us scared, they want us cowed, and they want us beaten. We won’t give them that though.

We’ll never give them that.

View Comments

A New Book Trailer for the Mia Graves Saga

by Trae Dorn on January 5, 2026 at 11:36 am
Posted In: Blog



It’s been a while since I put out a series-wide book trailer for my contemporary/urban fantasy series the Mia Graves Saga, so it seemed about time I do an updated one.

As you may have noticed, I say book 5, The Perfect Host, should be out later this year. I’m deep into writing it, and I am determined to have this finished, edited, and ready this year. After book five, I’m probably going to take a break from the series to write some other stuff. It’s going to mark kind of a good breaking point — a satisfying place for the series to end, but I do have ideas for more books in the series if I want to pick the ball back up again.

And anyone who knows me knows I’m not going to leave characters I like this much alone for long.

Honestly, I genuinely love writing these books. I know it took me longer than normal to get Buried Memories out the door, but overall it’s fun getting into the heads of these characters. I don’t know how many I’ll write in the end, but as long as there are more stories to tell in Parrish Mills, I’m going to keep doing them.

I just want to write some other stuff too.

View Comments

Modifying zFeeder 1.6 to Run on PHP8

by Trae Dorn on January 2, 2026 at 12:52 pm
Posted In: Blog

So I don’t make a lot of code nerd posts on this blog, but it’s mostly because I am, frankly, not that great a programmer. I like to describe myself as “experienced enough to only break things in weird ways no one expected.” But a lot of my website is run on stupid code that’s just me mucking about until I stumble on a solution, and sometimes I’m looking for a resource online which doesn’t seem to exist.

One of the random scripts I still use is called zFeeder 1.6. It’s an RSS reader, and it’s how I include the most recent Peregrine Lake comic on the front page of TraeDorn.com/TRHOnline.com and a few other things. Now, it’s not a perfect script since it was literally abandoned by its creator like 20 years ago (and there’s an exploit in the admin page — where my solution was to just delete the admin scripts and manage the thing through direct backend file modifications). Importantly though, as written, it doesn’t run on anything more recent than PHP5. And in 2026, you shouldn’t still be running PHP5.

So I needed to fix it.

And let me be clear: I’m not writing this because I think you should use it zFeeder. It’s old as hell, and there are modern solutions to building a script that reads RSS feeds. I’m writing this because someone might already be using it, and might want to keep using it.

And fixing the script so it runs on PHP8 is so fucking easy it would be insane not to document it. There are literally only two code changes you need to make to get the script to run. Just two.

First off, open “zfeeder.php” and just delete this line:

set_magic_quotes_runtime(0);

Magic quotes hasn’t been really a needed thing since PHP4, and starting with PHP7 it’s been removed entirely — so it will literally break any script.

Next, open “includes/zfuncs.php” and find the following function:

function url2file($url)

{

return(ereg_replace(“[^[:alnum:]]”, “_”, $url) . ‘.xml’);

}

In newer versions of PHP, ereg has been replaced with preg, and you just need to replace the function with this:

function url2file($url)

{

return(preg_replace(“/[^[:alnum:]]/”, “_”, $url) . ‘.xml’);

}

That’s it. That’s literally the whole thing. With those two modifications, zFeeder 1.6 should run fine on PHP7 and PHP8.

And also, remove your admin scripts if you haven’t already, okay?

View Comments

  • Page 6 of 26
  • « First
  • «
  • 4
  • 5
  • 6
  • 7
  • 8
  • »
  • Last »

About the Comic:

Peregrine Lake is a weekly webcomic written by Trae Dorn and drawn by Ethan Flanagan. Updates every Tuesday.

September 2026
S M T W T F S
« Aug    
 12345
6789101112
13141516171819
20212223242526
27282930  

Follow Peregrine Lake:

facebook
RSS

Follow Trae Dorn:

twitter
tumblr
TikTok
Threads
Patreon
Trae's website

Follow Ethan Flanagan:

twitter
tumblr
Kofi
twitter
Nerd & Tie
Nerd & Tie[dot]Social Forums
Trae Dorn Productions

©2019-2026 Trae Dorn and Ethan Flanagan | Powered by WordPress with ComicPress | Subscribe: RSS | Back to Top ↑