I’m making a newsletter!

As a fun project for 2017 I am going to making a newsletter about the things that I like and the projects i work on. It will be similar to the content of this blog, but a little more humorous. Each issue will also be more of a hodgepodge of each subject rather than sticking to a specific subject like I do with posts here.

I am calling it Traversing the Mindscape Landscape! If you want to sign up you can do so here: http://tinyletter.com/daveskull81

A couple of years ago I tried my hand at making my own podcast under the same name, but I didn’t stick to it as, honestly, it was poorly planned. I want this newsletter to be in the same vein of bizarrely funny content, but also talking about the things I find online that interesting and / or cool. This will give me a chance to exercise some silly thoughts that I haven’t done in awhile. Doing it in a written form also should help to make it more manageable which should lead to a more successful run.

With my podcast I really just didn’t plan it out well. I was trying to do one episode a week, but didn’t give myself enough lead time to create an episode. I was trying to make an episode for the coming Friday on the Wednesday prior. It ended up being too much work to keep up and I stopped making episodes after only a few. This time around I am going to plan it better. I will be spending the next month or so planning out issues and promoting the newsletter. I will be launching it sometime in February. This should give me enough time to get good ideas together for future issues.

I will only be putting out one per week at most, so it shouldn’t be too spammy and I should be able to keep it up with the right planning. I really hope that you subscribe and check out the first few issues. So, if you are into writing code, making coffee, taking photos, or poems about bears made of cheese all while wanting links to cool internet stuff subscribe here.

Huzzah!

Built a CRUD API for Robots with NodeJS, Express, and MongoDB

After building an API about myself I wanted to get into another API project right away. I found this article on Scotch.io about building a CRUD API using NodeJS, Express, and MongoDB. As I have been learning the MEAN stack I have put off working with MongoDB. In my previous attempts I had multiple issues setting it up and running it locally. I had enough issues that I put it off for too long. The Scotch.io tutorial mentioned a couple different online hosts for MongoDB databases, one of which is mLab. They offer a free instance that you can use as a sandbox database for development purposes. This was perfect to me as I want to learn how to interact with MongoDB, retrieving data and saving new data, but I’m not interested in learning how to admin or run a MongoDB instance. At least, not at this time. So, having a way to easily run Mongo and work with it was a definite catalyst to this project. It also lead to this tweet.

In the Scotch.io article it goes over the basic setup of Express and Mongoose. I used that as a template for getting my API up and running. It was a pretty straightforward process as I only needed one route with the appropriate handlers for each verb. Working with Mongoose was really easy and it worked to set it up on the route file. Working with the Mongoose docs made it easy to get my schema as ai wanted. In my API I used Robots as the example object I am creating, reading, updating, and deleting. I gave the object two custom parameters, designation and evil. Designation is a string and seemed more appropriate for a robot rather than calling it name. And it feels pretty important to know if a robot is evil or not, so I have that as well as a boolean. Each of these are given to the API via query strings. Being that I only have the two parameters I went with query strings in the URL instead of parsing out the body of the requests. In my next project I want to make a more complex object and that should lend itself to working with constructing custom objects to provide in the requests. Maybe that one can be superheroes. I can probably come up with a few more parameters for a superhero object.

It felt like the project went pretty smoothly and I was able to it up and running. I used Postman for testing out the routes and worked pretty well. I was able to run the requests as I needed and simulate a few error situations. I already know of one that I am not accounting for right now that needs to be addressed which is that requests will still go through to the POST route if neither of the parameters are supplied. It will end up with an empty object being created with no designation or evil params. I need to fix it so that the request is checked for both before I go to the database with nonexistent values.

Once that is fixed I will feel pretty good about the project. In fact I am likely going to fix it after I post this tonight. Next, I am work on an API for a more complex object. After that, I want to tackle adding in authentication so that I can have individual users. Right now anyone could use this API and it will all come in as one person.

