Profile pic [NOTE: This is my personal blog. Opinions expressed here don't necessarily align with what I would say, or recommend, in a more professional capacity.] I'm an old school nerd, techie, founder, and all those other things that comes with growing up fascinated by computers. Currently my primary job is to build a startup focusing on new ways to do B2C communications. This is work founded on my earlier research into the nature of digital information as we use it today; with the goal to allow people more efficient communications by eliminating the need for the data to pass through third parties such as social networks. I'm also part-time available as a chief tech advisor. Practically that means that I'm a tech strategist and business developer, that help up the level of tech competency, without burdening your organization with a new position that also has day-to-day operational duties. This is primarily meant for startups/SMEs; but I also work with individual business owners to help them set up their IT-departments, or external contractors. I work with everything from designing the underlying deep tech and system archi­tecture, to making sure that tech, user experience, and business requirements all line up.
/tony@svanstrom.org @
-- PS Work info is over at svanstrom.com.
Added a very basic dark mode. The default monospace typeface didn't always produce legible results on regular displays; so I limited dark mode to primarily touch devices for now. If your device is set to dark mode (and is a touch device), then everything here should look white-on-black-ish. @media (prefers-color-scheme: dark) and (hover: none) and (pointer: coarse) {…}
Uppsala old cemetary. Woe of the day: The murky unknown evils that lurks in the depths of… webdesign. As much as I'm trying to deny it, I'm actually working with design while putting this blog together. Which in theory is done using style sheets; allowing for a complete seperation between church and state content, design, and programming (in this context meaning JavaScript). I say "in theory", because practically speaking the web is a gigantic mess. In practice we start out with content, add basic structure to it, and then just keep adding layers of structure simply to have something to work with while trying to deal with the limitations of the styling options; and then we head into some real programming to actually be able to do the conditional design choices that must be done to make the whole thing look, and act, like a modern website. *exhausted sigh* Just for the fun of it, every webbrowser out there implements all these things slightly differently. *throws computer out the window* So, what do we developers do about all this? Well, to start with we go where no-one has gone before as far as the level of consumption of caffeinated beverages, and we try to take regular breaks whenever we feel the urge to set something on fire (this is the real reason why it's essential to have "playrooms" at offices with lots of nerds; pure self-preservation for everyone else in the building); and then we turn to software libraries. A library is simply a bunch of prewritten code that deals with all the exceptions we otherwise would have to code ourselves around. What any sane person/non-coder might think could be done with a single line of code might end up requiring a library with 100's of lines in it, or even (10's) of 1000's. Ignoring any licensing issues that might arise (mostly relevant if one's developing commercial software), this should be it; right? I mean, literally thousands of hours have been put into solving this problem for us, so… Surely it must be solved? Kinda sorta maybe. In the wonderful world of webdesign these libraries simply can't work at a low enough level to fix the underlying problems; so instead they try to manage them. This is sort of like having a broken foundation for a building; and instead of having techniques for replacing the foundation, we have ended up with a myriad of techniques for building on top of broken foundations. Which works great. Until you invite your extra heavy uncle, and under a full moon in retrograde accidentally let him sleep at the wrong angle in the wrong room during some unfortunately chosen unexpected (by the developers) hours such as regular nighttime. Practically speaking we're at this point back to exploring unhealthy coping mechanisms; and actively questioning every life choice made since kindergarten. And… if you are reading this using the "wrong" webbrowser on the "wrong" platform at the "wrong" time (ie, before I've fixed it), you'll find that to read the absolute last post on this page you'll end up having to scroll for about a week and a half. Evolutionary speaking what these problems has caused is that these libraries kept growing until they had more and more features; allowing developers to not work with the actual building blocks of the web, but rather the features the libraries provided. Which, in theory, makes everything used work together as we want it to. This has created a plethora of subsets and standards and extensions and whatnot; which is less about the web, and more built on top of the web, built with "web technologies". To solve my current problem with misplaced posts I could for instance simply do my work on top of a template offered by a library that does the basic features of what I want; and… That's how we went from webpages being single textpages offered up by a fairly simple webserver, to… having to use specific webservers, specific databases, to fit our chosen content management system, which comes with a template engine, on top which we place our chosen template, which comes with its own options and plug-in engine, in which we place the plug-in that focuses on our required feature, which in turn comes with extensions (another plug-in engine) tweaking the whole thing to work with our preferred type of posts. And at that point everything just works. Except… If we're unlucky it only works on some "supported" platforms, and only if you ignore/work around certain bugs. (Atheist or not, once you've got a working platform you better pray that none of the major players, like Apple, suddenly releases an updated webbrowser that accidentally breaks how your chosen platform has worked around any earlier problems.) Then there's how we go about sharing the actual content, now hidden somewhere in that convoluted mess. Which is where we must add even more code, to create all forms of APIs to open up the content to more "social" participation. Plug-ins to make content sharable between different platforms etc. This is as far as I will go with this layer-upon-layer mess, but I'm actually very far from done; there are many more layers. (I could write some very long essays about how, and why, things have evolved to where we are today.) But, what does all this mean in our day to day lives? Well, if we're a business and start out with something as simple as a short text, a photo, a menu, or a wine list, and we want to get this to our customers; we often end up with IT-technicians, web-bureaus, social media managers, content specialists, and so on. Instead of simply just placing the content online (like adding a pizza to our menu), and our customers simply getting updated about this (depending on their preferences, like geolocation and time of day etc), we end up having to put our content onto several platforms. Such as our digital menus and displays at our brick-and-mortar location, the payment system, online ordering system, if we have an app; and all our social media channels (where we must have the time and resources to do a campaign, to reach as many as possible of our followers). *sigh* We start with what should be able to be easily accessible content, which then gets lost in what we do to present it; forcing actual dissemination to become quite resource-intensive. And that's pretty much the tl;dr of how we went from a simple, open, and democratic, web, to relying on commercial third party social networks; because as much as they only work to maximize their own profits, they still end up cheaper to us than building our own solutions. Post scriptum: In this case my problem with a slightly misaligned element is actually just the latest gripe in a week long process to do something that looks deceptively simple; but that due to complex requirements has been hard to solve in a cross-platform safe way.
Coworking center Base10 Work in progress.😁 I'm coding a content management system, and this blog is a prototype of some of the most basic concepts. Right now the focus is on code/design structure; basic things like where one should be able to place an image, and the most minimalistic way to make modern webbrowsers display things as intended. For now that means that things, on and off, might be a bit misaligned; or perhaps move a bit in the wrong way when the page scrolls.🤷‍ Overall I wouldn't exactly call this part of the project design-work (which I vehemently claim to suck at), but more about exploring functionality… The goal is to create a reference platform that acts as a hybrid between a blog, and a social media profile. (Me being a fan of open and decentralized data it is probably not too hard to figure out where I might be heading with this; but there is a non-obvious twist to where things will end up.🤫) Most of the code will be reused in my day-to-day project, but done right it will also function as a stand-alone example of how it is possible to build a flexible platform, without creating a full-blown template engine. (What can I say, I'm a minimalist to the point where I go out of my way to "disprove" non-minimalistic approaches.) As of this writing nothing here is available under any license, so it is all "all rights reserved"; all images taken by me etc. (I just really don't want to have to waste any time on version control, updates, and whatnots, on stuff no-one might be interested in copying anyways; so just drop me a line if you want to use something here.)
People staring at phones What does it mean when I say that my work includes "eliminating the need for […] data to pass through third parties"? 1. First of all, let us dispel the myth that online businesses must stalk their users to be profitable. A great quick primer to this is the DuckDuckGo business model. 2. Second, if you don't save, analyze, manipulate and store every piece of data, then you are running a much leaner operation; meaning much less money to "recoup" from your users. So how does this come into play with my work? It is all about the dataflow… Today much of B2C communications wiggles its way through a whole myriad of servers and services (the prime example being social networks). This is expensive, and these third parties often use their own secret algorithms that prioritize their own profitability over efficiently transferring information. If you are a small business wanting to communicate something to your followers it becomes very resource-intensive to effectively push information through these third party systems; and you often find yourself having to do social media campaigns, pay for extra reach, and input the same data repeatedly into several very different third party platforms. But the internet didn't have to have evolved like this. Exactly why it did is a extremely complex matter, but the important part is that it is possible to backtrack things to the beginning, and explore alternatives. Which is exactly what my fundamental research was about. I looked at alternative ways that tech and business models could have evolved; and from that produced new tech and business models easily implemented in todays world, viable, and profitable, without producing these third party services that end up with a conflict between their own growth and greater information efficiency. And that is what I do. I remove the need for data to pass through third parties, to ensure maximum information efficiency. Practically speaking this becomes things like physical "shortcuts" that brick-and-mortar businesses can install to help visitors (without them having to install any new apps or give out any personal information) quickly access the information the business has online. And, I (in a clever way) provide a live API to the existing data. Allowing the business to automatically reuse their own data for digital signage, apps etc, as well as making it possible for anyone to easily "follow" the business' own website on their own terms (like geolocation, time of day, keywords etc). In effect cutting out the need for a third party, like a social network, that otherwise would be in control of what data actually is passed on to the "follower". In short; I take people to information, and I open up information to be available to people: 👤 ➡️ ℹ️ ↪️ 👤 Exactly how this works will become more obvious as products, services, and partnerships, are released/announced.
Hong Kong What new blog would dare to show up on the internet without containing the word "test", as well as some vague promises of future content‽ 🤷‍♂️ Well, here is not only all of that (the content-part is implied), but also a pretty picture to look at. So I'm feeling quite pleased with myself at the moment. Oh, btw, this pic is one I took summer 2017 in Hong Kong. A nice lil city that I've got a huge crush on. 😍