Despite living in Seattle for almost all of my adult life, I haven’t actually worked for a local company in almost ten years. Remote work is great in so many ways, but in-person collaboration is what gives me life.
In confident pursuit of that feeling, I’m thrilled to be joining Microsoft to run Design & Research for their Web Experiences organization.
I was Microsoft-adjacent 10 years ago at MSNBC.com in Building 25, but this will be my first time as a blue badge, so to speak. I’m also thrilled to be joining Liz Danzico and John Maeda, who have also started at Microsoft in the last several months. I’ve known them both for a long time and have wanted to work with them forever.
There are several things which drew me to this opportunity, but at the top of the list is the people. Not just Liz and John, but the thousands of teammates in Seattle, Vancouver, Hyderabad, Barcelona, Beijing, and many other cities. There are certainly some great solo efforts in tech, but almost all of the best work I’ve been around has been the result of getting the right people jammin’ with each other. In my first several days here, I’ve already met so many of those people, and I can’t wait to continue the momentum Albert Shum created by carrying the torch for one of the best Design & Research teams in the Pacific Northwest.
The second thing I’m super excited about is the scale of the work. I’ve worked on the largest sports site in the world and one of the largest social networks in the world, but the properties in this group reach well over a billion people. Between the (refreshingly fast!) Edge browser, MSN, Bing, and several other products, Microsoft has quietly built up one of the top five properties in the world in terms of traffic and reach. They’ve also done it with humility, knowing how far they are from being perfect. I also love that so many of these products can and will be so much more as we begin to use some of the technology that’s emerging within Microsoft. In my first two weeks, I’m already overflowing with ideas.
Finally, the other thing I’m most excited about is getting back into the office in a flexible hybrid environment. I’ve worked in-person for most of my career and remotely for the last four years, and where I’ve landed is that everyone’s preferences are different, and it’s just tradeoffs all the way down. Where you land depends on a mix of your personality, your life outside of work, and what type of job you have. For me personally, I very much like being around people and feel like I do better work when I am… but I also like getting back my commute time a couple of days a week and making daily jogging more convenient. Also, Henry (pictured above) enjoys the extra lap time. Microsoft’s hybrid policy is a nice balance, and it sounds like exactly the right setup for someone like me.
Speaking of the exactly right, this also feels — for me at least — like exactly the right time to join Microsoft. The company has been through several distinct eras over the decades, but this feels like the era of re-commitment to the planet. To customers delightful experiences, to employees a great environment, and to the natural world, a smaller and eventually negative carbon footprint.
It’s a new year, and I couldn’t be any more here for it!
Over the last several weeks, I’ve gotten in the habit of trying to move all of my Twitter activity over to Mastodon instead. I signed up for Mastodon several years ago, but only now are there enough people using it for it to replace a lot of what you might use Twitter for. Some of your friends are there, some of your favorite bots are there, and some news sources are there. What more do you need in life, really?
I’ve been using Pinafore (along with a user stylesheet I created… feel free to grab it for yourself) to use Mastodon on the web, and a combination of Ivory and Metatext on my iPhone. Ivory looks a bit nicer but Metatext has a Notifications tab that acts more you’re used to it working on Twitter.
If you want to move all of your activity over wholesale, go to town. If, however, you want to keep publishing Tweets on Twitter and have them automatically publish to your Mastodon account as well, this short guide is for you. The entire process should take around five minutes. It’s mostly just clicking around on a couple of websites.
Important: If you do this, the goal should not be just replicate your Tweets and never visit or engage on Mastodon. The goal should be to help you build your Mastodon presence and save you from having to manually double-post. Ideally you quickly get to the point where Mastodon becomes your primary crib.
Step 1: Open a Mastodon account
If you’ve already done this, great. If you haven’t, head to any server you want — like mastodon.social, for instance — and set up your account. You can always switch your server (along with any followers you accrue) later, so don’t stress about the server you choose.
One of our generation's greatest and most influential designers hasn't slowed down as much as he has simply shifted focus. A great example of splitting your life into chapters and knowing when it's time to explore the next one.
There is no shortage of opinions about today’s news that Adobe will be acquiring Figma, so I’ll try not to repeat any of what’s already been said here. A lot of it boils down to designers and engineers being understandably concerned that the product they’ve grown to love and put at the center of their workflows over the past few years is now under the control of another company. Adobe-specific concerns aside, this unease would also exist if the acquirer was Microsoft, Oracle, Amazon, Atlassian or just about anyone else in big tech, save maybe Apple. Thejokeswouldjustbedifferent.
As someone who competed against Figma for a couple of years, I want to talk briefly about what makes them so hard to catch, and why I think Adobe ultimately decided they would never beat them:
Even though I have spent over 20 years in the design industry working directly on consumer products, I never fully appreciated the importance of performance until working in the design tools industry.
Most digital consumer products are used in short bursts over a long period of time. Think about the Amazon app on your phone. You open it maybe once a week, peck around for what you need, hit Buy Now, and you’re on your way. If there is a two-second lag between purchasing and getting your confirmation screen, you don’t even think twice about it. Even in the case of an outright error, you just shake your head, hit reload, and things are usually fixed.
With professional production tools though — whether design, engineering, or otherwise — full-time craftspeople spend almost every hour of every work-week inside of your software. Every time something goes even remotely astray, it is noticed. Putting aside catastrophic stuff like data loss, even things like cursor lag, screen flicker, progress bars, and scroll/zoom performance are tiny paper cuts that form into pools of blood by the end of each day.
Figma did a lot of things right over the ten (yes, ten!) years they’ve worked on the product, but one thing they did that no one else has been able to replicate is meet and in some cases exceed native app performance inside of a web browser.
Nothing Figma has accomplished in the marketplace would be possible without this, and it is the thing that competitors have struggled the hardest to replicate. When you build software using native code, you get a lot of stuff for free. Need a scrolling list? Apple, Microsoft, and Google have multiple pre-built components you can use. Need to draw one semi-transparent shape on top of another? The system already knows how to render that. Need to optimize it all for speed? Most of that work has already been done.
Inside of a browser though, the work is rarely done for you. Even in instances where someone has already built a component, it’s often too slow or glitchy to use in a professional development environment. So what did Figma do about this? Over the course of several years, they:
It was this last one that really made me see how wide the moat was for the first time. Normally companies keep their secret sauce secret. After all, why would you want to give your competitors any information that might help them compete? But a company who routinely publishes information that is useful to competitors? That is some confident shit right there. It reminded me of a tweet I can’t find from several years ago:
“The design tool war is already over, but no one knows it yet.”
Fast forward a few years and everyone who has tried to match Figma’s all-around performance has fallen short. Private companies like Sketch and InVision. Public companies like Adobe. It’s not for lack of effort by hundreds of incredibly smart people. It’s just really frickin’ hard. Combine that with the fact that Figma is a moving target who is now building entirely new capabilities, and you can see why Adobe decided this wasn’t just a move they wanted to make… it was a move they had to make.
… which brings us back to a lot of the reaction we are seeing on Design Twitter today.
I don’t think people mind the abstract concept of Figma being acquired by another company nearly as much as they mind the very real threat of Figma losing what makes it so special in the first place: focusing maniacally on performance, thinking differently, and optimizing for user experience above all else. The backlash is an expression of how a lot of people feel Adobe has done in those categories over the last decade.
If I’m Adobe, I am printing out as many Tweets from today as I can, making a book out of them, and then doing this:
After that, I’m letting Figma lay the tracks for the next decade of this industry and rallying the thousands of talented people at my own company to rethink how the entire organization builds software. Within the next several years, it’s going to be possible to go from idea in the morning, to prototype in the afternoon, to working code in the evening… and the company who can do that most thoughtfully is going to be one of the most important companies in the world.
“The public markets are going to say a lot about us, but always remember, things are never as good or as bad as they say.”
It was a few days before our IPO at Twitter in 2013, and our captain was preparing us for the violence of the sea.
Dick knew that even with the relentless pounding Twitter had taken internally and externally for almost its entire voyage as a company, attaching a price to it that fluctuated many times per second, every day of the work week, would magnify the choppiness significantly.
Eyes on the horizon. Steady as she goes.
The next several years would prove Dick to be even more correct than he probably believed at the time. We would launch an important feature. Stock down. We would lose an important leader. Stock up. We used to laugh and shake our heads about how little the public markets seemed to understand what was really going on inside of the company… both positive and negative.
I worked at Twitter from 2012 to 2016, building and leading the Design & Research org. I worked for both Dick and Jack, and with multiple Heads of Engineering and Product. There have been zero unexciting or unimportant “eras” to have worked at Twitter, but I always think of this era as the time when:
The company transitioned from being private to public
The core service transitioned from text-only to a more visual, interactive timeline
The business transitioned from no revenue to billions of dollars per year
There are so many other things that happened in the time period — good and bad — but those are the three most notable. Talk to anyone else who was around during that time and they’ll all have their own favorite parts. Mine was helping build the kindest and most talented Design & Research team I had ever been a part of. Some are still at the company today, and many have joined me at my current job. I know you’re not supposed to say “work is like family” these days, but we go to each other’s weddings n’ shit.
Anyway, I was reminded of Dick’s wise words to us on the cusp of going public when we all found out this month that the company is now on the cusp of going private again, at the hands of Elon Musk.
Some people — although no employees I am aware of — seem to think this is the greatest news in the world. Some people think it’s the worst news they could imagine. Is it possible though that it’s neither? According to Costolo’s Razor, this is probably the case… but we can’t say with certainty until we know.
I have several things I’m very worried about, and also several reasons why I think things might turn out okay anyway. Let’s start with the new caretaker himself. I use the word caretaker because I think at this point, Twitter is a public good, no matter who may technically own it.
Let’s get this out of the way first: I am not a dietician, an economist, or an ethicist. I am, however, a guy who likes to occasionally eat at fast food places. I’m also a guy who stops running over the winter, puts on a few pounds, and then has to lose them again in the spring… so I’ve been paying attention to how to eat “least badly” at fast food places.
Below is my dollar-store wisdom, in case you also want to enjoy fast food in moderation.
First, some golden rules:
No soda. This is an easy one. A medium Coke is 210 calories, 56 grams of carbs, and no protein. It’s also about $2 for something that costs about a nickel to make.
Instead, go with free tap water or an unsweetened iced tea. Zero calories and nothing artificial. Another nice hack that works at some places is going to the soda fountain and filling your water cup with club soda. There are usually two small tabs and one of them says “water”. The other one is the “off-menu” free club soda.
No fries… or if you must, get a small every now and then. I understand people like fries. I like fries too. But even a small order of fries is another 220 calories, 29 grams of carbs, and only 3 grams of protein.
Study menus for what’s overpriced and what’s underpriced. For instance, at Mickey Dee’s, a McChicken, a hamburger, and a 6-piece McNuggets are all $2 apiece or less. Meanwhile, a Double Bacon Quarter Pounder with Cheese is $7.
These places all encourage you to buy the Value Meals, but since you aren’t getting the soda or the fries, individual prices matter.
Now onto the meat of the matter: what should you order at each of the major national fast food places?
We recently decided to upgrade our second-hand, fake Eames chairs with originals. We got the fake ones for free off of a neighborhood Buy Nothing group, and while they served their purpose for a few years, they developed a bit of a problem: the cats grew to love their padded seats so much that we had to start putting tinfoil on them, which is kind of a pain in the ass.
Our first reflex was to head over to the Herman Miller site and see what colors were available. These chairs come in plastic or fiberglass, but you really want the fiberglass ones because they just look so much nicer. These fiberglass models went out of production in 1989 because of environmental concerns about the manufacturing process, but they returned in a more eco-friendly formulation in 2013. Herman Miller does not offer these new fiberglass models in many colors, but to our delight, they listed a Seafoam Green that looked great. We placed an order for six of them and thought we’d be on our way.
Unfortunately, after many months of delays (damn you, supply chain!), the chairs were still nowhere on the horizon, so we did what we should have done all along: look for vintage ones in good condition. After searching a bunch of different auction sites, we found Eames.com, a marketplace of used Eames items. They have a pretty good selection, and they happened to have six chairs in an Olive Green color that we liked even more than the Seafoam Green.
Their site does not list the United States as a shippable destination, but they agreed to ship us some chairs for about $400 each including shipping, which was quite a bit less than they would have cost from Herman Miller.
I thought I had lucked out until they sent me detailed photos of each chair, which revealed some scuffing and a few significant scratches. This is to be expected in any item that is 50 years old, of course, but I really wanted these things in primo shape.
After consulting with some friends, some people on Twitter, and some articles on the internet, I became confident enough I could restore these easily to almost new condition, so I placed the order.
Amazingly, the chairs showed up all the way from the U.K. in less than a week, and I got to work immediately.
Step one was buying a couple of sanding sponges. I bought a 320 grit and a 220 grit. I started with the 320 because I was worried about scratching the chairs, but that concern proved unfounded. It was a little too fine for the job. You really need to remove some fiberglass when you’re doing this, so 220 ended up being the right strength. If your job is really gnar, you could probably go a little rougher even.
Anyway, I took the chair shells outside to the patio, and put one on a towel to work on it. I used thick rubber gloves to make sure no fiberglass debris came in contact with my skin, but other than that, just a small bucket of water to wet the sponge was the only other tool. Some people also recommend wearing a mask, but I was outside and not doing any electric or dry sanding, so it didn’t seem necessary.
The process of removing even the deepest scratches was surprisingly quick. I probably spent 10 or 15 minutes per chair, depending on severity. It’s hard to tell if you’re completely done until the chairs dry back up, so I hosed them off, let them dry overnight, and then gave each one a touch-up sanding the next day, followed by another hose off and air dry overnight.
It’s really amazing how self-healing fiberglass is. You think you are just scratching the shit out of it when you’re sanding it, but then when you’re done, it all blends right in automatically. And that’s even before the next step, which is when the chairs really come to life.
The final step was wiping on some Penetrol. Penetrol is an oil-based paint additive that happens to restore fiberglass to brand new condition. It’s really amazing, and you should be able to get it at your local hardware store. I used one of these Swedish dishcloths we had laying around, but you can use any number of other lint-free cloths for the application.
This step was even easier than the sanding, with each chair taking no longer than a minute or two to cover in Penetrol. Once they are coated, that’s when your jaw really drops. Not only does the shine look spectacular, but it also further hides any imperfections that may have remained on the surface.
After letting the Penetrol dry for 24 hours, I inspected each chair. I probably would have been happy with just that one coat, but I did see a couple of areas where I had perhaps applied a tad too much, causing a bit of a run. Not a big deal, but I decided to just give them all another coat to smooth out the runs and also provide more protection.
One coat and 24 hours later and they were looking perfect! The last step was to assemble the new dowel legs. This proved to be the most difficult part of the whole project as each chair took about a half hour to assemble. Granted, I was watching football as I was working, so perhaps a focused person could have gotten it done quicker.
Anyway, below is the end result! We’re so happy with how these turned out that we are now looking for two more in another color for the ends of the dining room table. It’s great to, a) get something vintage, b) save money, and c) re-use an existing object rather than cause a new one to be manufactured. Win-win-win.
I encourage you to go on your own Eames restoration journey. It’s not very difficult, and the extra effort you put in will make you appreciate them even more.
One of my favorite things about the design industry is that you can have a dozen completely different careers without ever leaving the field. For me, I started in print, then moved to digital, then to desktop web, and then to mobile. In terms of industries, I started in sports, moved to entertainment, then to news, then to social media, and most recently to design tools.
So much of designing is about learning, and the best way to make sure you are always learning is to put yourself into environments that are novel to you. The author Michael Pollan said it best recently when Kara Swisher asked him why he stopped writing about food and started writing about psychedelics:
“As a writer, I like writing nearer to the beginning of the learning curve. I like not knowing. I enjoy that process of learning.”
That sentiment is exactly why I decided to take the leap and join one of the largest digital asset exchanges in the world, Kraken, as their Head of Design & Research.
What is a digital asset exchange? On the surface, it may look like a place to buy and sell cryptocurrencies. Underneath though, the vision is much larger. Imagine a world in which all assets — physical or digital — are tokenizeable and tradeable, more or less instantly, without having to deal with the gatekeepers of the last century.
I am not a Bitcoin maximalist, an Ethereum maximalist, or any type of Other Coin maximalist, and I hold almost no crypto myself other what I’ve spent to support a few NFT creators. It is, however, becoming clear that with more smart people joining this industry, more regulation drafted which accommodates digital assets, and more creative use cases popping up every single day, there is a LOT of frontier to develop here. I look at this emerging part of the internet almost as a musical scene developing across the world. There are good bands, bad bands, old instruments, and new instruments, but more than anything, there is a sense that everyone is working creatively to change the culture around us.
That said, I also have reservations. People who chastise certain cryptocurrencies for consuming meaningful amounts of energy are correct in their criticism. In fact, I hope pressure of this kind stays forceful because it helps create things like:
Proof of Stake, a method of verifying transactions that requires much less energy than some other methods.
Chia, a coin that uses hard drive space instead of processing power, thus slashing energy usage by 99%.
The Lightning Network, a layer that sits on top of Bitcoin and allows it to process many more transactions with much lower energy usage.
Most importantly, a dramatic increase in the creation and adoption of solar and wind power around the world.
I also have questions about what gets better and what gets worse in the move from fiat to crypto. For instance, I love that our government can print money to help people make ends meet during times of hardship. I hate that it can print money to produce an endless supply of weapons and wars. I’m not smart enough to know how that all plays out, but I think for the foreseeable future, there will probably be both fiat and crypto so it pays to have a deep understanding of both.
So why Kraken in particular? There are certainly plenty of amazing places one could join in order to explore this new frontier. For me, it came down to:
The indy mentality. This is hard to explain, but you know it when you see it. A creative band of people taking pride in the creation of something new and helpful.
A vision much bigger than finance. If Kraken looks and feels like a bank in three years, we will not have done our jobs.
An international focus. Kraken operates in 48 U.S. states and is the first exchange to get a U.S. bank charter, but its business is even stronger abroad. It is the #1 exchange by volume in Euros and has been for some time.
A growing, profitable business at an inflection point. There are a lot of companies in this space that are doing super cool things, but their path to profitability is less certain. I’ve never been at a company that is growing the way Kraken is right now (and I’ve been at ESPN, Disney, and Twitter among others).
An ex-colleague of mine, who just passed his two-year mark at Kraken told me this: “At every job I’ve ever had, I’ve wanted to leave after two years. At this place, I am even more excited today than when I joined.”
So what is my role in all of this?
Ultimately, to make the experience of participating in this new frontier easier, safer, and more fun for people all across the world.
In order to do that, I will:
… grow and nurture a diverse Design & Research team full of kind people who work hand-in-hand with Engineering and Product to produce delightful experiences.
And in order to do that, I would love:
… to talk to you if you’re interested in helping build something fun, new, and exciting! I’m still too new to know exactly what I need, but I can tell you for sure we’ll be hiring individual contributors, managers, designers, researchers, content strategists, writers, and many more types of people outside my department (engineers, marketers, customer success peeps, et al). I am also interested in talking to agencies who may want to stop doing client work and join us full-time. Hit me up over email if you’re interested, or if you know people I should talk to (firstname at mikeindustries.com).
If you — like me — are curious about taking the leap into crypto, but you’re nervous about what lurks beneath the surface, come join me at Kraken. I’ve been here a few weeks now, and I can tell you that the water’s warm.
Anyway, that’s it for now. I look forward to building another great team full of fun people, and also reminding everyone in my hometown of Seattle that I don’t work for the new hockey team.
In just a few short days, on December 31, 2020, we will say our final goodbyes to one of the most important internet technologies that ever lived: Flash.
I remember vividly the first time I saw Flash on a computer screen. It was 1997, I was finishing up college, and I had managed to teach myself enough HTML to think about pivoting from print design to interactive design as a career.
Web design, at the time, was a clumsy beast. Most web sites were essentially Times New Roman black text on a grey background with an occasional low-quality image here and there. The “design” part was often just figuring out how to best organize information hierarchies so users could feel their way around.
Once we got bored of basic HTML (there was no CSS at the time), we started doing unholy things with images. We’d set entire pages in Photoshop, slice our layouts into grids of smaller images, and then reassemble everything into a clickable mess. These were dark times.
My college, having invented PINE, was considered “on the front edge” of the internet at the time. Here’s is what our site looked like back then:
Even the most beautifully designed sites felt a bit lifeless, and once someone came up with a new layout that worked well, everyone would just ape it. To make matters worse, every new advancement in methods required more convoluted hacking to display correctly across Netscape, Internet Explorer, and every other fringe browser in use at the time. It was a total mess.
Here is the first version of Zeldman.com I could find, from 1998. Amazing for the era, and holds up impressively in a nostalgic, cyber-Americana sort of way, but you can see how limited we were by screen widths, color palettes, and layout technologies.
Then one day in 1997, I clicked on a link to Kanwa Nagafuji’s Image Dive site and the whole trajectory of web design changed for me. It looked like nothing I had ever seen in a web browser. A beautiful, dynamic interface, driven by anti-aliased Helvetica type and buttery smooth vector animation? And the whole thing loaded instantly on a dial-up connection with nothing suspicious to install? What was this sorcery? Sadly, I can’t find any representation of the site online anymore, but imagine the difference in going not just from black-and-white TV to color TV, but from newspaper to television.
Nagafuji’s work was such a huge, unexpected leap from everything that came before it that I had to figure out how it was done. A quick View Source later revealed an object/embed tag pointing to a file that ended in “.swf”. A few AltaVista searches later led me to the website of Macromedia, makers of ShockWave Flash (“SWF”), the technology that powered this amazing site.
I downloaded a trial version and was blown away at the editing interface. Instead of a shotgun marriage of Photoshop, HTML, browser hacks, and a bunch of other stuff that felt more like assembly than design, here was a single interface to lay out text, shapes, images, and buttons, and animate everything together into an interactive experience! It was magic.
After mucking around in the Flash editor (version 2 at the time) for a few hours, I did what every self-respecting web designer would do and immediately set out to find other cool stuff to copy. Over the course of the next several months and years I would find such gems as:
(Sadly, much of this work is hard to relive due to Flash already being disabled in many browsers. I’ve tried to point to video demos where possible, but you can also try your luck with the Ruffle plug-in.)
From there, a bunch of us new designers set out to learn more about animation, type, scripting, and everything else that put you at the vanguard of the profession in those days. Flash was the first technology that showed us we could be great.
My initial effort was mdavidson.com, a rudimentary personal site that was the precursor to Mike Industries:
From there, I would move on to design Flash sites and features for ESPN, Disney, K2, The New York Rangers, and dozens of other organizations, never matching the quality of the masters listed above, but always breaking new ground in one way or another.
Other fun projects I collaborated on with my friend Danny Mavromatis included a virtual observation deck for the Space Needle, an interactive on-demand SportsCenter, and a Disney movies-on-demand service fully 20 years ahead of Disney+! All in Flash.
Perhaps the thing that gives me the most joy though is something we built and gave away for free: sIFR. What started as our brute-force attempt to use Akzidenz Grotesk for headlines on the front page of ESPN, turned into a more elegant implementation by Shaun Inman, which then turned into a scalable solution by Mark Wubben and me. We poured hundreds of hours into sIFR not to make any money but just to advance the state of typography on the web.
Over the next several years, sIFR was used to display rich type on tens of thousands of web sites. Although it relied on Flash, it was standards-compliant and accessible in its implementation, so it was the preferred choice for rich type until Typekit came along in 2009 and obviated the need for it.
All of this is to say, the role Flash played in helping transition the web from its awkward teenage years to a more mature adulthood is one I will always appreciate. And we haven’t even talked about its role in game development.
When discussing the life and death of Flash, people often point to Steve Jobs’ “Thoughts on Flash” as the moment things turned south for it. Worse yet, the idea that “Steve Jobs killed Flash”. I don’t think either of those things is actually true.
Flash, from the very beginning, was a transitional technology. It was a language that compiled into a binary executable. This made it consistent and performant, but was in conflict with how most of the web works. It was designed for a desktop world which wasn’t compatible with the emerging mobile web. Perhaps most importantly, it was developed by a single company. This allowed it to evolve more quickly for awhile, but goes against the very spirit of the entire internet. Long-term, we never want single companies — no matter who they may be — controlling the very building blocks of the web. The internet is a marketplace of technologies loosely tied together, each living and dying in rhythm with the utility it provides.
Most technology is transitional if your window is long enough. Cassette tapes showed us that taking our music with us was possible. Tapes served their purpose until compact discs and then MP3s came along. Then they took their rightful place in history alongside other evolutionary technologies. Flash showed us where we could go, without ever promising that it would be the long-term solution once we got there.
So here lies Flash. Granddaddy of the rich, interactive internet. Inspiration for tens of thousands of careers in design and gaming. Loved by fans, reviled by enemies, but forever remembered for pushing us further down this windy road of interactive design, lighting the path for generations to come.
RIP Flash. 1996-2020.
If you feel so moved, pour one out for our old friend in the comment section below.
This is a very niche post, but I’m posting it mainly to help people who might be searching Google for the solution to this problem: if you have been using Shaun Inman’s Mint for self-hosted website stats, you may have noticed that it no long works in PHP 7 and above.
When I noticed it broke, I spent several hours trying to figure out why and to fix it as quickly and easily as possible. Essentially, there are two reasons why it doesn’t work anymore:
PHP 7 no longer lets you use "=&" to “assign a new object by reference”. I don’t even really know what this means, but I do know you can solve it simply by removing the &. There is only one place you need to do this in Mint’s code and that is on line 3409 of /mint/app/lib/mint.php where it says $DOM =& new SI_Dom($xml);. This problem was infuriating because it just makes the whole app fail silently, without throwing a single error. I spent a half a day deleting random code just to identify the culprit.
The MySQL API has been deprecated in PHP 7 and Mint uses it for all of its database work. You’re supposed to rewrite all of your queries to use the new mysqli or PDO_MySQL APIs, but after a few hours of trying to do this, I realized my PHP skills were not up to the task and I opted for an easier solution instead. There’s a wrapper you can just include with your Mint install that translates all of the functions on the fly for you. This method is generally “not recommended” by people who actually know what they’re doing, but for a quick fix, it worked perfectly for me. If someone wants to patch Mint correctly, I will gladly post a pointer to it here. Anyway, all you have to do is download that file, upload it to /mint/app/ (next to path.php), call it something like mysql_bridge.php and then add this line right above the first include statement in /mint/index.php: include(MINT_ROOT.'app/mysql_bridge.php');
Voila! You’re done. The whole procedure should take only a few minutes.