Us vs Them (2020/08/27)

Tribalism seems to be built into human nature. Maybe it's an adaptation of ancient man to aid in survival in a hostile world. Maybe it's a residual effect of a premortal war of good versus evil. Maybe it's just a result of the human brain doing what it does best (finding patterns in data sets).

Whatever the trigger or cause, we humans are quick to categorize, label, and group things. As a survival mechanism, it helps us make snap judgements. If threats are predetermined, we can react quickly to them.

One of the most used tactics of those who strive for power is to create unity through exclusion. We are the best, they hold us back. Distill any large scale human conflict down and at its root is "us versus them".

It's so ingrained into our human programming that it's almost unavoidable. This is what is so scary.

Before my oldest came out as a trans person, the LGBT+ community was not something I cared about. "Us" did not include them, thus they were "them", and whatever injustices or abuse that they endured was "too bad", but I didn't really care. I love my child and want what's best for him. And so now the LGBT+ community is "us" and the bigots that rail against us are "them", and man...what an eye opener that has been.

I can now see that things that used to be "totally reasonable arguments" or "just a joke", are really just disguised hate. There is certainly room for reasoned discussion, but where that lies on the spectrum is not where I used to think it was.

Race relations are another obvious example of this. I've actually lost friends over the protests this year. I thought any rational person would agree that systemic racism and police brutality are objectively wrong, but apparently in 2020 if you're in the cult you're "us" and if not, you're "them". And once you've been put in the "them" bucket and dehumanized, you're fair game to be maced, shot, and beaten.

Back on 9 (2019/08/12)

Due to a bunch of stuff that happened that I won't cover right now, I'm running 9front on a raspberry pi3 at my desk and am using it (almost) as my primary development platform.

The project I'm working on is c++ and ios/android, so it's not native development, but I have written some tools and scripts to make it possible for me to do just about everything I need from acme.

It's fun to try and meld seemingly incompatible things together into a workable setup.

Yerba Mate Review: Ximango Tradicional (2019/04/02)

Producto de: Brazil

Olor: Very fresh and grassy. Reminiscent of unsmoked yaupon. It's also very green in color, which also leads me to believe it's unsmoked.

Polvo: A lot. Like, really a lot. It looks like matcha tea. I have a fairly open bombilla, and it's getting clogged. Initial sips have been gritty with the powder.

Sabor: As expected, it's very fresh and grassy, but it's not powerfully astringent like green yaupon. The flavor is actually surprisingly mellow and pleasant. It has a very green tea taste.

Resultado: 4 de 5. I really like the flavor of this Brazilian "Erva Mate." It's fresh, but mellow, and really pleasant. I only mark it down because it's so darned dusty. Because of the mild flavor, this is a mate that I would actually consider using as an 'first taste' for anyone that enjoys teas.

Update: Turns out Ximango is actually a chimarrรฃo, which is a unique Brazilian take on mate. It's technically a yerba mate (comes from ilex paraguariensis), but is intentionally powdery like matcha.

From what I can read, you still drink it with the standard mate/bombilla setup, but I haven't quite mastered it, yet. I always end up with dry powder in the bottom of my gourd.

Scheming (2018/08/13)

Current project: S9FES Martian Edition.

I wanted to get more familiar with lisp, and the easiest way I could see to get lispy in 9front was with Scheme 9 from Empty Space. After getting it all building and installing, I decided to start adding some minor tweaks.

Eventually, I wanted to start on a project for which I need some 9p bindings, and now I've been stuck on that for several months. It's just my fun downtime project, so rapid development isn't really a concern.

In other bits of spare time I've been working on bog (actually succeeded by mire now).

Useless, but fun. Hobbies are allowed to be that way.

The Deseret Alphabet on Plan9 (2017/10/03)

Interestingly, the Deseret Alphabet was accepted into the Unicode standard way back in version 3.1. So, there are code points for it right now.

If you're running macOS, there is a rather nice implementation of it in one of their system fonts (Baskerville, I think), which actually looks really good; it has ascenders and descenders which the original glyphs lack. I don't know about windows, but the default vga in Plan9 is a definite 'no'.

