Category Archives: Tech

Photo CC by Nahuel Hawkes - https://www.flickr.com/photos/nahuefox/12862209904/

How to fix Ubuntu font from Google Fonts on OS X

If you are Web site owner and would like to fix this for your site, repackage the Ubuntu font under a different name and serve it from your site. You’ll lose Google’s CDN, but your OS X users will be happier.

For about a year, a few sites would always display broken Š character on my Chrome in OS X. Example:

broken-s

Debugging this lead me to a rabbit hole of bugs in different upstream sources. My first reaction was that Google Fonts serves bad font. But that doesn’t explain why it appears only on OS X.

So I started thinking – what if broken font is coming from my computer. It turns out that it’s common for Open Source applications to install Ubuntu font. It also means that because the way web font rendering works, it will always try to use local version. This almost always makes sense, since local fonts can be much better then your web optimized subset.

So to fix this, disable Ubuntu font from Font Book Application. If you realise later that you need it, you can enable it again.

disable-ubuntu-font

But what’s the core reason for this breakage? OS X Font rendered has a problem with the way font is built. Some of the tables in the font are too large. Launchpad tracks this bug at #1334363. It will soon be one year old, with no resolution yet.

If you are Web site owner and would like to fix this for your site, repackage the Ubuntu font under a different name and serve it from your site. You’ll lose Google’s CDN, but your OS X users will be happier.

All solutions are bad, but I’m confident that in another year Apple can fix font renderer or that Ubuntu will repackage font.

https://flic.kr/p/gXBR1t

Why Learning a new Technology is Hard

About a decade ago, I’ve discovered that I have to reinvent myself every 2 – 3 years to keep up with the speed of technology. During that time I’ve managed to learn a lot of new languages and frameworks. But I also failed at a lot of them.

Talking to newcomers to the field and observing my own patterns, I now know how to succeed.

How to Learn a new Technology
How to Learn a new Technology

It’s all about having a Project. Passionate developers are always tinkering with something. A new gadget, framework or a pet project.

But what happens when the chasm between project and new technology is too wide?

In the last year, I’ve trying to learn functional programming. While I understand the basics, I still haven’t figured out how to get to the level where I can build something that’s useful to me. The books and tutorials that I tried, focus on areas that are too far away from my everyday work.

Next time, I will have to make sure that I find a tutorial that’s like the ones that worked.

Django Girls Tutorial

I’m impressed with this tutorial. It allows student to build a full web site and deploy it online, without wasting time on unimportant details. For each components she learns, she has an opportunity to go back later and explore it further.

I think this is the best approach on how to introduce the full-stack of web technologies. She doesn’t even need to know what technology she wants to study. When a mentor is present, it provides a good opportunity for more discussion on a wide range of topic.

Recordings of Workshops

I think workshops (or live tutorials) are the right approach to the problem of having a project. Instead of building your own, presenter guides you through building an example project. Extra explanations make it understandable but not too complex.

Python community is recording most of the workshops at different events and posting them online. This makes it easy for a wider group of people to get into the field.

When you’re following the tutorial on video, you can adjust the pace to your own level. There is also a high chance, that a participant will ask the same question that you have while watching the video.

One of the best tutorials I’ve found, is Wes McKinney’s tutorial on Python Pandas. It’s over 3 hours long and it will take you a week to do it at home. But it teaches you enough to see the full power of framework and its potential. After that you can read the book and learn all the details.

Conclusion

I don’t think Learning things the Hard way is the best approach for newcomers. It’s just like teaching grammar, and leaving out the culture. As mentors we should do a better job of explaining how different parts fits together and not focus on semantics.

What was the best tutorial that helped you learn something difficult?

Is there are practical tutorial to ClojureScript?

Theme Hybrid is a better WordPress theme framework

I recently had a chance to work on a number of WordPress related projects and I was pleasantly surprised as the platform had matured in every possible way since the early 2.x releases.

Today I just wanted to post a brief note to people who are still using random WordPress templates to base their derived templates on: please don’t do that to yourself. Most of the free themes are old, don’t have good customization options and are badly structured.

You’ll be much better off if you:

  • Read about Child themes – http://codex.wordpress.org/Child_Themes
  • Invest into a customizable theme – my preferred choice is Theme Hybrid but there are a number of other options. It costs 25USD/year to get access to support forums and tutorials that have saved me many hours of Googling.
  • Read their docs about how to override theme with custom style.css and functions.php

This means that you’ll often be able to make really great custom child theme with just a few lines of css and a few filters.

OmniGraffle 5 Diagramming Essentials book review

Guys at Packt Publishing were kind enough to send me a copy of their OmniGraffle 5 Diagramming Essentials book by Ruben Olsen to review, as I’ve written about OmniGraffle a couple of times and use it regularly.

While the book claims that it’s intended audience is everyone from novice to a pro. I’ve found it more suitable for novices that prefer to learn through user manual instead of exploring the real application and Googling for more complex solutions. The book covers all the parts of OmniGraffle, from creating basic diagrams, stencils, shapes and advanced editing tools. While I was familiar with most of the content in the book, the in-depth instructions with great screenshots still presented a few new tricks inside the application that I didn’t know that I miss – until now. Since OmniGraffle is available both in basic and Pro editions, they make sure to clearly mark if a feature is specific to Pro version.

If you have experience you’ll get through first two-thirds of  349 pages pretty quickly. The last third has best content, where author explains how to create great looking diagrams and organize your work as your files grow bigger. This is the point where I found a few aha moments as I didn’t even think to lookup advanced ruler and shape settings. There’s even a chapter on all the keyboard shortcuts that you can use, which while might sound geeky is something I’m definitely planning to learn in-depth to save time.

I’m not a big fan of books that basically cover all functions of user interface. That is why I appreciate example projects through which author shows how exactly are they useful for rapid prototyping of iPhone user interface or for creating boring workflow diagrams. I use OmniGraffle mostly for wire-framing, so creating a complex workflow diagram was something I always had problems with. The book explained all the possibilities and shortcuts nicely and even learned that it can create ideal distribution of objects on canvas for you.

If you care about your OmniGraffle skills check out their example chapter – Making your Diagram look good, which is one the best chapters in the book and very much suitable for pro users as well.

Overall, the book delivers on the promise – a bit for everyone and you can pick it up as a complete novice or if you’re a pro. I would recommend it to people who feel that they need to have a manual next to their application. If you’re a pro you’ll probably Google advanced topics as you need them as you already know most of the book.

Official page for OmniGraffle 5 Diagramming Essentials book.

I would also like to encourage Packt Publishing to figure out how to deliver their content to Kindle. I’ve read a few technical books on a Kindle while commuting and it was a real pain to get iPad just so I could read their digital PDF. Why not go with paper version? I’ve discovered that I can read Kindle version of a book in a week, that it took me a month for a paper version.