MoreRSS

site iconBear Blog Trending PostsModify

Ranked according to the following algorithm:Score = log10(U) + (S / D * 8600), U is Upvotes , S/D is time.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Bear Blog Trending Posts

i got myself a dumb watch

2025-11-14 05:19:00

when i first talked about this my friend ivana said to me "I can't believe that a normal digital watch can be referred to as a "dumb watch" in today's time.". she is so right lmao but i am still going to roll with the sensationalist phrase.

i used to have a small digital casio as a child. it had an orange backlight and i loved that thing. i can't remember when i stopped wearing it but my thought process was probably similar to everything around me is telling the time so i don't really need this. i went years without wearing a watch after that.

then i started looking into smart watches/bracelets couple years ago and got myself a realme watch s. that thing was fine. for the price it did all the things i could honestly ask for. it had a great form factor and it was built fairly well. my relationship with it soured after i became more privacy conscious and got tired of it's companion app and it's privacy invasive shenanigans. i also didn't really want to get notifications from my phone. i'm trying to stay away from that thing and having a buzzer in my wrist doesn't really help with that. i tried to use that without the companion app but there were several problems for me. one was there was no way to turn the bluetooth for the watch - ever. another was this thing that was supposed to keep time couldn't even do that without it's companion app connecting to a server. it was off by several minutes very quickly. i gave up on trying to repurpose it as a normal watch shortly after that.

so couple weeks ago i was browsing youtube and somehow i got sucked into a video about the most sold watch ever - the casio f91w. i thought like, why not. it is not that expensive and i could use a watch. i was put off by the almost non functioning backlight though. then i looked into it more and was immediately charmed by another model from casio called the w217h. it was a bit bigger and thicker than the f91, had a better backlight and i was mesmerised by the negative display on the model i liked. well after getting it i can say this certainly is a watch. it tells the time and doesn't do a whole bunch more other than that. it's great. my only complaints would be that it doesn't have multiple alarms and doesn't feature a countdown timer for me to time my boiled eggs. i think i can live with that though.

casio w217h on my wrist

also getting this didn't really change my life in any big meaningful way like ooh i am more aware of the time i'll be more productive and do my responsibilities in a timely manner - no i am still the same old me and this isn't really a productivity hack. it looks nice, tells me the time and makes me happy. that's all i need.

reply via email

liked this post? you can follow my rss feed for more. i'd also appreciate if you toasted this post below. 🍞

Your blog, your home

2025-11-14 00:45:00

Today I revisited a place where I’d done a house inspection four years ago. I was happy to see that the owner had embraced many of the recommendations from my last visit. My job was mostly about removing things from the old list, since it was now fixed.

Before I left, she said: “Next time there will be even fewer recommendations left.”

I have no doubt that will be the case.

I also have zero doubt that if someone had looked at the list of recommendations as a whole, nothing would’ve changed. It would’ve felt overwhelming, like an impossible task.

By breaking it down and prioritizing what’s most important, it becomes manageable. It even becomes quite satisfying — making a plan, taking one step at a time, seeing the progress.

I live in a rental apartment, but I also have another kind of home. You’re visiting it right now. The description for my blog says: “Welcome to my home for everyday stories...”

It’s taken quite some time to get to where it is today. And I still have lots of things I want to do with it. It’s a journey, a creative outlet, a place I keep building, furniture by furniture.

Maybe you’ve thought about launching a blog. Maybe you’ve felt a bit overwhelmed when looking at other blogs.

Don’t be. We all start with an empty home. Then we add a little paint here, hang a picture there, and decorate it with things we like.

A blog becomes a home, that’s the beauty of it, and I’m looking forward to visiting yours.

This is how I read Bear posts (and maybe you should too)

2025-11-13 19:20:25

The internet has a lot of stuff, sometimes it is overwhelming, but also it is nice to have something for everyone. In the endless sea of Youtube videos for example I have my favourite creators, (semi)niche stuff relevant to my interests.