So, how to get Deseret Alphabet fonts in my 9front installation...

It's slightly more tricky than I thought, since many of the existing font options are only the piece that contains the DA glyphs, and not the ASCII range. Which means you can't just fire up rio with the new font because it's missing...well, everything you need for it to be useful.

Further complicating things is the fact that I don't know how to make mothra use a different font. My only option right now (that I can see) is to hget the page I want to look at. Lame.

The 2 fonts I found that work well are Analecta and Everson Mono.

Using ttf2subf I was able to easily convert them both. Everson Mono could be used as a default font, since it's a clean sans serif and looks ok. Analecta is much fancier, and the DA glyphs look great, but it's a little too flashy to be a default font.

The following is a sentence in the Deseret Alphabet. If you have a font for it, it should show up. Otherwise you get the little boxes.

๐œ๐ฎ๐‘… ๐ฎ๐‘† ๐‘‹๐ด ๐‘๐ฒ๐‘‰๐‘…๐ป ๐ฒ๐ป๐ฏ๐‘‹๐น๐ป ๐ฐ๐ป ๐‘‰๐ด๐ป๐จ๐‘ ๐ฎ๐‘Œ ๐‘„ ๐”๐ฏ๐‘†๐ฏ๐‘‰๐ฏ๐ป ๐ˆ๐‘Š๐‘๐ฒ๐บ๐ฏ๐ป.

Typing in the Deseret Alphabet (2017/10/03)

Maybe it's because the only languages I ever speak or type (English and Spanish) use the Latin alphabet, but it seems awfully complicated to enter text in a non-latin way...especially on a latin keyboard.

I mean, UTF-8 seems pretty ubiquitous, but typing more characters outside of the ASCII range than an occasional emoji seems to bring a lot of overhead. Compound that with the fact that the Deseret Alphabet isn't a different language, it's just a phonetic version of English.

What I eventually ended up doing is to define an input style in emacs that will convert my own phonetic spelling into the proper glyphs.

So, for the example in my Deseret Alphabet on Plan9 post, I went into emacs, selected 'deseret' as my input type, and entered:

THHis iz mai furst utempt at riteeng in thh Dezeret Alfubet.

Side note: one of the criticisms of the DA is the lack of a schwa, or unpronounced vowel character. Using the 'u' sound in the word 'first' seems wrong, but it's the accepted practice, apparently. I would have been ok with just 'frst', but I also think a schwa would have worked there, if such a thing existed.

Here is my deseret.el:

(require 'quail)

 "deseret" "English" "๐”๐ฏ๐‘†๐ฏ๐‘‰๐ฏ๐ป" nil
 "Easy Deseret Alphabet transcription"
 nil t t t t nil nil nil nil nil t)

