Federico makes pixels move in the browser every day, ensuring that things make sense for the users and polite robots. Always trying to optimize processes, content and performance bottlenecks. He's passionate about design and UI even though he can't draw, so he teams with the fine guys at Wildlife.la to create great-looking experiences. In a short but incomplete title, he's a front-end web developer.
It's Impossible. Maybe.
If you used a touchscreen in the past 7 years you'll be pretty accustomed to being able to scroll a view by dragging its content up or down. No need to use small scroll bars or hold buttons down. Additionally, if you lift your finger before slowing down, the page keeps scrolling, progressively slowing down as if it was a physical layer sliding on a surface with friction. Momentum scrolling, they call it.
This behavior adds so much to the experience that without it, it feels like the content is heavy or broken, and it's a chore to scroll through.
Last summer I was given the task to implement momentum scrolling on a sixty-inch touchscreen panel that was to be mounted inside the new Levi's Stadium in San Francisco. To me, it was impossible.
Impossible, I say. We can't do it, the panel is not good enough. I had spent two days playing with the screen, trying existing scripts and demos and writing custom code for the scrolling. It wasn't the code, it was the screen. After hours of testing I had noticed that the screen was not informing the page that I had lifted the finger—rather, it was, but one second later.
As I said earlier, momentum scrolling is activated when the user lifts the finger without stopping first, so how was I supposed to trigger the behavior if I couldn't tell exactly what the user was doing? "Drag, stop, lift" was technically indistinguishable from "drag, lift".
It's impossible. I give up. I told the project managers, before explaining the issue. I rarely say this. I didn't mean it as "it's unfeasible under time constraints" or "it's not worth it," I actually meant that I was moving onto the next task.
Well, guess what, we solved the issue the next day. Or did we?
User drags down, the page keeps scrolling. That's all that mattered, this is what we had to figure out. The issue only made impossible part of the equation, which is stopping the page by stopping the finger.
Was it perfect like the iPads that were next to it? No. Did it make the scroll light, fast, and fun to do? You bet. It was definitely better than having nothing at all.
Ever since the accident, any time I think of something as impossible, I wonder whether I'm recognizing the problem correctly and if I should lower my expectation of how it should work, and make it possible.
You don’t have time for perfection
You’ve always wanted to share some details about your work, the methods you used and the bugs you worked around. But your blog is not set up. Your website is not up to date. Your online presence doesn’t reflect your abilities anymore.
So what. You don’t write. You don’t publish. No one knows about what you found out and you will suffer when people publish what you’ve figured out months/years before.
So what? You kept it to yourself and maybe even forgot about it. You did a disservice to the community and to yourself. Why? Because your website is not perfect.
I’ve had enough of maybe-later, of I’m too busy right now, of after I’m done with this. I’ll be publishing anything I think others will benefit from. Ten non-perfect pieces are better than zero wannabe-perfect ones.
I’m here, on a website that’s not even mine and you’re reading my thoughts. That’s a great accomplishment. Next up: a WordPress “blog” with a theme I found in 10 minutes — and that’s fine.