INeedMana

joined 1 year ago
[–] INeedMana@piefed.zip 1 points 15 hours ago* (last edited 15 hours ago)

Ryuutama, for example, is literally called “the Japanese Hayao Miyazaki RPG.” It’s about travel, exploration, and gentle adventure. The mechanics reinforce that with weather systems, caravan management, and a focus on journey over destination.

(...)

SRS (Standard RPG System) games in Japan take this even further. Instead of trying to model physics, they model drama. You don’t have “climbing skill”, you have I’m the agile thief with a heart of gold as a mechanical tag that pays off when it’s relevant.

At this point I'd like to see someone walk us through a selected list of Japanese systems

btw
what's up with those "Important messages"?

[–] INeedMana@piefed.zip 2 points 17 hours ago (1 children)

It gets easier with each new system. After a while it becomes "ok, so it's approach to skills like in the other system and the armor rules from that other one". What I do when assessing a new one is:

  • how the basic mechanic works?
    • we build the roll only from PC or also consider gear?
    • how modifiers work? + to roll, step up dice, another dice, move TN?
    • what are the odds of success, failure and "bigger success" on three edges of of skill - lowest, middle, top
    • what does the bigger success mean mechanically?
    • are there re-rolls/pushing the roll? Does it change the odds or is only a re-roll
  • how leveling up works?
    • what is needed to level up?
    • how much does a level up change in the roll odds?
  • how does money work?
    abstract vs counting all the bills
  • is there anything exotic in the rest of the rules
    things that are there to convey the feel of the setting
    • contacts working like money
    • rules for gear getting used up
    • running out of ammo
    • meta currency
      is it a hard earned boon or "the spice must flow"?

With crunchy systems I'd then forget about the more intricate half of the system, get the game on and try to have combats of varying size during first few sessions. Most of the time, if there's crunch in the system, it's mostly about combat.
Write on players' sheets shortcuts what to roll on doing what. Like next to the gun name "shooting d6+d8".
During first few games when you remember that there was some more crunch in the system but don't remember exactly, don't stop to look up. Ask a non-spotlighted player to search for it but "for now let's roll this and that against that" and keep going.
Keep an eye out if they are getting into the crunch. If they won't follow you down the rabbit hole in a few (3-5. not less) games, it might be that either you get the rules etched in your brain or that level of crunch is just not for this table

And on closing note, as far as I understand what T2k is, I would guess that getting their hands on an MG is not something common in the setting and the complexity of the rules for that are an outlier. I might be wrong, though

[–] INeedMana@piefed.zip 13 points 1 day ago (5 children)

Ah, but you see "asshole with a lifetime of poor emotional self regulation" is not "scheming fascist with an agenda". That's what I'm arguing with in your take

And in the scope of the question, which used plural "devs losing their minds", I think that it would be a vilification to effectively say "they snap because they are fascists"