If you want to check out the project you can find it on Github here. Feel free to let me know what you think in the comments here or submit PRs with your own ideas.

Happy New Year & Thanks for reading!

Here in Seattle, WA it is 6:05pm as I wrote this post. Cassidy and I are relaxing at home before we go out for dinner and drinks to celebrate the coming new year. I wanted to take this moment to say thank you to everyone who has read this blog in 2016. Even if it was only one post that you found after googling something, thank you for checking out my brain. And if you’re one of the crazy few who has actually subscribed to my posts here, I especially thank you for letting me invade your inbox with my thoughts.

It has been a lot of fun to create this site to be the internet version of my brain. I get a lot of joy shouting into the ether of the internet (Ethernet? heehee) here. It feels really good to have a blog that I actually want to stick with and not give up on six weeks later. So, thanks again and happy new year!

Checking in on my 2016 challenges

thumbs-up

Just before 2016 started I formally and publicly challenged myself to accomplish a few things this year. You can read the original post here. I set a few goals for myself, some of them lofty, but I wanted to see where I can get myself. I also really enjoy the idea of challenging myself to do things rather than setting new year resolutions. To me it feels more permanent, like something that I will think about all year long. And I have thought about these things throughout this year. I worked on each one and kept track of where I was with each. Some of them I accomplished and others I didn’t. But, in the end I feel like I have learned a lot and bettered myself and the life I am living.

My challenges in 2016 were the following:

  • Write my niece Olivia a letter each month (Accomplished!)
  • Perform a standup comedy set (Unsuccessful)
  • Run 400 miles (Unsuccessful)
  • Get a job / position writing code (Partially Accomplished)
  • Learn to Swim (Accomplished!)
  • Write 100 blog posts (Accomplished!)

Writing a letter to Olivia was really fun and much easier than I thought it would be. I’m not really sure why I thought it would be hard as it only took a few minutes each month. I sent out the one for December just before Christmas and marked it complete on my list.

Performing a standup comedy set didn’t happen this year because I chickened out to be honest. I have some jokes written and a basic idea of how I want to do it, so I have moved this goal to my 2017 list. I am going to make this one a higher priority this year since it is rolling over.

Running 400 miles didn’t happen as I hurt my foot and got sidelined pretty hard as far as running goes. But, I am starting a new workout routine to keep being active and lead a healthier lifestyle.

Getting a job / position writing code is marked as partially successful as I did get a promotion to support Smartsheet API users which means I work in a realm of code each day. I do have to write code in my testing of issues and I have written code to help automate some processes for one off projects. So, I am marking this one as 80% complete. In the end I am happy with my career growth and the path I am currently on in the tech industry.

Learning to swim happened pretty early on as I wanted to be swimming on a trip Cassidy and I were taking in May to Hawaii, which I did. We went swimming in the pool almost every day that we were there. Since then we have gone swimming at one of the city pools a few times. I am now much more comfortable around water and in it. It feels really good to have finally done this.

Writing 100 blog posts was a big challenge, but also a fun one. I will be honest that this post number 99 for the year, but with one I have planned for tomorrow I will hit that goal exactly. This coming year I’m not going to set a specific goal for number of posts, but I will still be posting regularly. This way this blog will still be a collection of my thoughts, but I don’t want to force myself into writing when I don’t want to.

Overall, I am happy with these goals and where I am at the end of this year. It was so much fun doing these that I am doing some challenges for 2017. Right now I have some reading goals and some code / development goals. I want to finish the main Dune saga, read the Harry Potter books, and read the Dirk Gently trilogy. This should be about 15 books, so it will be a challenge for me as I don’t read that fast. As for code challenges right now I have that I want to present a talk three times in 2017. It might be the same talk three times or new ones each time or some kind of combination of the two. I am still thinking of something related to writing code, like maybe a specific number of projects or a git commit streak. I read about the 100 days of code challenge and that sounds fun, so I might do that. Finally these is my standup comedy set goal. I really want to do that and it will be a priority this coming year. I do want to set one more maybe, but this list feels pretty good and challenging.

