A Change of Pace

Beginning with my last post, I have changed my blogging workflow. Before, I was typing up and proofing drafts in Google Docs, then transferring them over to WordPress, (which, as of this writing, is what this blog is built on, in case you’re into that sort of thing).

The main idea was that I would write a post and then have the ability to share with individuals to get as many eyes on the post as possible (a la Editorially). That was a pipe dream.

Now, I love Google Docs, but not for writing blog posts. For one thing, I write in Markdown to separate presentation from document structure. I don’t want to continually apply a format to imply content hierarchy when I’m stream-of-conscious writing, but that’s what ends up happening in Google Docs. I’m sure there’s a nice plug-in out there to allow me to write in Markdown on G-Docs, but I have yet to find one (if any one of you spam bots out there know of a good one, let me know).

What I’m really looking for is a way to visually represent the Markdown structure while maintaining the keyboard-only workflow Markdown offers, which is something Editorially did out of the box. Sadly, even WordPress’s text editor, which does indeed support Markdown, doesn’t do this, but at least I’m seconds away from a preview screen.

Another thing I don’t like about my old workflow was the transition from Google Docs to WordPress. It felt so disconnected. I can’t really describe it any other way. And now that I’m typing directly into the text editor, I feel a sense of immediacy or instant gratification. I think the change has even inspired me to write more.

It’s pretty amazing what a change of pace can do sometimes.

Year One in Review

As of this writing, it’s the beginning of 2015, and while most of my blog readers tend to be spam bots looking to link bomb me or sell me drugs in the comments section, this last year has still proven to be a great time of learning. First of all, I’d like to review my goals for 2014:

  • One blog post every week.
  • Build a digital portfolio.
  • Style this blog.

Okay, so, really, none of my goals for 2014 were met. Whomp whomp. Why, you ask? Well, here’s the deal:

  1. I’ve actually written what amounts to a blog post every week, but most of them have not been, nor probably ever will be, published. I’ve had trouble figuring out exactly what I want this blog to be about. I think in the long run I want it to supplement my design business and interests, but is my audience other designers or is it potential clients? Or maybe it’s something else? I really need to figure that one out.
  2. The digital portfolio thing is a little harder to excuse. I have the work, I just need to take the time to post it. I did, however, start a Behance account and got on Dribbble, so that was nice!
  3. Styling this blog has really taken a backseat to the other work I’ve done this year, first my wife’s website, then a self-initiated web app and laying out a 300+ page book. I’ve drawn and redrawn sketches for the site itself, but I think I need to live in this blog a bit more to feel it out, not unlike breaking in a new pair of jeans.

What I did in 2014:

  • I started blogging. This was really really hard for me, simply because I don’t see myself as a blogging kind of guy. Maybe I am. I don’t know. But finding something worthwhile to say was difficult. There are tons of blogs out in the internets that are much more knowledgable than I am regarding pretty much everything I can blog about.
  • I redesigned my wife’s website responsively from the ground up. That was fun.
  • I built my first web app in AngularJS. That was not fun.
  • I promptly started learning Backbone.
  • I attended two conferences, Circles and Front Porch.
  • I earned 15,807 points and 221 badges on Treehouse.

What I want to do in 2015:

  • Digital portfolio. Seriously, this needs to get done. No excuses.
  • Complete some advanced Computer Science education.
  • Attend online classes for UX certification.
  • Attend the Squares conference and 3 Meetups.
  • Be more intentional with this blog, and that means posting maybe every 6 weeks, if I have some quality content, and focus more on personal experience. Maybe even do some JavaScript tutorials (I’m learning some cool stuff from the book Effective Javascript).
  • Take a break from Treehouse. With all of the extra stuff I’m working on, there’s not much time for Treehouse right now.

Just Make It Work

Since beginning a new web app project, I’ve learned a thing or two about product design. I wanted to take a few minutes to share one of the most important lessons I’ve learned: Just Make It Work.

You’ve been there. You have the best intentions to start a new project. Maybe it’s something that is a personal passion. Maybe it’s something that will make your life easier. Maybe it’s something that will get you recognition. Whatever it is, no matter your intentions, there’s always the danger of dropping the ball. I’m sad to admit this has more often than not been the case for myself.

This makes what just happened yesterday that much more exciting to me. I’ve finally finished the first working prototype of my app’s main email module. It’s great to say that. And yet, it’s certainly not what I envision for this product.

While exploring the product architecture of the app, I began to realize the full scope of what I wanted to build. I began to realize this was a much larger product than I initially predicted, and I froze. I couldn’t figure out what to work on first. Meanwhile, it was taking me fifteen minutes to put together a list I could’ve easily typed into the body of an email.

It was during my daily list-making that I got a revelation: build a prototype of the email module that just works. It would need to be something that could grab a JSON file, display it in the browser, allow me to perform CRUD operations on the data, and then save the new JSON file over the old one.

I didn’t worry about aesthetics. It’s not grotesque looking, but it certainly isn’t winning any beauty pageants. I didn’t worry about experience design. There are more rough than smooth edges in this prototype. What I focused on was the exact minimal requirements I needed. The result is a finished product that I can now use to inform the design of my final app.

