Daily Entry: June 15th, 2017

Thu Jun 15 06:59:59 UTC 2017

Almost forgot to start this post today.

I'm thinking I should put more of my political and I guess "liberal" thinking here.

Might be a good way to verify some of my knowledge and worldview, as well.

Next time I fall into reading about politics and stuff I'll post thinking here instead of keeping it in my brain.

Also, should write down thoughts about shows I watch more.

Thu Jun 15 07:40:46 UTC 2017

Welp, I'm going to put transcripts or recollections of conversations of these things in this diary. I think that'll be a good first start.

This will be cleaned-up later.

congrats on the new last name

Rory

heh

i don't want people finding me

Livio De La Cruz

Livio

Rory

i rage quit for reasons and now facebook is a specific tool

which is chatting with people whom prefer messenger

same reason i have skype still

Livio De La Cruz

Livio

I haven't blogged in ages, but I've been making a lot of little "serious posts" on my facebook feed lately.

Rory

that's the same reason my mentor (Stephan Terre) stopped blogging as much

Livio De La Cruz

Livio

like 2-3 paragraph mini thinkpieces while sharing links to stuff. It's weird, but it's satisfying a lot of the same cravings that blogging did

Rory

basically, anything i would say on facebook i say in my diary and probably the same amount of people read it either way

ksionda.me/diary

Livio De La Cruz

Livio

lol skype

huh

Rory

and also i slowly build drafts of things that may be proper blog posts that will eventually live at ksionda.me/blog

Livio De La Cruz

Livio

whenever I write I'm always trying to make some kind of impact, and so I feel like it'd lose all meaning to do it privately

I don't get many likes or comments, but I've had like three friends approach me in person to thank me for some of the things I've been writing. it's crazy.

Rory

/me nods

i was bad at impact and writing on facebook or other places wasn't making me better

i am still bad at impact

however, the way my brain works i develop tunnel vision too easily to make my serious thoughts facebook or twitter public

Livio De La Cruz

Livio

I've noticed at least two friends start writing "serious posts" occasionally too but they seem to struggle with a few things as well

Rory

i need to slowly build my philosophy around something and then i can make a proper public thing about it

so, my diary is available to anyone interested, and sometimes i dive into things

i could be better about putting my political opinions there

i'm still ingesting a lot of info and thinking about it whilst i pace around the room

i need to start the day's daily post

Livio De La Cruz

Livio

I think it's important to be vocal about your opinions, and to find a way of expressing them in a way that you're satisfied with, even if it's just short and simple. I just think so many people on the right honestly believe that everyone agrees with them because no one near them ever speaks up.

Livio De La Cruz

Livio

You're not gonna change any minds, but you still gotta apply that pressure. Make them feel the pushback

Rory

I apply pressure, but I'm a one-on-one kinda guy. Also, again, gotta be careful about not regressing to "arguing to win" me.

So, I still regularly talk and even work with that one conservative guy I told you about.

Livio De La Cruz

Livio

Changing someone's mind is a long term game, not necessarily something that happens in a few epiphanies. So being persistent in a way that doesn't turn people off is important

yeah

Rory

Basically, I fight with a lack of meaning regardless of where I put my opinion. So I'd rather work on regularly writing and I like it best in my diary area.

Livio De La Cruz

Livio

definitely feels like getting through to people is a high-skill, high-challenge kind of activity

Rory

I have come back a little bit. I'm back on twitter, too.

Livio De La Cruz

Livio

I think I've talked to you about Greyson from gamedev before, right

Rory

Yeah.

Rory

I struggle with the preaching to the choir problem. I think that has its value, mind you, but not as a change people's minds thing. It's more a "you're not alone thing", which I think is also very good. I would like to have metrics to somehow gauge progress and actually develop working strats vs net-negative strats.

Livio De La Cruz

Livio

yeah

Did I tell you about how I stopped talking to greyson, unfriended him and everything? I feel like my circle of friends is only becoming more like "the choir" but I guess there are still plenty who i don't know about what they think

Rory

Yeah.

When Trump got elected I had seriously considered cutting a lot of people from my life.

Rory

But I know that I've made progress with friends but not with strangers, so I think maybe it's more important to make friends and keep friends with views I find abhorrent. Also, work with them. Make it so talking about it isn't taboo and make it so telling them something isn't acceptable doesn't mean friendship is over. But also I won't defend their views to other people.

Rory

By "work with them" I mean work on projects and stuff.

