You are here

thinktime

Accepting Our Lack of Control

a list apart - Fri 17th Apr 2015 22:04

It’s easy to forget that our users have ultimate control over how they view the web, even though it has been said before. As people making the web, we merely offer suggestions. These suggestions of ours should make it easier, not harder for people to access our content in the manner that best suits them.

Over the course of the last year I’ve worked on several projects for a wide array of products and sites. The common denominator across all of them was an end goal of a responsive site. Often that’s where the commonality ended, though. In some situations not everyone agreed or accepted that we lack control when it comes to how users experience our sites.

As I work and write CSS, I try to do so in a way that acknowledges that I don’t have ultimate control. For instance, I prefer to use rems with a pixel fallback, ensuring that my line heights are unitless and work with whatever unit the font is in. That has the added bonus of not having a negative effect on the children of the element. In addition, I often prefer to base my breakpoints on the content of a page, rather than a set of device sizes. That can make the code a bit harder to maintain, but it benefits users. When it comes to grids, I’m happy to use percentages and let the browser round for widths and gutters to make things work.

Of course all of those things mean we are giving up some control. When your line height isn’t an exact pixel number, you’re letting the browser decide and do some math. It may not look perfect. When you allow content to drive breakpoints rather than using standard breakpoints, you may have more complicated CSS to maintain. And with grids, as with line heights, when you allow the browser to do some of that work, the rounding may not always end up the way you desire.

I’ve come to a place of peace with this lack of control, and at times I even enjoy it. The reality is, users ultimately have a lot of control: they can change their base font sizes, they can zoom in, they may even be reading our content in a different application, such as an RSS reader. The user gets to decide how they want to view and use our sites and applications.

Not everyone I work with is as excited about losing some of the perfection, though. Many would prefer to be more precise with the CSS so that it looks exact in their browser of choice. But doing that would mean not allowing users to have as much control over the experience, and could mean a poor experience for some.

When confronted with concerns or objections from teammates who would rather have more perfect CSS, I do my best to outline the reasons behind these practices. We need to be user-friendly, future friendly, and accept the “ebb and flow of the web,” so that the things we build can be viewed on whatever device comes along. As Anna Debenham reminds us, many users are grabbing what’s convenient, not necessarily what will give them the perfect experience.

Learning to be ok with the ebb and flow of things allows us to think differently about how we can work with and use the web. As Frank Chimero writes in his wonderful essay “The Web’s Grain”:

So, those media queries we write? It might be time to stop calling them breakpoints, and instead consider them points of reassembly.

As I think about how I advocate for allowing the web to be the web, I’m drawn to Frank’s idea. Instead of making our sketches fit on the web, I’m trying to make our ideas and content work inside the various edges of the web as it appears across a myriad of devices.

Which brings us right back to what John Allsopp said so well fifteen years ago:

The control which designers know in the print medium, and often desire in the web medium, is simply a function of the limitation of the printed page. We should embrace the fact that the web doesn’t have the same constraints, and design for this flexibility. But first, we must “accept the ebb and flow of things.”

This tension of how we build for the web probably isn’t going away any time soon, but as Paul Ford reminded us last week: neither is the web—it will survive and continue on.

Categories: thinktime

What if you stopped?

Seth Godin - Fri 17th Apr 2015 18:04
What would happen to your audience if you shut the doors tomorrow? (I know what would happen to you, that's not my question... what would happen to them?) What would happen to your customers and to your prospects if you...         Seth Godin
Categories: thinktime

James Purser: Dare Devil

Planet Linux Australia - Thu 16th Apr 2015 23:04
Blog Catagories: mediamarvel

So we've been watching Dare Devil over the last couple of nights, we're up to episode 3 and I have to say I'm really impressed.

I've never been a big fan of Dare Devil the character, and dear god the movie was complete shite (up there with the first Hulk movie featuring Eric Bana for badness), but this series has really sucked me in.

For episode 3 what really brought it home for me was Ben Urich. A journalist for the Daily Bugle in the comics, Urich represents the every man and is often used to tell the story of the normal people caught up in the semi regular destruction rained down upon New York (which has included the Hulk taking over, everyone in Manhatten being turned into Spider creatures, the almost annual flooding by Namor and of course an alien invasion or two).

I'm really liking the shorter series formats for the Marvel shows as well (well leaving aside Agents of Shield). They carry the comic book story arc feel much better than trying to drag things out for 23 episodes. Agent Carter proved that and now so is Dare Devil.

All in I'm pretty happy with the state of Marvels Cinematic Universe, and am looking forward to seeing the next tranche.

Categories: thinktime

I am 'anti-business', you might be too

Seth Godin - Thu 16th Apr 2015 19:04
A hundred and fifty years ago, when people finally began organizing to eliminate child labor in American factories, they were called anti-business. There was no way, the owners complained, that they could make a living if they couldn’t employ ultra-cheap...         Seth Godin
Categories: thinktime

Coming May 6: Sass Talk

a list apart - Thu 16th Apr 2015 01:04

To preprocess or not to preprocess? Every time we run a piece about Sass (which we’ve done a lot of lately), we get tons of thoughtful comments on both sides of the issue. Here are just a few:

There is no ‘dark side’ to pre-processors… Writing CSS Vanilla on a website with a large scale is just asking to be a maintenance nightmare in my eyes. Iain Spad I like writing vanilla CSS. It lets me have an intimate relationship with the code and it means I know everything that’s happening and why. garek007 It’s not just garbage in, garbage out. It’s garbage in, 10x garbage out. But, used wisely, such tools are very valuable. Matthew Gifford

Our next ALA: On Air event will continue these conversations. Join us on May 6 as our panel cuts through the clutter and shares how they’ve chosen to incorporate (or not) preprocessors and task runners in their work.

Event details

This event is free and everyone is welcome—but you have to register to participate in the Q&A. Here are all the details:

Wednesday, May 6
1–2 p.m. EDT
via Google Hangout
Register or get more details

We’ll have 30 minutes of conversation between our panelists, and then open things up to questions from attendees. Like we did with our last event, “Designing for Performance,” we’ll also share the full video and transcript after the live show ends.

Join our email list to get updates when new events, videos, and transcripts are posted.

The panelists

We’ve rounded up a few brilliant ALA contributors to participate:

Big thanks to Pantheon

Putting on events is a ton of work, and we couldn’t do it without the generous support of our sponsor Pantheon. Sign up for a demo to see Pantheon’s unified platform for building, launching, and running Drupal and WordPress sites.

Categories: thinktime

This week's sponsor: Web Designer News

a list apart - Thu 16th Apr 2015 00:04

Thanks to Web Designer News for sponsoring A List Apart this week! Take a look at their curated stories for designers and developers.

Categories: thinktime

Are you feeling lucky?

Seth Godin - Wed 15th Apr 2015 19:04
Expected value is a powerful concept, easy to understand, often difficult to use in daily life. It's the value of an outcome multiplied by the chances it will happen. If there's a one in ten chance you'll get a $50...         Seth Godin
Categories: thinktime

Leon Brooks

Planet Linux Australia - Tue 14th Apr 2015 21:04
Imagine a roadblock which is a wall of perfectly transparent AeroGel.



Here you are, barrelling down a highway at the speed limit, when suddenly you realise that you have come to a halt, so gently that you weren’t aware of as much as having slowed down.



Viola! You now have some idea of what is like to have been Gaslighted for over 5000 days by a person who is an emotional vampire: their goal is not to kill you, it’s to keep sucking away your self in order to present a façade of having a self themselves.



If you have been “told,” tens of thousands of times in indirect ways (never directly: you only become aware of an increasing number of knives accumulating in your back over a span of time), that you cannot succeed, that establishes just such an emotional roadblock.



Right now, teaching a Raspberry Pi to sing is not happening. I know what needs to be done. The resources to discover exactly how to do it are freely available. It simply does not happen. Welcome to the AeroGel roadblock.



The self-righteous Psychopath who spent so much time installing this roadblock in my mind can do no wrong in their own eyes. To actually imply that their integrity is less than complete inspires a rage attack (which is not the same as anger: there is no control at all). Deprogramming each of these block will not take place instantly.
Categories: thinktime

"I'm not the kind of person who..."

Seth Godin - Tue 14th Apr 2015 19:04
We box ourselves in long before the outside world ever gets a chance. "I'm not the kind of person who watches movies like that." "I'm not the kind of person who proposes new ideas." "I'm not the kind of person...         Seth Godin
Categories: thinktime

Tim Serong: Get off my Lawn

Planet Linux Australia - Tue 14th Apr 2015 02:04

When I was about the right age to think that taking compromising photos of myself might be good for a lark, technology was a little different. Mobile phones that weren’t actually bricks anymore could show maybe two lines of pixelated text on an unpleasantly glowing background, terrible quality digital cameras were barely affordable, and connecting to the internet actually had a sound – kind of like KSShhh-aaa-KWEO-pung-pung-drhdrhdrhd-KHH, but it went for longer than that.

Or maybe it was: mobile phones only existed in gangster movies where they were installed as part of a car, digital cameras didn’t exist, and I only had access to a few local BBSes. I forget the specifics, but that’s not the point – the point is that when I was in my teens, technology was shit, and nobody had any of it. Now, technology is excellent, everybody has all of it, it’s really easy to use, and the ways in which we interact with our technology shape the ways we expect our technology to work.

If I write an email to someone, I’m thinking “I will type my message in this box here, hit SEND, and then they will receive the message and read it”. I am not thinking “I will type my message in here, hit SEND, then it will be transmitted in plain text across a vast network of computer systems, through a number of mail servers, possibly be recorded by several government agencies in case I’m a terrorist, be stored for a little while in a mail spool and possibly backed up by some ISP, before eventually being downloaded and read by the intended recipient”.

Same with photos: “I will take a picture and share it with my wife” is a distinctly personal experience (regardless of what it’s a photo of), and that’s what I’m thinking at the time. I am not thinking “I will take a picture with my phone which will then be uploaded to a cloud system somewhere and stored for Eris-only-knows how long in some other jurisdiction which can probably be hacked by script kiddies”.

Technology now is all about communicating with people, and about sharing our experiences, and that we can do this without having any idea what’s actually going on is fantastic. The price though is that with each service we use, we give up a certain amount of privacy, and what privacy we give up is not necessarily obvious.

To go back to the compromising photo example: When all I had was a little film camera, nobody I knew ever took photos they wouldn’t be happy for random strangers to see, because we all knew that we had to take the film to get processed – the mechanics of how the technology worked were at least somewhat obvious to the people using the technology. As far as I am aware, there are no nude photos in existence of my teenage self and partners, because we didn’t want those perverts in the photo shop to see them.

I want a world where user experience accurately reflects potential privacy – not “sharing to circles”, or allegedly private “private messages”, but where any share that could conceivably result in non-private communication is preceded by a dialog that states “I hope you know that this will go down on your permanent record”. Because privacy is important – as Bruce Schneier said: “Privacy is not about something to hide. Privacy is about human dignity. Privacy is about individuality. Privacy is about being able to decide when and how we show ourselves to other people.”

Categories: thinktime

Dave Hall: Managing Variables in Drupal 7

Planet Linux Australia - Mon 13th Apr 2015 23:04

A couple of times recently the issue of managing variables in Drupal 7 has come up in conversation with other developers. This post outlines the various ways of managing variables in Drupal sites. The three things this guide ensures:

  • Sensitive data is kept secure
  • Variables are correct in each environment
  • You are able to track your variables (and when they changed)
The Variables Table

The most common place you'll find configuration variables is in Drupal's variable table (aka {variable}). The values in this table are often managed via admin forms that use system_settings_form(). Users enter the values click "Save configuration" and the data is stored in the database.

If you prefer to manage your configuration via the command line and know the variable you wish to set you can use drush vset. This does exactly the same thing as admin form, without needing to click on a mouse.

$conf Array

While the variables table is great at storing our variables, there are times when you want to enforce a setting. This might be because you want to prevent users from changing it (accidentally or otherwise) or because you need it to be different in each environment. The $conf array in settings.php always overrides any values in the variable table.

Acquia, Pantheon and platform.sh all provide environment variables so you can use different values in your $conf array depending on the environment.

Exporting Variables

In Drupal 7, the common way to export your variables is by using Strongarm with Features. I'm not going to cover how to do this as there is loads of documentation already available on this topic.

If your variable changes on a per environment basis or if it calculated on the fly, then you won't want to use strongarm+features as the exported values are static. You will need to put them in settings.php.

Note to self: I should debug and reroll my patch for adding support in alter hooks strongarm.

My settings.php is Out of Control!

This is a common problem, especially on more complex sites. To avoid this I recommend creating sites/default/settings/settings.[env].php files. Your settings.php file should check for the environment in an environment variable and then include the appropriate settings.[env].php file.

What About Sensitive Data?

You can encrypt variables on a case by case basis using the encrypt module and some custom code similar to what I recently implemented in the Acquia SDK module (see on store and on read examples). Warning: This doesn't encrypt the data if you're using drush vset.

If you are storing sensitive data in your variables table I would recommend you implement hook_sql_sync_sanitize() which will delete the sensitive data from your db when drush sql-sanitize or drush sql-sync --sanitize are run.

How to Decide?

This little code snippet should help you decide.

<?php // Don't try using this code in your Drupal site. if (!using_version_control()) { // Seriously there is no point in doing this without version control. abandon_all_hope(); drupal_exit(); } if (is_data_sensitive($var)) { $var = encrypt_var($var); if (!we_use_drush_based_workflows()) { learn_and_implement_drush_based_workflows(); // I'm serious! } } implement_hook_sql_sync_sanitize($var); } if (is_unique_per_environment($var)) { store_conf_array($var); } else { store_in_db($var); if (!we_use_features_based_workflow()) { learn_and_implement_features_based_worflows(); // I'm serious! } export_using_strongarm($var); }
Categories: thinktime

Hope and expectation

Seth Godin - Mon 13th Apr 2015 19:04
Hope is fuel, it moves us forward and it amplifies our best work. Expectation is the killer of joy, the shortest route to disappointment. When we expect that something will happen, we can't help but be let down...         Seth Godin
Categories: thinktime

Leon Brooks

Planet Linux Australia - Mon 13th Apr 2015 19:04
Would a book entitled “I married a Psychopath” or the like sell well?



One of the risks here for even a strong Empath is that there are no “red flags” in the differences between feelings and expression of them (body-language etc), for the very simple reason that there are no feelings, so there are no differences to sense.



It must be a lonely, empty life for someone who consists only of an empty bubble of Ego. Yet they are the only person who could change that. It begins with genuine humility (which has nothing to do with acting humble). They need to think nothing of themselves.



This may not sound so difficult until you understand that they think everything of themselves, full time. Religion (including Atheism) is not possible for them, as the only person they worship is themselves.





Categories: thinktime

Sridhar Dhanapalan: Twitter posts: 2015-04-06 to 2015-04-12

Planet Linux Australia - Mon 13th Apr 2015 00:04
Categories: thinktime

Tim Serong: Pigs and Bread

Planet Linux Australia - Sun 12th Apr 2015 23:04

In farming related news, we have pigs again, and I’ve finally written up my bread recipe on a new blog at downsouthfarm.com. My random commentary about food and farming related matters will henceforth be posted there, while everything else I usually rattle on about at length will remain here.

Enjoy

Categories: thinktime

The noise in our head (and artificial intelligence)

Seth Godin - Sun 12th Apr 2015 19:04
One common insightful definition of AI: Artificial Intelligence is everything a computer can't do yet. As soon as it can, we call it obvious. And so, self-driving cars and devices that can beat us at chess don't really think, they're...         Seth Godin
Categories: thinktime

Michael Still: One Tree and Painter

Planet Linux Australia - Sun 12th Apr 2015 17:04
Paul and I set off to see two trigs today. One Tree is on the ACT border and is part of the centenary trail. Painter is a suburban trig in Belconnen. Much fun was had, I hope I didn't make Paul too late for the wedding he had to go to.



 



Interactive map for this route.



Interactive map for this route.



Tags for this post: blog pictures 20150412-one_tree_painter photo canberra bushwalk trig_point

Related posts: Goodwin trig; Big Monks; Narrabundah trig and 16 geocaches; Cooleman and Arawang Trigs; A walk around Mount Stranger; Forster trig



Comment
Categories: thinktime

James Purser: So, it's been a while

Planet Linux Australia - Sat 11th Apr 2015 22:04

Well as you can see it's been a while since I last posted here, just over a year in fact, so it's time for a bit of a clean up.

As you can see I've started redesigning things, updated the theme so that it's a bit more mobile friendly (as in will be viewable on mobile), added in the feeds from Angry Beanie and I'll be doing more work around including information about the projects I'm working on such as Govchecker and Zooborns for Android

I'm also going to try and do more writing here. I think I've fallen into the trap of not writing because I use twitter or facebook instead. Blogging though helps me to focus my thoughts a bit more so we'll see how that goes.

Anyway, this blog as ever is a work in progress, so we'll see what comes.

Oh and one more thing, you'll see that I've replaced the drupal comments system with disqus instead. This way we can hopefully avoid the comment spam problem I was getting before.

Blog Catagories: Developmentangry beanie
Categories: thinktime

Five steps to digital hygiene

Seth Godin - Sat 11th Apr 2015 19:04
Washing your hands helps you avoid getting sick. Putting fattening foods out of your reach helps you stay slim. And the provocations and habits you encounter in the digital world keep you productive (or drive you crazy): Turn off mail...         Seth Godin
Categories: thinktime

Ben Martin: Tiny Tim improves and gets Smaller

Planet Linux Australia - Fri 10th Apr 2015 23:04
I finally switched Tiny Tim over to a lipo battery. Almost everything worked when I tested the new battery, the only thing that failed in a major way were the two 2812 LEDs which, either didn't come on or came on for a very quick moment and went dark. So Tim is now smaller again without the "huge" AA battery pack at it's tail.





The 2812 story was interesting. It wasn't going to be happy jumping to the 7.6v of the 2S lipo. So I tried various voltage divider setups which didn't work either. I ended up using a common 5v regulator and the lights work fine again. I think I was maybe using too high resistor values in the divider and the 2812s didn't like it. At any rate, they apparently want a good regulated power source, and I wasn't giving it one before I switched over to using the regulator.



On the whole, going from 5-6v of the AA pack to 7.6v has made it a snappier mover. I tried it initially with the battery on the bench and found it would lift the back off the desk under hard break.



Next up is probably attaching a claw or drop mechanism and ultrasound sensor and then take on the Sparkfun autonomous ping-pong ball into cup challenge. I'll probably control it via wireless from a second on board micro-controller. The drop, ultrasound, and autonomous navigation micro (and additional battery) can all be put into a single "module" that I can then bolt to Tim. All the navigation micro needs to do is control the differential drive like a remote control would. This way, the existing micro etc on Tim doesn't change at all in order for the challenge to be accepted.





Categories: thinktime

Pages

Subscribe to KatteKrab aggregator - thinktime