If you’ve ever wanted to challenge yourself to things I highly suggest it. If you are going to do make a list. It doesn’t matter where you have, either in a notebook or online somewhere, but just make it. Writing down the challenges you want makes them tangible and puts them in the front of your mind. Reviewing the list is crucial to keeping them there and keeping you on track.

You can do it. We can do it. Bring it on 2017.

Focusing on mobile photography for now

The other day I wrote about how I was using Instagram again and starting to post photos there more than other places online. As part of that I am also focusing on using my iPhone for the photos I take over my DSLR. I have an iPhone 7 and really like the pictures it takes. Also, I find that it is much easier to have it on me all the time. After all, isn’t there some kind of quote about the camera you have with you being the best one or something?

I’ve tried bringing my DSLR along with me, but it ends up being in the way which ends up keeping me from using it. Taking photos with my phone allows me to quickly take pictures of whatever catches my eye as I’m out in the world. I also find focusing and exposing the shots easier using a touch screen. Plus, it is a really fun challenge to take interesting pictures on a mobile device. I’m also trying to edit the shots on my phone as well with apps like VscoCam.

To help me take some better pictures I got some accessories from my favorite online shop for photo stuff, Photojojo. I got their Iris lenses and some other things to help get the most out of my pictures. I’m really excited to take on the challenge of mobile photography again. When I got my first iPhone 3G I took pictures all the time and it was lots of fun. I have seen some really cool results with pictures taken by iPhones and hopefully I will get some myself.

I made an API about myself as a web developer and human

I have really been focusing my efforts on learning web development on backend lately. It is the most interesting to me. I’m not really a fan of creating interfaces and dealing with moving elements of a page a few pixels at a time until it looks right on one of a million different devices. I just like making connections between things and moving data between them. I also rally enjoy making command line apps where I don’t have to worry about a UI, but that is for another post.

Since I have been focusing on backend / API work I figured it would be fun to build an API that could be used as a resource to learn about me and what I have done in my self-taught journey. It would help me learn further and would be a fun talking piece. Plus, I think it would be hilarious if someone asked for a resume and I gave them a URL for them to make a GET request to for the appropriate info.

I started out making a JSON object to describe me as a web developer. I also threw in some fun personal stuff to ensure someone making requests for it that I am indeed a human being. It was both weird and fun to create this data structure that is supposed to represent me. Once I had that mostly complete I installed Express to the project and began building out the routes for the API. This part was pretty simple as I am only supporting making GET requests for this API since I don’t want someone changing data about me unless it is me making the changes.

The necessary data for this API is pretty simplistic and since I don’t need to write new data or update existing via requests I decided that implementing a database like MongoDB would be overkill. Instead I decided on just creating JSON files with the necessary data for each route to return. I have a main route that provides a brief explanation of the API and the available endpoints. I have my resume style object in another JSON file. This way requests made to the appropriate endpoint will quickly return data. I even made a JSON file for custom errors that I require in each route file so that I can give a custom error message when someone attempts a request other than a GET.

Along with providing info about myself I also setup a /fun endpoint to provide info about fun things that can be done with the API. I am saving this part of the project for the silly ideas I have for micro-services to do hilariously “useful” things. The first one is /api/band-names which returns a listing of awesome band names I have created, each with their own id number. You can use /api/band-names/{{id}} to return a specific band name based on its id number. This spawned a separate project to create this object. Since I don’t have a database generating the id numbers for me I needed a way to create them. I keep this list of band names in a sheet in Smartsheet. I used the Auto-Number system column to generate unique five digit numbers for each name. Then I build a script that connects to the sheet and builds out an object with the id numbers and name. This object is then written out to a JSON file that I copied into my data directory along with the other necessary JSON files. Now, as I come up with other fun ideas for micro-services I can place them in as part of this API.