Do stuff not related to their straight-up evil views. And I am quite clear about finding it evil. It was a long conversation with a friend of mine.

And a shorter one with my sister.

Livio De La Cruz

Livio

with greyson I hit a point where it felt like I had made it clear that i found his views evil, but the fact that I wast tolerating them was undermining my message, which is why i felt it was important to kick him out of my life and make sure he understood why I was doing it

Rory

Yeah, I understand that.

Like, there's a personal responsibility thing that's a hard line to walk.

Like, if they're especially vocal you need to make sure that people who know that you're friends know that in no way whatsoever do you find those actions acceptable.

I linked you to that social change article, yeah?

Livio De La Cruz

Livio

I think so

by nicky case

Rory

Yes.

Livio De La Cruz

Livio

man I'm always rethinking my decision to ditch greyson and every time I conclude that it was the right thing to do but i can't stop rethinking it as if I'm still unsure

Rory

That's a good sign, I think, though it can be a burden.

I do the same thing with a variety of things.

Hopefully the questioning gets more and more spaced out.

Livio De La Cruz

Livio

get a cool profile photo rory

maybe something anonymous since that's what you want i think

Rory

I do the same thing with Christianity.

I could make it that crossed-out K that I use elsewhere.

Livio De La Cruz

Livio

I just keep looking at our chat window and thinking something went wrong and didn't load lol

Rory

there

Livio De La Cruz

Livio

nice

Rory

rosse made that for me a while back

much better than the one i made

as can be seen here: https://twitter.com/SilentKsionda

Livio De La Cruz

Livio

I post so much, I hope I don't overtake your feed

I've had friends unfollow me for that before

Rory

i don't go to facebook.com

so no worries

Livio De La Cruz

Livio

twitter too

I just need something to do while code compiles and stuff lol

Rory

oh, i'm trying to be careful about who i follow

i don't follow people who post politics too much, though i do follow people who are straight-up politicians

i'm trying to find the line and walk it

Livio De La Cruz

Livio

I tried doing that, but I feel like I get more value following a variety of reporters

Rory

just like i argue with a libertarian about how he's wrong about his politics and also lol at "free-market advocates like Donald" but then later apologize for picking an argument over healthcare

like, i'm trying to find what's productive

Livio De La Cruz

Livio

hehehe

Rory

i follow the rule that if i'm not regularly confused and don't look like i'm confusing the person i disagree with, we're probably not making any progress on understanding each other and updating our views accordingly

because i noticed that's how i've made progress with friends

Also, it's something that really rung true in that social change article.

and now i may only tweet things i've done elsewhere instead of tweeting to talk

Wow, really need to pick what syntax rules I'm following in this conversation.

That's another thing I do, I used to be very particular about how I write, but now I try to reflect the person I'm chatting with.

A friend told me how uncomfortable it was when I wrote with "proper" syntax. He said it felt like I was lecturing him or yelling at him.

Livio De La Cruz

Livio

lol

Rory

And at first I got all offended because it's how I choose to talk online, but then I realized I don't care and I should really be flexible where I don't care.

Livio De La Cruz

Livio

sounds like "you type like my grandpa"

people on the internet are so particular about what sounds "authentic," though meeting those requirements is often very inauthentic for some people

Rory

choice of words is yuge with people with different worldviews

also the same words mean different things

what a mine-field

reminds me of a lovejoyfeminism post about how evangelicals and feminists mean different things when they talk about sexual morality

http://www.patheos.com/blogs/lovejoyfeminism/2012/08/a-tale-of-two-boxes-contrastin-sexual-ethics.html

A Tale of Two Boxes: Contrasting Sexual Ethics

