This is a fascinating discussion between Dan Mall, Jeffrey Zeldman, and Andy Clarke about the role of aesthetics in modern web design and development. This conversation is important as there’s still a bias that responsive design is responsible for bad aesthetic design. Do yourself a favor and give it a listen.
On this page:
- Unfinished Business episode 105: ‘Seventeen coats of bullshit’ with Dan Mall and Jeffrey Zeldman [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- A few thoughts on improving learning outcomes & avoiding cognitive biases [video] [Volker on Mobile]
- How to switch User Agents in desktop browsers [mobiForge blog]
- Methods In The Wild To Return To LTE As Fast As Possible [Martin's Mobile Technology Page]
- The What and Why of Pattern Lab [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- HTTP2 in 5 Minutes [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- Webdagene 2014 Recap [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- WordPress Database Migration Tool [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- Death to Bullshit Logo [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- Building websites that work on an e-ink Kindle [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- Linux Device Drivers - Exploring the Kernel And Reviewing A Book 10 Years Later [Martin's Mobile Technology Page]
- Maker Series Recap: Brad Frost [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- Understanding web page weight [mobiForge blog]
- Moving Beyond the Aggregation of 5 LTE Carriers [Martin's Mobile Technology Page]
- Webviews and User-Agent strings [mobiForge blog]
- The 1 Millisecond 5G Myth [Martin's Mobile Technology Page]
- 14 reasons you should attend one of my responsive design workshops [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- Accessibility and Low-Powered Devices [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
- The "Ringing For Favourites Only" Feature Is Back! [Martin's Mobile Technology Page]
- The Path to Performance [Brad Frost » Brad Frost | Web Design, Speaking, Consulting, Music, and Art]
April 30, 2015
[[ This is a content summary only. Visit my website for full links, other content, and more! ]]
April 27, 2015
Looking to test mobile websites in your desktop browser? Or, maybe you need to test page weight and load times in the mobile environment? These tasks are easily done by changing the browser’s default User Agent header. This article describes a few simple methods of switching User Agents in desktop browsers.
April 25, 2015
LTE deployments are making steady progress and with good network coverage, network operators are keen to make sure devices are on LTE as much as possible instead of lingering around in 2G or 3G for too long. There are actually quite a number of mechanisms I've seen in various networks in the past so I thought I'd sum them up in a single post. Note that there are more mechanisms than described below but those are the one's I've seen in different networks while traveling.
Autonomous Reselection: This one's the easiest as the network only needs to signal LTE availability in 2G or 3G System Information messages (2G SIB 2quater and 3G SIB19). Mobile devices in idle state that have ended up in 2G or 3G for various reasons then periodically scan for LTE coverage in spectrum locations indicated in the SIBs and autonomously change back.
Release With Redirection: Instead of switching a mobile from active to a more power conserving state (e.g. from Cell-DCH to Cell-PCH), the network releases the connection with an RRC Connection Release message that contains redirect information to LTE. The mobile device then has a look if LTE is available straight away and leaves for greener pastures if LTE is found. For this to work the network operator must be reasonably sure that LTE coverage is actually present in the area where a release is made instead instructing the mobile device to use an active but less power hungry 3G state. Otherwise the mobile ends up in 3G idle state from which it takes more than one and a half seconds before data can flow again (for details see this post).
CSFB Release With Redirection: That's almost the same as above but part of a CS-Fallback procedure for voice calls. After the voice call ends the network releases all bearers and also includes redirect information. This is even done when a PS bearer is still established at the end of the call and IP packets are flowing.
GPRS to LTE Reselection During Data Transfer: This is a relatively new feature and allows the mobile to interrupt an ongoing 2G data transfer and switch back to LTE. Have a look here for the details.
UMTS to LTE Handover During Data Transfer: This functionality is unfortunately not yet widely deployed in networks, I haven't come across a single network that supported it. But from my point of view it's a very important piece of the puzzle as often I use a notebook and VPN that constantly keeps data flowing and once I end up in 3G due to running out of LTE coverage I'm stuck there until I run out of 3G coverage. At this point anything can happen, depending on how the network looks like once coverage is regained. I already wrote a post about this back in November 2014 so have a look in this post for the details.
April 21, 2015
Ben Maraney gave a great talk about how HTTP2 will speed up how the web works and will impact performance in a big way. Normally I struggle to make it through talks about in-the-weeds stuff like this, but I feel the 5-minute format was just perfect for this. I’d love to see more of this kind of stuff.
April 20, 2015
I just bought WP Migrate DB Pro to help keep my local databases and live sites in sync. Looking forward to digging into this. Right now my local sites and my live sites are way out of sync, and it can be really frustrating. I bought the developer version which includes media files in the mix, so that should definitely come in handy.
I recently wrote about accessibility and low-powered devices and shared a story about how my wife’s cousin uses a Kindle as her primary browsing device.
Chris Ferdinandi wrote a great follow-up post sharing some tips and gotchas for creating Web experiences that are a more acceptable on these older, lower-powered devices.
April 18, 2015
Apart from mobile, I like to explore other computer topics every now and then as there are often surprising ideas springing up from this that also impact my work in mobile. Android programming, Raspberry Pi's, Owncloud and my dive into PHP web programming and databases last year immediately filtered back to the work that earns the daily bread. Earlier this year I started having a closer look (again) at the Linux kernel.
The great thing about the Linux kernel is that it's open source and you can have a look yourself. The problem is, however, that it's a monumental piece of code and without any prior kernel knowledge, diving into the material seems daunting. I'm a hands-on person so just going through the code for the fun of it is not my piece of cake. So I was looking for some insight with practical things to be done along the way. That's not easy to come by as books on the topic with hands-on tutorials are rather dated. One of the best books on the topic is perhaps the "Linux Device Drivers" book as it explains many things about the kernel from a device driver perspective. The good thing about this approach is that it offers hand-on experience with a couple of sample drivers one can compile, modify and run.
Unfortunately the current 3rd edition of the book is from 2005. Ancient history... I would have never bought it in print at first. Fortunately, it is available online free of charge and so I decided to start reading it in electronic form first and see if the sample code would still run. The source code would of course not compile anymore, too many changes were made to the kernel since. But a number of people have updated the source over time and there's a working version available that compiles with current kernels on Github by duxing2007.
Together with the working source the book suddenly made a lot more sense and even though some of the book's content is clearly dated (e.g. using the parallel port for some of the sample code or discussing the ISA bus) the majority of the content still gives a good introduction to the kernel with lots of things to try out via the driver examples that one can compile, run and modify. At some point I decided it was worth to buy the print version of the book as sometimes information in print still beats the electronic version. In other words, despite the book being 10 years old now, I still found it a worthwhile read!
While not necessary to compile and run the examples in the book, having the kernel source to explore is great. As it turns out it's quite simple to download and even compile it. If you are running Ubuntu, have a look here for how to do that. On my notebook in a virtual machine running an Ubuntu guest, it takes around 2.5 hours to compile the kernel. Installing the compiled kernel to boot from is a simple command. I wouldn't have dared that on my notebook but in a virtual machine there's nothing you can break in the process that couldn't be restored with the click of a button that restores a previous snapshot of the guest OS.
With all these things in place it's never been easier to explore the kernel! Have fun!
April 16, 2015
I had a fantastic time traveling to nearby Dayton OH to talk about atomic design as part of Sparkbox’s Build Right: Maker Series. It was a really fun day largely in part because the Sparkbox crew set it up to be really casual and organic. Sure I talked for a while, but a large part of the day was dedicated to Q&A and conversation. It was a blast.
They have a whole bunch of other events coming up, and I would highly recommend attending them. They even have a season pass so you can attend a whole slew at a discount.
Also, the illustration they did reminds me of Gorillaz, which I think is amazing:
Page weight is the gravity of the web—a relentless downwards drag, ever present and utterly unavoidable. Understanding it is a critical aspect of a successful web strategy. We’ll be doing a series of articles on page weight covering background, measurement and reduction. In this article, part I of the series, we’ll talk about the importance of page weight.
April 14, 2015
While aggregating two LTE carriers in Europe exists but is still not very widespread due to the availability of 20 MHz single carriers there is talk in the industry about aggregating 3 carriers. There is still some room in the specs for the moment as the maximum number of aggregated carriers that can be accommodated so far is 5. But eventually, carriers might want to go beyond that as well so 3GPP is gearing up to work on a solution to eventually combine up to 32 carriers.
The work item description can be found in document RP-142286 presented not long ago in TSG RAN#66 in December 2014. At first I thought extending CA beyond 5 carriers might be straight forward by introducing a couple of additional information elements and extensions. But that's a bit too short sighted as the current solution puts all uplink transmissions including channel feedback on the primary cell (i.e. the primary carrier). So as more and more devices become carrier aggregation capable there's more and more uplink traffic in the PCell which increases as more and more carriers are aggregated. Therefore the model does not scale well and uplink traffic and feedback at some point needs to be distributed over several carriers if more and more of them are combined.
From an overall conceptual point if find an aggregation of up to 32 carriers quite interesting. Before the aggregation of 2 carriers made it into chipsets many people were saying that this is going to be difficult as it would increase complexity and hardware cost significantly. Fast forward to 2015 and the aggregation of 2 carriers is in the wild and built into many devices. Obviously the aggregation 32 carriers is yet again another beast. And then again who would have predicted just two years ago that we would see mass market devices that support 20 LTE bands?
April 13, 2015
Much is made of the comparative times spent browsing the web vs engaging with native apps in the apps vs web debate. An often overlooked part of the discussion is that when engaged with a native app some portion of this time is spent actually on the web, via a webview. We'll get to what a webview is in a minute, but for now, what this means is that although the user is in an app, he or she is effectively browsing the web.
5G must be on the steep rise part of the Gartner Hype Cycle curve as I have heard a lot of non-technical people making a lot of technical statements out of context apart from the usual Mbit/s peak data rate claims. A prime example is the 1 millisecond round trip time that 5G should/will have to enable the 'tactile' Internet, i.e. Internet connectivity that is used to remotely interact with the physical world.
Sounds all nice but physics stands a bit in the way of this and nobody seems to say so. The speed of light and electricity is limited and in one millisecond, light can only travel around 200 km through an optical cable. So even if network equipment does not add any latency whatsoever, the maximum round trip distance is 100 km. In other words, there's no way to remotely control a robot with a latency of 1 ms in one part of the world from a place halfway around the world. But then, why let physics stop you?
So perhaps what was really meant is to further reduce the latency of network components? A big step was done in LTE with an air interface that has 1 ms slices and to base all network interfaces on the IP protocol to remove protocol conversions and the resulting overhead and latency. A scheduling interval of 1 ms means the round trip time on the eNodeB is in the order of at least twice this without even forwarding the packet to another node in the network. Add to this potential HARQ (Hybrid ARQ) retransmissions so you already end up at several milliseconds. Sure one could further reduce the length of the timeslices at the expense of additional overhead. But would it really help considering the many other routers between one device and another? Have a look at this great post of Don Brown and Stephen Wilkus which goes into the details.
April 09, 2015
- Unlimited pancakes
- New car smell
- Responsive design knowledge adds 15 years to your life, guaranteed.
- Every attendee will receive a five-minute-long hug from me.
- No Bob Seger™
- Your boss will automatically double your salary.
- Unlimited waffles (post-workshop)
- Skeet shooting?
- By the end of the workshop, you will suddenly be able to speak fluent Japanese.
- Every workshop attendee will receive a BRAND NEW CAR.
- Your knowledge of responsive design patterns will bring your enemies to their knees and have them begging for mercy.
- Rap battles.
- You will leave with actionable skills and techniques you can immediately apply to your design and development workflow.
- Eternal life.
*Individual results may vary.
My wife’s cousin suffers from debilitating migraines. She’s done everything to reduce the migraines’ frequency, from dramatically altering her diet, to trying every available medical treatment, to even moving several times to different climates. Because of her condition, she has to minimize time spent with backlit screens. Recently she sent me a Facebook message:
She went on to explain how certain sites she visits crashes the e-reader’s browser, leaving her understandably frustrated. I responded by saying this type of stuff is what I talk with audiences and organizations about. She replied:
I think this story is really fascinating. It’s an interesting intersection between performance, accessibility, and devices. A few thoughts:
- She’s a user who owns more powerful devices (she has a Mac, etc) but is deliberately choosing to browse the Web on an underpowered device because of her circumstances.
- Does this mean Web designers need to bend over backwards to ensure their creations are looking and functioning beautifully on old e-ink Kindles? No. This has to do with awareness of the fact that people have to–or even choose to–access the Web from less-than-optimal environments.
- There is a difference between “support” and “optimization”. I’d venture to guess old e-ink Kindle’s aren’t explicitly mentioned on any project’s browser support list. But these lists are really referring to what browsers/devices/environments the creators are optimizing for. It’s our jobs as Web creators to make experiences to do our best to support any person who wants to interact with our creations, regardless of what device/browser/environment they have. This is about pragmatism. Ideally we create things that work everywhere, but realistically there’s not enough time and money to actually deliver that ideal experience. That doesn’t mean we shouldn’t try.
- Hopefully device manufacturers develop (or maybe they’ve already been developed?) more powerful e-readers with more sophisticated browsers that won’t choke whenever it encounters the average web page. But that’s not really the point. The zombie apocalypse of devices is already here and the trajectory shows folks continuing to interact with the Web on underpowered devices. Watching people browse the Web from their watch is fascinating because these are modern (hip) devices that also happen to be relatively underpowered.
- Performance matters, and performance and accessibility are closely related. This reminds me of the amazing Youtube Feather story, where a lightweight prototype led to more people being able to access Youtube’s videos.
- Thankfully, both accessibility and performance map nicely to business goals. When I ask clients “Do you want to reach more customers?” the answer is always yes. When I ask them “Do you want your experience to load blazingly fast?” the answer is always yes. Both accessibility and performance are invisible aspects of an experience and should be considered even if they aren’t explicit goals of the project. My wife’s cousin explains it best:
There it is. Make efforts to make Web experiences accessible and performant; make money.
One of the features I was dearly missing when I finally switched my main device from a Symbian phone to an Android device was that I had to give up the feature to put the device into silent mode but still make it ring for selected contacts. This was and still is an important feature for me, especially when traveling to other timezones and people being unaware that they are calling while it's night in my current time zone and I'm sleeping. So for the last two years I fixed this with a kludge, i.e. taking an extra phone and SIM only known to few contacts. Now I discovered that the feature was introduced on Android and the iPhone at some point between then and now.
On my Android 4.4.4 based CyanogenMod Samsung Galaxy S4 which I've been using for more than half a year now, the sound menu now contains a menu item called "Quiet Hours". When selecting the item it's not only possible to set the quiet hours but also further things such as which events shall not be indicated to the user and the "Phone Ringer" menu item which can be set to "Ring for Favorite Contacts" (only). Works like a charm!
O.k. so this is a pretty much stock Android OS, how about customized variants? I had a quick look on a current high end Samsung device with Android L and while it looks slightly different the option is there as well. Also I could find a similar option on the iPhone.
Great stuff and nobody told me... ;-) Must have been in the software for quite some time now.