Disconnect from malvertising

Even talking about tracking, privacy, or blocking ads will cause most people to tune out. If this is you, stay with me for a minute; you may be glad you did. (If you just want to skip ahead to the filter, scroll down) Nearly everything we do online can and will be tracked if advertising networks have anything to do with it. I learned about ad tracking in depth first from a friend of mine who works in a lab responsible for collecting and data mining information used for personalized advertising. Just how anonymous is the data they collect? Privacy policies may lead you to believe that it is, but in fact, much of what you may consider “nunya” is part of that tracking data. This includes things you may or may not want to share with these companies—especially if it can be comprehensively reconstructed to be about you personally. I’m not referring to the level of surveillance the NSA has on you according to Edward Snowden, but let’s just say it’s not something to sneer at.

This got me thinking and doing a little research of my own. I’ve had a chance to model several types of makeshift protection agents in the past, so I can definitely appreciate solid open source apps that protect people from invasive tracking. Im sure you remember a few years ago, many web browsers like Google Chrome, Safari, and Firefox introduced “do not track” as a user preference, but what does this actually do? It sends a header with your traffic and leaves it up to the ad networks to respect that signal. That was a few years ago, how bad is ad tracking these days? Signs say things have gotten worse. Recently, Apple has shared their point of view on how ad tech has become a user experience problem on mobile devices and has begun to take action. Duckduckgo.com has led the effort to “un-bubble” web searches and has stood out against tracking. Demand progress has led the fight to protect our rights online. Even the ad networks have even made it easier for us to opt-out from one place. This may sound great, but ask yourself one question.

Do you believe companies who track and profile the masses will voluntarily stop without being regulated by law?

If not, block them! One method is to use browser extensions, which may slow down your web browser. Also beware that the most popular extension called Adblock Plus sold out to some of the largest ad networks to allow them to whitelist themselves. You could also use an internal or external proxy, DNS, or VPN service that you trust, especially if they share their technology with you.

Disconnect.me makes opting out of online tracking super easy. They have created a tracking blocker app that works like a charm. Disconnect runs extra processes to encrypt traffic and works more like a VPN (which is fine if you’re not concerned with having a different IP address and having some of your local ports used for that purpose). Developers may want to use a local proxy such as the outdated-but-still-works Glimmerblocker to avoid conflicts with Apache or other local servers. I’ve been happy with the performance of that setup for general adblocking, even if it doesn’t intercept https and wanted to add a static copy of Disconnect’s malvertising filter list from http://disconnect.me/lists/malvertising. Enjoy! https://gist.github.com/technicallyrite/7335b1e5c74d11c855e8#file-disconnect-malvertising-glimmerblocker-filter-xml

Redefine the Problem


Many times we solve design problems with reciprocating solutions rather than creating new, innovative ways to do things. Irene Pereyra, Global director of UX and strategy at f-i.com suggests, “If you were redesigning the toothbrush, the brief wouldn’t be “Redesign the toothbrush”. It would be, “Redesign the way you clean your mouth”.” In other words, try to redefine the problem as a simpler, profound issue to solve for. Be sure to address the appropriate business goals, user needs, and market positioning. The key is to start with design triggers based on transformational thinking. Now go create!

Shrinking images for the web and mobile devices

For years, many designers have used Photoshop to save images for the web in what is largely considered to be “good enough” compression. There have been new formats that touted better compression but got relatively low adoption in the browser market and were never established as a W3C standard. Who cares, doesn’t everyone have broadband? Google recently implemented webp in the chrome store and saw great results. So although most browsers aren’t up for new formats, we could still serve images more efficiently by using better compression, caching and sprites. One could do batching on the server (jpegmini serverpngquant) but I think it’s up to content creators to make a choice. What do you think? Is it worth the trouble?

I’m sure there are others, but a few tools that look promising are imagealphajpegmini, and http://imageoptim. So check it out and let me know what you think, or if you find others that work better please share.

Mobile Web and/or Native App?