There are and will be non-fascist (and IMO also non-asshole) devs who snap. And I think some times it will be because of the feeling of responsibility for something, "either I fix it or it won't get fixed" situation, lack of social/team/peer safety net, ... (in my first comment I tried to rather portray the situation than name all those things because I just can't name all of them)

[–] INeedMana@piefed.zip 10 points 1 day ago (8 children)

The question I responded to was rather a general one. And I think that seeing all dev-related dramas as "that guy was just fascist all along" is similar to saying "all X are thieves" - a simplification that is easy to choose because it addresses our emotions regarding what has happened but not necessarily always the best explanation

That is when they have a meltdown and quit the project because demand for bug fixes or new features it too much pressure.

That requires self-awareness to ask oneself "maybe I need a break?" and I think such decision can be hard to make due to sunken cost fallacy. I think that with the pressure of the pings about bugs and requests etc, it's easy to get into mindset of "it's either on or off" with nothing in between. Because 5 bugs solved means only 3 other to go.
And the second option is to dig in harder and in this case "curate the feed. All of it. Whatever that means"

I'm not saying that that person did not act out of an agenda. But I can imagine a set of choices that lead to a catastrophic breaking point

[–] INeedMana@piefed.zip 38 points 1 day ago (11 children)

I think it's the pressure and the solo developer model

You put something out. It seems to be running. There are bugs. You fix them. There are more bugs (pareto is a PITA). You fix them too. Someone accuses you of sacrificing kittens in the basement. There are ideas for features and more bugs. Some worded in an entitled or just tone-deaf way. Very often you're the only one working on the project and saying "I accept PRs" somehow became received as a FU. It becomes hard to put the project away for just a week
You are perpetually in "I-fix-it" mode
Not to mention that in order to even start a project like that one needs to have at least a bit of "fuck it, I'll do it myself" mentality

It's a pity that !unfinishedprojects@forum.unfinishedprojects.net wound down. I hoped it might have been a space for projects to find communities. As we see around, it doesn't require a 10 person team with a kanban board to write something that works. But on the other side of the spectrum I think a project needs some sort of community around it. So even if there's only one dev, someone else could write the tutorials, less technical parts of docs, help new deployments etc

[–] INeedMana@piefed.zip 1 points 1 day ago (1 children)

Isn't that what could have been said about discord vs slack ~ten years ago?

[–] INeedMana@piefed.zip 2 points 1 day ago

I'm already subscribed to that comm, thanks :)

limited app repositories, excluding waydroid, I mean linux software, but Ubuntu Touch at least has Libertine Containers with PPA support….

Can't apps be compiled on the phone AUR-style?

I had heard of Arch mobile, thanks to Arch ARM, but again, not a lot of documentation that I’ve seen

I've been using Arch ARM on my SBC. I'd say the project still feels very young

[–] INeedMana@piefed.zip 1 points 1 day ago (3 children)

Mainly I worry that once they get following they get bought out by Google or other Microsoft and product will be killed. Open sources would mitigate at least some of the damage

[–] INeedMana@piefed.zip 2 points 1 day ago (3 children)

I haven't been into the topic for long but I already recognize your nick ;) I'll keep an eye on pmOS

btw, is https://wiki.postmarketos.org/wiki/Devices up to date, or there are better sources? I'm asking because dd-wrt had (last time I checked) a mess in their wikis, so it might be similar case

[–] INeedMana@piefed.zip 4 points 1 day ago

!emacs@lemmy.ml !emacs@programming.dev
I've been using it for many, many years. C++, Bash, Python, LaTeX, Rust...

The setup and learning can take a bit but once you figure it out, you can move your config file across machines. You can define your own functions, define shortcuts per mode you're in and lots more. Works both in GUI and CL

[–] INeedMana@piefed.zip 5 points 2 days ago (12 children)

I'm also looking around what to switch to. What worries me in Sailfish is that AFAIK the OS is not fully open-source. Jolla goes out of business and community has nothing to continue on

Murena on the other hand is still tied to AOSP

[–] INeedMana@piefed.zip 24 points 2 days ago

I appreciate the self-awareness 😄

 

Rise of the Lazy Gamemaster is a stand-alone book for lazy and aspiring lazy gamemasters. You don't need any of the previous books to get tremendous value out of Rise of the Lazy Gamemaster. It stands well side by side with other Lazy GM books, bringing new angles to the concept of lazy gamemastering and new tools to help you prepare and run awesome games.

This book isn't a rewrite of Return of the Lazy Dungeon Master. Return focuses on three main lazy GM activities: preparing your game, running your game, and thinking about your game.

Rise of the Lazy Gamemaster breaks down the concepts of lazy gamemastering into the following topics:

  • The eight steps of Lazy GM Prep expanded by eight years of experiences and feedback.
  • Single session, short, and long campaign prep and execution.
  • Adventure types – what works well, where the traps lay, and how to customize the eight steps based on the adventures you're running.
  • Quest models – those that work well and those that don't.
  • The Lazy GM's Toolkit with sixty tools, tips, and tricks to run your games.
  • Example adventure scenarios using the eight steps.
  • Piles of random tables and maps to inspire your adventures.

I really liked "the return..." I think that one also might be worth reading

 

This popped up in my RSS feed and I found it a good read

For some time now I've felt that D&D-like d20 mechanics is cursed to have the problem of inflation. But it was refreshing to see someone else point it out too

 

As in title. Create post -> link -> paste URL in URL -> nothing happens

I checked after someone else asked, so it's not only me

 

In Admin->Moderation (/admin/reports) I see a bunch of reports. I open one and I see that the object of report has been already deleted. I think in such case the report should be taken down from the list or grayed out - the latter idea so admin team don't loose history
Or maybe the list should be split in two, like registration does?

Also, I would like to be able to mark reports "resolved" - hidden or grayed out just for me, so I know I already decided that report is not for me. For WebUI maybe store the list of "resolved" reports in browsers' store, so it doesn't pump up the db?

 

I've heard the system referenced a few times and it's on sale currently

So I'm wondering what it is exactly. I understand it's d6, low crunch, more or less Planescape
But I'd like to know a bit more. Anyone has played it and has some more verbose take?

 

I've heard a lot about Burning Wheel that made me interested. But is it only good for playing in the included fantasy setting?

How hard is it to hack/reskin it into some other setting?

 

NLnet grant announcement: https://github.com/Helium314/HeliBoard/issues/2226
NLnet project description: https://nlnet.nl/project/GestureTyping/

Swipe-o-Scope repository: https://codeberg.org/eclexic/swipe-o-scope

CC BY-SA 4.0 license: https://creativecommons.org/licenses/by-sa/4.0/

Article on data anonymization: https://www.science.org/doi/10.1126/sciadv.adn7053

Contact me:
My Mastodon: https://mstdn.social/@theeclecticdyslexic
My Matrix: https://matrix.to/#/@eclexic:matrix.org

Text based tutorial: https://github.com/Helium314/HeliBoard/wiki/Tutorial:-How-to-Contribute-Gesture-Data

It is recommended you install Heliboard through the F-Droid app, unless you know what you are doing!
How to install F-Droid: https://f-droid.org/en/docs/Get_F-Droid/
Heliboard on F-Droid: https://f-droid.org/en/packages/helium314.keyboard/
Heliboard on Github: https://github.com/Helium314/HeliBoard/releases

Gesture typing library links from MindTheGApps:
ARM64: https://gitlab.com/MindTheGapps/vendor_gapps/-/blob/fe250848941171fe339ca9a44bc9a42aefb0be7d/arm64/proprietary/product/lib64/libjni_latinimegoogle.so
ARM: https://gitlab.com/MindTheGapps/vendor_gapps/-/blob/fe250848941171fe339ca9a44bc9a42aefb0be7d/arm/proprietary/product/lib/libjni_latinimegoogle.so
X86_64: https://gitlab.com/MindTheGapps/vendor_gapps/-/blob/fe250848941171fe339ca9a44bc9a42aefb0be7d/x86_64/proprietary/product/lib64/libjni_latinimegoogle.so


Other ways to contribute:
Providing packaging scripts for Swipe-o-Scope:

  • for Windows
  • for macOS
  • for Flatpak. This is a big task; Swipe-o-Scope uses QT modules that are not currently supported by the KDE SDK (QTGraphs module). Swipe-o-Scope is also written using the PySide6 python library, rather than in C++. To build Swipe-o-Scope for flatpak, you are probably going to have to talk with KDE developers and the PySide6 baseapp maintainer. You will need them to update the SDK and the baseapp to support PyQTGraph. This is all in addition to needing to know a little about building flatpaks.
  • for Linux via means other than Flatpak (e.g. the AUR)

Providing input or code if you are knowledgeable about any of the following:

  • gesture typing using hand-designed algorithms... (bonus points if you have worked on a paper or product that you could help us make an open implementation of WITHOUT violating anyone's intellectual property)
  • gesture typing using neural nets and constrained compute, such as on mobile devices without TPUs... (unfortunately you may not be able to contribute here effectively until we have the data collected, organised, and released at the end of the collection period)
  • the JNI in Android... (bonus points if you have a working knowledge of the AOSP Latin IME JNI library)
  • natural language processing for next word prediction, specifically comparing the suitability of a set of candidate words against one another... (either by ngrams or any other low-compute method available to a mobile device with no internet connection)
  • building a diverse small-to-medium sized multi-lingual corpus of natural language text we could legally use to simulate context... (not stealing copyrighted content in bulk, like certain companies.)
  • making desktop apps more user-friendly... (Swipe-o-Scope doesn't currently give user feedback that would be helpful to anyone that doesn't feel comfortable in a terminal)
  • being patient while performing thorough code review and audits of rust code... (the gesture recognition library is most likely to be in rust, despite me being more experienced in other languages, as I am making a bet on it still being popular in a decade or three)

Full disclosure: out of concern for copyright issues and code quality, we will not be accepting ANY LLM generated contributions to this project. Neither in the form of code, nor corpus text. Thank you!

If you work on another on-screen keyboard, have the ability to collect data from it, and you want to add to the data set - you can contact me about some more particulars of the file format. Not all requirements of the file format are obvious and should not be assumed!

We are still in early stages, and this project is likely to continue for quite a while. It may continue well past the end date of me getting paid by the NLnet. Don't hesitate to reach out if you think you can help in some other way! We can use all the help we can get; gesture typing is a hard problem with a very high ceiling. Every little improvement matters!

Remember, even sharing this project around will be helpful at the moment. I can't be boosting this all the places I maybe should be; I have to be working on code, and this video took long enough!

I thought it might get some reach when cross-posted here

 

First I got notified about Para Bellum. Now I got pinged about a bit of short-fiction.

I think that's cool, I haven't looked into those books but IMO there haven't been much about Desert Wars in the official lore

 

This post got me thinking: on Discord we've been using "HammerTime tags" so the time in a message was being translated to everyone's local time. Here it would, of course, necessitate everyone to set up their timezone in the settings but apart from that, I guess it could be doable too, right?

 

I hope it's ok to ask for some feedback here. Of not, please let me know. The rules did not sound like against it

I'm very new to Rust. And while in general my coding background is ok, Rust still feels alien to me. I think I'm just still at "how to think in Rust" part of the curve.

So I would like to ask here for opinions on the following bit of code. I know that those unwrap are too optimistic for production, and I could figure out how to pass io::Error from the function all the way up to the shell. But what are other choices that I don't see?
What would you write differently? What looks like Pythonisms/C++isms? Or is missing the mark completely?

use std::{fs, io};  
use std::path::PathBuf;  
use std::convert::TryFrom;  

use clap::Parser;  
use parquet::file::reader::SerializedFileReader;  
use parquet::record;  
use csv::WriterBuilder;  

#[derive(Debug, Parser)]  
#[command(version, about, long_about = None)]  
struct Args {  
    dir: String,  
    #[arg(default_value = "0")]  
    count: usize  
}  

fn get_files_in_dir(dir: &str) -> Option<Vec<PathBuf>>  
{  
    let dir = fs::read_dir(dir);  
    if dir.is_err() {  
        return None  
    };  
    let files = dir.unwrap()  
        .map(|res| res.map(|e| e.path()))  
        .collect::<Result<Vec<_>, _>>();  
    if files.is_err() {  
        return None  
    }  
    files.ok()  
}  

fn read_parquet_dir(entries: &Vec<String>) ->  impl Iterator<Item = record::Row> {  
    entries.iter()  
        .map(|p| SerializedFileReader::try_from(p.clone()).unwrap())  
        .flat_map(|r| r.into_iter())  
        .map(|r| r.unwrap())  
}  
                            
fn main() -> Result<(), io::Error> {  
    let args = Args::parse();  
    let entries = match get_files_in_dir(&args.dir)  
    {  
        Some(entries) => entries,  
        None => return Ok(())  
    };  


    let mut wtr = WriterBuilder::new().from_writer(io::stdout());  
    for (idx, row) in read_parquet_dir(&entries.iter().map(|p| p.display().to_string()).collect()).enumerate() {  
        let values: Vec<String> = row.get_column_iter().map(|(_column, value)| value.to_string()).collect();  
        if idx == 0 {  
            wtr.serialize(row.get_column_iter().map(|(column, _value)| column.to_string()).collect::<Vec<String>>())?;  
        }  
        wtr.serialize(values)?;  
        if args.count>0 && idx+1 == args.count {  
            break;  
        }  
    }  
    
    Ok(())  
}  
view more: next ›