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.
d630=1440x900 clock=102 shb=1488 ehb=1520 ht=1832 vrs=903 vre=909 vt=926 hsync=+ vsync=+ lcd=1
Here's what I added:
monitor=d630 vgasize=1440x900x32
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:
#!/bin/rc if (~ $#1 0){ echo 'Usage: metar <ID>' exit } hget https://aviationweather.gov/adds/dataserver_current/current/metars.cache.csv.gz | \ 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 nothing...at 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 https://github.com/divegeek/utahcode.git
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:
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:
GetFARMSEpub.go
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).
Ta-da.
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 (identi.ca), @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) (cond ;; 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) t) (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.
Biking (2012/05/29)
So, I took some tax refund money and picked up a road bike and a mountain bike. I try riding the roadie into work, and the other whenever I can.
I never thought I'd be a cyclist, but I'm really enjoying it.
Commuting. (2012/04/30)
So, I rode my bike into work today, mainly to see if it would be a feasible alernative to driving the Dragon all summer. The answer is a decided "yes".
It's a great ride. Not too tough, no scary roads. I quite enjoyed it, and it only took about half an hour.
Nearly lucid (2012/04/21)
So, I had a zombie dream last night, but oddly, I knew it was a dream. At first it was the standard "run for your life" bit, but then I realized the absurdity of zombies and made a conscious decision in my dream, that if zombies can exist, then I get to have telekinesis.
The rest of the dream was pretty cool.
Hindered (2012/04/20)
Today is day five of my switch to the Colemak keyboard layout. It's an interesting experience.
As I mentioned before, I know the key positions, but the muscle memory isn't there. It makes my typing erratic and halting, and this has manifested some unexpected consequences.
The first few days were simply agonizing. It took forever to type anything at all. I noticed that when I went home at night that I was grouchy, and that little things were getting under my skin. I believe that was a result of days spent struggling through formerly simple tasks.
It's getting better as my speed slowly improves, but I've noticed another odd side effect, which is that I just feel generally less confident. The inability for me to express myself quickly and efficiently has really messed with my sense of self.
At work I'm less willing to offer my opinion and more reluctant to take on tasks. I think it has helped to analyze the cause of those feelings, as it has allowed me to make a conscious effort to overcome them, but I didn't expect this experiment to be so disruptive in so many ways.
Colemak (2012/04/18)
So, today is day three of my switch to Colemak. It's going as well as can be expected, I suppose.
I know all the positions and can type with near 100% accuracy if I go slow enough, but slow enough is way too slow, so I find myself subconsciously sacrificing accuracy for speed.
Still, I think I'm making good progress.
Kindlicious (2012/04/09)
A few weeks ago I put in some long hours at work, so as a 'thank you' they got me a Kindle Fire.
I wasn't too hip on the stock firmware that came with it, so I rooted it and installed Cyanogenmod 7.
I'm loving it, now. It's pretty snappy, and I've been able to get OpenVPN set up, so I can hop on the wireless at work and not have everyone sniffing my traffic.
I've been away from Android for a few years, now, so I was curious about how far it's progressed. Some things look very similar (the plain config screens, for example) and some things are much improved (the bootloaders and launchers).
Overall, I like what I see. I'm excited for the Google Tablet to come out this summer so that I can compare.
Ready (2012/03/29)
Listening to my audio drugs, sipping from my tea bong, writing in Python.
Excellent.
A Good Afternoon (2012/03/15)
Today was a great day. After work I met a friend and did some climbs. I led a 5.8 and did a 5.10 a couple of times. It was a lot of fun, but I'm clearly very out of shape.
Between climbs I was able to look out over the valley. I know I've said it a lot, but the LASIK is amazing. I could see everything in the valley perfectly clearly. I can't remember ever seeing so well.
Sharing between Mac OS X and Debian (2012/03/14)
For the last couple of years, my main development box at work has been a desktop machine running Ubuntu. A few weeks ago, though, I was upgraded to a nice MacBook Pro (ostensibly for working remotely).
You can't build in a Linux chroot on Mac OS X, and the desktop box still houses all of my code, and has my build environment already configured, so I still want to use that as the foundation of my work. So the question arises: how do I access the code on the desktop?
SSHFS is an option, but requires installation of third-party tools in Mac OS X, and is slow. NFS or SMB are options, but are unencrypted and old (and I just don't want to use them). AFP is the native protocol for Mac OS X, is fast, and is encrypted. So a new question arose: how hard would it be to connect to my Linux box over AFP?
The answer: simple.
Now I just open a Finder window, double-click on my Linux box, and get to work.
I'm on a list now. (well, probably more than one) (2012/03/12)
Jena and I went shooting with some friends on Saturday. They had some new guns they hadn't shot yet, so we stopped at the gun shop to pick up some odds and ends (extra magazines, snap caps, etc).
I've been wanting a 1911 for quite a while, and while we were there I was perusing the selection. I've had my eye on the Ruger SR1911. Everything that I've read says that it's the best value for the price. You'll spend several hundred dollars more for an equivalently equipped gun from one of the other big manufacturers.
The problem is that the quality for the price is well known, so there is a lot of demand for it. The waiting time between order and receipt of the gun is between 6 and 8 months, so it appears that the only way I'm going to get one is just to order it now and wait until it shows up.
So that's what I did. They wanted 20% down, and now I can pay it off over the next few months as I see fit.
I'm excited. Hopefully I'll get it sooner rather than later.
Conkeror.app (2012/03/08)
I've been working professionally in the computer industry for slightly over a decade, now. Many of my fellow programmers have, at some point, dealt with RSI, or carpal tunnel. I've been fortunate enough to not have had those issues, but there have been times when I felt what may have been precursors to it.
I noticed that the times that I felt wrist pain where the times when I was using the mouse a lot. Consequently, I've tried creating an environment where I can minimize the time I have to spend navigating with a mouse.
My preferred development environment (for non iOS code) is Emacs. After so many years of spending most of my working day inside Emacs, the navigation keystrokes are deeply ingrained into my subconscious.
c-p, c-n, c-a, c-e, c-w, c-y... when I want to move the cursor around, these are the actions my fingers naturally follow. On a Mac, this is usually ok, since the bindings all work in terminal, and Mail.app, etc. But one area that doesn't really lend itself well to keyboard navigation is browsing the web.
Firefox, Chrome, Safari, and Opera...none of them are really useable with a keyboard. Sure, you could remember a bunch of arcane shortcuts, but they are usually a) difficult to remember, b) hard to discover (not in the menu), or c) subject to change without notice (Firefox, I'm looking at you).
Enter Conkeror. Conkeror allows web browsing using only the keyboard for all the actions that would require a mouse in other browsers. It uses xulrunner (essentially the brains of Firefox), so it is fast and compliant, and it uses Emacs keybindings. It's the perfect solution to my problems.
Well, almost.
My personal machines are all Macs (go ahead and hate, if you want to...it's just Unix without all the configuration nightmares). Previously, getting Conkeror set up as a useable browser in Mac OS X was complicated and hacky. Then one day someone posted a script to the wiki that creates a compatible app bundle.
Now it's possible to use Conkeror as the default browser, and launch it with launchpad or spotlight...but it still had an ugly default icon.
So, I lifted an icon from wikimedia, converted it to something Mac compatible, and tweaked the bundle script to make it all easy-peasy.
You can get it here: conkeror_mac_bundler
Oh, dear. (2012/03/07)
So, I ordered the "Orange Box" for the Xbox, which is a game pack including several Valve games: Half Life (plus 2 additional expansions), Portal, and Team Fortress.
I started Half Life 2, and true to Valve's MO, it is fun and crazy addicting. I shouldn't have done that, considering how busy life is.
Oh well.
Progress marches on (2012/03/07)
So, I've imported the 'archives', enable the mtime plugin, and added some neato goo to the sidebar, but there is more to be done.
Like, if you actually try to view any of the archival posts, the CSS blows up. I'll look into that.
But first, I need to get Jena's blog back up and running. Which reminds me...the wanderlust.ws domain renewal is due.
Stupid Metroid (2011/01/06)
No health packs doesn't make you hardcore, it makes you annoying. Especially when you're stuck in a boss death loop. Get to boss, not enough health, die. Respawn with low health, get to boss, not enough health, die.
Whee. What fun.
Still going (2010/11/02)
Yeah, it's taking me a lot longer to get this going than I had planned, but I haven't abandoned it, yet.