varidog: (Default)
2025-05-25 08:00 am
Entry tags:

The Man-o-sphere

I've been musing a bit about the man-o-sphere lately. I'm making this public because I think that this is worth a discussion.

The man-o-sphere has been capturing many young men these days, and after reading many ideas about that, I'm left with one conclusion: the man-o-sphere is attracting young men because they correctly identify the problems that young men face and they legitimize those problems.

There's lots to unpack, so let's start by not unpacking.

If we are to reach these young men, to pull them in a better direction, then we have to begin by recognizing their problems and legitimizing those problems. It's that simple, and like all simple things, is far more complex than it looks.

Here's where you ask some very good and pointed questions, and they are legitimate and important questions, but here is also where you need to stop and ask, "What is my goal here?"

What is my goal?

My goal, because I'm the person writing this, is to reach out to the disaffected young men, giving them some avenue other than the man-o-sphere. That's more important creating a perfect approach. I'd rather pull as many men out, before they get there, while it's easy, than later, when it's harder and more difficult to reach them.

So, what exactly is the issue? The issue is promises. I got all those promises when I was a young man, both over and implied, when I was a young man. All those promises said that I would come out on top and have all the girls. Instead, I didn't get that life. I had to revise who I was and how I approached my relationships, and did this multiple times.

These promises and dreams are fed into young men by the media, by stories written to cater to them, and so being so digestable, they take in those stories. 

There's nothing special or unique about this. Women do the same with their own stories, and they face similar challenges. This is our gender modeling, how we come to understand ourselves as our genders in our society. However, we are not perfect embodiments of this gender modeling, so past a point, we each go our own way, revising and rediscovering our gender as we go.

This arena, where things are bursting apart, seems most prominent between 18 and 28, right in the turmoil years that we see. Taking our stories into the real world, our suppositions meet reality.

It should be no surprise that there's lots of emotion running about here, as there should be. It's appropriate to see disappointment, frustration, anger, annoyance, irritation, bitterness, doubts, uncertainties, and desires. These are natural and appropriate emotions that take time and effort to work through. 

The dating world is an especially complicated machine, and it's lack of safety equipment guarantees that somebody's always going to get chewed up and spit out, men and women equally. If Reddit has taught me anything, it's that no gender has a lock on shitty behavior. 

With all that, it's easy to wind up in a bad place, and there's no easy way out. A bit of cheer and optimism doesn't cut it. The solution is working on ourselves as people and hoping that we get lucky. There's no glory in that.

The man-o-sphere promises that easy out, the firm direction, those simple things that you can do that will matter, and that will make you matter. The man-o-sphere is successful because they offer the actionable, the implementable, and the achievable. They won't just give you directions, they'll help you feel manly, not just be manly.

They offer emotional crack, and that's genuinely hard to counter.

So we also have a second issue with the man-o-sphere, the exit plan. How do we extract people from that crack, that addiction?

I'll give you one proposition: victim blaming doesn't work. Those who are part of the man-o-sphere are mostly victims of it's shysters, being used for their money, and in exchange, they're further divided from all their support systems.

I wish that I could offer so easy way to fix all this, but I can't. All that I can do, I hope, is offer somewhere to begin. 
varidog: (Default)
2025-05-14 09:32 pm
Entry tags:

Livejournal/Dreamwidth CSV to HTML with PHP

This is how I'm converting Livejournal/Dreamwidth CSV exports to HTML using PHP.

Could it be better? Sure. Please make it better. In its current form, it can convert 20 years of data in about 5 seconds. You download your data on your own, then run this script against the directory.

I tried using XML files, but the entries were missing breaks, meaning that the converted entries turned into undifferentiated blocks of text. Rather than continue development for a worse result, I abandoned that approach. 

<?PHP
 
//--------------------------------------------------------
// Global Variables - destined for INI file
//--------------------------------------------------------
 
$_INI['JournalBasePath'] = '/Documents/Dreamwidth';
$_INI['JournalCSVPath'] = $_INI['JournalBasePath'] . '/CSV';
$_INI['JournalHTMLPath'] = $_INI['JournalBasePath'] . '/HTMLPHP';
$_INI['JournalID'] = 'yourid';
$_INI['JournalSite'] = 'dreamwidth.org';
$_INI['JournalBaseURL'] = 'https://' . $_INI['JournalID'] . '.' . $_INI['JournalSite'];
$_INI['JournalDateFormat'] = 'l, F d, Y h:i A';


 //--------------------------------------------------------