But this also has some unwanted side effects: I become increasingly picky, if something is not a well researched but funny 4 hour analysis of the specific topic I am into that week, I am like "meh".

I try to avoid this on Bear. I open "Most Recent" on the discovery page and try to click basically random. I try to read the most diverse stuff I can instead of focusing on the things I already like.

Also I used to barely upvote/like stuff, once a week, if something was really amazing. On Bear if I read a post I will automatically like it too, doesn't matter if I agree with the post or not, was it relevant to my interests or not. Now that I blog myself I realised that this shit is hard, so respect to all of you!

Messing with bots

2025-11-13 16:56:00

As outlined in my previous two posts: scrapers are, inadvertently, DDoSing public websites. I've received a number of emails from people running small web services and blogs seeking advice on how to protect themselves.

This post isn't about that. This post is about fighting back.

When I published my last post, there was an interesting write-up doing the rounds about a guy who set up a Markov chain babbler to feed the scrapers endless streams of generated data. The idea here is that these crawlers are voracious, and if given a constant supply of junk data, they will continue consuming it forever, while (hopefully) not abusing your actual web server.

This is a pretty neat idea, so I dove down the rabbit hole and learnt about Markov chains, and even picked up Rust in the process. I ended up building my own babbler that could be trained on any text data, and would generate realistic looking content based on that data.

Now, the AI scrapers are actually not the worst of the bots. The real enemy, at least to me, are the bots that scrape with malicious intent. I get hundreds of thousands of requests for things like .env, .aws, and all the different .php paths that could potentially signal a misconfigured Wordpress instance.

These people are the real baddies.

Generally I just block these requests with a 403 response. But since they want .php files, why don't I give them what they want?

I trained my Markov chain on a few hundred .php files, and set it to generate. The responses certainly look like php at a glance, but on closer inspection they're obviously fake. I set it up to run on an isolated project of mine, while incrementally increasing the size of the generated php files from 2kb to 10mb just to test the waters.

Here's a sample 1kb output:

