Expand Cut Tags

No cut tags
cbrachyrhynchos: (Default)

News came into my inbox yesterday that imzy is shutting down. Some people are moving to imzy @ Dreamwidth. I have mixed feelings about this because while I think Dreamwidth has a much better community model than tumblr or twitter, the interface is still the old livejournal template with crappy scaling to mobile.

But, I decided I might as well look at how to syndicate content from bigeekfan to my long-disused cbrachyrhynchos@dreamwidth page. It turns out that it's not that difficult since Dreamwidth supports posting by email with markdown support. So the process is:

  1. load my markdown files
  2. translate absolute paths to full urls
  3. pull the title from the YAML header
  4. separate the YAML header from the body
  5. send the email

Here's the code (identifying information removed).

#lang racket
(require net/smtp)
(require net/head)
(require openssl)

(define smtp-pass "")
(define smtp-user "")
(define smtp-server "")
(define smtp-port 465)
(define base-url "https://www.bigeekfan.com/")
(define dreamwidth-address "user+pin@post.dreamwidth.org")

;; load the file into a string
(define (load-file filename)
  (file->string filename))

;;; create the email header using the recipient list 
;;; and the subject 
(define (create-header recipient-list subject)
  (standard-message-header smtp-user

;;; split the body into a list of lines
(define (email-body html-string)
  (string-split html-string "\n"))

;;; send an email message to recipient-list with the subject
;;; and the body.
(define (send-message recipient-list subject body-string)
   (create-header recipient-list subject)
   (create-email-body body-string)
   #:port-no smtp-port
   #:auth-user smtp-user
   #:auth-passwd smtp-pass
   #:tcp-connect ssl-connect))

;; clean up relative links
(define (clean-relative-links string base-url)
  (string-replace string "](https://www.bigeekfan.com/"
                  (string-join (list "](" base-url) "")))

;; pull the title using regex
(define (get-title string)
  (for/first ([line (string-split string "\n")]
              #:when (regexp-match? #rx"title:" line))
    (second (regexp-match #rx"\"(.*)\"" line))))

;; get the the position of the start of the body of the post
(define (get-body-index string)
  (cdr (first (regexp-match-positions #rx"\n---\n\n" string))))

;; get the body
(define (get-body string)
  (substring string (get-body-index string)))

;;; combine all of the above functions to create an email body
;;; as a list of strings including the !markdown directive for
;;; dreamwidth. 
(define (create-email-body string)
  (append (list "!markdown" "") (email-body (get-body (clean-relative-links string base-url)))))

;;; send a hugo markdown file to recipient list
(define (send-markdown-file recipient-list filename)
  (define text (load-file filename))
  (define subject (get-title text))
  (send-message recipient-list subject text))

;;; command line argument parsing
(define filename (make-parameter #f))

(when (< 0 (vector-length (current-command-line-arguments)))
  (filename (last (vector->list (current-command-line-arguments)))))

;;; if there's a command-line option, send the file.
(if (filename)
    (send-markdown-file (list smtp-user dreamwidth-address) (filename))
    (display "No file."))

This will probably need some modification to work with other markdown blogs. You'll want to use an app password if you're hard-coding the smtp password into the script.

cbrachyrhynchos: (Default)

We're now heading into summer blockbuster season, which means all of the big-budget science fiction movies of the year (or at least those that are not on the Oscar schedule) are dropping.

First we have Guardians of the Galaxy Vol. 2, which is a fun romp. While many superhero movies have attempted to be an allegory for something or other and end up looking stupid, Guardians embraces its stupidest ideas and somehow transforms them into entertainment. Generally, I agree with Charlie Jane Andrews in suggesting that toxic fatherhood is a central theme of Guardians.

However, there is a disappointment in that director James Gunn hinted at an LGBTQ character who never appeared in the final cut.

It’s like a bizarre, gay version of an Agatha Christie mystery. As the Guardians toss around one-liners like a game of hand-grenade hot potato, you might find yourself thinking: “Could the gay character be someone in this very room? Could it be shiny blue father figure Yondu (Michael Rooker)? Or maybe the vengeful Nebula (Karen Gillan), a disgraced princess whose body parts have been replaced by machinery? And hey, why not the talking baby tree (Vin Diesel) or his raccoon pal with the rocket launcher (Bradley Cooper)? Perhaps even the poorly named space pirate Taserface (Chris Sullivan) could be on the downlow.

Nico Lang @ Salon points to Stakar, but that's a bit of a stretch given that the movie and comics characters are sometimes radically different. For example, X-Men: First Class stripped away Mystique's lover and fellow mutant terrorist Destiny in favor of relationship polygons with half the male cast. We can't assume that characters on screen share the same motivations or relationships as their comic book versions. Especially with Guardians, where the characters have had multiple layers of "reboot" over their publication history.

mystique and destiny

Gavia Baker-Whitelaw @ Daily Dot says:

Filmmakers like Gunn and Condon see the enthusiasm for LGBTQ representation, and offer subtext in response. The problem is, LGBTQ audiences are already very familiar with subtext, because that’s all they usually get.

Which is a shame, really. Both superhero and spaceship crew stories have been fertile ground for exploring LGBTQ themes of family-of-choice and family-of-circumstance. A Long Way to a Small, Angry Planet and Mass Effect: Andromeda make that connection in ways that are explicitly inclusive of LGBTQ characters. Guardians drops the "family" word but LGBTQ people are invisible.

In a similar note, Ryan Roschke @ POPSUGAR notes that the promised LGBTQ representation for Alien: Covenant is so sparse that you can miss it, Wonder Woman's bisexuality might be buried in the background, and Disney might be backing down from wink-wink, nudge-nudge hints about LGBTQ representation in The Last Jedi. It looks like Hollywood still has cold feet about LGBTQ characters, at least where major franchises are concerned.

cbrachyrhynchos: (Default)

Two Serpents Rise cover art

Fantasy often has a bad reputation for being a collection of archetypes or tropes. "Dragons because dragons are cool." Dragons are cool, but under many of those elements are the same sort of literary gedankenexperiments that science fiction is famous for. Tolkien and Le Guin play with theology. Pratchett explores social constructivism. Gaiman explores literature and folklore. Gladstone's Craft Sequence explores economics. The origins of the Craft Sequence came from the financial collapse of 2008. From an interview with Think Progress

We stood in the aftermath of a war on a spiritual plane, of a Time War. And these immense immortal immaterial ‘persons’ that lived or died based on confidence, they started to look a lot like a certain kind of pagan-meets-D&D; god. All the tools that kept recurring in the narrative of the collapse — contracts and their manipulation, predictive algorithms, pledges made against expectations of future glory, the exchange of value for goods and services — they all have fantasy analogues, sometimes quite literally. Chapter 11 bankruptcy, with its cutting up and rewiring of dead or almost-dead stuff, looks a lot like necromancy. So the magic system springs out of our modern context, and bears the same relationship to the traditional magic system as the world of the books bears to the western European “standard fantasy setting,” and let’s take a moment to think about how weird it is that such a thing exists. If real demons actually did trade in real souls, wouldn’t they want to convert them into CDOs?

The central question of the Craft Sequence is what if you really could sell your soul (or bits of it, it's a renewable resource, within limits) for the conveniences of modern life: running water, food, central heating, and mass transportation. Three Parts Dead centers on necromancers attempting to revive a city's god of heat and steam. From there, it jumps off to a mystery adventure involving lawyer-mages, chain-smoking priests, gargoyles, and one of the few vampires that are not annoying.

Two Serpents Rise takes the question a bit further. The protagonist, Caleb is a risk manager forced to negotiate between two different economic systems. Caleb's father champions the old theistic feudalism. Sacrifice living souls to the gods, and they give you peace, corn, meat, and water. Caleb's boss, Kopil the Red King, founded the new "atheistic" (actually misotheistic, gods exist as emergent power systems to be manipulated or replaced) order. In the modern city of Dresidel Lex, nearly everything comes at the price of tiny slivers of your soul. Those bits keep the water flowing.

Two Serpents Rise does a bit better at exploring conflicts and consequences that Three Parts Dead primarily provides via expository info-dumps. Caleb's perspective as a person who has devoted his adult life to creating and maintaining the complex systems that Kopil owns and manages goes a long way there. The setting is even more dystopian than Three Parts Dead. Still, there's some elements of humor, not nearly as frequent as Pratchett, but on point regardless. Most of that comes via Kopil the Red King, immortal lich, CEO, and coffee-drinking skeletal boss. Kopil transforms from joke-cracking employer to undead demigod wielding nearly absolute power mid-scene.

Mal, Caleb's foil and love interest suffers a bit from Caleb's perspective. That's balanced a bit by Caleb's best friend, the perpetually sarcastic Teo, who provides a necessary antidote to Caleb's love-sickness. Two Serpents Rise doesn't quite have the broader ensemble of Three Parts Dead. Still, Gladstone delivers a pretty good mystery-adventure romp.

cbrachyrhynchos: (Default)

Charles Evans

I'm watching TOS, and coincidentally found this essay arguing that Captain Kirk's reputation for toxic masculinity has largely been added to our collective memory. TOS Kirk wasn't nearly as brash or promiscuous as claimed. So it's interesting going into TOS with fresh eyes.

"Charlie X" was the second episode to air, and the third in Netflix order. "Charlie X" opens with the Enterprise picking up a passenger from a cargo ship. Charlie is the sole survivor of a spaceship crash who has miraculously survived from age 3 to 17 on his own. The Enterprise crew are initially befuddled, but not overly suspicious of this story at first.

Charlie immediately crushes on the first woman he meets, Yeoman Janice Rand. Charlie sees a male crew member smacking another on the ass, so he does it to Rand. She awkwardly tells him not to. Charlie's sexual harassment escalates to the point where Kirk is asked to intervene as the ersatz father figure. Kirk gives a dialogue about consent and shuts down Charlie's nice-guy(tm) act:

CHARLIE: What if you care for someone? What do you do?

KIRK: You go slow. You be gentle. I mean, it's not a one-way street. You know, “how you feel” and that's all. It's how the girl feels, too. Don't press, Charlie. If the girl feels anything for you at all, you'll know it. Do you understand?

CHARLIE: You don't think Janice … You … She could love me!

KIRK: She's not the girl, Charlie. The years are wrong, for one thing, and there are other things.

CHARLIE: She can.

KIRK: No, Charlie.

CHARLIE: She is.


CHARLIE: But if I did what you said! If I was gentle!

KIRK: Charlie, there are a million things in this universe you can have and there are a million things you can't have. It's no fun facing that, but that's the way things are.

CHARLIE: Then what am I going to do?

KIRK: Hang on tight and survive. Everybody does.

CHARLIE: You don't.

KIRK: Everybody, Charlie. Me, too.

The script's dancing around issues of sexual harassment is cringeworthy in parts (particularly Uhura accusing Spock of being a ladykiller), but it's not Zap Brannigan or J. J. Abrams' Kirk either. The mid-episode twist is that Charlie has god-like powers. Kirk can't do much more than verbally disapprove of Charlie's actions (which he does in most scenes). A deus ex machina happens at the end where godlike aliens appear in a glowing spaceship to give the homicidal godlike adolescent a much-needed timeout.

The episode suffers from multiple continuity issues. The Antares is described as a cargo ship in one scene and a scientific ship in a later scene. Kirk walks into a turbolift wearing one shirt and comes out of it wearing another.

It's worthwhile to note that the first two episodes also don't follow the common wisdom regarding Star Trek captains either. Captain Pike spends the entirety of "The Cage" refusing to have sex, or even consider having sex with the women in the episode. In "The Man Trap," Kirk meets a telepathic alien and sees her as a non-idealized wife of a scientist (unlike McCoy or Ensign Expendable who see fantasy women.)

cbrachyrhynchos: (Default)
 Locking this account for now to work on projects on other sites:
cbrachyrhynchos: (Default)
Unlocks tumblr.
Reads tumblr.
Runs screaming away from tumblr. 

Most of my stuff is going to blogger. May switch to wordpress eventually. 
cbrachyrhynchos: (Default)

The Evolution Of Angel Haze

“I spent a lot of time, in my earlier years of limelight, suppressing myself.” The rapper, who tackles homophobia and rape culture in verse, is making forays into TV and photography, working on a new record — and refusing to be suppressed any longer.

cbrachyrhynchos: (Default)

Father sticks up for gender-fluid daughter in the most perfect way

'I want you to see my child as I do,’ he said.

'See pictures of her smiling like the world has no gravity. See how lovely she looks in a sparkly dress. See how perfect she is.

'Then I want you to notice that all of my children look that way. So do yours. They are too young to be malicious, or contrived.

They simply exist, and when we allow them to exist as they really are, they are happier than anything you will see in an adult.

'I don't ever want the light that beams from my children's eyes extinguished.'

cbrachyrhynchos: (Default)

Using Racket to generate identicons:

I’ve always liked identicons, which WordPress and GitHub have used to great effect. The premise is simple: take a user identifier such as an IP or email address and deterministically convert it into an image based on a simple algorithm. To that I end I started hacking on Identikon - a little Racket program that generates different types of identicons based on rules modules.

cbrachyrhynchos: (Default)


(Well played, can't wait for #12.)

cbrachyrhynchos: (Default)

Caitlyn Jenner comes out, and social conservatives take an apocalyptic view

But among the social conservatives who are a powerful force within the Republican Party, there is a far darker view. To them, the widespread acceptance of Jenner’s evolution from an Olympic gold medalist whose masculinity was enshrined on a Wheaties box to a shapely woman posing suggestively on the cover of Vanity Fair was a reminder that they are losing the culture wars.


Jun. 4th, 2015 12:27 pm
cbrachyrhynchos: (Default)

Father of Bisexual Teenager Who Died by Suicide: 'It’s The Worst Pain You Can Ever Imagine' (Advocate)

Advocate coverage of the Adam Kizer suicide.

Bisexual Jamaican Deportation Flight Canceled Pending Another Appeal (Advocate)

Deportation is on hold, again, for bisexual Orashia Edwards. His forced flight from the U.K. to his native Jamaica has been canceled, pending another appeal, as he tries to convince British authorities he is, in fact, bisexual.

Can Sexuality Be Changed? (The Atlantic)

A trial in New Jersey this week will determine whether telling gay people that they can become straight constitutes consumer fraud. The ruling might mean the end of so-called “conversion therapies” for good.


For one session that reportedly cost $100, Downing asked Levin to stand in front of a full-length mirror. According to court documents, Downing told Levin to say a negative thing about himself and remove an article of clothing with each criticism. When he was fully naked, Levin alleges that Downing told him to touch his penis and his buttocks. Eventually, Downing said “good,” and the session ended. Downing allegedly tried similar nudity-based methods on other JONAH clients.


cbrachyrhynchos: (Default)

July 2017

234 5678
91011 1213 1415
16 17 1819202122
23 2425 26272829

Most Popular Tags


RSS Atom

Style Credit

Page generated Jul. 28th, 2017 07:01 pm
Powered by Dreamwidth Studios