Daily Shaarli
September 16, 2022
The young American stood in the back of the truck as it moved slowly through the streets of Nalerigu, Ghana. Friends gathered along the road held up flags and cheered for the teenager clad in a Ghanaian national shirt. Bystanders called out to see the two medals clanging on Trey Haun’s chest. He held up the silver and bronze, waved and then quickly ducked his head, trying to hide his smile.
The 16-year-old has lived somewhere between embarrassed and excited since the 2022 Unicycle Convention and World Championship ended. Winning the first ever medals for Ghana created not only international media-buzz but guest appearances at celebrations all over Northern Ghana. While the world wanted the story behind an American representing Ghana at an international competition, the Mamprusi community just wanted to celebrate their son, Manboora Trey.
This article doesn’t contain seven tips because I hate listicles. It’s just a recounting of my experience working remote for fifteen years now and observations on what works and what doesn’t, but it doesn’t matter, because the amazing title has piqued your interest.
For a bit of background, my first job was working in an office, as IT support for a construction company. I did that for three years, and then I got a remote job and never looked back. Personally, I enjoy the freedom that comes with being able to work from anywhere, and I’m lucky enough to be one of the people who can. Many of my friends have to be at their home office or a coworking space to get work done, but I can focus anywhere, which allows me to travel to another country for a week or two and work from there.
I’m not going to go into the pros and cons of remote working, I assume they’ve been beaten into you by the myriad of other posts, since it’s a trendy topic. Instead, I’ll assume you are interested in improving your existing remote culture and I’ll detail what has worked well for me.
Improving communication
From 2012 to 2019 I worked at Silent Circle, where we (rather inadvertently) created one of the best remote cultures I’ve worked in.
When I was a teenager, I had a CD player in my room, and I used to listen to fairy tales to fall asleep. The narrator’s voice would relax me and I’d fall asleep quickly. Fast forward to yesterday, I was playing with Google Text-To-Speech for an unrelated project, and had gotten one of their code samples to generate some speech for me. I had also played around with OpenAI’s GPT-3, which I had found wonderfully surrealist, and it had stuck in my mind, so I thought I should combine the two and create a podcast of nonsensical stories that you could listen to to help you fall asleep more easily.
Having already played with Google’s speech synthesis, I thought it would be pretty quick and easy to create this, as all I’d have to do is generate some text with GPT-3 and have Google speak it. Half an hour later, I had an AI-generated logo, AI-generated soundscapy background music, an AI-generated fairytale, and an AI-narrated audio file. A day later, I have seven:
The Deep Dreams podcast.
https://deepdreams.stavros.io/
Time Stamp Authority
freeTSA.org provides a free Time Stamp Authority. Adding a trusted timestamp to code or to an electronic signature provides a digital seal of data integrity and a trusted date and time of when the transaction took place.
Basically, a PID loop can be thought of very simply as an equation that takes your current state as input and gives you what you need to do to reach a desired state as output. For example, if you had a radiator and wanted to heat a room, the PID loop would take the current temperature as input and tell you how high you needed to set the radiator on a 0-100% scale to achieve a desired temperature.
The PID loop has three components, and to tune it you need to set three weights that you multiply each parameter with. That means that it’s basically output = Pprop, + Iintgr + D*deriv, where the terms are explained below:
P - proportional: This is the weight of the difference between the current position and the desired position. What this says about the radiator is “we’re still far away, we need more heat!”, so the more P you set, the higher the radiator will be set for a given temperature difference.
D - derivative: Because P is purely based on the difference between the current and target temperatures, it doesn’t know anything about inertia. So, even though your radiator will be getting closer to the target temperature, even when it’s very close, P will be saying “more heat, we’re not there yet!”, and cause you to overshoot your target, having to then go back (possibly turning the AC on, undershooting downwards, and then back upwards, oscillating like that for a long time). D helps by saying “whoa, we’re getting there, slow down with the heat”, and reducing the amount of heat you apply proportionally to how fast you’re getting to your target temperature.
I - integral: I helps in the case where you left a window open in the room, and P is saying “okay we’re pretty close so set the radiator to 10% just for that final push”, but the room is leaking so that 10% will never get you to your target temperature. I helps by saying “Okay we’ve been trying but it’s not working, we’re still far, so we actually need a bit more heat than 10%”, by looking at the constant temperature difference you’ve been having lately, despite your best efforts. Basically, I deals with accumulated error when you think you’re getting closer but all you’re doing is fighting losses, so I allows you to close that gap.
A few years ago, I set out to reinvent photography. I didn’t have a good idea how to do this, I just knew I wanted to make something original, and combining photography with my electronics skills seemed like a good way to do that. It failed at reinventing photography, but I succeeded in writing a clickbait first sentence, and the process was lots of fun too. //
The idea was great, I would use a LED strip to display images in mid-air, like those persistence of vision displays. I could set the camera to record a long exposure, then move the strip and trace a pattern in the air. I had never seen anyone do this before, so the first thing I did was what everyone does when they have a groundbreaking idea: I searched the web to see if this already existed.
The second thing I did was what every self-respecting inventor does when they have a groundbreaking idea: I looked at the first two search results, saw that none of them resembled what I had in mind, said “Well, this conclusively proves that nothing like this has ever been done!” and started working on it.
I call it… Ledonardo!
IdenTrust Timestamping Authority Server is a service that binds the digital certificate used to sign a digital file with the data being signed, creating a unique sequence of characters or encoded information known as hash, and also identifies when a certain event has occurred. The result is a trusted accurate digital date and time stamp seal embedded within the digital file that contains X.509 digital signatures. Any change in the timestamped file will break the timestamp seal alerting the user that the file is no longer in its original state. //
Users who wish to add timestamping to PDF files that are signed with IdenTrust personal or business digital certificates must add 'http://timestamp.identrust.com' as the Timestamping Server to their local Adobe® Acrobat or Adobe® Reader configuration. Our article How to Add IdenTrust Timestamping Authority Server to Adobe will guide you through this process.
Users who wish to add IdenTrust Timestamping Authority Server to Microsoft® MS-Office® digitally signed documents can do it following the instructions in our article Apply IdenTrust Timestamping Authority to Microsoft Office Digitally Signed Documents.
Having worked in web security for years, I know how hard it is to get authentication right, especially when users will find ingenious ways to defeat your system, such as storing their “do not store these codes on your phone” two-factor authentication (2FA) codes on the phone and then throwing the phone in the ocean. Another user surprised me when, instead of properly setting up their authenticator app, they brilliantly used one of the ten backup codes to finish their 2FA setup (and didn’t even store the rest), thus locking themselves out of their account immediately. I fixed that bug immediately and found new respect for the bug-finding abilities of users.
Those (and many more) occurrences have made it painfully obvious to me that securing an authentication system is very hard UX, and, since the user is always right, we need to find ways to make systems that are both secure and easy to use. While working for my previous employer, an encrypted communications company called Silent Circle, we had to find ways to solve this problem, and we arrived at something I believe provides a very good balance between security and usability. I will explain how this system works, and urge you to implement something similar for your authentication, especially if it’s protecting high-value accounts like Playstation Network’s.
After his outpour of encouragement, I was motivated to create a solution, no matter how hard. I had a rough idea in my mind, but it was going to be tough oh who am I kidding, it’s five buttons connected to a microcontroller, it would take two minutes.
It took four hours. Close enough.
The hardware
Behold.
As I said, the hardware is simple enough: Just a microcontroller and five keyboard switches wired to five of its input pins. Since this build //
Deciding which key presses would correspond to which characters was the hardest part, but also the most creative. Since this is a brand-new keyboard layout, I would not be beholden to the mistakes of the past. No more jamming typewriters for me, no more bigrams, I would have free rein to perform extensive research and decide what the optimal correspondence would be for my layout.
I decided that that was too much work, and that I’d just fall back to the good old etaoin shrdlu. I found the character frequencies in the English language, and made sure that each of the five most frequently used characters (the spacebar, “e”, “t”, etc) had its own key. After that, the next most frequent characters got a double press (the thumb plus one of the four others). Then came double presses between the other keys, then triple presses, etc.
Images are just too big. A 3 MB bitmap compresses down to a 500 KB JPEG, which, don’t get me wrong, 16% of the original size is great, but why 500 KB? That’s still pretty large.
This is 2022, we shouldn’t have to put up with large images. Our websites might load 60 MB of stuff for a pageview, but that stuff shouldn’t be images, it should be Javascript, as Brendan Eich intended.
We shouldn’t have to put up with fat images, but, until now, we had no choice.
Now we do.
The solution
a computer compressing data, by Caspar David Friedrich, matte painting trending on artstation HQ
A week or so ago, Stable Diffusion was released, and the world went crazy, and for good reason. Stable Diffusion, if you haven’t heard, is a new AI that generates realistic images from a text prompt. You basically give it a description of the image you want, and it generates it.
Now, this alone would be revolutionary, but we got double the revolution this time: This thing can also take an image and tell you the prompt you can use to generate it.
Are you thinking what I’m thinking?
That’s right, why compress an image to 500 KB when you can compress it to 50 bytes, where the bytes are the prompt that can be used to generate the exact same image again?
You wouldn’t, of course not.
Instead, what you would do, is ask the image-describing AI to describe the image, take the resulting (very small) prompt, transmit it over the wire, where the recipient would then use it to generate the image again based on the prompt.
I call this technique STAV, or Stable Transcription and Artistic Validation. Yes, the acronym might not contain any of the words “image”, “compression”, “reconstruction”, or “diffusion”, but Philip Katzip isn’t going to be the only one giving his name to compression techniques. //
As you can see, there is basically no loss in quality, even though the images’s sizes are around a ten-thousandth the original’s. This is an absolutely astonishing result, and will definitely herald a new era of compression. There are even some cases where quality is better than the original, and it is astonishing for a compressor to achieve 100%+ quality.
There are some minor kinks that need to be worked out, such as the fact that each image takes around a day to generate on mobile, but this is more than acceptable in certain domains. Website visitors, for example, are well-accustomed to such loading times, and would barely notice any difference.