;; upper-case starts at 10400
;; lower-case starts at 10428

 ("EE" ?๐€) ("ee" ?๐จ)
 ("AY" ?๐) ("ay" ?๐ฉ)
 ("AH" ?๐‚) ("ah" ?๐ช)
 ("AW" ?๐ƒ) ("aw" ?๐ซ)
 ("OH" ?๐„) ("oh" ?๐ฌ)
 ("OO" ?๐…) ("oo" ?๐ญ)
 ("I" ?๐†) ("i" ?๐ฎ)	; it
 ("E" ?๐‡) ("e" ?๐ฏ)	; get
 ("A" ?๐ˆ) ("a" ?๐ฐ)	; hat
 ("O" ?๐‰) ("o" ?๐ฑ)	; 'ot' as a victim of the cotโ€“caught merger, I don't know what this is
 ("U" ?๐Š) ("u" ?๐ฒ)	; but
 ("UU" ?๐‹) ("uu" ?๐ณ)	; book
 ("AI" ?๐Œ) ("ai" ?๐ด)	; high
 ("OW" ?๐) ("ow" ?๐ต)
 ("W" ?๐Ž) ("w" ?๐ถ)
 ("Y" ?๐) ("y" ?๐ท)
 ("H" ?๐) ("h" ?๐ธ)
 ("P" ?๐‘) ("p" ?๐น)
 ("B" ?๐’) ("b" ?๐บ)
 ("T" ?๐“) ("t" ?๐ป)
 ("D" ?๐”) ("d" ?๐ผ)
 ("CH" ?๐•) ("ch" ?๐ฝ)
 ("J" ?๐–) ("j" ?๐พ)	; dส’ (judge)
 ("K" ?๐—) ("k" ?๐ฟ)
 ("G" ?๐˜) ("g" ?๐‘€)
 ("F" ?๐™) ("f" ?๐‘)
 ("V" ?๐š) ("v" ?๐‘‚)
 ("TH" ?๐›) ("th" ?๐‘ƒ)	; thigh
 ("THH" ?๐œ) ("thh" ?๐‘„)	; the
 ("S" ?๐) ("s" ?๐‘…)
 ("Z" ?๐ž) ("z" ?๐‘†)
 ("SH" ?๐Ÿ) ("sh" ?๐‘‡)
 ("ZH" ?๐ ) ("zh" ?๐‘ˆ)
 ("R" ?๐ก) ("r" ?๐‘‰)
 ("L" ?๐ข) ("l" ?๐‘Š)
 ("M" ?๐ฃ) ("m" ?๐‘‹)
 ("N" ?๐ค) ("n" ?๐‘Œ)
 ("NG" ?๐ฅ) ("ng" ?๐‘)
 ("OY" ?๐ฆ) ("oy" ?๐‘Ž)
 ("EW" ?๐ง) ("ew" ?๐‘)

The Deseret Alphabet (2017/10/03)