// Retrieve CSV File List
//--------------------------------------------------------
 
$CSV_List = scandir($_INI['JournalCSVPath'], SCANDIR_SORT_ASCENDING);
 
 
//--------------------------------------------------------
// Process the File List
//--------------------------------------------------------
 
 
foreach ($CSV_List as $CSV) {
 
If (preg_match('/.csv/', $CSV) ) {
Convert_CSV($CSV, $_INI);
}
 
}
 
//--------------------------------------------------------
// Function - Convert the CSV into an HTLM Document
//--------------------------------------------------------
 
Function Convert_CSV ($CSV, $_INI) {
 
//
// Set Input and Output Files
//
$CSV_In = $_INI['JournalCSVPath'] . '/' . $CSV;
$HTML_Out = $_INI['JournalHTMLPath'] . '/' . preg_replace('/.csv/', '.html', $CSV);
echo $CSV_In . "\n";
 
 
 
//
// Iterate Through Each File
//
if (($handle = fopen($CSV_In, "r")) !== FALSE) {
$Post = fgetcsv($handle, 0, ",");
//
// Define Header
//
$HTML_Header = '
<!DOCTYPE html>
<html>
<head>    
<meta charset="UTF-8">    
<title>' . str_replace('.csv','',$CSV) . '</title>
</head>
<body>
';
//
// Define Footer
//
$HTML_Footer = '
</body>
</html>
';
//
// Write HEADER to FILE
//
file_put_contents($HTML_Out, $HTML_Header, LOCK_EX);
//
// Write H1 to FILE
//
$H1 = '<h1>' . str_replace('.csv','',$CSV) . '</h1>' . "\n";
file_put_contents($HTML_Out, $H1, FILE_APPEND | LOCK_EX);
//
// Iterate throught the CSV
// Write each Row to FILE
//
while (($Post = fgetcsv($handle, 0, ",")) !== FALSE) {
$HTML = Convert_Entry($Post, $_INI);
file_put_contents($HTML_Out, $HTML, FILE_APPEND | LOCK_EX);
}
//
// Write the Footert to FILE
//
file_put_contents($HTML_Out, $HTML_Footer, FILE_APPEND | LOCK_EX);
fclose($handle);
}
}
 
//--------------------------------------------------------
// Function - Convert an entry into HTML
//--------------------------------------------------------
 
Function Convert_Entry ($Post, $_INI) {
 
/*
0 = itemid
1 = eventtime
2 = logtime
3 = subject
4 = event (body of post)
5 = security
6 = allowmask
7 = current_music
8 = current_mood
*/
//
// ID
//
$ItemID = '<p><strong>ItemID:</strong> ' . $Post[0] . '</P>' . "\n";
//
// Date
//
$Date = strtotime($Post[1]);
$Formatted_Date = date($_INI['JournalDateFormat'], $Date) . "\n"; 
$EventTime = '<p><strong>Date:</strong> ' . $Formatted_Date . '</P>' . "\n";
//
// Entry TITLE
//
If (strlen($Post[3]) == 0) { 
$Post[3] = $Post[1]; 
}
$Subject = '<h2>' . $Post[3] . '</h2>' . "\n";
//
// Body of Post
//
$Body = $Post[4] . "\n";
//
// Security
//
$Security = '<p><strong>Security:</strong> ' . $Post[5] . '</P>' . "\n";
//
// URL to Original Post
//
$URL = $_INI['JournalBaseURL'] . '/' . $Post[0] . '.html';
$HREF = '<a href="' . $URL . '">' . $URL . '</a>';
$WebLink = '<p><strong>Entry:</strong> ' . $HREF . '<p>' . "\n";
//
// Current Music (if present)
//
If (strlen($Post[7]) > 0) {
$CurrentMusic = '<p><strong>Current Music: </strong> '. $Post[7] . '</p>' . "\n";
} else {
$CurrentMusic = NULL;
}
//
// Current Mood (if present)
//
If (strlen($Post[8]) > 0) {
$CurrentMood = '<p><strong>Current Mood: </strong> ' . $Post[8] . '</p>' . "\n";
} else {
$CurrentMood = NULL;
}
//
// Tweak the formatting to favor word processors.
// Verified against LibreOffice Writer
//
// Sometimes there are newlines and no breaks. Early cutting and pasting was unpredictable.
$Body = str_replace("\n", "<br />\n", $Body);
// Change line breaks into paragraph breaks. Word processors need this to format paragraphs correctly.
    $Body = str_replace('<br />', '</p>', $Body); 
$Body = str_replace('<br>', '</p>', $Body);  
 
// Non-breaking space don't play nice with word processors
$Body = str_replace('&nbsp;', ' ', $Body);
// These tags won't display because they aren't HTML tags
// <user site="livejournal.com" user="somebody"> 
//
$Body = preg_replace('/<user site=".*?" user="(.*?)">/','<u>${1}</u>', $Body);
//
// Removing Centering and Fonts Size values, both of which could get stuck on
// It would be better to close these things, but that would take work.
// 
//
// Unmatched center tags cause run-on issues.
//
If (preg_match('/<center>/', $Body)) {
If (! preg_match ('/<\/center>/', $Body) ) {
$Body = preg_replace('/<center>/', '', $Body);
}
}
 
//
// Fixed fonts size cause problems in word processors
//
If (preg_match('/<font size=/', $Body)) {
$fontsize = '/<font size.*?>/';
$Body = preg_replace($fontsize,'', $Body);
}
//
// Return the Entry
//
return $Subject . $EventTime . $ItemID . $CurrentMood . $CurrentMusic . $WebLink . $Body;
 
}
 
 
?>
 
varidog: (Default)
2025-04-17 05:44 am
Entry tags:

Planet of Lana

Last month, I played through Planet of Lana.

This one was essentially a side-scroller puzzler with a story. Humans are living semi-modern and semi-primitive, when robots show up and kidnap everyone. Your hero, a girl named Lana, then begins her journey to save her sister, puzzling her way through situations and avoiding robots.

I generally enjoyed most of the puzzles, and all the visual storytelling about how the people got to such a strange world. For 80% of the game, I found it absolutely charming.

Part of the charm is your companion, a black little void creature, like a cat. You rescue it along the way, and it becomes your companion, working with you to solve the puzzles.

The un-charming part were the robot puzzles. If you got them wrong, they shot you and. you died. I don't know what the game was thinking by making you die. I hated, possibly even despised, all puzzles involving robots.

In all, I did the whole thing in a week. It wasn't very long, but it was just enough to be tasty.
varidog: (Default)
2025-04-08 05:10 am
Entry tags:

What Remains of Edith Finch

What Remains of Edith Finch was a curious game, more novel than game. The game mechanics are minimal, and most of the stories are experiential.

The whole episode takes place on the lonely Oregon coast, inside a strange house. The physical design work is just gorgeous, as the house is stuffed with clutter, photos, and flaws.

From beginning to end, it's about two hours.

In summary, a pregnant 17 year old woman returns to the strange house of her upbringing, following where a key takes her, learning the stories of her family. The house is filled with sealed off rooms, with each room being a memorial to the person who once lived there, each preserved as they were left.

Each of those people died.

Each of those stories is told by an unreliable narrator.

Overall, the feel is Lovecraftian, which hints of horror, but never really shows it. Even the story of the cursed family emphasizes that.

However, this is not the story of horror. On sitting with it, from beginning to end, this is a story that invites you to believe in the Lovecraftian horror, but you are the one who brings that into the story. You are the one who imposes the supernatural.

As I said, all narrators are unreliable.

The house itself is a shrine to itself, so much so that each generation has to build more and more areas to live in. In the most literal sense, the house is story upon story of its generations.

This is a tale of grief, and how, by holding onto the past, by holding onto grief, the family cannot thrive. Death is a part of life, and death is not a curse.

In a normal house, in a normal family, rooms would get emptied out and re-used. They''d repaint the walls and redo the furniture. The dead would give way to the living. That doesn't happen here. The rooms are literally sealed shut with foam insulation, with peephole drilled into the doors so that you can see the rooms. It's only by comparing normalcy to this place that the real villain appears.