<?php wp_list_bookmarks () directly, use the Settings API. Use this method directly. Instead, use `unzip_file() {
return substr($ delete, then click &#8220; %3 $ s object. ' ), ' $ image
*
*
*
* matches all IMG elements directly inside a settings error to the given context.
* @return array Updated sidebars widgets.
* @param string $ name = "rules" id = "wp-signup-generic-error" > ' . $errmsg_generic . ' </p> ';
	}
	/**
	 * Fires at the end of the new user account registration form.
	 *
	 * @since 3.0.0
	 *
	 * @param WP_Error $errors A WP_Error object containing ' user_name ' or ' user_email ' errors.
	 */
	do_action( ' signup_extra_fields ', $errors );
}

/**
 * Validates user sign-up name and email.
 *
 * @since MU (3.0.0)
 *
 * @return array Contains username, email, and error messages.
 *               See wpmu_validate_user_signup() for details.
 */
function validate_user_form() {
	return wpmu_validate_user_signup( $_POST[' user_name '], $_POST[' user_email '] );
}

/**
 * Shows a form for returning users to sign up for another site.
 *
 * @since MU (3.0.0)
 *
 * @param string          $blogname   The new site name
 * @param string          $blog_title The new site title.
 * @param WP_Error|string $errors     A WP_Error object containing existing errors. Defaults to empty string.
 */
function signup_another_blog( $blogname = ' ', $blog_title = ' ', $errors = ' ' ) {
	$current_user = wp_get_current_user();

	if ( ! is_wp_error( $errors ) ) {
		$errors = new WP_Error();
	}

	$signup_defaults = array(
		' blogname '   => $blogname,
		' blog_title ' => $blog_title,
		' errors '     => $errors,
	);
}

I had two goals here. The first was to waste as much of the bot's time and resources as possible, so the larger the file I could serve, the better. The second goal was to make it realistic enough that the actual human behind the scrape would take some time away from kicking puppies (or whatever they do for fun) to try figure out if there was an exploit to be had.

Unfortunately, an arms race of this kind is a battle of efficiency. If someone can scrape more efficiently than I can serve, then I lose. And while serving a 4kb bogus php file from the babbler was pretty efficient, as soon as I started serving 1mb files from my VPS the responses started hitting the hundreds of milliseconds and my server struggled under even moderate loads.

This led to another idea: What is the most efficient way to serve data? It's as a static site (or something similar).

So down another rabbit hole I went, writing an efficient garbage server. I started by loading the full text of the classic Frankenstein novel into an array in RAM where each paragraph is a node. Then on each request it selects a random index and the subsequent 4 paragraphs to display.

Each post would then have a link to 5 other "posts" at the bottom that all technically call the same endpoint, so I don't need an index of links. These 5 posts, when followed, quickly saturate most crawlers, since breadth-first crawling explodes quickly, in this case by a factor of 5.

You can see it in action here: https://herm.app/babbler/

This is very efficient, and can serve endless posts of spooky content. The reason for choosing this specific novel is fourfold:

  1. I was working on this on Halloween.
  2. I hope it will make future LLMs sound slightly old-school and spoooooky.
  3. It's in the public domain, so no copyright issues.
  4. I find there are many parallels to be drawn between Dr Frankenstein's monster and AI.

I made sure to add noindex,nofollow attributes to all these pages, as well as in the links, since I only want to catch bots that break the rules. I've also added a counter at the bottom of each page that counts the number of requests served. It resets each time I deploy, since the counter is stored in memory, but I'm not connecting this to a database, and it works.

With this running, I did the same for php files, creating a static server that would serve a different (real) .php file from memory on request. You can see this running here: https://herm.app/babbler.php (or any path with .php in it).

There's a counter at the bottom of each of these pages as well.

As Maury said: "Garbage for the garbage king!"

Now with the fun out of the way, a word of caution. I don't have this running on any project I actually care about; https://herm.app is just a playground of mine where I experiment with small ideas. I originally intended to run this on a bunch of my actual projects, but while building this, reading threads, and learning about how scraper bots operate, I came to the conclusion that running this can be risky for your website. The main risk is that despite correctly using robots.txt, nofollow, and noindex rules, there's still a chance that Googlebot or other search engines scrapers will scrape the wrong endpoint and determine you're spamming.

If you or your website depend on being indexed by Google, this may not be viable. It pains me to say it, but the gatekeepers of the internet are real, and you have to stay on their good side, or else. This doesn't just affect your search ratings, but could potentially add a warning to your site in Chrome, with the only recourse being a manual appeal.

However, this applies only to the post babbler. The php babbler is still fair game since Googlebot ignores non-HTML pages, and the only bots looking for php files are malicious.

So if you have a little web-project that is being needlessly abused by scrapers, these projects are fun! For the rest of you, probably stick with 403s.

What I've done as a compromise is added the following hidden link on my blog, and another small project of mine, to tempt the bad scrapers:

<a href="https://herm.app/babbler/" rel="nofollow" style="display:none">Don't follow this link</a>

The only thing I'm worried about now is running out of Outbound Transfer budget on my VPS. If I get close I'll cache it with Cloudflare, at the expense of the counter.

This was a fun little project, even if there were a few dead ends. I know more about Markov chains and scraper bots, and had a great time learning, despite it being fuelled by righteous anger.

Not all threads need to lead somewhere pertinent. Sometimes we can just do things for fun.

Against 'Metroidbrania': a Landscape of Knowledge Games

2025-11-13 04:18:00

Cards on the table: I hate the term 'metroidbrania'. I think many people who use the term seem to hate it, too; as Kate Gray writes on a Nintendo Life feature listing some of these games, the word "makes [her] feel like someone with a hobby so dorky that [she] can't talk about it with normal people."

I'd put it forth that the term doesn't just sound dorky, and it's not just hard to explain (given that first you have to explain what a metroidvania is – itself a fraught bit of terminology). I'd say it's all but useless, too. If you duckduckgo for 'metroidbrania', the main results are three listicles that'll give you the following corpus of games:

  • Outer Wilds
  • Return of the Obra Dinn
  • The Sinking CIty
  • Sherlock Holmes (as in the whole Frogwares series)
  • Heaven's Vault
  • The Forgotten City
  • Overboard!
  • Her Story, Telling Lies
  • Sorcery! (???)
  • Tunic
  • The Witness
  • A Monster's Expedition
  • Animal Well
  • Myst
  • Blue Prince
  • Antichamber
  • Leap Year
  • Taiji
  • Gone Home (!???!?)
  • Rain World
  • Fez
  • Chants of Sennaar

You'll never convince me that these games form a coherent genre, or even that you can group them under a general umbrella term. At best, most of those are what I'd call "thinky games" – a broad aggregation of deduction, knowledge, and puzzle games that would include everything from Zork to Myst to cryptic crosswords to Ultros.

I think the reason why is that the term was originally coined to mean "games with open-ended exploration" – similar to a metroidvania1 – but using knowledge gating instead of traditional ability gating. In a "true" metroidbrania, what you know is the only real form of progression; a player who already knows all the secrets can start a fresh save and immediately go through the motions of beating the game, skipping over most of the game.

The problem there is that there's very few games that actually meet this description. Out of the list above, the only ones I'd put in that list are Animal Well, Outer Wilds, and Tunic. Because there's not enough games to put on a listicle, the term naturally expands so you can at least name 10. Because everyone is doing this independently, it expands in every available direction, until somehow Gone Home and Fez are now in the same genre. 'Metroidbrania' is thus dead on arrival; it can never usefully describe a game beyond a vague sense that it involves knowledge, puzzles, or deduction.

I like the more neutral and obvious term "thinky game" to refer to the whole aggregate of knowledge, deduction, and puzzle games as a whole; it doesn't purport to be a coherent genre, just a general descriptor (in the same way that "action game" is). But I think we need better language to talk about some of those emerging mechanical ideas in the space of and around knowledge games, specifically.

I'm also setting puzzle games aside in this essay – that's a whole large set of games unto itself, and I also don't want to distract with the question of how to best use that descriptor – ie, whether adventure games that involve puzzles (eg, Myst) are 'puzzle games' as such.

So, considering knowledge and deduction games, I ended up sitting down and drawing a diagram to suss out the relationships between them.

A diagram of different knowledge games and their placement within various categories.

Knowledge games

A knowledge game is a game where the player's knowledge is a central resource and progression mechanic. This is a really broad category, but it encompasses most of what gets referred to as a 'metroidbrania':

  • Knowing words to search for in Her Story;
  • Understanding the events of the voyage in Obra Dinn;
  • Knowing how to use the game's affordances in Animal Well;
  • Understanding the secret language in Tunic.

For this term to be useful, I think we have to separate knowledge as in explicitly-encoded information that the game contains, from insights that the player accrues by gradually experimenting with a system – otherwise, every classical puzzle game (eg, Portal, Stephen's Sausage Roll) is now a knowledge game.

Knowledge games tell you things, even if they ask you to make significant leaps of logic with the information they present – as in Animal Well, where some of the critical knowledge has to be arrived at by analogy, by seeing things in the environment and relating them to the player’s affordances.

A few other typical features of knowledge games:

  • Players are asked to build an internal model of a narrative or system, rather than just internalizing discrete bits of information. For example, The Case of the Golden Idol asks players to reconstruct sequences of events.
  • Knowledge is useful more than once and/or far away from the site where it's gained. In Animal Well, learning the "secret" affordances is useful throughout the game, for example; the final level in Case of the Golden Idol asks the player to understand the full story, not just the events of that single level.
  • Knowledge is a central resource – in a 'pure' knowledge game, the only resource. So, for example, an immersive sim having a post-it note telling you that the password is 451 does not have the knowledge game nature.

Knowledge gating

Knowledge gating is the mechanic where some section of the game is accessible to any player who has the requisite knowledge. This is where the whole comparison with metroidvanias comes from – the idea that player knowledge acts at the "key" to the one of the game's "locks", in the same way that in a traditional metroidvania you might use a double jump to get up on a previously-inaccessible ledge.

Knowledge gating is almost universal to knowledge games, if you define it broadly. The Case of the Golden Idol, for example, is structured like a typical puzzle game – there are levels that have to be solved in order. But since every single level is solved by first learning information and then deploying it, we could say it's a knowledge-gating game. I didn't bother including a circle for it in the diagram because you could argue that it would be completely contiguous with the "knowledge game" circle; counterexamples very much welcome.

But we can narrow the idea down somewhat to consider knowledge gating in the context of games that have some kind of movement or exploration affordance that is itself distinct from navigating a semantic space. Games in which knowledge unlocks areas or affordances in the context of a play space; so, for example, Outer Wilds or Animal Well, but not Return of the Obra Dinn or pure database games like Her Story.

Under that consideration, for there to be a knowledge gate, there has to be some contrasting form of movement or progression that isn’t purely driven by the player accruing knowledge or exploring a semantic space. I’d say things like the various secrets in Blue Prince qualify, for example.

Learn action

'Search action' is a calque of a Japanese term that refers to the same thing as 'metroidvania'. It's increasingly preferred by Western fans of the genre for its relative historical neutrality, especially as the genre expands more and more beyond its originators – there hasn't been a new search action Castlevania in a long time now.

By analogy, 'learn action' is a term I'm trying to stick as a narrowly-defined version of 'metroidbrania', with the benefit of not sounding terrible. This is a set of games that pretty much just includes knowledge games that are also open-level exploration games; examples would include Animal Well, Tunic, Ultros, and Outer Wilds. Some of those games have the combination of combat, exploration, and platforming that characterizes a 'core' search action game, while others don't. I'm treating 'exploring a physical space' as central to this conception of a genre – again, setting aside games with more linear structures or games without movement mechanics at all.

Database thrillers

A database thriller is a game where searching for information out of a database or archive is a central affordance. Usually this takes the form of a web search box – as in Her Story and The Roottrees are Dead, but it doesn't have to. For example, Immortality uses a web of metaphorical or literal connections between objects on screen; A Hand with Many Fingers uses an old-school index card catalog system. My own database thriller KINOPHOBIA has searches that are mediated by texting an NPC.

I call these database thrillers rather than the more neutral database game to point at a commonality in games using this structure: they're more or less always mystery or intrigue stories, but also I don't believe anyone has made one that squarely falls in the actual genre of crime fiction. So, thriller it is. Maybe I'll make one where you trawl a police archive to solve cold cases.

Deduction games

A deduction game is one on which:

  • The player is asked to make inferences or determine some underlying truth from incomplete information or suggestive clues;
  • Progression is made through the player proving that their deductions are correct.

That is, deduction can't merely happen as part of the narrative, it is a central mechanic of the game. A game like Disco Elysium, in which you play as a detective, isn't necessarily a deduction game.

The idea of a deduction obviously points towards the detective and mystery genre but critically, it doesn't have to. Occlude, for example, is an occult-themed puzzler built around deducing the rules to a mysterious card game from observing its behavior; The Roottrees Are Dead is a genealogical-research game that asks you to reconstruct a large and sprawling family tree.

More or less every deduction game has to find some answer to the question of how to avoid guessing and lawnmowering2 without making the game frustrating or stumping players. Generally this is done by having a broad possibility space of how players could answer a deductive question. At the basest level, you can think of the answers in Clue: Colonel Mustard did it in the parlor with the candlestick. Case of the Golden Idol, for example, makes the player answer a whole batch of questions at once; it'll tell you if you're very close but off on a couple of details – which players can somewhat abuse to essentially extract a hint from the system – but it won't let players test each assumption once in isolation to guess their way through the game.

Incremental Deduction

A particular subset of deduction games, these are games that make use of the mechanic popularized by Return of the Obra Dinn: the game only confirms your conjectures once you get enough of them right at once. But the game also largely doesn't impede your progress merely for getting one deduction wrong.

This is basically one very elegant and very successful anti-guessing mechanic. Particularly, the game never jumps at the chance to tell you that you're wrong, which both avoids discouraging players but also avoids leading them. If you have three outstanding conjectures in Obra Dinn but the game hasn't confirmed them, you can't be sure whether you got one wrong or all three. And you can choose to try to keep going and make more conjectures to see if you can "lock" some of the existing set, or you can go back and revise your assumptions about what you've put down already. It's a system that is at once forgiving of players' mistakes but also that demands that they eventually circle back to resolve those mistakes.

Language and Translation Games

This is the last of these categories that I want to talk through – games with constructed languages that the player is expected to learn. I'd split these into two subsets: ones that are also deduction games, in which the player has to specifically prove language proficiency to progress (the most prominent example probably being Chants of Sennaar) and ones in which the language is more a part of the body of knowledge that the player acquires (as the cypher in Tunic). Because cyphers and constructed languages are a common feature of puzzles, language and translation will crop up in all kinds of thinky games here and there; Case of the Golden Idol, for example, has its 'Lemurian' sigils. I've restrained myself to only listing games that really focus on this language aspect under that blob.


Of course – the diagram above is naturally incomplete, boundaries are debatable, and genre words are only an imperfect scheme to try and understand art. But I thought this survey was useful to work through as an exercise in gleaning the beginning of a landscape – a set of featural relationships between games that we can use to talk about them more usefully than lumping all of those different games under one genre term. Especially if the genre term sounds as bad as 'Metroidbrania'.

Ultimately the goal here is not necessarily to be the last word on the subject but to just name some useful landmarks that others can use to triangulate, or as grounding for a critique – are these labels useful? What other corners of the knowledge-game landscape can we identify?

Or perhaps even: what undiscovered space is implied by the shape of the landscape as it's been marked out already?

  1. Also known by the more neutral term "search action", metroidvanias are (typically 2d platformer) games in which the player explores a large, singular, interconnected level; the defining feature is that different sections of the level are unlocked by gaining new abilities – eg, a double jump allowing access to a high ledge. The classic example is the Metroid series; the term 'metroidvania' comes from Castlevania: Symphony of the Night, which adapted those mechanical ideas into the Castlevania series, which previously were linear platformers. Other prominent examples include Hollow Knight and Silksong, Axiom Verge, Ori and the Blind Forest.

  2. 'Lawnmowering' is a term that originates with the adventure game and interactive fiction communities; it refers to the practice of the player trying all possible combinations of actions to see which ones is right – the classic being, in a point-and-click adventure, "rubbing every inventory item on every visible thing." More generally, it means the player trying to exhaustively search the possibility space of the game without actually thinking about what they're doing, like someone trying to cover every patch of grass exactly once by going back and forth in rows as they mow a lawn.

one year of hair growth

2025-11-13 01:46:00

At the end of October 2024, I cut all my hair off, and let my wife shave it off to 9mm. I wrote about that here. I did it because various illness and medication effects made me a lose a lot of hair.

image of my buzzcut and cut off hair, which back then, was so long it reached my lower back

In November that year, I shaved it once more, down to 5mm, then let it grow. This is the current status:

IMG_5939

Have done nothing to it except letting it grow. It looks and feels healthy and seems like the hairloss has stopped and reversed. :) I still wear wigs most of the time I'm out of the home, though.

Reply via email
Published {{ post_published_date }}