Back when the LDS church was setting its foundations in the Utah Valley, there were a lot of foreign immigrants arriving that had to learn English (an undertaking that I'm increasingly impressed by).

Anyone who speaks English knows, the rules for spelling are inconsistent at best, and aggressively abstruse at worst, so Brigham Young thought that it would be easier for non-English speakers to learn the language if they didn't have to deal with the disaster that is spelling.

President Young and some scholars (George D. Watt, a shorthand expert, chief among them) came up with a phonetic alphabet to so that things could be written as they sound.

The resulting writing method was dubbed the Deseret Alphabet.

It has led an interesting existance. Aside from some initial book printings, it never gained much of a foothold in the church, and fell to the wayside. Now that (most of us) don't have to work the fields 16 hours a day, there's time to look into cultural oddities and the internet contains everything we want to know. So, I've been looking into the Deseret Alphabet lately.

Back when I was in Junior High, my cousin and I developed a 'secret code' based on Cyrillic characters. I think that if we'd known about the Deseret Alphabet back then, chances are fairly good we would have just gone with that. Alas, we were born 20 years too early.

ACSLBRPG (2016/12/13)

If you haven't been exposed to the fantastic Actual Cannibal Shia Labeouf, you owe it to yourself to watch it now.

I was introduced to it by some close friends, and we have had running Shia-based jokes since then, so when I stumbled across the Actual Cannibal Shia Labeouf RPG it was obvious that we would have to play.

The rules are about as simple as you can imagine (get the PDF found in the link), so getting a game running is easy.

We've played a couple of times now and each game is hilariously absurd. Definately worth a play.

Anglish (2016/05/17)

So, I found this interesting thing the other day: The Anglish Moot.

The whole idea is to take English and try to remove the Latin, Greek, and French words. The thinking is that since those words have no root in English, they make the language harder to learn by introducing irregularities and things that don't follow the rules.

A popular example is inebriated, which has no relation to other English terms. The replacement drunk is obviously related to the English drink.

For a neat sample, consider the Declaration of Independence, otherwise known as the B.F.A. Selfhood Ledger

Bitcoin (2016/01/29)

I've never really bothered to try to understand the hype around bitcoin, but we were bored the other day and watched a documentary on it.

Now I'm the proud owner of 0.05188202 bitcoins.

I put a link in the blagh header in case somebody wants to send me some, but since I'm the only person who reads this, well...

Stuff and Pathfinder (2015/10/25)

So, once again, the game has been terribly difficult to get together. I got a Pathfinder Adventure Path, a warm-up module, drew a large map for our minis...the whole enchilada.

Then nothing.

We've had a couple of false starts (scheduled something and then it gets pre-empted).

You should never give me time to read up on a subject, though. So, since things were in a holding pattern, I attempted to become more familiar with Pathfinder (a GM should know the game rules, after all) and I kept finding little things that bothered me.

Pathfinder is very complete, with rules for nearly every eventuality. And this is good...sometimes. In my case, it felt restrictive. I know that I can 'house rule' things, but I think that in order to make good custom rules, you have to know the rules you're going to be breaking, and there's just so much to know.

So I started looking around. There are a lot of d20-style games out there, but I wasn't looking for a total departure of the DnD style...just something that fit what I was looking for a little more closely.

Enter 13th Age. Ah...finally, something that has a clear DnD ancestry, but has a lot of freedom. Enough has been said about what 13th Age actually is on the rest of the internet that I'm not going to go into a lengthy explanation, but suffice to say it has some very attractive elements for customizing a game and moulding rules to fit your style without 'violating' the game.

Now I have the core rulebook and the expansion 13 True Ways (oddly, there was no druid in the core book, and that's what Jena is playing). The last remaining hurdle is actually getting together to play.

Wish me luck.

Pathfinder and stuff (2015/08/31)

When I was a kid, the "DnD is evil" movement was in full effect. I never had anybody invite me to a game, but I also had no way of getting dice or books.

Now I'm a grown adult, and the internet exists, so I can get what I want. My family is all fairly nerdy, so we think we could have fun playing a pen and paper RPG.

I bought DnD 3.5 books (current, at the time), and then we never played. So, a couple of years later I bought the starter set. We played that, had a great time, and then never did anything else.

Then DnD 4 came out. I bought the books...and we never played.

5th edition came out. I bought the Player's handbook...and we haven't played.

Then, a game store opened up the street from my house. I went in and talked to the owner, and he told me of Pathfinder.

I'm excited again (and so is the rest of the family). I bought a bunch of stuff...books, campaign materials, GM gear.

This time for sure. We're going to play it, and hopefully, often.

Yerba Mate Review: Cruz de Malta (elaborada con palo) (2015/08/05)

Notas: This is the red and white 1 kilo bag.

Producto de: Argentina

Olor: There is a strong grassy smell with mild smokey undertones.

Polvo: Average. Maybe a little less that average. At work, I typically divide a kilo into several containers, which means I pour the whole bag out. Typically the last stuff out of the bag is just junk dust, but I'm able to make drinkable brew from what's left over here.

Sabor: Rich and smokey. The smoke is fairly strong in the first brewing, and overpowers the flavor a bit. There is a yerba flavor, though, and it's not too bitter. Subsequent brewings have mellowed the smokiness.

Resultado: 4,5 de 5. Cruz de Malta is one of my favorites. Whenever I restock my yerba mate, I always get a kilo of Red and White Cruz de Malta. It's my go-to mate.

What next? (2015/07/31)

So, now that everything seems to be ok on the Plan9 front, I'm trying to think about what to do next.

Getting gmail to work or irc seems like a good place to start.

And here we go. (2015/07/22)

So the blog is now running natively on 9front, and I'm generating this post in acme over drawterm.

I'll admit that this sets the nerd scale to 11, but I haven't had this much fun with a computer in a long, long time.

Progress (2015/07/21)

Success! I now have a 9front VPS image running and have successfully configured it as a cpu/auth server so that I can securely log in and modify files.

Next step: get a web server running on there.

Back to dvorak (2015/06/24)

Well, it's been a little over 3 years since I've switched to Colemak, and now I'm going back to Dvorak.

I never got my speed and accuracy back to what I had before. I tried some typing exercises (typing out paragraphs), and while that has started to help, it has also shown me that I just don't really like Colemak.

Colemak favors letter clusters, like typing several letters in a word with one hand, whereas Dvorak favors hand-alternation. I think I prefer alternating hands.

Anecdotally, Colemak leaves my forearms and wrists tired. Especially my right side, for some reason.

Anyway, back to the "I can't type" phase again for a few months.

Baby steps to Plan9 (2015/06/19)

I'm one step closer to running the blog natively on Plan9. I now have a 9front VPS instance running.

Now, if I can only figure out how to make it do stuff.

Yaupon Tea (2015/06/10)

So, my horizons were recently broadened when I discovered some relatives to yerba mate that are growing in popularity.

Guayusa and Yaupon (unfortunately named ilex vomitoria). The latter of which is actually native to the United States, which I find intriguing.

I expect to receive a shipment of Yaupon in a couple of days, so I'll brew some up and report back.

Running 9front on a Dell Latitude D630 (2015/05/12)

It took me a few tries to get it running, but now it is (sans wireless/bluetooth).

Here's the secret sauce:

Fix plan9.ini

The bootloader runs and the kernel appears to begin loading, and then it all gets hung up right after the memory is displayed.

To fix this, you need to pass '*acpi=' to the system by either interrupting the boot sequence and typing it yourself, or by modifying plan9.ini.

Add the monitor to vgadb

The display for the D630 doesn't appear to have any analogue in the vga database, so we'll have to add the monitor ourselves.

	shb=1488 ehb=1520 ht=1832
	vrs=903 vre=909 vt=926
	hsync=+ vsync=+

Here's what I added:


Add the following to plan9.ini and bask in the beauty:

Simple METAR checker for Plan9 (2015/05/01)

So, here's my first attempt at something useful for Plan9. It checks the METAR for a given airport:


if (~ $#1 0){
    echo 'Usage: metar <ID>'

hget | \
  gunzip -c | \
  grep -i -e ^$1 | \
  awk -F , '{print $1}'

Reincarnation (2015/04/30)

The blog is back, but now instead of a blosxom derivative it's werc-based. Well, and it's available at a new URL. I've been getting into Plan9 pretty heavily lately, and I stumbled across werc, which meets my blogging platform criteria of being file-based and super-simple. Eventually I hope to have it hosted on a 9front installation. Eventually.

It's just business...or is it? (2015/01/06)

You know, I used to think that the phrase "it's just business" was something that people said to make themselves feel better about acting uncharitably toward someone else. Now that I find myself in a situation where I find comfort in the phrase, I see that I was right.

See, a little over a year ago, we bought a new house. Because of...reasons...we bought it without having sold the old house. We put the old one on the market and got all. For months. Finally we got a bite from a family that wanted to buy it but, as an immigrant family, they didn't qualify for the credit necessary to purchase. We agreed to a lease option. What a disaster that turned out to be.

Contracts were exchanged. Papers were signed and sent to the various agents. Everything appeared to be ok, and we were feeling good until the first deadline came. And went.

Let me gloss over a lot of headache and anger and just summarize with: the buyer's agent was a complete bozo. He basically forged the contract signatures, since his ESL clients had no idea what the terms of the contracts were. They understood the payments to be lower than I had signed, they had no idea of the HOA fee, and they thought I was putting money in the bank for them.

Now, I'm a nice guy, and I was tired of trying to sell that stupid house, so I decided to eat the shortfall and pay it myself. So, over the course of the year, I essentially subsidized the house for the buyers.

The time comes for the buyers to exercise the lease or leave, but they still haven't fixed their credit. Again, I'm a nice guy, and they seem to like the house, so I decide to let them stay provided we sign a new contract where they pay the full mortgage amount and the missing HOA fee. The buyers were reluctant, but agreed. The new terms included an escrow company intermediary (I was tired of the monthly money collection), and a late fee if the payment wasn't made on the 1st.

First payment date comes and goes, and on the 7th I put a 3-day notice to evict on the door. They flipped out and claimed that they had told us that payday is the 10th, and that's when they would pay. That was the first I'd heard that claim, but I decided to allow it this one time since, you know, I'm a nice guy. But I told them to save up the next check so they could pay on the 1st next month.

Now, it's hard for me to be too harsh, because I've been there. I know what it's like when you are barely making ends meet. It's not easy to come up with 2 house payments in a month, but at the same time "it's just business". When they fail to make a timely payment, it reflects poorly on me. My name is on the mortgage. Late payments show up on my credit. Not to mention that I've dumped thousands of dollars into a stupid house that I have no desire to be connected to any more. I can't afford to be a financial buffer for someone else. Uncharitable? Maybe. Business? Yes.

So, the next month goes off without a hitch. Great. Maybe things are going to be OK after all. December 1st comes...and goes. On the 5th I get a call about a water leak. I show up with the plumber, drop a few hundred on repairs, and leave. Nothing is mentioned to me about the payment, and I don't ask since it takes a few days for the escrow company to email me a receipt.

As we prepare to leave the country on vacation, Jena gets yet another harassing call from the mortgage company. We call the escrow service and find out that, nope. No payment. Literally the day before we leave for Mexico, Jena logs on and pays the mortgage and HOA with our own money so that we don't default while we're gone. So for December, we have made 2 mortgage payments.

Our agent calls to find out what happened and...nothing. It's like they just decided not to pay for December. So, the obvious answer is to evict and be done, but by now we're mere days from Christmas, and "it's just business" will only absolve you of so much lack of compassion. We can't bring ourselves to evict on Christmas, so we give them until January 1st. On the 1st they have to pay for December and January both. We are given assurances that it will happen.

It doesn't happen. January 5th, a payment is made to the escrow service for the month of January, but again, no mention of December.

And now here we are. Our agent is out of the country on his own vacation, and we're playing he-said, she-said with the buyers about repayment of December. They claim they can make payments, or pay when the tax refund shows up and that they have discussed it with our agent. Our agent says no. Ugh. I feel that I'm being taken advantage of.

I am not a bank, and that was not a loan. The charitable thing to do would be to forgive them for December...maybe just let it slide, but I can't afford that. A mortgage payment is a non-trivial amount of money, and I don't have extra. I don't have the luxury of being charitable, but it makes me feel bad to be an enforcer, so I have to keep reminding myself "it's just business".

utahcode - Brilliant! (2014/09/25)

It's not often that something makes me involuntarily blurt out "awesome!", but this is one of those times.

divegeek has devised a way to put the Utah Code (laws) onto github. This makes a whole lot of sense to me. By providing it as plain text, there is a gigantic body of existing tools that can be used to sort, search, index, and otherwise use the legal code.

Clone it here: git clone

Yerba Mate Review: Maรฑanita (elaborado con palo) (2014/09/02)

Producto de: Argentina

Olor: The smell is fairly smokey. So much so, that the yerba smell is almost overpowered.

Polvo: It seems to be about average for dust content. I haven't had any problems drawing the tea through the bombilla.

Sabor: The smokey smell carries over into the brew itself. There isn't a very strong mate flavor that I can find. This means that it's not very bitter, which may be good for some. Continuing refills and longer steeping times do create a stronger flavor, though it's still largely smokey with mate undertones, instead of the reverse. After several rebrews, the smokiness has mellowed, but the mate still isn't really shining through. It's a good flavor, but not a strong one.

Resultado: 3,5 de 5. While it's not my favorite, it's not bad. I would buy it again, and I'll have no complaints finishing this kilo.

Chocolate Review: Droste Pastilles (Milk/Dark Chocolate) (2014/01/03)

The pastille is a piece of chocolate roughly the same diameter as a quarter and maybe 1/4 inch thick. It is divided down the center with dark chocolate on one side and milk chocolate on the other, which makes the snap interesting. It's stiffer on the dark side than the light.

The consistency is smooth, and it melts readily in your mouth. It's an interesting combination, because you can distinctly taste the two chocolate types.

The dark side is semi-sweet, and doesn't contribute very much to the overall flavor. It's good, but it doesn't reach out and grab you. The milk side is where a lot of the flavor comes it. It's a deep, almost woodsy flavor. It's not over powering, and it doesn't have what I consider to be a distinctly European flavor to it, but it's good stuff.

The pastilles are fairly mild. Not boring, just not over powering. I find myself eating through the pack pretty quickly.

Overall, the chocolate is good, but not something that really grabs me. I probably wouldn't pay the $6.50 price tag for it again, but I don't feel ripped off, either.

I did a thing. (2013/08/28)

A while back I wanted to read some F.A.R.M.S stuff on my kindle, but I wasn't able to find ebook versions of the books. So, I decided to write something to fetch the books from the website and build them into ebooks.

Turns out, someone already did the heavy lifting, but it was written in Python and had a dependency on tinylib, which is a real chore to get working correctly on a Mac. Plus, I was jonesing for a Go project. Thus was born:


I haven't done much to it since I pushed it to github...mainly because it works well enough for me and nobody else has ever used it (enough to ask for features, anyway).


Arrested Development (2013/04/25)

I've been rewatching to prepare for the new season in March. Man, I've forgotten just how funny that show is.

Few "funny" shows can get more than a chuckle from me, but Arrested Development makes me laugh out loud.

A fellow mateista (2013/03/27)

Today I learned that Felicia Day is a fellow partaker of Yerba Mate.

I know that this is no big thing in South America, but up north I get the weirdest looks sipping from my tea bong.

It's over. (2012/12/10)

Yesterday I deactivated my Facebook account. The signal-to-noise ratio there (or, more accurately, the enjoyment-to-frustration ratio) just wasn't high enough to justify maintaining an account.

I still have @mckay (, @mckaymarston (twitter), and mckay.marston (google+). And fark, reddit, and instagram accounts.

Plenty of places to waste time.

bitlbee and rcirc (2012/10/08)

So, I switched from irssi to rcirc so that I could do all of my business in one window and not have to switch to the terminal to chat.

It worked fine, except that bitlbee sends a ctcp type of "TYPING" to indicate remote activity, and these messages were showing up on my screen like 13:58 *** mckay_mars CTCP TYPING 1, which isn't very nice.

So I wrote a little code to fix that, and put it in my .emacs:

(defun rcirc-handler-ctcp-TYPING (process target sender value)
;; value = 0 means they're done...which you already know, since their message was sent to you.
   ((string= value "1") (rcirc-print process sender "" target "is typing..."))
   ((string= value "2") (rcirc-print process sender "" target "stalled"))))

;; By default, the CTCP is echoed to the screen, which we don't want to see.
;; This adds "TYPING" to the list of types NOT echoed back.
(defun rcirc-handler-CTCP (process target sender text)
  (if (string-match "^\\([^ ]+\\) *\\(.*\\)$" text)
      (let* ((request (upcase (match-string 1 text)))
             (args (match-string 2 text))
             (handler (intern-soft (concat "rcirc-handler-ctcp-" request))))
        (if (not (fboundp handler))
            (rcirc-print process sender "ERROR" target
                         (format "%s sent unsupported ctcp: %s" sender text)
          (funcall handler process target sender args)
          (unless (or (string= request "ACTION")
                      (string= request "KEEPALIVE")
                      (string= request "TYPING"))
            (rcirc-print process sender "CTCP" target
                         (format "%s" text) t))))))

Hopefully that can be of some use to someone.

It be a pirate's life for me. (2012/08/06)

Dear Entertainment Industry: Screw you.

Seriously. Right up the exhaust port with an angry hedgehog.

I am finished being treated like one of the herd to be periodically milked for cash.

You continuously fail to provide the services for which I pay you while simultaneously trying every under-handed and sneaky trick you can think of to get even more money from me.

No more.

From now on, instead of paying you for the privilege of watching things in the manner that you approve, I will be paying no-one and watching things the way that I want.

You had your chance. Now go die.