This was a really fun project to make and it helped me learn a lot more about Express and building out the backend of an app. Next up I am going to build out a simple CRUD API that connects to a MongoDB database. This will be a more typical API that handles GET / PUT / POST / DELETE requests. At first I was thinking that I would base it around the ideas of todos for a todo list, but instead I’m going to go with robots. That sounds more fun.

If you are interested in checking out my API about me you can find it here:

https://daveskull.herokuapp.com

And the project can be found on Github here:

https://github.com/daveskull81/daveskull-api

Trying out Instagram again

I’ve started to use my Instagram account again. So far it has been fun to post pictures there. I do feel like I get more interaction with people talking about photography there than on other social platforms. Commenting on pictures I like I get replies back more often and can ask about how the picture was taken. Plus, more people seem to be seeing my photos that I post there which is a fun bonus. This coupled with the fact that I am more into mobile photography and taking pictures with my iPhone lately makes it a lot more fun to put pictures there. So, for now I will be posting the pictures I take there.

I’m still using VSCO films to edit my pictures as it is my favorite way to edit digital photos, but these are done with VSCOcam and edited on my phone instead of in Lightroom on my computer.

If you want to follow along with my photos you can do so at my profile here.

Here are a few of my recent posts. Let me know what you think of them.

Instant self-portrait because I’m artsy

picture I took of myself in a mirror
That’s me in the mirror

I took this picture in 2012 or 2013. It was with my Polaroid Impulse camera and I snapped it looking into the bathroom mirror of the studio Cassidy and I first got when we moved to Seattle. I was home alone on a day off from work and had a few shots of film that I took by pointing my camera at odd angles and clicking the shutter.

The old Gas Plant turned into a park trick…

old gas plant factory at a public park
Gas Works park in Seattle

I have talked about Gas Works park being one of my favorite spots to take pictures in Seattle many times here because it is true and I like doing it. I took this shot with Impossible’s black and white instant film. I believe it was with their generation 2.0 of the film, which works really well and gives some great results. I really enjoy shooting with it in my vintage One-Step. This particular shot has an awesome ethereal feel with the soft focus on the plant. I have grown to really like the inconsistent focus of the camera and the results I get from shots. It adds to the randomness that is instant photography.

Expired black and white instant film and Thanksgiving

dinner table set for thanksgiving


This year Cassidy and I joined our friends Adam and Ashley at Adam’s parents house for Thanksgiving. It was a fun time and a good change from our most common Thanksgiving event of watching all three extended versions of the Lord of the Rings trilogy. It takes roughly twelve hours and is totally worth it if you’ve never done it. I brought along my Polaroid One Step and my last pack of Impossible film. It was a box of their first generation of black and white film that expired in February of 2015. I thought it would be a perfect time to snap a few shots and see what happens. Also, to be honest, having a camera to get behind helps out a lot when I’m amongst a group of people. It is a conversation starter and and allows me to relax more.
I took this picture of the dinner table after it was set before everyone sat down. This and the other images I got came out better than I expected for the film being expired. I have had it stored in our fridge the whole time I’ve had it, so it kept pretty well.
I scanned this shot with the Impossible Project’s iOS app rather than my scanner. I really like the results. I also tried out Google’s new photo scanning app and the Impossible app got more details of the photo. The scans I got from Google’s app lost details in the foreground of the image and it was hard to see the forks and knives on the table. With Impossible’s app I was able to get more of the detail that was captured by the original photo. I think I am going to start using their app all the time to scan my instant photos for sharing them here.

First experience with my Handground coffee grinder

handground_coffee_grinder_with_packaging

Last year I backed a Kickstarter project for a hand coffee grinder. I have written a few posts about them since as I have had the opportunity to provide feedback on the project and coffee making in general. The people behind Handground have done a great job to get the backers of the project involved and I am proud to have helped out in a small way. Just the other day my Handground grinder arrived in the mail. I pulled it out of the box and immediately looked at everything. It is a beautiful coffee grinder and looks great with all of my other coffee making implements.