The ending is indicative here. The protagonist passes away, and it's the protagonist's son who concludes the tale, laying flowers on her grave. This is the only mourning that we see. He wasn't there for the house, or the shrines, or the stories, or the family, he was there to mourn his mother and lay flowers on her grave.

Nowhere else, in the entire story, do we see mourning.

By this simple act, he broke the family curse. 
varidog: (Default)
2025-04-01 05:46 am
Entry tags:

Journey

I've been playing Journey recently. It's a very short game with a few interesting premises.

The main body of the game consists of taking a journey, jump-flying about, and generally having a pleasant time of it. Mostly, there's not danger. You find these special points where you can lengthen your scarf, and thus, also give yourself more jump-fly.

The main character is sexually ambiguous, by design, so can be read either way.

Much of what you encounter is cloth, so you run into flying cloth slips, kites, cloth trees, and other such flexible designs. 

What makes the game interesting is that you can encounter other people playing the game. You can't talk, except for single musical notes, and you can help each other jump-fly. In general, it's easier to stick together. Also, the more experienced people know where to find all the scarf motes and any other special places.

On my first playthrough, I thought this was an NPC, but it turned out, was a real person who generously stuck with me through the last four sections.

At the very end, there's a place where you can walk designs into the snow. On my most recently playthrough, a companion stuck with me, then wrote a heart.

I think that this game filters for certain types of gamers, the folks who are less competitive and more cooperative.

When streaming, I almost always get somebody watching. Those folks who like this game really really like this game. 
varidog: (Default)
2025-03-05 05:35 am
Entry tags:

GRIS

I didn't know that I needed this game, but I needed this game.

Back in December, I bought a bunch of games that I normally wouldn't buy. GRIS was one of them.

Thematically, GRIS is a game that begin with downfall, hopelessness, grief, depression, and sorrow. The rest of the game is climbing out of that sorrow. That's amazing for a platformer and a puzzle solver.

This game is so beautiful, so stylized, so serene that my wife just stayed with me for a while and watched me play. She never watches such games, but she watches this one. She sucked through her teeth every time she saw Gris fall.

Falling is okay. It's among the first things that you learn. You fall and you get back up. There is no judgement.

There are some platforms that only appear once you jump. They're like trust falls. You leap into that trust. You trust that the sequence will lead you someone.

The world itself begins as monochrome, but as you reach points of intense grief, a single color returns to the world, adding to the pallet.

Every mechanic seems to lend itself to these emotional and social concepts. 

And there are no words. The game just trusts you. It trusts you to figure out what to do and where to go. Sometimes it introduces a concept, but it does so in such context that you're barely aware of the introduction.

While some parts of the game depend on speed and timing, most don't. In many places, you simply travel, through all these amazing scenes, resting between puzzles. You get to rest. 

The soundtrack is low key, understated, and intense as required. Its always saying that the game continues, as it will, at your own pace, with your own requirements. 

I don't think that I've written a game review after just one day before, but this was noteworthy. In these troubled days, I feel grief, sorrow, anger, and a host of other emotions. I need the time to be with them.
varidog: (Default)
2025-03-03 06:50 pm
Entry tags:

Dragon Quest XI

I haven't played a Dragon Quest in a very long time, so coming back to the franchise felt both familiar and new. I enjoyed the honest and earnest part of the game, where you're the hero, and it's not even close. In other words, it's a straight forward YA adventure, more or less. There were twists and turns to the story, sometimes feeling like too many, but you never stopped being the hero through all of it.

What I didn't expect was that the game would take several months, with me getting bored of pieces here and there. However, I persevered, then clawed through the end, until finally, I took down the big bad and ended it all. The characters weren't even perfect and I succeeded, so yay for that. 

I lived for costumes, which says something about me, but I'm not sure what.

For me, the game lasted too long, as I like my RPGs less lengthy and a bit more digestible. If the game had ended after the first big boss, and then had a shorter but fun adventure, I would have liked it better. As it was, the third act introduced yet another boss, and even with quests, the game got too grindy for me.
varidog: (Default)
2025-02-05 05:58 am

Friends Only

This is a friends only journal.

Mostly, I'm posting my everyday life, muttering my frustrations, and folding my emotional laundry. The look isn't always perfect, but I'm too damned old for perfect.

You're welcome to follow me. If you look like a real person, I'll grant you access.