Featured & Recent Items
Featured Article
By AstroMacGuffin dated Fri Oct 14 2022 14:46:05 GMT+0000 (Coordinated Universal Time) last updated Mon Jan 02 2023 18:53:34 GMT+0000 (Coordinated Universal Time)![dancing.png](/static/img/mm/artflow/screamsheets/3/dancing.png) Mourning Edition is a free adventure series for Cyberpunk Red. The screamsheet is published by independent cyberpunks, for a general audience, trending towards those living on or near the street. The adventure content is heavily RP-dependent and focuses on street-level play and finding ways to do a little bit of good instead of just blowing everyone's brains out on sight.
The series continues with branching possibilities for the third issue. I'll publish each part of Mourning Edition #3 as it's completed, and update this post to include all three of its branching paths.
The second adventure in the series, "Her Biggest Fan", has three main possible outcomes.
The best possible ending leads to another opportunity to increase the PC's Reputation, by playing as security and entertainment at a major local band's afterparty. Here, they'll get the chance to schmooze with other street-level movers and shakers, and maybe have another run-in with the potential cyberpsycho from adventure #2. Best of all, any Rockers/Medias in the crew will have an opportunity to impress an exclusive crowd of local influencers using whatever kind of material they're good at making.
[Get Mourning Edition 3-1 here! (PDF)](/static/pdfs/Mourning-Edition-3-1-full.pdf)
If the PC's did good at the show but not enough to get the band's attention, a Media will track them down for an interview. The interview pays next to nothing, but the interviewer can also do the PC's a favor -- introducing them to a new Fixer, and/or setting them up with a selection of fairly lucrative gigs.
[Get Mourning Edition 3-2 here! (PDF)](/static/pdfs/Mourning-Edition-3-2-full.pdf)
Featured Article
By AstroMacGuffin dated Sun Oct 02 2022 16:00:43 GMT+0000 (Coordinated Universal Time) last updated Fri Oct 14 2022 15:18:03 GMT+0000 (Coordinated Universal Time)![6c5bf2b2a03546229532e1f45fb0fd47.webp](/static/img/mm/artflow/entertainment/6c5bf2b2a03546229532e1f45fb0fd47.webp) Mourning Edition is a free adventure series for Cyberpunk Red. The screamsheet is published by independent cyberpunks, for a general audience, trending towards those living on or near the street. The adventure content is heavily RP-dependent and focuses on street-level play and finding ways to do a little bit of good instead of just blowing everyone's brains out on sight.
I'm on a roll! This screamsheet series has just become an ongoing campaign, with the story continuing in Mourning Edition #2. I may have gotten a little bit of Steven Universe in your Cyberpunk. I'm not sorry.
[Get the PDF here.](/static/pdfs/Mourning-Edition-2-full.pdf)
Sometimes the peaceful option is the best option, and sometimes the reward for playing is letting your GM get you in the feels. As I said when publishing part 1, this is a gutterpunk level campaign, but of course the PC's will be able to gradually work their way up the social ladder and maybe become edgerunners someday. My goal is to show players how they can get maximum enjoyment out of the street-level version of Cyberpunk. I hope you like it!
Featured Article
By AstroMacGuffin dated Fri Sep 30 2022 17:21:46 GMT+0000 (Coordinated Universal Time) last updated Fri Oct 14 2022 15:18:47 GMT+0000 (Coordinated Universal Time)![01fbc41c2a6f42bca30395e7bc5af990.webp](/static/img/mm/artflow/screamsheets/1/01fbc41c2a6f42bca30395e7bc5af990.webp) Mourning Edition is a free adventure series for Cyberpunk Red. The screamsheet is published by independent cyberpunks, for a general audience, trending towards those living on or near the street. The adventure content is heavily RP-dependent and focuses on street-level play and finding ways to do a little bit of good instead of just blowing everyone's brains out on sight.
I've always loved the Screamsheet format, and Cyberpunk Red has brought it back. Here is my first homemade Screamsheet from a news zine I've named "Mourning Edition" -- it contains a low-level adventure with the potential for big (temporary) gains and a lot of fun. It also has the potential to introduce three new characters to the crew, if you're looking for a way to bring in new players.
And (as is my tendency) the adventure offers a chance to do a little bit of good... As is also my tendency, the content is more gutterpunk than edgerunner, which I feel is more authentically Cyberpunk, especially for a starting adventure or the beginning of a campaign...
[Get it here! (PDF)](/static/pdfs/Mourning-Edition-1-full.pdf)
Featured Article
By AstroMacGuffin dated Wed Sep 28 2022 18:42:02 GMT+0000 (Coordinated Universal Time) last updated Wed Sep 28 2022 22:16:34 GMT+0000 (Coordinated Universal Time)![8bf634c7bc26411cb81a6a15efc71a25.webp](/static/img/mm/artflow/other/8bf634c7bc26411cb81a6a15efc71a25.webp) I'm loving the amount of detail Cyberpunk Red puts into its setting -- and I'm slightly overwhelmed by it. Thankfully, [artflow.ai](https://artflow.ai) exists to create images out of basically any idea or set of visual elements... So, to help me tell the districts apart, I'm creating this pictorial guide. I hope it helps you, too!
As a quick note: these aren't buildings or vehicles from the canon, they're just atmosphere.
Districts are presented in the order they're given in the Cyberpunk Red core rulebook.
Featured Article
By AstroMacGuffin dated Tue Sep 20 2022 12:31:13 GMT+0000 (Coordinated Universal Time) last updated Sun Sep 25 2022 12:53:06 GMT+0000 (Coordinated Universal Time)![Let's make RPG hacking rules more exciting without changing the rules.](/static/img/mm/cyberspace/ai-gcd7b59be5_1280.jpg) Here's a hot take: when I first read the Netrunning rules for Cyberpunk Red, I hated them.
I've always been partial to the hacker, in whatever high-tech RPG I play. My interpretation of the Cyberpunk Red netrunning rules was the same as my interpretation of how hacking rules have changed over the years in Shadowrun: too many people complained about them, so they were dumbed down. (Full disclosure: I'm that one guy who likes the Shadowrun 1st Edition decking rules.)
As a lifelong computer nerd, I want the hacking rules to make me *feel* like a system cracking expert. But RPG rules will always be abstractions. And perhaps the RPG industry will be forever spooked, thanks to that time the US government raided the GURPS studios because the hacking rules for *their* cyberpunk game were a little too accurate...
As players and GM's, we're accustomed to making narratives out of abstract rules. In this article, we're going to map real-world hacking concepts onto RPG hacking rules.
Featured Article
By AstroMacGuffin dated Sun Sep 18 2022 11:17:59 GMT+0000 (Coordinated Universal Time) last updated Mon Sep 19 2022 01:47:57 GMT+0000 (Coordinated Universal Time)![ConcisionRun - helping you survive the mean streets since 2020](/static/img/mm/cyberpunk/streets-g234df07df_1280.jpg) I've been sick for a week, so here's a low-effort post spotlighting something I did years ago but am still proud of. I call it ["ConcisionRun" -- it's a concise rewrite of the rules for 1st Edition Shadowrun](/static/pdf/__ConcisionRun-0_1-(2022-09-18).pdf). It's been stuck at version 0.1 all its life, partly because I like conservative version numbers, and partly because I got it done in one big push and have barely made any revisions to it since. It's just 40 pages long, broken down as:
- 7 pages of core mechanics, game loop suggestions, and lore
- 4 pages for character creation
- 9 pages for combat including vehicle combat
- 12 pages for the magic chapter
- 7 pages explaining the matrix and decking rules
Features include:
- art from independent artists (used in accordance with their Creative Commons licenses)
- PDF bookmarks to help you find what you need
- searchable (obviously)
- core book page number references for anything omitted or benefitting from further explanation
- color coded per chapter
- table of contents at the beginning of each chapter
I've been told numerous times by members of the [Classic Shadowrun discord](https://discord.gg/HBDPU6k) that it's helped people rope their friends into trying first edition Shadowrun. Of course, it's free, but you still need the core rules to play.
Featured Article
By AstroMacGuffin dated Sat Aug 27 2022 11:08:24 GMT+0000 (Coordinated Universal Time) last updated Thu Sep 08 2022 11:43:14 GMT+0000 (Coordinated Universal Time)![She dreams in code](/static/img/mm/coding/jswoman-g6612c97cb_1280.jpg)There's one major difficulty in writing this series: everything should come first. That is to say, whatever I could possibly put into lessons 2, 3, or 4, it should have been in lesson 1. The goal of this series is to write for people who are frustrated because project-based tutorials can only teach so much. You've slammed into some bugs and don't have the fundamental JavaScript knowledge to fix them. But specifically JavaScript-related knowledge isn't the end-all, be-all of coding in JavaScript. To write good code in any language, you need to grok **logic**.
But what does that mean? For programmers, logic means breaking your tasks down to tiny steps: finding where the `if` and `else` statements should go, along with the other control flow features; specifying exactly what those `if` statements will hinge on; figuring out what variables and functions you need; discovering what those functions should take as input (parameters), and give as output (return values); checking the specifics of any API's you plan to use, so that you can account for their input and output formats; and so forth.
When I was a kid, we did all this and turned it into flowcharts, but I think **pseudocode** is better. Starting with pseudocode puts you in the trenches of your project and allows you to seamlessly switch between writing code and pseudocode, inline with each other. But what's perhaps even better than pseudocode, for a beginner doing beginner projects: a plain old list.
Mastering programming logic leads to making fewer mistakes. Each mistake can easily cost you an hour or more. Let's get started.
Featured Article
By AstroMacGuffin dated Sat Aug 20 2022 08:55:37 GMT+0000 (Coordinated Universal Time) last updated Mon Aug 22 2022 22:16:57 GMT+0000 (Coordinated Universal Time)![fingerprint-g27965da2f_1280.jpg](/static/img/mm/data/fingerprint-g27965da2f_1280.jpg) I've been making personal websites off-and-on since the 90's, so one can probably assume I've lost websites to hackers in the past. Once the rootkit is installed on your host and the sketchy ads are in your articles, it's very difficult to get them all out. So security is best handled as a preventative measure, not a reactive one. In this article, I'll walk you through the entire process of integrating with Google Authenticator for 2FA (two-factor authentication). I'll be using MongoDB, Node.js, and Express.js.
If you've seen other articles covering this topic, you may have noticed that they use `speakeasy`, an NPM package that hasn't been updated in 7 years. That's not the best look for a security kit. Thankfully, another author has forked that package and updated it just this year, so we're good to go. Other articles also tend not to cover the front-end, which is crucial to understanding how 2FA is even supposed to work. This article takes you through the entire integration.
### Ingredients
- your existing login system
- the NPM package `express-session`, which you should already be using in your login system
- the NPM package `connect-mongo`, probably
- the NPM package `@levminer/speakeasy`, a fork of `speakeasy`
- the NPM package `qrcode`
- a couple of database methods
- a significant rejiggering of the registration and login processes
Featured Article
By AstroMacGuffin dated Tue Aug 09 2022 15:04:52 GMT+0000 (Coordinated Universal Time) last updated Thu Aug 11 2022 20:50:30 GMT+0000 (Coordinated Universal Time)![digital-identitySmall.jpg](/static/img/mm/cyberspace/digital-identitySmall.jpg) In part 2 we dealt with `async`/`await`, objects and classes. In part 3, we're getting into Arrays and a little further into objects, plus we're taking another bite of control flow. These unrelated topics are closely linked in actual use.
In this lesson, we'll cover:
- arrays
- how to find your way around objects and arrays
- data type methods & built-in objects
- comparison operators
- `for` loops and the `Array.forEach` method
- the Increment (`++`) and Decrement (`--`) operators
- `while` loops
Featured Article
By AstroMacGuffin dated Thu Aug 04 2022 19:22:18 GMT+0000 (Coordinated Universal Time) last updated Wed Aug 17 2022 11:22:33 GMT+0000 (Coordinated Universal Time)![Blue electronic nodes comprising a field of nodes](/static/img/mm/cyberspace/daffodill-nodesSmall.jpg) If you finished part 1 of this series and thought to yourself, "that wasn't enough for one lesson, I need more immediately!", then you're an odd one, because that was a lot of information. But here we go again! After a quick roundup of smaller topics we're going into objects, classes, and async/await (aka asynchronous code)!
### This Lesson
First a round-up of important topics that don't fit elsewhere: `null` and `undefined` as both data types and values; and Garbage Collection aka GC -- JavaScript's technique for memory management. Then I explain everything a beginner needs to know about asynchronous code aka `async`/`await`. Then we jump headfirst into objects and classes.
Until recently, programming meant writing lines of code in full confidence that, when you run that code, line 1 would finish before line 2 would begin. And, today, it's still mostly the same. But then a rookie slams headfirst into an asynchronous function. Today we're going to treat `async`/`await` as a fundamental.
It's also time to cover objects and classes. Object Oriented Programming is probably the single most powerful tool in rapid programming ever. You'll learn how to treat code like layers in an image, stacking them on top of each other to create an end result that can save a professional programmer hours per task.
/toybox/By AstroMacGuffin last updated Sun Aug 14 2022 21:33:23 GMT+0000 (Coordinated Universal Time)
/ref/By AstroMacGuffin last updated Wed Sep 14 2022 10:54:24 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Sun Aug 21 2022 05:57:06 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Sat Aug 20 2022 17:52:38 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Sat Aug 13 2022 12:12:45 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Mon Sep 05 2022 10:20:46 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Sat Sep 03 2022 22:39:09 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Sun Jul 31 2022 19:41:51 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Thu Aug 18 2022 14:17:35 GMT+0000 (Coordinated Universal Time)
/blog/By Xhojn last updated Tue Sep 12 2023 11:04:14 GMT+0000 (Coordinated Universal Time)
By Xhojn last updated Wed Aug 16 2023 20:28:21 GMT+0000 (Coordinated Universal Time)
By Xhojn last updated Tue Nov 08 2022 12:49:33 GMT+0000 (Coordinated Universal Time)
By Xhojn last updated Tue Sep 13 2022 16:36:17 GMT+0000 (Coordinated Universal Time)
By Xhojn last updated Fri Sep 09 2022 11:27:47 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Sun Sep 04 2022 19:29:54 GMT+0000 (Coordinated Universal Time)
By AstroMacGuffin last updated Thu Jul 28 2022 21:42:54 GMT+0000 (Coordinated Universal Time)