On Increasing Creative Output

This week I am juggling a number of things related to PyCon Canada, and life
in general. Also I came to the realization in the past few weeks, that if I
want to effectively work on long term projects like Rookeries, writing
about tooling, working on my side adventure, et cetera, without burnning
out I need to have the time, space, and health to do so effectively in the long
run.

Still it felt wrong to break my writing/publishing schedule, just because I am
figuring things out. After I want to work on my output consistency while still
performing my normal day-to-day activities. Rather than force myself to rush
through the more technical post on Rookeries, I will something simpler.
Today I want to discuss some guidelines that have I adopted that help me get
better at creative work. Since both technical writing and programming are
ultimately creative work, the ideas I want to look at apply to them as well.

Schedules and Commitments

Creative types (e.g. writers and coders) often avoid schedules like the plague.
Yet I would agree you need both schedules and commitments (i.e. deadlines).
These push you to perform and ship real work. The more often you ship, publish,
release, so on, the more experience you gain and the better you become as a
professional creative. You need that feedback from your audience, client or
end-user, and you can only gain that by releasing your work to them.

Often you need external motivation to get something out there. Otherwise
you may engage endlessly in either procrastination or polishing something that
is already ready. Consistent commitments (like my own weekly journal post) help
you build that habit of shipping regularly. I would argue that regular shipping
is what differentiates a true professional creative and a wannabe. So embrace
those schedules and commitments!

Good Workflows and Environments Help You Get into the Flow

Creative output is the greatest when you are in the flow of things. Output
becomes natural, and you become more productive. However distractions can
easily pop you out of flow. If your tools, workflow or work environment
become the reason for distractions, then you will have a rough time creating.

Investing in a good workflow–tools and process that make you effective–pays
large dividends. In my case I figured out that Markdown and a good text editor,
makes me the most productive when writing. The ultimate reason for my creating
Rookeries is to create a better workflow for me when I work on websites.

Also finding the right environment to work improves creative output.
Environment includes both the physical and mental space. Hence putting on
the right music gets me into the flow than listening to the ambient noise of
an open office. (Actually I have a whole rant on why open office spaces are
the worst for creative work but that will be for another time.) Unfortunately
I do not currently have the luxury of adapting my work environment too much,
but if you have that option you should take it.

Stay Healthy

Staying healthy is one area that I often neglect to think about as a creative.
I get too caught up in the work, to remember to care of myself as well as I
ought to. The truth is that you can not consistently crank out great work when
you are sick, tired, unfocused, under the influence, or distracted by other
issues. Even if you try to push through say a cold while doing coding, you
generally find the results less than satifactory after the fact.

Physical fitness is important since you are human and you have a physical
component. That is why regular exercise, healthy food, regular rest, etc.
help with creative productivity. If you are not healthy, you will not have the
good enough energy levels for creative work.

Also as a human creative, you need to work on your mental and spirtual fitness
as well. Very few creatives can work outside of a supportive environment. I
could not imagine being productive without the support of my family, friends,
and colleagues. Also the less worries you have, the easier it will be to focus
on creative work.

Summary

I will summarize simply saying that if you want to maintain a creative
profession (writing, art, music, programming, etc.), you need to stick to
schedules and commitments to ship work regularly. Investing in a good
environment to work in will pay huge dividends. And stay healthy so that you
can continue to do the work you love for many happy years to come.

Using Blender for Cover Design

One of the fun parts of writing Juggling JSON with jq, is that I can experiment with various things. From the technical writing side, working with Sphinx has forced me to learn the ins-and-outs of that technology. Also very likely I will need to get into working with LaTeX for more of the advanced PDF parts.

The book cover provided me with an excuse to work on my graphic design skills. I decided that I wanted to do something more than just use a stock photo or old-timey engraving (a.k.a. O’Reilly’s book covers). Instead I decided to use Blender to create a compelling cover image. Yes, it may sound like overkill, however using Blender harkens to past times. Before I settled on studying computer science at the University of Toronto, and working as a programmer, I considered becoming a 3D graphics artist. I played with 3D Studio Max in high school, and learned about drafting and animation. When faced with the reality of being proficient but not amazing at drawing, and the very real possibility of competing with many more talented and experienced artists in the market I decided against that career path. However this decision did not dissuade me from taking drawing in university or enthusiastically learning Maya to make an animation for a visual computing course.

So I took the excellent Youtube video tutorial by Blender Guru. After a few hours of watching the tutorial I came up with a final image like so:

Blender Doughnut scene

] Doughnut and cup scene created in Blender. Created on August 14, 2017

And boy did I learn a lot from the tutorial: navigating Blender’s confusing UI, modeling, texturing, lighting and rendering a final image.

As for the book cover I am working on a cell-shaded, low-poly scene involving penguins and juggling. The process has been pretty fun so far, even though quite time consuming. However I have finished my low-poly model of a penguin, and added rigging (internal skeleton with joints for movement):

Low-poly model of a penguin

] Low-poly model of a penguin for the Juggling JSON with jq book. Created on August 23, 2017

Rendered pose of a juggling penguin

] Rendered pose of the juggling penguin for the Juggling JSON with jq book. Created on August 23, 2017.

Getting Started with Writing a Technical ebook

The early release of my ebook Juggling JSON with jq comes out tomorrow! However this post is more about the process of writing the book itself.

Getting started on an technical ebook, (such as Juggling JSON with jq), requires a bit of upfront setup. On the ebook side, I decided to go the route of writing the book in Markdown, and generating the various formats using Sphinx. While I feel most comfortable using Markdown, and yet Sphinx uses reStructedText by default. So I had to coax Sphinx to accept Markdown by using a project called m2r. Generating the PDF version of the ebook took a bit to get working. Sphinx uses LaTeX to generate PDFs, and LaTeX while powerful can be clunky to work with. I wrapped everything up with an invoke script, and now I can quickly generating new versions of ebook in the various formats I want to support.

Something unique to writing technical books, is the need to have actual working examples. You can learn by reading, but working through exercises and examples re-enforces that learning. In the case of Unjumbling JSON with jq, I needed an example REST API that readers play with. I searched for some nice open APIs, but nothing seemed very compelling. Many of the open APIs require some form of user registration and non-trivial authentication method that would complicate the examples in the book. So I setup a simple demo API for the book. Thankfully with Docker and Flask, that isn’t a particularly daunting task. (Dockerizing most of my webapps definitely made my live easier overall.)

Finally using Gumroad made marketing and selling the book a lot more approachable. Getting everything setup for e-commerce is a daunting job, if you plan on doing it yourself. Thankfully for ebooks, and similar digital products, Gumroad solves most of the problems one can encounter. I definitely recommend using them if you are planning to do something similar.

Book Announcement: Unjumbling JSON with jq

jq is an amazing tool for querying and manipulating JSON in command-line, that I learned about from one of my good colleagues, Eric Olsen. And I feel that jq deserves a good book describing how to use this tool. Hence I am writing a book called Unjumbling JSON with jq on the topic.

As mentioned in a previous post, I originally planned on writing a single book on both jq and httpie. I divided the original book in two, because there is only a small overlap between the two. I wanted to show examples of grabbing a REST API response via httpie, and parsing the JSON output with jq. However basic querying a REST API is something that could be covered in a short section. By writing the books separately, I will be able to release them faster, and the books will be much more focused.

I plan on selling early drafts of the ebook on August 10th. Buyers of the ebook will get regular versions of the evolving drafts of the ebook, and a free upgrade to the final version of the book. I want to release the early drafts to get early reader feedback. In addition readers of the book will have access to the REST API that accompanies the book.

You can order the early version of Unjumbling JSON with jq from here].

…And We’re Back!

Or rather I am back.  As in I am going back to blogging.  I apologize for the months of silence.  Moving houses, and migrating web hosting providers will do that to a person.  Migrating the web hosting to a completely self-managed environment was quite a learning process, and took quite a bit of time.  I did not realize at the time, that my websites would be down for months.  Fortunately everything is back to normal now.

I won’t commit to posting on a regular schedule, since that is simply not realistic.  However I missed quite a few excellent opportunities to blog in a timely manner.    Especially everything surrounding PyCon and all the new things I’ve learned since that time.  I will try to make that up by writing articles about events, knowledge and ideas.

It is good to be back.

Ghosts in the RSS Feed

A few days back I noticed a new entry in my RSS for an old blog of mine: http://opensourcegamer.blogspot.ca/

I was really surprised, since I had left that blog and closed down account years ago.  I started that blog when still in university and before I could afford my own fancy WordPress installation.  Years later after moving my old content and closing down that site, I find a new post.  At first I wondered if someone had hacked into my account and started doing weird things.  However this would be not the case.

