Mandaris Moore


I'm removing all the micro posts that I place on this blog. For the foreseeable future, I'm going to be placing all my short thoughts on the micro.blog service and then have this site show them on a side bar.

The transition should take about a week depending on how much free time that I'm going to allot to personal projects like this.


Ok, I've set up the domain for swiftslowly.com and I've announced to the world that I'm going to be focusing on swift development.

So...

What are my next steps?

The first step is to carve out some time in order to do all this.

The site that I've put together is just a chronicle of what I'm doing related to swift.

Who knows, maybe I'll be writing tutorials for swift on it before the end of the year.


I've decided that I wanted to focus on my Swift development this year. I've got a new domain and server ready to roll.

All in all, I've done everything related in this pursuit except for actually programming in it.

Not to mention, I'm still working on my projects in python.


I thought I'd document what I've learned about setting up Sublime Text 3 to work with a python virtual environment so that I don't have to look this up multiple times. Hopefully someone else will find this information helpful as well.

Set up the project area

All projects start in a project folder that I set up.

I like to keep all my projects in a parent folder. This way applications like Timing can track that I'm being productive in my chosen terminal application.

Creating the virtual environment

Using the mkvirtualenv command to create a new environment.

I use the mkvirtualenv wrapper scripts to make the virtual environment. All the projects that I'm currently working with are using virtualenv because they are supporting python 21.

Make sure that the environment is set up without errors

Verifying no errors in environment creation.

I like to make sure that it's setting up my expected version of python during this step.

Make the activate script executable

Make sure that the environment comes up correctly.

I currently see a problem where this script doesn't execute properly. I make sure that it can run. While I'm in that directory I check the versions of pip and python as well.

Note: My Virtualenv isn't in a hidden directory.

Test that the activate really works

Test that the activate script is executable.

60% of the time it works all the time. I don't understand the convention of having a script without the file extension.

Create a directory for this specific project.

Create a directory for this specific project.

Once again, I place this in my home project directory. I like to make sure that I have everything in it's own place so I don't have to think about where stuff is.

Edit the postactivate for the virtualenv

Using vi to edit postactivate for the virtualenv.

I like to read over it and it acts as a double check that it was generated correctly.

Add a command to the postactivate

Adding a command to the postactivate script.

I make my virtual environments switch to the project directory that I'm working in when activated. This is just a convinence for me, but I've seen tutorials on how to make it so the virtual environment is brought up when you switch to the directory.

Check that the environment is pointing to the correct version of python

Check that it is _not_ using the systems version of python.

You want to make absolutely sure that this is using the virtual env's python and not your system's. I think this is pretty important as python 2 is moving to end of life.

Run pip to install any needed libraries.

Call python to run the pip module to install.

I read about it done this way because it forces the environment to place the needed libraries within the correct site-packages folder.

Checking that the installation worked

Review the installation output.

Hopefully everything installed cleanly or at least gave an error on why it didn't work.

Clone the project into the directory

Place whatever project that I'm working on in the directory.

In this case, I've got a new python project that I created on github. I create the project on github so that I could use there basic python template and github actions.

Once again, I do this so that I can differentiate multiple projects and versions. We all have projects that aren't finished and this helps me by eliminating wondering what versions things are at.

Check that all the files are there

Your project folder is going to be different.

It's all part of "trust-but-verify". I've seen a lot of misspellings.

Open the folder in Sublime Text

Opening the project in Sublime Text from the command line.

I've set my mac up to use Sublime Text from the command line.

Set up the Sublime Text project

Sublime Text showing the build system.

When you create a new Sublime Text project, you can specify how it handles builds and tests. This allows me to specify the exact version of python without having to go to the command line.

{
    "build_systems":
    [
        {
            "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
            "name": "Anaconda Python Builder",
            "selector": "source.python",
            "shell_cmd": "\"/Users/mandaris/Virtualenvs/MK-Img2fig/bin/python\" -u \"$file\""
        }
    ],
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "."
        }
    ],
    "settings":
    {
        "python_interpreter": "~/Virtualenvs/MK-Img2fig/bin/python",
        "test_command": "~/Virtualenvs/MK-Img2fig/bin/python -m unittest discover"
    }
}

After this, I can iterate with my code knowing that everything is set up properly.

Conclusion

I'm hoping that future me or someone else finds this informative. It was fun putting it together.


  1. This might change after January 1st according to PEP 373


MindMap of my Good Omens Review.

Memories

I vaguely remember this book from reading it in junior high or high school. I remember it being a fairy quick read, and probably being the first time that I read something that was humorous and religious.

Plotting

The show works at its own pace. There were some places in it that felt like it was a stopping point before the next scene and I felt that there where at least an episode or two that could have been cut from the show and no one would miss them.

Acting

This is where the show really shines and Michael Sheen and David Tennant really make the it work for me. Honestly, if they weren't on the show I don't think I could have finished it and it's only 6 episodes. If anything, I'd love to see more of their exploits throughout time.

Conclusion

It's a decent show but I don't think I'd watch it again for another season.


I got an email recently telling me that I had to take an image down because it was in violation of copy right.

I took it down and then spent an hour and a half working on test content for my blog theme.

It's one of those nights when I should have just gone to bed.


I'm about to head to my first officers training for ToastMasters. I'm hoping that it will go alright. As the Sgt of Arms, I don't have many tasks assigned to me, but you never know sometimes if there might be something that I'm missing. Another thing is that I don't want to commit to much time to the task or it might scare future prospect from doing it.


Other than that, I've been thinking about what other tasks are waiting for me.

Myself
Working on being the best person that I can be. I know I'm flawed but I have a lot of strengths.
Programming
I've got a couple projects that I want to finish.
Family
We have to find ways to grow together.


A Day One call to action.

Years ago, I set up IFTTT to save my tweets and liked tweets to Day One. Unfortunately, I'm not a big fan of Day One, but I've had a hard time coming up with a reliable replacement. When they made the transition to a subscription model and moved to their own syncing solution, it was very difficult for me to see their point of view on things.

Neverthe less, I'm back to using it on a more regular basis.

This week, I got an email from IFTTT stating that the connection was broken and I have re-evaluated whether I want to continue saving these little bits of social interaction1.

As of this writing, I've got 1336 things being stored in my journal. I don't know if I'll go back and read stuff from years ago, but -like all journals and digital hoards- I don't want to get rid of it.


  1. Why should big social media companies have all the fun/information? 


Computer maintenance over task maintenance.

I think this goes hand in hand with my post from yesterday where I spent an hour updating other things tangental to my blog in the hopes that I'll be able to actually post something about my SwiftUI progress.

It's hard to change a habit.


Two Cautions signs.

I spent some time going down a rabbit hole this evening. I've been putting the time in so that I can learn how to program with SwiftUI when I came up with the idea of putting things on my site so that I could show the world my progress.

When I thought about that, I was reminded that I wanted to spruce up the css on the site so that it would look nice.

So, I took some time to load up the static version of my site so that I can see what changes would look like when I update it without regenerating the whole thing with a build of pelican.

I notice that I didn't have an example of several blocks of text (like what you see now).

Sooo...

I spent 5 minutes getting a copy of lorem ipsum because I always think "This is going to be the last time that I'm going to need that. I spent 5 more minutes adding emphasis, bold, links and code to it when I realized that I should have something a little more familiar.

That's when I looked up alternatives to "The quick brown fox".

I created a new paragraph using it and then placed that in both my test information and my static site.

Whew...

Ultimately, I spent more time just setting up this demo information for the site then posting about my iOS development.