This morning I took it for my first experience with grinding coffee by hand. In all of my coffee brewing adventures I have used my electric grinder, which has been great in cases where I am making bigger batches of coffee. And I still think I will use my electric grinder for bigger batches, but the hand grinder will be great for single cup pour overs. There is something about the mechanical process and using human power that is really interesting to me. Plus, it is super quiet compared to my electric grinder which is a big plus.

In the box there is a yellow piece of paper with some helpful info, like to not spin the grinder without coffee in it because the coffee oils help lubricate the burr. I am glad I read this first because as I was unboxing it I really wanted to grab the handle and spin it a few times to hear it go. But, I controlled my enthusiasm. When using my electric grinder I do like to let it go for a couple extra seconds once I hear all of the coffee go through and I even spin it a couple of times with the button to make sure all of the grounds got through. On my first grind I felt it when all of the coffee was done and spun it a couple of extra times for the same reason. I hope this isn’t harming anything because I just want to make sure all of my coffee grounds get through to keep my ratio as accurate as possible.

handground_coffee_grinder

Overall, I am really happy with the grinder. I did about 10 grams of coffee on the number 2 setting as it is suggested to break it in a little before use. This was easy to get going in the grinder. My biggest concern with a hand grinder would be getting it started and grinding away. But, the Handground easily gets going and keeps grinding the coffee. I’m not the strongest person, so a grinder that I can lean on to hold steady really helps. The bottom has a grippy pad that sticks to the kitchen counter well. The grinding motion worked really smoothly and only got caught up on bigger, tougher beans a couple of times. Even then I was able to push through and grind them down.

The grind consistency was awesome. I got an even grind across 20 grams of coffee for my pour over without any random sized chunks from what I could see. Based on that alone I am super happy with the grinder. This thing could have a hundred other features, but if the grind wasn’t as consistent I wouldn’t care. The grind looked beautiful. I ground my coffee on the number 4 setting and this worked really nicely. I should be able to dial in a nice grind for any coffee with Handground.

There are a couple of things that will take me some getting used to with the grinder. Firstly, the top screws and unscrews backwards, if you ask me. This was something that was an issue in manufacturing that requires the top to be unscrewed by being turned clockwise, to the right, and screwed on by turning counter clockwise, to the left. This was weird as most everything I have dealt with in my life is tightened by turning to the right and loosened by turning to the left(righty tighty, lefty loosey). I remember this being brought up in a backer survey and it was explained to us that due to how the grinder is assembled it has to be this way since the main post in the center can be loosened by the top being screwed the other direction. There was a much more convincing and technical reasoning in the survey , but that was the basics. Secondly, the opening at the top is a little small for pouring beans in. I was only doing 20 grams worth, but I could see trying to pour more beans being an issue causing some to fall away unless you have a small spout to pour them through. It’s nothing a small funnel couldn’t solve though.

In the end the Handground grinder is awesome and I’m glad to have been a part of the project. If you want to learn more about the grinder and see it in action you can check out their website here.

Big batch cold brew coffee

large_batch_cold_brew_coffee

That beautiful sight there is a half gallon jar with roughly three pints of cold brew coffee in it. It is the largest batch of cold brew I have ever made. A little while ago my jar I made cold brew in was broken. I took this as an opportunity to get a much bigger jar when I replaced it. Cassidy has recently gotten into making her own kombucha at home and wanted to purchase some jars for making it and storing it. We went to a hardware store down the street and picked up a set of six half gallon jars. This will make it so she can make larger batches of kombucha and I will be able to make cold brew again. And with the bigger jar I can make even more at a given time. It is very exciting.

