Mahz is the Admin. He's the man with the plan and the Guild's head honcho.
Avatar of Mahz

Status

Recent Statuses

1 yr ago
Ok, I made a major change to the database (but I'm not done). Please hop on discord if you find errors doing something!
18 likes
1 yr ago
I'm making some upgrades to the guild database. Sorry for any errors!
21 likes
3 yrs ago
I'm working on experimental server changes. Email mahz@roleplayerguild.com if you're having problems.
16 likes
7 yrs ago
Getting some more work done on the Guild today and tomorrow.
25 likes
8 yrs ago
Investigating the catastrophic performance issues.
1 like

Bio

Some favorite links I find while scrolling around.

BBCode

- @Roach: Advanced BBCode Hacks (Part 2, Part 1)
- @Exit: C O N C E P T S   ᵇʸ ᴱˣᴵᵗ – Amazing experiments in BBCode design.
Articles

- @BangoSkank: RPing Ain't Always Easy : A Collaborative Guide to the Stuff that Makes This Hobby Less Fun Sometimes And How to Make It More Betterer
Bios I love

- @Roach
- @Exit

Most Recent Posts

In Mahz's Dev Journal 11 yrs ago Forum: News
While I feel it could use some tweaking, I like the color layout. However, can we do something about this ugly font in the text editor?
I don't know what happened. Though I kinda got used to it since there's some space between the letters and it's easy to debug BBCode issues with this monospaced font. Maybe the guild just needs a different font for posts in general since it's hard for me to read Helvetica Neue (the default that my styling framework uses). For instance I don't like how capital-"I" and lowercase-"l" look identical.
In Mahz's Dev Journal 11 yrs ago Forum: News
A lot of people like recruiting from both casual and advanced. And a lot of people who fit in advanced don't yet dare go there because of the unfortunate elitism history that section had. Fortunately, not many of the elitists remain. Unfortunately, not nearly enough players remain in advanced. This new IntCk system should help on that. Quick thought... Will the system be able to "remember" the search parameters? Say if someone can't stand RPing in anime settings... Will it be able to remember that and consistently filter those away, or will said filter have to be enabled each time?
1. I think it'd be nice for users to be able to save a set of filters that they are commonly searching for. 2. And the system should remember the state of your current filter across sessions until you clear it (i.e. your current filter is saved to the database). It's this kind of thing that's not hard to implement but makes a system much more pleasant to use.
Oversized avatars can be draining on mobile users and people with slow connections. Just resize your avatar with 2 clicks and be done with it.
But won't that problem still persist when you include the option to upload pictures to the site directly?
No. Right now, you can go to massivewallpaperimages.com and paste the URL of an 8192×4608 image into the Guild's avatar box. Since the guild's code right now is 100% naive and trusting of the client (always a bad idea), every user will have to download that 8192x4608 image. If massivewallpaperimages.com has no-cache headers on their images, then everyone on the guild will have to download your avatar image every time they see it. That's why I depend on people to just follow the rules right now. Now, when I implement a system where users can upload their avatars to the guild and I can process their image, then the guild will resize and downgrade that 8192x4608 image into a 150x85 image. In other words, I will be able to enforce the 150x150 max-size constraint since I control the images. I currently do not control the images.
In New 11 yrs ago Forum: Introduce Yourself
^ Same
In Mahz's Dev Journal 11 yrs ago Forum: News
Filtering would simplify the number of places one has to look for interest checks, while allowing more options for sorting them. It'd probably make the whole thing a lot less laborious for people that have very specific tastes in RP's. For people that like the old system of checking by advanced, NRP, tabletop and so forth, there is the option of simply filtering by those categories and sorting by chronological order.
Yeah, exactly. The nice thing about it is that it can be implemented in a noninvasive way that we can experiment with.
In Mahz's Dev Journal 11 yrs ago Forum: News
And I agree that people who break the rules should have some sort of reprimand, but I'm not sure if I'd say it's best to sacrifice convenience for a "test rule" of sorts.
Oversized avatars can be draining on mobile users and people with slow connections. Just resize your avatar with 2 clicks and be done with it. Though, on that note, I also need to remember to add a "Hide Avatars?" option for users.
In Mahz's Dev Journal 11 yrs ago Forum: News
So you're hoping to have one interest check section for everyone? (Like giving General Interest Checks everything plus a system to filter?) Won't that be a little chaotic or overwhelming? Would say places like 1x1 and Arena still have their own section because there, I don't see any issues. I could see how blending them for Groups would be helpful, but in regards to including the 1x1, it may be better left alone as is. And with tags, are you thinking Level, Genre, etc? Would we ever see tags for RPs that are say Open/Closed/Recruiting?
It's just something I've been wanting to try out for a while. And it can coexist with the current structure as just another way to browser interest checks, so it's not very controversial. If you think about it, the current interest check system is not much different than a list of all interest checks where you click a filter for "1x1", "Casual", "Arena", etc. I think the forum should let GMs set their topic to open/close/recruiting and it should be filterable. Whichever forum you post your interest check becomes its first tag, and you can optionally add others. That's enough info to implement the first version of this.
In Mahz's Dev Journal 11 yrs ago Forum: News
@Mahz By "resolution," I'm referring to the quality of images. Images can be a small size, but high quality, and the addition that I'm considering is code that will only scale down the display size of the linked image, without sacrificing the number of pixels in the original image, which can be done. That way, an upload system isn't required, as it still links to the original image, but displays the output in a different size. If I recall, pre-GuildFall Guild had the feature to link an image and display it as a profile picture, but it's entirely possible that it just uploaded the image in the URL to the site.
You're right, I could simply scale it in the web browser: <img src="{{ user.avatar_url }}" style="max-width: 150px; max-height: 150px"> But the reason I don't is to kinda shame people that break the rule. When I see people with red "avatar too big" text, I sometimes fix their image or remove it entirely.
In Mahz's Dev Journal 11 yrs ago Forum: News
Hey @Mahz could you elaborate a little on this: "A new interest check system where all interest checks just show up on one big list with a lot of filtering options. I would probably fit a tagging-system into this feature." Do you mean to have a Search Feature that can sift through all interest checks and have the ability to filter buzz words? Or are you thinking something else...? Like another section where all interest checks (1x1, arena, groups, general, etc) are and someone can look through them without disrupting say, the 1x1 Interest Check section? And as far as tags go, (since I'm not "for" them, I'm just trying to get a sense of where they'd be or how they'd be used and viewed in a normal subforum) where would they be seen? Would the OP of a thread toggle certain generic tags and then in the thread, they'd be at the bottom? But if someone's looking in a section, there wouldn't be tags unless say, you hovered your mouse over the title or looked inside the thread itself? Just curious as to how your idea would be implemented and what the greater details would be. I do see a usefulness to be able to find what you're looking for, if say you're looking for fantasy but don't know what level or size group you have in mind. But with the additions you've done recently, I'd say things are looking very nice.
The current interest check system (a subforum for each RP forum) grew from a limitation of vBulletin. You currently have to click into eight different subforums to browse all interest checks which is silly. It also causes a lot of fragmentation. A lot of casual RPs aren't much different from advanced RPs, and since not everyone cross-pollinates between the subforums, every interest check loses out on potential visibility. A better system would be to display all interest checks on one page. Free vs Casual vs Advanced, Tabletop, 1x1, Nation -- these are all merely traits of the interest check. I want to filter interest checks by Nation + Tabletop. Nation + Fantasy. 1x1 + Adult + Advanced. Titles containing "Naruto" + Free + Casual. Whatever. This way, all interest checks have maximum visibility, and you aren't forced into the current organization silos which, frankly, don't make sense. It's merely a hack that 1x1 is its own forum. It's something I want to launch alongside the current system at roleplayerguild.com/interest-checks as I experiment and get feedback. At first, it will automatically list interest checks in all the interest check subforums so that I can build it without disrupting the current system.
In Mahz's Dev Journal 11 yrs ago Forum: News
@Dinh AaronMk: I'm having trouble understanding what problem you're having. Nothing should have changed with URLs. As @TheMaster99 points out, the title is totally superfluous and doesn't actually do anything. For linking to posts, I recommend using their permalink form (Example: http://www.roleplayerguild.com/posts/2404669). That's called the "canonical URL" in that it will never change but will always redirect to the the right location in a topic. For example, while it hasn't happened yet, it's possible for the page of a post to change. If I update the system to display 25 posts per page instead of 20, then the pages will change. If I allow people to configure their own posts-per-page setting, then links to posts on pages will not be consistent. The /posts/12345 permalink will point to the right page and that's why it's a "permalink" (won't change), but a link to /topics/42/ic?page=4#post-12345 will possibly break. If you think you've found a bug that you can help me reproduce, I'd like to fix it.
The Guild already supports high res image embedding. What prevents using the same concept for profile pictures, and then have the server scale it down, and perform all the necessary alternations (such as the displayed resolution, as you mentioned)? For instance, is there anything that would make it impossible for the server to take these image URls, make the alterations server-wise, as if it were a local file, and display the altered output?
It's just a low priority feature because the effort-to-reward ratio is abysmal. To support server-side image processing, I have to allow image uploads to the server, ensure the processing can't be used to DOS the server, upload the resulting images to a remote datastore, ensure that uploading new images will invalidate the old images, and then maintain it. There's just a lot of moving parts for a feature that's only slightly more convenient than pasting an avatar URL into a box. It's something I will eventually do, but the opportunity cost is too high right now. I'm not sure what you mean by "high resolution" in this context, though. The avatar limit is 150x150 pixels regardless of whether you scale the image yourself or the server does it for you. I link to imgur.com in the avatar URL box because it has a built-in scaling service if you click "Edit Image". I count on people to not abuse the system by using a 5mb gif as their avatar. @Captain Jordan: GraphicsMagick and ImageMagick are language-agnostic command-line utilities (C libraries). Pretty much every language that runs on the server including Javascript (via Node.js runtime) has wrappers for it. Or you can just execute commands on the shell from the server-side language. For example, in Javascript: conosle.log(yield shell.exec('ls')) => 'file1.txt\nfile2.txt\nflower.png'. I think you may be looking at server-side Javascript (not much different than Python, Ruby, Scheme, ...) through the lens of client-side Javascript running in the browser. The latter is obviously very limited. The main drawback of Javascript is that it's single-threaded, but same with Python and Ruby and PHP -- effectively -- due to their global interpreter lock (GIL). You simply shell out CPU-bound operations to other processes. In this case, ImageMagick/GraphicsMagick, which may spin up a dozen threads to process an image before handing the result back to the Node.js process.
© 2007-2026
BBCode Cheatsheet