If you feel like you’re stuck on a project, what’s the absolute bare minimum you need to meet your goal. Build that and use it as a starting place.

Notes from Circles 2014

What I got from the Circles conference:

Design Authenticity

  • Design should be authentic. Every piece of your design should have a purpose.
  • Start with meaning, What is this design supposed to do?; then and only then can you move on to aesthetics.
  • Whether it’s your company’s history, your portfolio, or even a design pitch, the ability to skillfully craft an authentic and compelling narrative is a crucial skill in today’s design industry.

Inspiration

  • If you’re looking for inspiration on a logo or design, start by researching the company’s/subject’s/message’s past. You’d be surprised what might turn up to inform the design.
  • Rephrase what’s being asked of you. Sometimes this helps get rid of self-imposed limitations.
  • Sometimes you need to forget about inspiration and just start.
  • Embrace the awkward first draft. The quicker you accept the awkwardness, the quicker you can move on to finishing and polishing it.

Good to know

  • As creatives, we all have fears and insecurities, no matter how “successful” we may be.
  • Saying no to others’ ideas of you, overcommitting and standing still can be the best thing for your creative career.
  • Three important traits of a designer: Humility, curiosity and willingness.
  • Learning is the only skill that will be relevant your entire life.
  • You have to respect the people you work with and have each other’s back.
  • I should always assume I’m dehydrated (thanks Jessica!).

Have a Purpose Bigger than Yourself

  • What you do is not as important as why you do it.
  • If you design just for the money, you will end up being sorely disappointed.
  • Look for ways to give back. Share resources and knowledge with the design community. Mentor someone. Give your services to a charity that you feel especially connected to.

If you didn’t get to go this year, you can still catch all the greatness on demand on the Circles website. And make sure you sign up for Circles 2015. It’s definitely something you have to experience live!

Lessons Learned: Tina Boone Website Redesign

I’ve written a few times about the process behind building my wife’s website, and to celebrate its official launch, I wanted to share some problems I encountered and lessons I learned throughout this project. I’ve also included a list of resources that were invaluable during this build.

Pattern Lab

I started this one-page site with Pattern Lab because I wanted to establish a style guide driven workflow. Pattern Lab helps implement that approach, but I don’t think it was very efficient for such a small project like this.

In fact, I ended up abandoning the framework about 75% in to the project, which added time and effort. This, admittedly, has more to do with my newness with Pattern Lab than any inadequacies with Pattern Lab itself. I still believe it’s a great tool for responsive design, and I will be using it extensively in the redesign of FDGB. In the end, it was still a great introduction to the workflow.

SMACCS

I tried to stick to the SMACSS way of styling components, and one of the things I found I found myself struggling with was separating style from structure. This is a core fundamental of SMACSS, as well as OOCSS, and following it really helps the organization and scalability of a site’s styles. I think finding these difficulties out right now will help me better structure CSS in future projects.

AJAX

Going into this project, I knew what AJAX was and why it was so useful, but I really didn’t know anything more than that. I learned that AJAX involves using a JavaScript object called XMLHTTPRequest that, if supported, allows the browser to pass information to and from the server without refreshing the page. Both Treehouse’s AJAX Basics course and Mozilla’s Developer Network were great sources for learning how to evoke an AJAX call.

Plan for Performance

As of this writing, Tina’s site doesn’t perform very well in terms of speed. I will be optimizing images and CSS as I get time, but I would’ve definitely save time and effort if I had simply planned a performance budget from the very beginning. I have to admit, I’m not very experienced in this area, and any attempts at setting a budget would’ve been merely guesswork on my part. I definitely look forward to growing in this area.

Browser Bugs

I knew that no two browsers were quite the same, but I was fascinated by the odd bugs I found in very modern browsers. As of this writing, the latest stable build of Safari has trouble applying a transition to the fill of an SVG anchor element once that link has been visited. The handling of color profiles as well seems to be all over the map, making it a headache to achieve consistent color between browsers. Note the differences in the color between Safari and Chrome:


tb-screen-comp

Comparison of Safari 7 (left) with Chrome 37 (right). There’s a slight difference in the CSS defined background color. It’s much more pronounced on my personal monitor with a custom color profile.

At the end of the day, I realize that it’s not the job of a web developer to achieve total consistency between all browser, but to achieve an acceptable compromise.

Results

I think overall I’m happy with the final results. There are a few tweaks that need to happen, probably the biggest being PNG fallbacks for the SVG elements, as well as a full CSS audit, but I believe the end product is very close to what was designed in the beginning. It’s functional, usable and has a very friendly aesthetic. The lessons learned here have helped me grow as a front end developer and as a designer.

Now, on to the next project!

Resources

Pattern Lab
OOCSS
SMACSS
AJAX on Mozilla Developer Network
Brad Frost on Atomic Design
Responsive Design Workflow by Stephen Hay
Treehouse
Google PageSpeed Insights