In my first batch with the jar I did my usual recipe of 50 grams coffee with 800 grams of water. I knew this amount would fit in the jar easily and would give me an idea of much more room I have to work with. Eyeballing it I figured I had room to double my recipe. So, on this latest batch I did 100 grams of coffee with 1600 grams of water. I ground the coffee a little coarser than I normally do. I wanted to make sure the water got through to all of the coffee and this should help that. I still did 24 hours extraction time. I thought I might need to do longer, possibly 36, since it is so much coffee, but I stuck with 24. My thought was I would try doubling the recipe first and see the results before adjusting other aspects.

I set it up so that I would pull it out the next morning before going to work. The picture above is from right after I pulled it out of the fridge and removed the coffee sock at 7am that morning. I tasted it and really liked the results. It came out very tea like in flavor, like the cold version of chemex. I used an Ethiopian coffee from Victrola and the fruity notes really came out well. I think I might experiment with a longer extraction time to see if I can get it a little bolder tasting. This amount of coffee seems like it needs more time to pull out everything. 36 hours seems like the right next step, but will make it harder to schedule and plan out. If I make it in the morning before work one day I can pull it out the next day after work and I should be able to hit the 36 hour mark.

This is really fun for me to be able to make coffee that tastes good in big batches like this. It helps in my work towards my big goal of sourcing my own beans, roasting them, and then making my own cold brew. That would be super cool.

Screencapping a panorama

While we were in New York City I tried to play around with taking pictures on my phone as much as I could. I took a few panorama shots. One in particular was on a subway platform while we waited on a train. I was looking at it the other day, zooming in to get a closer look at it. As I got to the end I liked how the long distance down the remaining platform looked. It had this feel that something wasn’t right, but one couldn’t tell what. I took a screen capture, edited it in VscoCam, and this is the result. I really like how the repeating 33 looks in black and white.

Learning a lesson on grind size the hard way

chemex_coffee_grounds

Yesterday morning I made some coffee as my usual and preferred Saturday morning activity. Cassidy was up and getting ready to head out on a run with some friends. I got my things together and began with getting my water heating up and grinding my beans. Lately, I’ve been working on dialing in my single cup pour over process during the week, so my grinder was set finer than I would like for brewing in my Chemex. Unfortunately, I totally spaced on this and got my coffee grinding. I didn’t realize it until the coffee was totally ground. I was pretty frustrated with myself for not paying enough attention to what I was doing.

So, I decided to try an experiment and still do my normal Chemex process with the coffee ground too fine. I took a guess at what it would do and how the coffee would taste. I thought this would be a good reminder of how altering one part of coffee brewing can have a huge impact on the final outcome. Looking at how fine the coffee was compared to what I normally would have it ground it wasn’t too difficult to see it would be overly extracted. My guess was that it would be bitter and vegetal tasting.

I went ahead with my usual Chemex process. It was crazy to see how the grind size elongated my brew time significantly. Normally I try to hit around 3:30 minutes and this went all the way to 5:30 minutes. Afterwards, my grounds looked like a big mud pile. I tasted it and sadly was right about the flavor. Overall it was over extracted and there was this grassy mask over all of the flavor notes I know this coffee has.

This was a good lesson on home coffee brewing and a good reminder that I kinda know what I’m doing. I am by no means a coffee professional, but I’ve put a lot of time and energy into coffee to understand the nuances of the brewing process.

If you’re looking for some good tips on pour over brewing I found this video from Seattle Coffee Gear on their YouTube channel with some good stuff.

New York City – Subway saxophone player

Processed with VSCO with p4 preset

On our recent trip to New York City we used the subway to get everywhere. It was awesome to see the various performers in the subway playing music. It is something that I’ve seen in movies and on television so much that it doesn’t feel like it happens in the real world. But, it does and it is super cool. I really admire anyone who has the guts to post up somewhere and perform for anyone and everyone. It is rad to see people putting themselves out for the world to see.

I took this shot on my iPhone 7 of this saxophone player while we waited on a train. I edited it on my phone in VscoCam.