It seems that a certain gent (https://plus.google.com/106427604834859977346/posts) decided that they liked the name of my blog and run with it.  That I don’t mind.  In fact I wish him (or her) the best of luck!  However please note that I am not maintaining that blog, and all my focus on this site.  So don’t be surprised if you see said odd entry in your RSS.  Come to think of it, you want to hear more of me, you should subscribe to the RSS feed for this blog!

Website Hosting Migration

You may have noticed the recent changes on my blog & portfolio website.  I am in the process of migrating my websites, domains and what not to a new hosting service.  A nicer hosting service provider who doesn’t support SOPA/PIPA for one.  Plus is much more responsive and nicer to work with.

Anyways a lot of things are up in the air.  Especially since I am still transitioning in terms of my new work.  Plus I am working on a grey op (not quite black) project, that I plan to reveal shortly.  Please excuse the sporadic changes and some issues might pop up while I get everything sorted out.

A Quiet Moment to Reflect, Regroup, and Rethink

The madness of the past few weeks, has taught me the importance of quiet time.  Time that I can truly reflect quietly and calmly work on the next steps I need to take.  Most of the week I have rushed, ran and tired to compact as much I could into a single day.  But you can only do this for so long before you have to slow down.  While life fills up with small, urgent tasks, those tasks are rarely that important.  Not to say I can forget about the small tasks and go on living comfortably.  Those small tasks after all act as the components of the large important projects in life.  Yet three ideas that have helped me recently are: 1) to keep the important projects in the front of my mind; 2) remember the scale of importance between the day-to-day tasks and the goals in life; 3) maintain balance in one’s life.

Anyways, enough philosophizing for one post…

While I was riding on the train back today, I tried to catch up on some e-mails.  And I found out about the new version of WordPress was available for my sites.  Thanks GoDaddy for being an awesome web host and sending out e-mails notifications of those kind.  Anyways after some twiddling with the new WordPress update, I decided to do some house-cleaning of my website.  One of the slight modifications I made is the new title of the blog.  Yes, I am back to using “The Art of Being Dorian”.  This has been the best title so far, and while thought about using the geeky “Transmissions from High-Earth Orbit” or obscure “Mlaren Racer” or the nice but misleading “The Zen of Dorian”.  (Misleading because even though I like Zen as a design methodology or as a general idea of simplicity, I am not a Buddhist nor do I follow Buddhist philosophy, culture, etc.)  Plus, I good friend of mine in Ireland loved this name back in the day.  And so it is back.

Also note that I dropped the “Hacker, Gamer, Writer” moniker.  Hacker, yes if it means coder and not cracker as it means in conventional terms.  And while I still enjoy playing the occasional game, I rarely do so.  So by definition I fall out of the “gamer” crowd. Just like I’m not much of a boarder since I rarely have the chance to go snowboard, surfing or windsurfing.

So this blog I will dedicate to writing articles about coding, writing and living well.  I think it will be most benefit for everyone.  And I will enjoy sharing my knowledge in these fields, more so than the random ranting that I’ve done in the past.  I hope you enjoy the new blog!

 

Grey Morning in a New Reality

Outside the window, grey clouds fill the sky and raindrops stream through the air.  A warm morning for an early December day, the weather being more likely for mid-November.  The rain does not bother me as I am sitting in a GO train headed to downtown Toronto, and getting ready for the start of a new day.

Since I started working at Indusblue as an Android developer, my mornings involve a morning train commute to Toronto.  While taking the train and streetcar to work extends my commuting time, I can not complain.  I get about two hours each day of time for myself, to get work done.  Amongst other things, I use this time to write or catch up on past work.  Today I decided that instead of sleeping on may to work, I would update this blog.

After a summer of travelling to and from San Francisco and spending a good portion of my Fall travelling in central Europe: Poland, Germany, Austria and Italy; I finally am settling down at the end of the year.  While I love travelling and visiting new places, I am glad that I have returned to Toronto.  I am glad to be close to most of my friends, family and familiar settings.

Since my return, I have concentrated on catching up on overdue work.  So many tasks and delayed projects have piled up, that I feel the need to make progress on them or even finish them before the end of the year.  Amongst other things I started writing two pieces: a science fiction novel and an auto-biography of sorts.  Also I started working on justcheckers again, which I plan to complete as part of my portfolio work.  And I am working on a few other missing or lacking parts of life, that I can not comment on right now.  However I am overjoyed with the progress I have made, and the opportunities that linger on the horizon.

So while the mornings are grey and rainy and sometimes quite cold, I am grateful for the new reality of life I am in now.  It might rain outside, but I feel as if it were sunny.