. Not only do conservatives and progressives divide acts differently between the two boxes, they also label the two boxes differently. (I’ve already discussed this illustration in posts on

patheos.com

this is something that makes a lot of arguments non-starters

like with, was his name tyler?

at some point i argued that this became an argument of semantics and he was all "semantics=meaning and it's important"

now i consider it more important to note that a difference in understanding of words has brought a discussion to a halt and we need to define things

so, like that argument about ageism that happened when you linked to that one gamasutra article a long time ago

and he was adament that it might not be ageism because intent, and i said that the results of hiring practices shows an ageism problem regardless of intent and blah blah blah

people don't understand that systems can be bigoted

Livio De La Cruz

Livio

man I hate that. Like some people see that they have different understandings of what something means and rather than using that to clear up confusion, they literally pick a fight and start arguing about who's right about the "real" meaning. So dumb

yeah and the hyper defensive "it's not my fault so I don't care about this problem" argument

Rory

/me nods

that's why i really liked the parable of the polygons thing

if you're not intolerant of a bigoted status-quo because you didn't cause it, then you're letting it happen if the system is already bigoted

Livio De La Cruz

Livio

been wanting to make something like parable of polygons but don't have inspiration

Rory

i'm going to put a bunch of this conversation in my diary cleaned-up if that's all right with you

Livio De La Cruz

Livio

sure

Rory

cool, cool

Livio De La Cruz

Livio

should probably go to sleep now

Rory

kk

sleep well

Fri Jun 16 20:50:43 UTC 2017

Didn't clean it up until next day but whatever. I should go over it and reflect a bit more cleanly on my talk with him and my philosophy on some things.

Daily Entry: June 14th, 2017

Wed Jun 14 06:42:17 UTC 2017

Well, on June 22nd I'll be flying to San Francisco to interview with a rad place called Mixpanel the following day. And then on June 25th I'll be flying into New York City to interview for a rad place called AQR.

I'll be coast to coast over a weekend, Stephan. Pretty crazy.

Woah, I was just reminded of a weird dream I had. It was silly. In the dream, someone contacted me telling me to stop blogging, because my writing was good but the way I went about it was super annoying or something and the person wanted me to stop because apparently them just not reading my silly diary wasn't an option.

Dreams are weird, yo.

Anyways, I'll be playing Overwatch soonish, but until the wife is ready I think I'll do some coding.

Wed Jun 14 06:58:06 UTC 2017

Nope, just paced and thought. Now Overwatch.

Daily Entry: June 13th, 2017

Tue Jun 13 05:02:50 UTC 2017

I have a proof-of-concept of making pygame code run in browser.

You may notice that things aren't lined up correctly. Certain things get lost in translation using pyjs. Namely, getters and setters.

It looks like Transcrypt does a better job of that, but after fiddling with pyjsdl, it looks like the pyjs compilable pygame rewrite seriously uses the pyjs library. Not so simple to replace pyjs code with transcrypt code.

However, there is a port of pygame written directly to javascript called game.js. The API looks fairly identical except functions look like "setMode" instead of "set_mode".

It's possible to import javascript libraries in Transcrypt. It may be possible to use game.js with Transcypt to port pygame code to javascript.

That's what I'll explore today.

Tue Jun 13 11:44:14 UTC 2017

Transcrypt and game.js together is a plausible route. However, it'd be a lot of work and how good the final product would look/feel is unknown. The API between game.js and pygame is different enough to make even hello world complicated to recreate. Missing is an ellipsis draw method. The size of the screen is also supposed to be dictacted by CSS (as it is in that link just given).

Daily Entry: June 12th, 2017

Mon Jun 12 09:43:40 UTC 2017

"Daily" continues to be incorrect. Bidaily is twice a day, though. Or is it ambiguous like bimonthly?

Doesn't matter, I think I can be more consistent. I'll try to have a least a sentence tomorrow.

Mon Jun 12 09:45:06 UTC 2017

Anyways, today I'm going to work on adding javascript compilation to my pygame_skeleton project.

I'll also remove this weird dependencies saving thing I made because I don't like it. Which means I need to update my tutorial.

Mon Jun 12 09:52:08 UTC 2017

Done.

Mon Jun 12 11:01:15 UTC 2017

pyjs doesn't have python 3.x support.

Time to roll back to 2.7 and examine the landscape.

Daily Entry: June 10th, 2017

Sat Jun 10 05:10:47 UTC 2017

Seems this daily logging is starting to happen every other day.

In any case, Mixpanel interview in San Francisco on June 23rd. I'll be flying on over and hanging out with friend on June 22nd, and that means I'm a horrible husband as I'm flying out on my wife's birthday. Bad thinking about timing on my end there.

In any case, today I want to edit that tutorial, record a voice-over of it, and then following that voice over's instructions while recording, and then fix things I realize are wrong and redo everything, and then hand all that over to my wife to edit into a video.

That may end up spilling into tomorrow.

Then I'll take gifs out of that video to put into the blog post, and have both a blog version of the post and a YouTube video version, and let YouTube handle comments.

Hopefully three days max. Then I want to play with compiling python code using the pygame library into JavaScript. I found out there's a JavaScript implementation of pygame, and also python-to-javascript compilers.

Also, I should pick a capitalization of python and javascript and stick with it. All lowercase it is.

Sat Jun 10 05:20:27 UTC 2017

But right now Overwatch.

Sat Jun 10 12:16:43 UTC 2017

I'm satisfied with the current draft of the pygame setup tutorial. Right now isn't a good time to do audio recording, so if I continue doing work, I'm going to look into compiling pygame code into a working javascript setup.

Sat Jun 10 12:43:17 UTC 2017

Formatting is screwed up again. I thought I fixed this before.... Annoying.

Sat Jun 10 12:45:49 UTC 2017

Looks like I just needed to restart the server.

Daily Entry: June 8th, 2017

Thu Jun 8 02:00:13 UTC 2017

I will be interviewing with Mixpanel!

That's pretty exciting for me, for a variety of reasons. One of them being I'll be on one side of the USA for my interview with AQR (Greenwich, CT) and on the other side for my interview with Mixpanel (San Fransico, CA).

Thu Jun 8 02:24:04 UTC 2017

Getting another job coming along. Probably the path I'll take afterall. I will consider grad school and other options after another serious round of proper programming work.

Thu Jun 8 02:49:54 UTC 2017

The wife just showed me how to sew up some holes on my shorts. I'll be devoting a bit of time everyday to sewing up some holes. I'm thinking of recording it and posting it to my youtube channel tomorrow.

Thu Jun 8 03:08:42 UTC 2017

Wife and I were discussing apartment plans for when we eventually move. Small space should be fine. We're thinking of trying out a traditional japanese futon for sleeping purposes to maximize space usability.

Thu Jun 8 03:09:26 UTC 2017

Overwatch time.

Thu Jun 8 06:30:37 UTC 2017

Little low on energy even though I was feeling really good earlier after riding my bike to the grocery store and back.

Thu Jun 8 08:25:18 UTC 2017

I said I'd finish that tutorial draft yesterday so I should really work on it right now.

Thu Jun 8 09:17:00 UTC 2017

Draft done. It's still very imcomplete and needs tons of editing, but the gist is done and that's good enough. Tomorrow read through it 3 times and iterate it as I see fit.

Daily Entry: June 6th, 2017

Tue Jun 6 11:07:41 UTC 2017

Phone interview with AQR went very well.

Further, I have gotten feedback from Mixpanel and should have a phone interview with them soon.

I have done some pullups, done a full stretch routine, and gone for a 7-mile bike ride (not at all in that order).

I have also meditated and caught up on tickler.

Today is the first day of me counting calories again.

Tue Jun 6 11:17:33 UTC 2017

Considering whether or not to dance. Should probably start and then decide to stop whenever I feel like it. Starting is harder than continuing.

Tue Jun 6 12:16:27 UTC 2017

Danced about 4 or 5 dances. This time when I felt like stopping, I skipped the song and found myself dancing more. I accidentally closed the Just Dance game, though, and took that as a sign to stop.

I feel really, really good now.

Tue Jun 6 12:19:34 UTC 2017

Time to work some more on that one tutorial I'm working on. I have all the necessary resources to finish it, and finishing needs to be a skill I cultivate. So let's try and finish the draft by tomorrow and start working on the video a bit tomorrow.

Tue Jun 6 12:44:58 UTC 2017

Made good progress. Editing comes later, I'm just writing it down as it comes now.

Setting Up Wing Personal IDE Pygame Environment

Hello, I'm SilentKat and let me break down the assumptions and goals of this here thing:

  1. You are using a Windows OS (aka Windows 10, 7, 8.1, Vista)
  2. You want to program a game
  3. You're choosing python to program that game
  4. You're willing to use the pygame library to do a lot of the heavy-lifting
  5. You want to make an executable of your code that runs on any Windows machine

If any of these assumptions are wrong this probably isn't the thing for you. I am, however, willing to do an Ubuntu version of this (and the executable in that case will be a binary playable on Linux systems). Let me know if you're interested in that and I can make that a priority. As I do not currently have access to Mac OS stuff, I am currently unable to make any such tutorial for that OS.

Further assumptions:

  1. You want to setup your environment without using the command-line
  2. You do not have python already installed
  3. You want to program in the Wing Personal IDE

If any of these assumptions are wrong, it's not necessarily a deal breaker. If you want to use the command-line, it should be pretty clear what commands to use instead of running the given scripts.

If you already have python installed, and that python is not 3.4 32-bit, then I highly recommend installing python 3.4 32-bit for maximum compatibility purposes. Also, to avoid some issues, make sure when you install python 3.4 that it's the "default" python (click the button that says add it to your PATH when installing).

If, at any point during this setup you hit a snag I don't mention, bring it to my attention and I will help figure out the problem and update this thing. I've hit plenty of snags doing this myself and helping one specific other person. Probably lots of gotchas for this.

Steps:

  1. Install 32-bit Python 3.4.4
    • Note: Remember to click on the box to add Python to your path
  2. Install Wing Personal IDE
  3. (Windows 10 Only) Download the necessary DLLs for backwards compatiblity with older versions of Windows
  4. Setup virtualenv_without_cmdline
  5. Setup pygame_skeleton

Install 32-bit Python 3.4.4

Why 3.4.4? Python 3 has made lots of progress and is a worthwhile pick over the standard Python 2.7. However, the library we'll be using to make an executable out of our game code (PyInstaller) has currently (as of June 6th, 2017) unresolved issues limiting our executable options.

Why 32-bit? So that our executable generator (again, PyInstaller) creates a 32-bit executable that will run on 32-bit systems. It'll also make our generated executable smaller.

So, with that being explained, download the Windows x86 MSI installer for Python 3.4.4 (from the main python site) and install python.

Install Wing Personal IDE

Why Wing Personal IDE?

No reason. This setup should work with any IDE or lack thereof. I am simply playing with the IDE right now and think it's perfectly serviceable for our purposes.

Other worthwhile alternatives:

  • Spyder
  • Eclipse
  • IPython Notebook
  • Powershell and editor of choice
    • Vim
    • Emacs
    • VSCode
    • Atom
    • Sublime Text

You do you.

Wing Personal IDE download link.

Windows 10 Backwards Compatibility

Why?

Windows 10 does voodoo black magic to pretend it has libraries older Windows versions have when really it consolidated all of them into a single library.

Or something.

In any case, this will confuse the picky PyInstaller library we're using and it won't bundle the right libraries into our executable and then that executable will fail to run on Windows systems that don't already have the necessary DLL libraries.

So, how do we get those DLLs? Well, there's a large (over 2 gigs) Windows SDK that provides them or you can download just the necessary files (2KB) here.

virtualenv_without_cmdline

Why virtualenv?

Python has a lot of options out there. There's various active versions of python, and various popular third-party libraries to further extend the language. Different projects have different needs and those needs may conflict with one another. A third-party library may only work properly on specific versions of python (cough PyInstaller cough). So we're going to put our game's various dependencies in one place so that if we want to work on another project, we don't have to worry about stuff we downloaded for this project making things difficult for any other project.

Why these scripts to do virtualenv?

Virtualenv kinda expects the user to run from the commandline. If you've never used the commandline before, this can be daunting and error prone so let's just avoid it and virtualenv via python scripts, which if you don't already know how to do, you'll have to learn if you plan on programming in python.

Note: I fully recommend learning command line. After the learning curve, it is quite powerful. But that's just me, you do you.

Once you've downloaded the zip from that github link given earlier, unzip it somewhere you're willing to put a decent amount of data (the virtualenv_without_cmdline is where we'll be putting our virtualenv, which are basically self-contained python installations).

Then, create a project in Wing IDE and save it to the virtualenv_without_cmdline directory. Then add that directories files to the project.

Open and run the "update_pip.py" file. Python 3.4 is fairly old by now, and the pip that comes with it is also old and can/should be updated.

Open and run the "pip_install_virtualenv.py" file. This will install the virtualenv library on the main python 3.4 area.

Open the "create_virtualenv.py" file. If you don't want your virtualenv to be called "default", change the single occurance of the word "default" in this file to whatever you do want the virtualenv to be called.

If all goes well, you should now have a directory called "default" in virtualenv_without_cmdline.

If you don't want your virtualenv called "default" or whatever you named it. In it there is a directory called Scripts and in that directory there is a python.exe. This is the python.exe you will be pointing at for your pygame project.

pygame_skeleton

Download pygame_skeleton from the link above.

Create a new project in Wing IDE. Point this project's python at the python in your virtualenv directory.

Sanity check: if you have more than one version of python installed something may have gone wrong. Or, if you're like me, something magically went wrong because that's just what happens to you. In either case, Wing IDE will have opened a python shell using the exe you just fed it in that lower-middle window. It should say "Python 3.4.4 (32-bit)" somewhere in there. If it says something else or is just not working, something went wrong.

Let me know and we'll figure out what went wrong and fix it.

Sanity check passed? Good.

Save this project to your pygame_skeleton directory. Add the directories files to the project.

Open and run "pip_install.py". This will take a while. You'll notice there's a list defined in this script called "libs_to_install.py". If there's any library you want to install for use in your game, you can add it to this list. Pip will automatically install the latest version if you don't provide a version. If the library isn't present in pip's normal lookup table, you may need to provide pip a link to the library instead of just its name. "git+https://github.com/pyjs/pyjs.git#egg=pyjs", for example, installs pyjs, a python-to-javascript library which will eventually be utilized in an update to the pygame_skeleton project.

After that's done running, you should have all the libraries you need to make a python game in pygame.

Sanity check: restart your python shell. Try the following commands in that shell:

import pygame import PIL

If those commands don't cause errors, you should be good to go. Go ahead and open "hello_world.py" and run it.

You should see a non-interactive window pop up that is identical to the one below.

Did the "hello_world.py" game work? Cool.

Now try running "build_exe.py". An exe should now be present in a dist directory within pygame_skeleton.

Should look something like:

Running this executable should run the same game as hello_world.py.

If everything is working, let's give a tour of all the stuff that's here and how to change the stuff you're going to want to change.

The tour

"hello_world.py" just has some basic pygame stuff in it. Feel free to modify it to get familiar with pygame if necessary. As time goes on, I'd like to add additional examples of how to do things in pygame to this project. You can also just delete this file.

"build_exe.py" builds the exe based on the specifications in the spec file specified in the python script. There are two spec files that come with this project. One builds the "hello_world.py" into a single-file executable and the other into a single directory that contains a game executable.

Point "build_exe.py" to the kind of executable setup you want to create. There's pros and cons to each. Basically, if you want to save stuff between game sessions, you may want to make it a directory, else might as well be a single-file executable. This isn't a strict rule-of-thumb, but good enough for now if you don't know which you want to do.

The main thing you'll want to change in either spec file is what the "main_file" is. Right now, it's "hello_world.py". You'll want to change that to whatever your main python script is that runs the game. Whatever file you run to play your game is the main_file.

You'll notice that the hello_world.exe created has an icon that looks like:

You'll notice that when you run the game it has the same icon.

These are not the same images.

The image shown in the pygame window is in data/icon.png and the image shown in the exe is data/icon.ico.

Why two icon files?

"ico_from_image.py"

The icon of the executable is set via PyInstaller. The icon in the pygame window is set via pygame code (see "resources.py"). Pygame is particular about its files, and doesn't like the ico files created via the PILLOW library which is what the script "ico_from_image.py" does.

In any case, find/create the image you want to be your game's icon, set is as icon.png in that data directory, and run this script to make an ico version of that image.

This will set all relevant icons as that image.

"resources.py"

Okay, so why is there a resources.py and what is it doing?

There are significant differences in the environment between running your game as a script and running your game as an executable. "resources.py" makes abstracts that away so that you can pretend the environment is the same. Make sure your non-code assets are in the data directory and make sure you grab those assets via the relevant resource methods and things should just work.

Make Your Game

You should have everything you need. There's a lot of stuff not yet covered that I would like to eventually cover, but this should be a decent foundation to get you going.

Happy gaming.

SilentKat

If you have any questions or comments: tweet me @SilentKsionda.

Daily Entry: June 4th, 2017

Sun Jun 4 07:38:12 UTC 2017

All right, let's do some things!

Maybe start with some reflection and thinking.

I brought my bike back with me from Tucson, Stephan. I'm already really glad I did, as the last two days I've done a modest 7-mile ride each day. Really nice getting that fresh air. Running's been good, but I may need new shoes before I do anymore, as I've been feeling some aches in my legs that may lead to long-term damage if I'm not smart about things.

Tomorrow I plan on adding my bike rack on the back tire so I can reattach my pannier and maybe even do regular grocery shopping via bike.

We'll see.

Sun Jun 4 07:42:16 UTC 2017

I should do some chores. To the tickler!

Chores done.

Sun Jun 4 08:02:57 UTC 2017

I have gotten distracted reading up on character design tips.

Sun Jun 4 08:04:49 UTC 2017

Let's start working on that draft again.

Let put its content in a post now and just keep updating that post.

The post is here.

Sun Jun 4 08:26:42 UTC 2017

Fixed the config such that me putting line breaks in my markdown doesn't translate to a line break in the rendered diary post.

Sun Jun 4 08:38:33 UTC 2017

Feeling tired. Swtiching to playing some Zelda.

Sun Jun 4 09:34:40 UTC 2017

Switching to Overwatch quickplay with the wife.