by David LeMieux
In the web advertising world everyone wants to know when and where an ad is being served. There are a number of ways to track this, but a common practice by many third-party ad tracking services is to give the ad creator or publisher a url to a transparent 1x1 gif that serves as a homing beacon of sorts. It loads in the background, you cannot see it, and it sends data to the server in the form of an HTTP request.
This method takes a URL to request and then data to be added to the request body (always a POST request). The idea is that this request is not canceled by user navigation and is more-or-less guaranteed to be made. This sounds delightful, from an ad or metrics perspective, but there are some caveats.
First, the data is sent as a POST, but not as form data. Instead it is included as part of the request body. This isn't a difficulty, but it means your server side code has to know how to parse this data and use it. There can be complication with this depending on what technology you are using. For example, certain Java servlet filters might try and access the body, but it can only be accessed once since it is an input stream.
Second, in case you considered using this with third-party tracking pixels, not every third-party tracker allows POST requests. This negates any usefulness and the feature almost entirely.
Finally, some browsers have a data limit of how much data, per page view, can be sent by the sendBeacon API. In my testing I have noticed that this only includes actual POST body data, so you can still send quite a lot on the query string if you want.
navigator.sendBeacon is not yet supported in every browser, but I think it will be a useful browser feature when it is, as long as one understands the limitations - which are likely to change or be different in each browser.
I have been thinking a lot lately about how to balance short term gains against long term gains when it comes to software development. I suspect I am not the first but what I struggle with is that much of what can be accomplished in the short term is not suitable for long term growth. Focusing too much on the long term can mean you miss short term opportunities and the feedback loop takes too long. You don't want to spend too much time on something that isn't going to help you or anyone else.
I do think the balance lies somewhere in that 1) It is important to understand the problem that needs to be solved in contrast to providing implementations details to any apparent problem without understanding it. 2) Setting up a good foundation, while not bullet proof, will get you a long way toward extensibility and being able to make quick wins later on. 3) Taking a tick-tock approach to short and long term goals (stability vs features, for example) allows teams to achieve both, but at the possible risk of extra context switching and thrashing.
While I am generally a fan of something akin to "agile development" I think that the idea of an Minimum Viable Product (MVP) can sometimes be detrimental if it becomes synonymous with ignoring quality along with features. In my opinion we'd all be able to make the most rock solid set of one or two features needed for a product instead of three or four buggy features.
I am also a firm believer in living within constraints. It isn't always easy and can even be humbling (saying no to a client because your product is lacking something the want can be hard to do) it can also be a catalyst for change while helping to keep things coherent in the mean time. Short term gains should follow patterns and be built on a solid foundation. Long term gains should be the rebuilding or shoring up of that foundation.
I was recently contacted about my interest in paying for pictures of the new Star Wars movie script. I was doubtful that there was any truth in the claims, so I asked for a sample. When I received it I couldn't believe my eyes. Here it is.
Han never shot first.
Needless to say I am now trying to raise the rest of the money needed so that I can get this exclusive before BuzzFeed or anyone else does. Here's to hoping it works out.
Raisins? More like Rad-sins, amirite?
I think I should pitch this to the California Raisin Marketing Board.
There is a lot of new data generated every moment. Most of which isn't actually that interesting, at least not on its own. As the world, or at least parts of the world, continues to be more connected the constant flow of this new information drives innovation in terms of how to organize and consume or even ignore it. How we digest this content, create it, and the tools that help us do both are ever changing and there is a new pattern emerging that points to a different style of data management.
Compartmentalization has benefits, but there aren't great jumping off points.
In college I had used bookmarks to keep track of all the different sites I wanted to check on a regular basis. I would open the pages one by one (and soon after, tab by tab) in a browser and read through the latest articles. Some friends had blogs, those were in the list. Each item was an individual link going to a new compartment of information.
At some point Firefox introduced Live Bookmarks - A bookmark folder that pointed at a RSS/Atom/XML feed and would just show the latest articles as though they were regular bookmarks. It was about this time that the flow changed. Instead of individual, unique jumping off points there was a place to go to see part of the stream and start from there. Then came Google Reader. Reader allowed users to follow any number of feeds and lists and served as a central jumping off point for discovering and following all sorts of data.
Unfortunately Google sunset Reader. There are other services that do nearly identically the same thing, but they aren't quite the same. Because of this (and, I must pause for a moment to mention that Facebook, Twitter, and other popular apps have changed the landscape of how and where people put new information) we have returned to what feels like the bookmarks of before. While there are aggregation services still around, most people turn on their phone then find the app they want to open and start there. The home screen in the new bookmarks bar.
Technology has a constant drumbeat that makes it march ever forward and now is no exception. There are already signs that things are changing. Flipboard, already several years old, is like a content aggregator but also creates a unique layout - making the new content even easier to digest. I am not sure, however, that this isn't just a stopgap. That maybe Flipboard is a bit too Reader-esque and not enough of the thing of the future. An interesting article titled The End of Apps As We Know Them points to that the way we use our apps is changing. We are moving away from the bookmark-style launch screens and more toward interactive notifications and in-the-moment, contextual information processing. Google Now is the current best example of this - showing you information at the time you need it. The newest part of that idea, though, is the shift away from content consumption ("Your flight has been delayed") to content creation and data entry.
Auto updating/formatting of content in the moment.
Facebook, Twitter, and other platforms allow for content creation and sharing in many diverse and easy to use ways and these services will continue to be a part of the new flow. Added to them (or, perhaps, as part of them) will be new kinds of content and data entry. Wearables will allow collection of personal activity data. Phones and beacon/checkpoint technology will give better locational awareness. These ideas certainly aren't new, but the emerging patterns of design and interaction seem to suggest they will become more prominent than they are now. With all this data, though, who will take the time to organize it and make it presentable? The answer is that the computers will do it for us. We can already see how some content streams, like Facebook's, auto filter and layout the things we post on our behalf. Newer technologies like The Grid even claim to be able to do it for freeform, personal content so that a user doesn't even have to think about how new content fits in to their website.
Instead of templates, The Grid talks about applying layout filters. This combination of content filters applied to a layout filter points to a world in which you could just go about your life, maybe take some pictures and then very easily manage who sees what and when and where but with none of the current friction in doing do. It also means that we may be able to move away from some of the walled gardens of the day, but it could also mean the opposite. This kind of easy flow sometimes only works when every part is from the same system.
Handoff and Context switching
Another part of this will be removing the need to think about which device you are using. There is already evidence that this will be a solved problem soon. Apple's own continuity product is a step in this direction.
For the first time in a long time I had the thought that what I currently do as a living, web software engineering, might be taken over by robots. Sure, someone has to tell the robots what to do, but for how long? How long until the steam of data, the flow of information, organizes itself? How many people have personal blog compared to how many users use Facebook? I'm sure some Facebook users would love to customize the look and feel of their feed, but mostly people are content that the feed exists at all. I also wouldn't want to even suggest that a machine could learn "what is design" or "what is art" but they are certainly going to try.
Ads are probably over
In Peak Ads the data suggests that people care less and less about traditional advertising and that advertisers are going to need to find different ways of presenting their sales pitches. Things like native advertising figure in to this. I am not so sure that will last. The Internet is going to move to a non-ad-supported model and it is going to be interesting to watch. I have no idea how any of this new flow of data will be monetized, but I hope it is with people paying money or by the system becoming so cheap that it can run itself. Or become a utility. Who knows. I don't think Internet advertising will be around in a recognizable form, though. That could just be wishful thinking.
I am not an expert in any of this. In fact, a real expert may be reading this and thinking "What a naive, uninformed bunch of grammatically incorrect nonsense." I still think something similar is on the horizon and I am eager to see what happens.
I've been using Yosemite at home and at work for the last bit and have to say I love it more than I probably ought to do. Something about it is in tune with how I think I feel things are supposed to work. Not much has changed, but it just feels more "right." From the design to the small functional differences it is better is almost every way.
The only thing that is a bother for the moment is the new fullscreen button that replaced the old (+) button. Now you know to know to hit "Option+" for it to act like it did before and I use that all the time.
The green one now defaults "Full Screen"
I am a fan of art generated by code. I even gave it a try a little bit. There is a lot that can be discussed about the topic as a whole, but I want to only take a moment and spotlight a project that I found recently through browsing my Github feed.
Jenn Schiffer (who's posts on Medium, by the way, have caused a sufficient amount of confusion at work to make me an instant fan) is dissecting different artists and art styles and how one might replicate them using code.
Example step in the process
This includes first figuring out the patterns and replicable parts of art and then trying to reproduce them procedurally with code. What is interesting to me about the process is that this method almost completely ignores the question "What is art?" and instead says "Here is some art, lets break down the parts. How can I make a similar art with similar parts?" Which itself is an indirect answer to the first question, if even unintentionally.
It sort of reminds me of The Artist is Present Game where you relive the experience of the performance of the same name, only digitally. It isn't the same as the original, but it becomes its own thing by being an approximate replica in a different medium.
I don't mean to draw conclusions from things that don't need them. I enjoy art and code and art made from code. Maybe someday someone will create an interpreter that runs code based on art.
I am a fan of Coins but only recently did I discover this album of Beastie Boys/Daft Punk mashup tracks. I have listened to it a lot over the last few weeks and I have to say that each track is better than the last. The only exception, for me, is the _Disco Breakin track which, while still a fun listen, doesn't follow the crescendo of increasing quality and instead takes us back to around _Pass the Mic. That could just be me, though.
Bonus: There is also a new CVS Bangers