Getting a new mobile app into the wild can be challenging, especially when targeting a diverse audience that use many different devices. One common question we answer as a digital agency is whether to build a native app, a mobile app, or both. Unfortunately there’s no magic formula for arriving at this answer, but it’s good to start thinking about user’s needs and how they relate to a mobile rollout strategy.

Aside from critically important factors like user experience and usability, the launch point needs to support the ultimate goal as a business, which is likely centered around conversions. A while back, there was a study that showed Android users converted equally between native and web apps, but iOS users were a different story, with native apps converting as much as 30% higher1. This of course should not be taken out of context, because each industry and target will have unique characteristics to consider. For a targeting a retail customer, some platforms are more prominent, so choosing a platform may not exclude the target. Also, making an application available to many platforms certainly has it’s advantages, but marketing it outside popular app stores may not bode well without a good launch strategy.

“faster product delivery, more effective products, and bigger yields”

Time is another factor. Generally speaking, native apps have a longer time to develop, and by effect are more expensive to the product owner. In many cases, beginning with an online version of a mobile application can have several efficiencies, because the same system can serve not only mobile devices, but also full websites. If an app needs to be in both places, this may be a first step, followed by a push to the application marketplace. But how many users can be reached? By getting the right message to the right people, the cost of development will be far outweighed by the benefits. There’s merit in taking user feedback from usability tests, focus groups, and multivariant testing. A good way to fine-tune feature priority is through end-user discovery.

So when deciding if your team needs to build a mobile web and/or native app, we borrow a page from Agile product development. Leverage can be made along the evolution of a product or idea as it is developed, and seeing a plan out iteratively also nets better results overall; more effective products, faster product delivery, and bigger yields. Launching your application should never be intended as a monolithic block of effort. So then it comes down to knowing who it is you’re speaking to, and how you can best serve them effectively.

1. Mobile commerce, David Eads – http://blog.mobilestrategypartners.com/2011/05/15/mobile-web-is-only-half-of-retail-mobile-commerce/

Smarter UX

It’s only by looking at the whole, that we can design great experiences. And only by building a community of both system and application developers that care about the whole, that we can make those designs real.” —Mark Shuttleworth

Read the whole article: http://www.markshuttleworth.com/archives/1085

Seasoned writer reviews 3 mechanical keyboards

Found an interesting review of three mechanical keyboards from the perspective of a seasoned writer, and how he quickly becomes an enthusiast. More of this can be found if you look for it, but I wanted to share this for any of you who haven’t tried a clicky keyboard. He outlines his discovery and likes/dislikes, and includes one of my favorite keyboards, the AEKII.

More: Shawn Blanc’s Review

Purging an item from Git History

Here’s a quick and dirty way to clean particular items from Git history. In our case it was large files that were being scattered throughout capistrano deployments. We symlinked the folder and now treat it as content, and all is well. I read about a project called git-annex that I want to look into further that may be better suited for handling large files.

$: git filter-branch -d /dev/shm/scratch –index-filter “git rm –cached -f –ignore-unmatch ‘filename.ext‘; –tag-name-filter cat — –all
$: git push –force –all

Conversation Threading

If you find Apple Mail using high CPU because of conversation threading, either turn off “include related messages” or try archiving old messages. You can make a smart mailbox for old mails, then choose export mailbox. Before you archived messages from mail, you should be able to set your account settings so the archived messages stay on the server. Also remember, it’s always good to have a system backup to prevent loss of important data, just in case.


Rails 3 Asset Pipeline FTW

courtesy @lautis

Working with the Rails 3.2.1 has been a great experience for me, but not everyone shares this sentiment. Here are some interesting insights from Rob Connery about the state of things after the Rails 3 dust settled regarding the asset pipeline. I share this because, in short, I agree and believe upgrade struggles are likely well worth it. Users ultimately benefit, and I appreciate the rails team pushing Rails engineering in this direction.

Give dynamic pager the day off

If and only if you have enough memory (>8gb), you can experiment with disabling virtual memory to prevent swap paging. Beware, after doing this, overallocating memory by running too many memory-intensive apps could cause a system halt. You have been warned.

Terminal command:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist