announcements archiving arch linux art backup blog book review dead tree debian email game game design games git github hack-a-day hacks hardware linux meta minecraft music november physical piskell pixel art prices programming publishing recipe research review rick and morty self-improvement software storage system administration throwaway timelog video game video games website websites wikipedia yearly review
Our house has seven people, so today I made some mail holders to put on our doors.
I basically had some long cardboard boxes, and cut them in half. Then I added new ends and separators in the middle.
I’m not sure if they’ll actually get used. Mail on the floor looks bad, but these aren’t that hot either. If you make some and want to improve the look, you can cover everything in paper or cardstock.
I decided I wanted to show (restricted) data views on the web in table form. Specifically, ‘stylish.db’ is a database provided by a chrome plugin. Here’s an example script, stylish.view, which displays the contents of that. It contains a comment saying which database it’s a query on, together with the query.
-- stylish.db SELECT style, code, GROUP_CONCAT(section_meta.value) as 'website(s)' FROM (SELECT styles.name AS style, sections.code AS code,sections.id AS sections_id FROM styles INNER JOIN sections ON sections.style_id = styles.id) LEFT JOIN section_meta ON section_meta.section_id = sections_id GROUP BY style;
The cool part here is that none of this was specific to stylish. I can quickly throw together a .view file for any database and put it on the web. Continue reading
When I’ve talked to successful people, the one habit they pretty much all have is some kind of daily review process. Often journaling as well, but very specifically some kind of review process. I want to be a successful person, and I can understand how this would help, so I want that. I’ve tried to set it up before, but I never end up journaling every day.
The typical way to set up a habit is to link it to another existing habit. For a daily habit, you try to link it into an existing part of your daily routine. Here’s the problem: I don’t have any major daily habits. I don’t eat every day. I don’t brush my teeth at night every day. I don’t take a shower every day. I check my email, which is how I tried it before, which worked OK but it turns out I don’t do that every day either.
Daily: Wake up and go to the bathroom to put in contacts. Grab my journal and write a daily review for the previous day. The contents of the review are
- What I remember doing the day before
- Which aspects were good
- Which aspects were bad
- Changes I can make to get more of the good and less of the bad. I’m not allowed to name a change I’ve named before.
I’m making sure to write down
- Good/bad aspects I have no idea how to affect
- Things I did which were both ‘todos’ and things that used time (for example, derping and talking to people for a long while)
I’ve also been writing my daily to-do list at the same time.
Weekly: Every monday evening, talk to <name> on Skype. Discuss the general direction my life has gone the last week and where I want it to go, and how to make those two accord. Can be as long/short as I want. I designed this to be with someone else because I didn’t anticipate doing it on my own. I haven’t done this one yet, although one Monday did pass.
Monthly: Spend two hours on the 2nd of the month (the 2nd so I notice dates). Review how the daily and weekly systems have been working, and how they need to be revised. I haven’t done this one yet. I’ve publically precommitted $100 to do this the remaining months of the year.
CFAR usually designs their techniques to help people Get Stuff Done. I have a failure mode of Getting The Wrong Stuff Done, so this time through their workshop, I focused on improving techniques to explicitly have steps around pursuing the correct terminal goals (which I’ll here call “terminal goal techniques”).
Original technique: Goal-factor
New terminal goal technique:
- Find an instrumental goal toward another instrumental goal.
- Embark on that goal provisionally, while also making a plan to acquire more information about whether it’s a good idea and better plans are available.
- Periodically re-evaluate to make sure it’s the best goal and you’re gathering information.
Sep, Oct, Nov 2014: Vietnam.
A year ago, I left my job at Streak and moved to Vietnam. I felt like I needed change. Vietnam ended up being wonderful; I was really glad I travelled with my friends Richard and Kathy, which ended up making the experience a hundred times better than it would have been otherwise. The basic environment was: everything is cheap, I newly have endless free time, I was automatically prompted by my friends in the evenings and sometimes during the day to go on small novel adventures involving physical activity, and I had little internet access. This is probably my perfect environment, and I was functioning very well (the vietnamese diet also has small, well-balanced meals which might have helped). For some reason, I was also able to intensely single-task. [I’d like to write more about what Vietnam is like, but this article is quite long enough as it is]
While I was in Vietnam, I made a to-do list. The to-do list had all the burning projects I actually wanted to do. I’ve ended up accomplishing most of them, at a rate of one every week or two, and it’s a decent summary of what I’ve been doing since. Two things made the to-do list a success. First, it had BIG tasks. These are projects like my recent “set up an IRC server” or “start a publishing company”. Because of that, I don’t get bogged down in minutae, and the tasks are always motivating. I find I function better when I try to carefully plan around having any logistics. The second reason, which I realized today, is that I was very careful to only include tasks I was planning to do (subtly different than tasks I wanted to do). The list was descriptive, not normative, although it certainly included some things like doing taxes I wasn’t wild about.
Looking at my journal and it really only starts up again in March, so I’m going to organize this post in terms of the to-do list. There are a couple items that don’t fit:
- I started dating my wonderful pet, Lealend, while I was in Vietnam. I went to visit them for a month in Puerto Rico where they live. This is very very important to me (the most important thing that happened in the last year), but I don’t usually write about things that personal on my blog so I’m not doing to say much. I’ve been emotionally maturing a lot by being with them.
- Conventions. I went to DEF CON, which was probably the best single week this year so far. I’m definitely going again next year. I attended a mirix [paper] in the South Bay, which ended up being stressful for transportation-related reasons but really good while I was there. I’m planning on going to Burning Man this year as well.
- I started contracting, that’s how I’ve been alive for a year. I’ve been doing some work for Zinc and Paul Christiano on a workflowy clone, mostly. I work two hours a day average.
- I’ve been developing a minecraft modpack [I’ll write more about this when it’s stable], and recently taken an interest in livestreaming.
Now on to the to-do list.
Success: Success but obsolete
Description: I set up a printserver. It’s a little raspberry pi that talks to my printer, because getting printers set up is a pain and I don’t want to do it all the time. It went great, it saved me a ton of hassle to have it automatically print out my daily agenda every morning, and to just be able to transfer documents over with ‘scp’.
Future plans: Unfortunately, my printer died and we only recently got a new one. I need to set it up with the new server. I could also make printing completely automatic when new files show up with scp (right now it’s manual so I can switch out paper, but my roommates would be happier with scp I think).
Project: Set up my phone so dropping/losing it isn’t horrible
Success: Partial success
Description: I wanted to root and then automatically backup my phone. I did figure out how to do as much backing up as I can, and it is automatic. Unfortunately it turns out most of the filesystem (including SMS) just isn’t available over Media Transfer Protocol which android uses to display files, so I had to special case the things I desperately needed backed up. I’d prefer the state of the world let me back up everything on the phone, but that’s as much work as I’m willing to do.
Project: Get digital copies of all books I own
Description: I got digital copies of all books I own via a combination of pirating, buying copies, and getting the books scanned by a service. I did not get rid of the physical books.
Project: Switch to private email
Success: Not done
Description: I get a little nervous entrusting Google (or any third party) with the ability to read, lose, or add restrictions on what I can do with my email. I want to set up my own email address (email@example.com) and have it be my main point of contact. My email does work, but I can’t send outgoing email, and I haven’t switched everything over to it for that reason.
Project: Download ArXiV
Description: As an archive nut, I worry that the ArXiV collection, one of the nicer collections of scientific papers I access regularly, might someday go down or get censored. I downloaded a copy and stashed it away somewhere. Unfortunately ArXiV’s licenses they get papers under doesn’t permit redistribution, so I can’t publicly host it. (This was really cool but I had to decide whether I was going to publicly mention, since it’s a legal gray area)
Future plans: Someone (not me) should host a torrent. Contact me and I can get you a copy.
Project: Pack and unpack storage bins (trip to vietnam)
Description: Okay I know this sounds stupid, but I spent about a month packing up to go to Vietnam, and all my physical stuff has stayed organized ever since. That’s a really big change for me.
Description: Back up all my personal data from my iPhone, clear the contents, and sell it.
Project: NNTP over tor
Success: Didn’t do
Description: I run a private newsserver, and I wanted to let people access the newsserver (and anything else on that physical server) over tor. I decided the newsserver was too dead to bother with, and I didn’t feel enthusiastic about setting up tor, so I dropped the project.
Future plans: I don’t care about the original project, but if there’s a compelling stimulus, I want to set up tor for my server to learn how and leave flexibility.
Project: Post pdfmailer website
Description: I wanted people to be able to get a physical copy of a pdf document they had mailed to them. I think this project was an especial success, because I’d been failing at an over-engineered version of this off and on for a year. I decided to have the website email me instead of trying to do everything automatically, and ended up getting the books to be a factor of 10 cheaper or so by going with a publisher with no API.
Future plans: I’d like to popularize the website more. I think there are also some small technical improvements to be made. I’m not going to automate things unless it starts using up a lot of my time to process requests myself.
- [Censored project involving an arbitrage opportunity I haven’t cornered]
- Project: Back up email
Project: Flatten backups
Success: Good enough
Description: Oh just go read the XKCD. Now imagine you’ve been archiving computers onto other computers for 15 years, and buy cheap laptops.
- Project: QR codes for ebooks
Project: Business cards
Success: Not done
Description: Make some personal business cards
Project: QR Punchcodes
Success: Didn’t do
Description: So you know how QR codes can contain any data? That means you could show them to a camera and the camera could run any code. Like, code to wait for another couple of QR codes, or to print out some more QR codes…
[Censored project involving an arbitrage opportunity I haven’t cornered]
[Censored project involving a mildly illegal thing]
Project: Make a desk out of cardboard
Description: I want to make a desk out of cardboard, because it sounds fun. I’m proud of doing the design right here. I’ve finished mocking it out of cardstock, and actually noticed a lot of flaws and fixed the design instead of hoping them away. Now I mostly have to get the cardboard and make it, should be fun.
Project: Write about paper backups
Project: Sort physical scans
Description: As part of packing up all my possessions to go to Vietnam, I scanned every physical document I own (and mostly threw them out). Twenty years of stuff is a lot of stuff, but I eventually sorted it all out. I’ve been increasingly finding that a flat folder structure ends up working out best for me in the long term, so that’s what I used.
I consider Dead Tree Publishing to be Good Enough at this point. It’s launched.
I’m going to add support for URLs instead of uploading PDFs, and fix some bugs here for there, but it’s essentially done.
Meanwhile, I’ve already received my first physical book I’m publishing through the site. I got this nice email from Eric Eve:
Dear Zachary, Thank you for your interest in my work. Yes, do please feel free to offer print copies of the TADS 3 Tour Guide (or any other of my TADS 3 documentation) along the lines you suggest. The only copyright right I’m interested in enforcing is my right to be identified as the author of the work, and I'm sure that's not as issue here. Best wishes, Eric
- Yes, and…
- Yes, but…
- No, but…
- No, and…
I listen at the door. Do I hear anything? (I determine the odds are 50/50 so I click the “50/50” button in the Get Answer section and I get back the following.)
(Now it’s up to me to determine what that means. Since it says “and” that means I got some kind of bonus. So I am going to interpret that to mean that from the sounds I am hearing I have received some extra information. So I type or say to myself),
I hear one person in the room. (Now I ask my next question.) Is the door locked?
(The answer is no but it’s not a total loss. I interpret what that means then type the following),
The door seems weak enough that I can probably kick it open.
So we’ve gotten a base system for telling stories. We then added the following:
- Whenever you roll a result, roll TWICE. In one universe, you get one result. In the other universe, you get another result. (With accompanying description). If you have more than three universes lying around, discard down to three. All actions/questions are for a particular universe declared by the players.
- (addendum) Actually, roll two dice: only split the universe if the second die comes up “1” or “2”. Otherwise, answer the question normally. This speeds things up a bit.
It was pretty fun in practice. I recommend using a text file over paper, since you’re going to do a lot of copy-paste. We had more fun with no GM than with a GM. No firm result yet on sandbox-worldbuilding vs players in scenarios; both seemed all right.
I wanted a partition to divide my room, and I had a whiteboard sitting around. I sawed it into three parts, and connected them with hinges:
I’m a little embarrassed at having done all this, since it was obvious as soon as I started the partition was way too short to work. I figured I’d still get some experience woodworking (this is my first project). Here’s where it went: