text:
← All posts
Published November 11, 2021 in Podcast
Omar Rizwan on shaping computers into friendlier forms
By Devon Zuegel
Omar Rizwan is a researcher and developer interested in new computer interfaces and new ways of programming. He previously worked at Stripe, Khan Academy, and Dynamicland, where he worked on projects such as Geokit. He's also a prolific creator of paradigm-challenging projects such as Screenotate, Horrifying PDF experiments, Hijack Your Feed, and many others.
DEVON: Hello, I'm Devon and you're listening to Tools & Craft, a series of conversations with the designers, engineers, and inventors who are shaping computing as we know it. Today, I'm talking with Omar Rizwan. Omar spends his time thinking about, writing about and building new computer interfaces and ways of programming. He's worked at Bret Victor's lab, Dynamicland, Stripe and Khan Academy. He's also the creator of Screenotate, a tool that captures the text and origin of your screenshots to your file system. Omar also created TabFS, a browser extension that mounts your browser tabs as a file system on your computer. I'm also very lucky to call Omar one of my closest friends. In the years since we met in college, the daily drip of Omar isms in my group chats has been a major influence on the way I think about computers, tools and beyond. Omar, thank you so much for taking the time to chat. I've been really looking forward to this.
OMAR: Thanks, Devon, it's really fun to be here.
DEVON: So what's an example of a computer interaction that you think would be better with haptic feedback?
An early example of haptic systems: a 1980s era head-mounted display and wired gloves at the NASA Ames Research Center. Image from Wikipedia.
OMAR: On your computer, on your laptop, or on your phone, there are a lot of objects. There are windows and there are tabs and there are files. I feel like often I want the feeling of, I just want to pick up this window and move it around and feel where it is. I don't know if that counts as haptic feedback in the narrow sense of there's a vibration motor in your phone and having it vibrate when you do something. But I think that sense of being able to actually touch things in the computer and use the sense that isn't just your eyes, that's something that I find myself wanting a lot.
DEVON: Why is that important?
OMAR: Often the way I think about computing is more like, there's some feeling that I have that I want at this gut level. The ability to move things around by feel. We've been using our fingers and hands since we were apes and I feel like there are a lot of subtle things about them that you don't get when you're just kind of manipulating a touch screen or a mouse and using your eyes to point things out.
Omar Rizwan
rsnous
I was idly going through the menus in Chrome
thinking about how many menu items are devoted to the management of various kinds of virtual objects ('bookmarks', 'tabs', 'windows')
DEVON: Yeah. It seems like a lot of computer and software design is done by what's sort of the optimal way to do something or some very measurable thing, which is very useful. Measuring things is very helpful, but it can sort of discount the day-to-day feel and just what mood does this put you in, what kinds of things are you more likely to do.
OMAR: It also comes out of a particular history and particular technological constraints of, well, we can make a mouse because we can make the sensors to make a mouse. We can put the two potentiometers inside the mouse so you can detect where it's moving on the X and Y axis. It's like it's easy to make a mouse and it's maybe hard to make something that's really haptically rich, and so there's this technical constraint running us from doing it. Also, I wonder if there are kind of cultural constraints with the way our culture thinks about what does it mean to interact with the world. If we come out of a different cultural background, would they have thought different things were important? What if you had an Islamic computer where there's some prohibition on displaying pictures of people, pictures of animals? So it becomes this completely vector display where you can only draw kind of abstract shapes. What would that look like?
@rsnous: "imagining Islamic alternate universe with vector monitors" Image from Twitter.
That sort of positing an alternate history. And then the other example I think about is in the 1980s. In the 1980s, we had a bunch of personal computers here in the US — like the Apple II and IBM PC. And in Japan, there was a completely different set of dominant personal computers from Japanese companies, and those computers tended to have much more developed graphics, because of the way that the Japanese writing system works, you need better graphics to be able to do basic things. Whereas in the USm because we just have an alphabet, you don't. We don't really need that rich graphical system, so that's only developed later for us.
Japanese novel using 漢字仮名交じり文, most general orthography for modern Japanese writing system. Image from Wikipedia.
DEVON: This reminds me a little bit of a recent essay that you wrote. But there was a footnote in it about how the speed at which a printer prints a piece of paper really changes how you feel about it and how you end up using it. You pointed out that Polaroids and receipt printers have a certain lightness and Post-it note to them compared to a laser printer that might take 30 seconds to print the same document. What changes when you feel like you can print things really quickly?
OMAR: When you feel like you can print things really quickly, it becomes something that you do in the course of you working on something. While you're working on the thing, you're like, "I'm going to print out this little thing because it'll only take a second." You kind of have these ephemeral objects and they also feel ... You can also have it closer to you if it's a smaller printer. It becomes part of your working process in a way that I think a laser printer does not. I think that kind of makes sense too. Because if you think about what a laser printer optimized for, it's like it's really optimized for sitting in the middle of an office and printing out these long multi-page documents. That's actually a different use case from a lot of what I'm interested in with computing.
A standard receipt printer. Image from Amazon.
DEVON: Inspired by a lot of the things you've talked about, I bought a computer for my office. But I find that I've been just papering my walls with different things ever since then. It is different, I could print something at the FedEx near my house.
OMAR: Right. That's like the extreme version of that. Is, you can always just batch everything and go to FedEx once a week and print it. But you're not going to print the same things if that's your workflow. Your screen is a limited space and if you have a printer and if you can print things, you now have a much expanded space effectively that you can work in because you can have everything kind of spread around your desk. If you have something that's printed out, you now have all the tools of the physical world that you can apply to it. This is something we talked about at Dynamicland a lot. Is that now I can mark it up and put Post-it notes on it and maybe even cut it up and make collages or juxtapose it with other things. Those things are all fairly hard to do on a computer. It's very awkward when you have 50% of your work in physical stuff and 50% of your work in digital stuff, because crossing that boundary is relatively hard.
Whether that means printing things or scanning things or whatever. This is part of the long range vision of what you would want to do with a system like that. Where if you have objects on your computer, you can have holographic projected versions of them on your desk and then you can suck them into physical objects if you want to physicalize them. Or you can turn them back into holographic objects if you have the physical object. This is an idea I've been ... Because the computer exists in the physical space, it's a lot easier to just cross the digital physical boundary just by pointing at things in a space where they are instead of needing to have a computing device.
"Where if you have objects on your computer, you can have holographic projected versions of them on your desk and then you can suck them into physical objects if you want to physicalize them. Or you can turn them back into holographic objects if you have the physical object."
DEVON: The space of input, output devices that exist is kind of artificially constrained somehow. There's just not that many things that have at least hit mainstream. There's probably a lot of different types of input devices and output devices, but people just don't really use them.
OMAR: This is a really interesting area. A few months ago, I was just looking at the PlayStation 5. They have this new haptic controller. It's like a normal game controller with the buttons and the joysticks and stuff, but number one, it has a really rich, precise haptic motor. Kind of like the Nintendo Switch has one of these too, and the iPhone also has I think a pretty good one. The games can generate really fine vibrations to indicate if you're walking over something that's vibrating or if you got shot or whatever. You get this really fine feedback with a lot of precision and a lot of variation. The shoulder buttons, like the L and R buttons basically have these motors in them, so the game can actually make you feel different things as you're pressing those shoulder buttons. You can feel like you're pressing on a spring, or you can feel like you're pressing on something that has two stops in it.So you can see you get this really fine feedback with a lot of precision and a lot of variation. And the shoulder buttons. The L&R buttons basically have these motors in them so you can actually feel so the game can actually make you feel different things as you're pressing those shoulder buttons, you can feel like you're pressing on a spring, or you can or you can feel like you're pressing on something that has two stops in it, so your finger goes down, and then it stops and you have to press harder to get the other stop. Because the motor can be programmed the motors and L&R buttons can be programmed to resist in different ways.
DEVON: I think this is a really big part of why the iPhone feels so good to people, is because Apple really spends a lot of time thinking about all of those interactions and trying to physicalize it as much as possible. One of my favorite interactions is, on the left-hand side of the iPhone, there's a little toggle. There's a physical hardware toggle. When you have all the sounds on and you toggle it on and off, it makes this click sound. There must be some haptic field going on as well because it feels like I'm cocking a gun or something like that. It's so satisfying this heavy metal feeling. I think that that takes a ton of work to do consistently throughout an entire interface. It feels sort of superficial, who cares how it feels? The whole point is that it just locks. As long as it's functional, why do you need it?
OMAR: Right. I also feel like if an interaction like that is satisfying, that actually gives you a different relationship with it. I kind of want to make more things that are just toys where it's fun to interact with the thing, because I feel like that actually sets a very high bar, a game can be fun because it has a story or it has cool characters or there's a scoring system or something. But a toy, it has to be fun to play with just because it's fun to play with just from the interactions themselves.
i like the idea of making a 'toy' instead of a 'game' or 'app' because it sets a high standard of, like, this thing should be fun to interact with on a very basic mechanical level, even when there's no bigger story or incentive structure
DEVON: Totally. We recently had an episode with Jonathan Blow, the video game designer, and he's really obsessed with the performance of his video games and making sure they feel really good. He was making a similar point that, if it doesn't feel really good, people will just leave because they don't need to be playing your game compared to work software or something that their boss made them use. They have to use that.
OMAR: Right. I was looking at, what are the haptics like in Android phones? As far as I know, they're really not even close. Apple has spent a considerable extra money, and that maybe isn't justified on paper to have ... Because it takes extra space in the phone, I think, to have a really good haptic motor. That's obviously at a premium.
DEVON: It's not something that they talk about either. It's not in any of the advertising, anything like that. But you go into the Apple Store, you pick it up and you just feel it instantly. If we were to focus more on the history of computing on I/O devices, like terminals, displays, printers, all of those things, instead of on computers and sort of computing history that as it's normally done, how would that change the way that designers create interfaces?
A history of computing that focuses on I/O devices (terminals, displays, touch, mice, keyboards, sensors, networks) instead of computers themselves
OMAR: I think it would open up a lot of this discussion that we've had. I think a lot of the reason why there hasn't been much movement in computer interfaces ... There was the iPhone and there's the desktop computer. Basically, those interface paradigms have been the same since each of them was introduced. Your desktop right now is not really that different from the 1984 Mac. I kind of have this hypothesis that a lot of the reason for that stagnation is that there's been a stagnation in I/O devices. That you have your monitor and you have your keyboard and you have your mouse or your Trackpad. With the constraint that you have a monitor, keyboard and mouse, you can't actually do that much better than windows and icons and apps and stuff because the I/O devices actually impose quite a bit of constraint on what you can do.
A classic I/O device: the Commodore 64. Image from Pocket Lint.
DEVON: Why has there been a stagnation in I/O devices?
OMAR: I guess this is kind of an industry or business question. I think we've gotten really good at making displays, keyboards and mice. Once you have a market where there's millions of people buying computers, you also need to be compatible with that market. It's hard to do really new things because everybody wants to have their work processed and their spreadsheets, and those are pieces of software that you have to support. Some of the examples of things that I think we're constrained away from doing are really rich spatial interfaces, like the sort of zoomable, giant canvas UI, I think, are pretty awkward with a mouse and keyboard. I think visual programming is pretty awkward with a mouse and keyboard where you have blocks or boxes with wires between them. A lot of the kind of weird ideas for programming that don't just involve typing in a text editor, I think are one of the reasons that they haven't taken off more is that it's really annoying to use these with a mouse and keyboard because you have to drag one thing at a time.
"A lot of the kind of weird ideas for programming that don't just involve typing in a text editor, I think are one of the reasons that they haven't taken off more is that it's really annoying to use these with a mouse and keyboard because you have to drag one thing at a time."
DEVON: Touchscreens can be a little bit better for this, like an iPad?
OMAR: Yeah. I think so.
DEVON: But then those also feel kind of clumsy. It can feel fine for relatively big blocks, but you can't do that much detail. One type of input device you've used a lot is projectors. What are the sorts of things that projectors lend themselves to that normal monitors don't so much?
OMAR: The first thing that comes to mind is that projectors let you work on a much bigger scale. As long as your protector is far enough away, you can cover a lot more area. If there is something that feels more humane or something about that, where the scale is more in accord with your whole body yet and you're not just kind of crouched around this desk like you are with a laptop or even with a piece of paper or a book. There's the big thing. I mean, you can overlay objects in the world. I mean, this is a lot of what we were doing at Dynamicland. I think actually a lot of the potential of projectors is a little bit underplayed. In my mind, the stereotypical use of projectors is still, you have your PowerPoint on the wall of your office and you're clicking through it. I think you could do a lot more. It's a lot easier to have multiperson interactions.
The first Windows version of Powerpoint. Image from Slide Lizard.
DEVON: You've mentioned Dynamicland a few times. Some people listening probably aren't familiar with what that is. Can you describe what Dynamicland is?
OMAR: Dynamicland is a research project where I worked for a couple years, which was started by Bret Victor. Who's this sort of interface researcher. The goal of the project is to create sort of communal physical computer. Dynamicland itself lives in this building in downtown Oakland. It has sort of this whole floor. The idea is when you go into Dynamicland, you can leave your laptop at home. Instead, the whole building is basically a single computer. The way that works concretely is that there are all these tables around the space, Dynamicland space and above each table there are cameras and projectors. Rather than having a laptop and a mouse and keyboard and a screen, you have objects on these tables that you're moving around and that's what actuates the computer and the computer can project information on the tables. Rather than having virtual objects like files and windows and stuff on your screen, you have physical objects. Which are usually right now pieces of paper, and you can move around those physical objects and point them at each other.
Illustrations depicting Dynamicland's mission. Image from Dynamicland.
The other key part of the Dynamicland system, and I was talking to you before about how I think a lot of people miss this even if they come in and see it, is that it's a full programming system. All of the pieces of paper, all the objects on the table and the space, every object is a little computer program and you can take a keyboard off the shelf and point it at one of those objects and reprogram it to do something else. The goal is that everybody who comes in should know or learn how to program, and it's sort of just part of the social aspect of the space, that this is also a programming space. That's something that's really novel about it. There have been physical computing systems in the past where there's a whole wall that's activated or there're projection map objects, but I think this further aspect of you can also reprogram the system inside the system without having your laptop or your desktop, I think that's something that's really new.
"The goal is that everybody who comes in should know or learn how to program, and it's sort of just part of the social aspect of the space, that this is also a programming space. That's something that's really novel about it."
OMAR: That's a kind of philosophical thing that I carry over to a lot of other things that I'm doing now.
DEVON: If you had a full Dynamicland set up at home, what would you use it for?
OMAR: Ideally, you use it for whatever you use your laptop and phone for right now. You can use it for your normal work. That's really the goal of the system, is to be a computer in the full sense of the word. It's not supposed to be just an educational system or a kind of toy. It's supposed to be the actual system that you're working inside.
DEVON: What are the current limitations of Dynamicland to reach that goal at the moment?
OMAR: I mean, I think it depends on your priorities and who you ask. I think there are, and this is what the team has been working on for the last while, is there are a lot of technical constraints and there's a lot of engineering to do in terms of making more of it reprogrammable. Allowing more kinds of objects that aren't just pieces of paper. Those are really important because I think when people go to a website or they see demos of something, they really anchor onto whatever concrete examples they see and they kind of extrapolate from that. Like what is this whole system about? I think having more kinds of examples of what you can do with the system is pretty important, and that's a lot of the technical work they're doing. I mean, a lot of the things that I ran into where I felt limited were thinking about things like, what do I do on my laptop?
That's like, I talk to my friends, I use Twitter, I read books and PDFs and articles. A lot of those things weren't possible in the Dynamicland system for various reasons. I think those are concrete examples of things that you might want to do. Where maybe you don't have the internet connectivity or you don't have the high resolution rendering or the tracking of physical books. Or whatever you would need to be able to do those kinds of tasks. Instead, it was very much bottom up. Like, we're making these demonstrations of things you can do in the system, but not necessarily hoarding workflows from the existing computer.
DEVON: What are aspects of the system that seem really important about Dynamicland, but are actually sort of incidental and could have been done in a totally different way?
OMAR: The things that people fixate on when they first see the system are the least important things. For example, there are these colored dots that are used to track the pieces of paper. If you ever go and see a picture of Dynamicland or a video or something, that'll probably be the first thing you notice, is the color dots. They're really this icon or logo of the system. Those are completely incidental and you could make a system that to me would be recognizably a Dynamicland based system and not have colored dots. Conversely, you can make a system that had color dots that does not have any of the interesting properties of the Dynamicland system.
The colored dots around the edges of these pages are read by cameras around the Dynamicland space. Image from the Concord Consortium.
DEVON: Let's change gears a little bit. You mentioned when you were talking about Dynamicland, about how it's social. I remember you've talked to me a lot about how CS107 II, the class that you taught at Stanford titled, "Computer Systems from the Ground Up" and the office hours for that were a very social space. What did that look like and how did people interact in that space?
OMAR: This was this sort of second or third class you take in CS. You get taught C and systems programming and stuff like that. It was this experimental version of the class where I set up meetings, or you kind of knew that there was this gathering point where people would be anyway.
DEVON: If I were to go back to college, I would try to filter on the class size and ratio of staff and faculty. I think I really didn't appreciate that as a student until maybe my second or last year of school, where I started taking more of the small classes. Those classes were almost always so much better. I wish someone had told me that when I was 18.
OMAR: Whenever you have a personal relationships that are involved where people know who you are and you're trying to impress them or you're friends with them or whatever, I feel like that creates a much stronger relationship with the material and it's a lot more motivating than if you're just part of this machine and you're sitting in this lecture hall.
DEVON: Definitely. I mean, I think I found this is true also for learning languages. I've become a lot more motivated in the last few years to really get good at Spanish because my significant other is from a Spanish speaking country. The idea of being able to speak with his mom is really incredibly motivating. Versus in school, it was cool. I mean, I enjoyed learning Spanish, but it was not in the depths of my heart.
OMAR: I guess it's funny because this way of thinking really, it makes me a lot less interested in a lot of things about education or pedagogy than I think I would have been maybe 10 years ago. Because it feels to me like that's never the important part. The important part is always the motivation part and the social part of why you're learning the thing. One of the biggest things is, if it feels like you have to switch modes to use the thing ... The example that I've brought up in the past is, when I was TAing this class often people would have these really nasty bugs in their programs. They would always, always, always put off using the debugger to track down that bug. We would always kind of try to push them to use the debugger and they would really put it off until the last minute. They would insert print statements or they would make the thing blink or whatever. That's really telling. That tells you there's something wrong with this workflow or interaction of switching to the debugger.
Winpdb debugging itself. Image from Wikipedia.
I think people do dread it and I think they dread it because it's like, you have to go off into this different world to invoke the debugger. You have your normal ways of doing things where you write your program in your text editor and you compile it and you send it to the Raspberry Pi. But now, you have to stop all that and you have to go use this weird debugger thing that has completely different commands, you run it in a different way. Also, you're kind of admitting to yourself that you can't figure it out. I think there's also a sort of ego thing to that, but this sense that you have to stop what you're doing, that it's this cliff and you have to do something different, I think that generates a lot of dread. I think that's often associated with tools like debuggers or profilers or whatever. Where it's outside your normal interaction with the programming system.
DEVON: Is that something that is sort of inherent to the entire idea of a debugger as we think about it? Or is it something that you think, if we tried to design a debugger with that idea in mind, we could make just a way better debugger.
OMAR: I think you could do a lot better. I mean, I think the word debugger is a little bit unfortunate. I think someone, it might've been my friend Will on Twitter was talking about this. The word debugger almost suggests this whole workflow already. Maybe you wouldn't call it a bugger. I think the basic question is, how can we see what our programs are doing and be aware of that and see why they're going wrong? I think the debugger right now, that's the thing that happens to be able to answer that question and give you that information. But you can imagine other ways maybe that information is just sort of ambiently present when you're running the program and you just sort of see things pop up and you don't have to explicitly go in and interact.
DEVON: Also one really big step, it's just even thinking to use it. Because it's related to what you were saying about having to go into a different mode or a completely different tool. Where when you're in one tool, you're in flow and one step kind of naturally leads to the other. You see something on the screen and you react to it. To go into a debugger, you have to stop yourself and be like, "Hey, this new thing called a debugger would be useful right now. I should go use that." It's also just, it may not even cross your mind because you don't have a strong habit buildup or any visual stimuli that would push you towards that.
OMAR: Right. There's also a threshold of, you're kind of trading off in your head, I think, the whole time, like, "Can I fix this without having to go into the debugger? Because if I fix it without having to go into the bugger, all I need to do is just add this incremental print statement or there's kind of things I can do at the margin that maybe ..." You're trying to figure out, like, "Is that enough or do I have to go into the bugger?"
DEVON: One of the things I really liked about office hours in college was, everyone would understand different parts pretty well and you would sit around a big table and work on problems together and talk about them. You would each walk out sort of having picked up the expertise from somebody else. You've talked about this sort of idea of local experts, or I think someone responded to one of your tweets saying it reminds them of heist movies. How there's the tiny person who crawls in the spaces and there's the big strong guy or whatever. Can you talk a little bit about that concept and your experience working with different people with different superpowers?
OMAR: I think the tweet in which this came up was talking about literacy and maybe driving. People often make this comparison that the programming is like literacy. It's like being able to read and write. I think what comes with that comparison is it's kind of a problematic view of what it means, of what literacy meant historically. Where not many people could read or write, and it was sort of a superpower to read and write, and it made you a better than everyone else. Or gave you access to things that you didn't have access to before. I think this is sort of a problematic individualistic view of what it means to have a skill. Where you're the guy with literacy and that lets you do all kinds of things. When really, and I think this was pointed out by this art historian on Twitter, often there would be someone in the community who is like the person who knew how to read and write and that gave them certain responsibilities for the rest of the community.
i'm very interested in how we can see things like 'literacy', 'automobility', 'programming skill' as tools that are often shared by a whole community, not just skills that an individual has
It's the community as a whole, maybe that is the right unit of analysis. The village or the neighborhood and the town or whatever, maybe that's the right unit of analysis rather than the individual person.
DEVON: In the past, we've talked about how hanging out in a system for a really long time can help you understand things about that system that you don't get from really shallow engagement. What's something that you learned by spending a lot of time in a particular system?
Bell Lab's Data Terminal Test Room. Image from Rare Historical Photos.
OMAR: I guess there's two systems that come to mind, but the one that I'll talk about first is this text editor, Acme, that I used for actually an entire summer. Acme is the built-in text editor for the Plan 9 operating system. Which was this research operating system from Bell Labs. It was sort of meant to be the successor to Unix and it was built in the '80s. Unix has Vi or Nano, it has these built in text editors. The Plan 9 equivalent of those is Acme. Acme is really interesting because you're supposed to use the mouse in it as much as possible. I kind of like this like subversive aspect of it that, rather than being this hardcore computer thing of you stay on the keyboard all the time, it's, no, you stay on the mouse all the time. I mean, you can find demos of it online. It's a much more flexible interface than really, I think almost any graphical program I've ever used.
A screenshot of Acme. Image from Wikipedia.
Whereas you're working, as you're editing your files in Acme as you're programming, whatever you're doing in the text editor, you kind of build up this workspace and you build up this palette of the operations you've been doing. You can middle click on anything in the program to execute it. At first, you're typing in a bunch of commands and then middle clicking them to execute them. But over time, you've built up this palette of all the commands you've already typed in and you just click on them again to execute them again. You're actually developing this interface for the specific thing that you're doing right now. It just feels much more flexible and powerful and tuned to the hour or to the day that you're working. Rather than, I think most text editors where you can make a keyboard shortcut, but you're not going to do that unless it's something you really, really are doing all the time.
DEVON: I see. It sort of creates and builds up around you as you use it.
OMAR: Yeah. At very small scales too, not just at the scale of weeks or months or whenever you get around to customizing your text editor. You're kind of always customizing it all the time for what you're currently doing.
DEVON: You're doing it implicitly by just using it as opposed to having to make a decision?
@rsnous: "'why didn't I make a keyboard shortcut for this years ago?' is an indictment of the UI paradigm, that you have to go out of your way to open up a Make Shortcut screen" Image from Twitter.
OMAR: Right. I would almost compare that to what I think is cool about Screennotate, which is a screenshot app I made. Which is that you don't have to go off and do something else. You kind of just do the obvious normal thing, and then that just pays dividends. It's an app for Mac and Windows. I'll just describe the Mac workflow. Basically on your Mac, there's a keyboard shortcut you can use to take a screenshot and you can post screenshots on Twitter or send it to someone. Everybody who has a Mac can do this. What Screenotate does, is you install it on your computer and it hooks into that keyboard shortcut that you use to take screenshots. You don't have to do anything differently than what you're already doing. Now, once you have Screenotate, every time you take a screenshot, Screenotate will save it and it will recognize the text inside the screenshot. It'll recognize the title of the file it's from or the URL that the screenshot's from.
A demo of Screennotate. Image from Omar Rizwan.
OMAR: Whatever kind of information it can find about where you got that screenshot from, it'll save alongside the screenshot. After you've had it installed for a while, you end up with this whole archive of things you've sent people or things you've posted or things you've saved. Like I have 30,000 screenshots, I think, now and you can search for particular phrases or you can search for websites that things are from and they just pop up immediately. It becomes this very powerful, flexible ... It's almost like a note taking system in a way, but it's all oriented around taking screenshots. Which is this gesture that you're already doing. If you're like me, you're already doing it all the time anyway and this just gives you all this extra functionality for free.
DEVON: I really like looking back in my Screenotate folder every once in a while. It's probably once every two months I'll just sort of peruse it and I'll be like, "That's right, I was thinking about this, or I was talking about that." It also has a social aspect where for me, it skews towards things I'm sharing with other people. It also reminds me of, "That's right. I was talking to my friend, Omar, about this." That's so nice. I always smile a little bit as I look through it.
OMAR: Yeah. A screenshot has all this rich emotional context with it. It's funny, I kind of wonder also if it's the fact that it is an image and it's from this very concrete ... If I have a screenshot of me talking to you in 2015 or whatever, that'll have the original Facebook Messenger from 2015 font and layout and stuff. Or if I have a screenshot from The New York Times, it would have The New York Times font from whatever year it's from. It is this extremely concrete image, and that, I think carries a lot of history with it. In a way that if it were copied and pasted into my notes or something, it wouldn't. The websites are often surprisingly brittle and the archive on your computer is often the thing that survived. Actually, this would be an interesting thing to check. I feel like I have a lot of screenshots where the original website is now gone and maybe my screenshot is the only archive of it.
An announcement graphic for sending money in Messenger circa 2015. Image from Facebook.
DEVON: Every once in a while, Google Photos will give me a little push notification and be like, "Hey, we found a bunch of screenshots. You want us to delete them?" The sort of implication is, "They're useless of course. Isn't it so nice of us to help you throw away your trash." There's a part of me that's like, "Hey, that's almost offensive. This stuff is not garbage. It's actually really important to me." It makes me think that maybe other people don't use screenshots in the same way, or maybe Google is just really out of touch. I don't know.
OMAR: I feel like if you spend a lot of time on your computer or your phone, your screenshots, they're just as important as your photo gallery of photos you took in real life. It's what you were doing — that's what your screenshots mean.
DEVON: One of the phrases that you throw around sometimes when talking about Screenotate and screenshots and also other types of technologies and workflows, is the idea of folk practices. Can you explain what that means and what some examples are?
OMAR: I don't know if I have a definition of it, but it means the kind of things people do on the computer, especially end-users, like non-programmers, things people do that are not ... You wouldn't think of that as the right way to do this thing, but somehow a lot of people end up doing that. For example, taking a screenshot of something to save it instead of saving the webpage or copying the text somewhere, there is something that feels a little bit wrong about it. Because it's like the screenshot doesn't have the text in it usually and it's kind of a lossy thing and it's just this flat image. Or sometimes when I'm sitting on the train, people will come in and they'll take a photo of the map on the train wall with their phone and then the map is now in their photo gallery. I kind of think that that's kind of a folk practice because in some sense, the right way to get the map on your phone is to download an app or go on the train system website and get the map PDF.
re: folk practices, copy and paste, screenshots
But I think there's something to learn from that because it seems like that's actually easier and better than trying to get the PDF for that. There's a reason that people do folk practice.
DEVON: It seems related to trust to me, or at least the answers you gave, examples that you gave. Because maybe I had the experience of pulling up a map on Google Maps and it's actually really good and it gives me all the information I need. But I don't quite trust that Google Maps won't crash at some really important time. I take a screenshot of it just in case I lose signal or something like that. Whereas I'm pretty sure if I had complete trust that Google Maps would never crash, I would probably not do that.
A screenshot of Dynamicland on a map as a proof-of-concept. Image from Google Maps.
OMAR: I think it's also the sense that, I also talk about this with files, there's this sense that a screenshot on your phone, this is an object. It's in your photo gallery, you know how to work with it. It has this physics that you understand. It has these operations that you know how to do and it's going to be there, you know how to get to it, and you know it's not going to suddenly go away or get lost if you happen to search for a different address like Google Maps might. I think that's what engenders trust. I think there's way fewer things than there should be on your phone or on your computer that have that kind of objectness to them.
DEVON: It feels a little bit, with really dynamic interfaces, they have all of these pros where they can respond to your input and all the obvious, nice things. But they also kind of feel like you're renting space or something instead of owning it.
OMAR: Yeah. Google Maps, I think is a great example actually, because it can only really be in one place at a time and you're kind of, at least I often find myself like juggling, like, "Do I want to give up my state here so I can go look up something else? Is that worth it?" I guess it's also this app model where the app is one thing and it takes over your phone screen and it can only have one state at a time. If you could have multiple copies of Google Maps or whatever. I mean, this is more common on the desktop, but still, I guess you've got multiple tabs or whatever, it feels very much Google is in control. You can do those kinds of things with photos or photos give you those kinds of properties that you don't have with normal software.
DEVON: For this next part, I'm going to list a few tweets, and then I'm going to ask you a question about them. Number one, what paint sign on unfinished parts of the program UI? It can smudge up your mouse pointer or your finger if you're not careful. Tweet number two, spending a month walking from one end of the code base to the other. Tweet number three, the unclosable tab. Tweet number four, a pop-up window as a kind of genie. These could go on and on. I actually collected 20 of them and I think there were probably even more that I just didn't find.
OMAR: I kind of been meaning to go through and ... I don't even know. Some kind of collecting activity. I don't even know what the upshot of it would be...
DEVON: What do all of these have in common?
OMAR: I think that they're all about trying to take stuff in the computer and give them some of the richness and texture and embodiment of things in the real world and scale also. Where everything on the computer is kind of pristine and closed and perfect and you can't touch it and it doesn't decay, and it all kind of fits in this 11 inch rectangle. I think a lot of what I try to do on Twitter is to try and subvert that or poke fun out or whatever, and say like, "What if you could walk around your code base?" It's like, your code base is more complicated than a lot of buildings that you walk around in. Why shouldn't you be able to feel that at your body scale or why shouldn't you have wet paint on your application if it's not done in the same way that a wall would have wet paint on it? Because I mean, it has the same property of it's not finished yet, and why can't you feel that in a visceral way?
Wet Paint sign on unfinished parts of the program UI
DEVON: Yeah. The material doesn't really tell you about its state or ... Yeah.
OMAR: I guess like wet paint, that's kind of accidental, but I still kind of want it. It's not necessarily something that is desirable about the real world, but at the same time, there is something nice about having all these side channels and little ways to indicate information without people having to explicitly put signs up.
DEVON: What inputs do you put into your brain to come up with stuff like this?
OMAR: I mean, I think a lot of it is from the experience of living and working with systems like Acme or Dynamicland, I spent two years with. Acme, I spent a summer with. I think that gives you a very deep feeling of how you could do things on the computer and ways of thinking about computing. I think that's a feeling that you only get from really being immersed in the thing. I don't think it's something that you get from reading about the system or writing about the system. I think it's something that can only come out of immersion. I feel like now when I use the computer, when I'm on Twitter or I'm programming something or whatever, there's a part of me that has this constantly low level frustration about a lot of different things. That, why can't I just do this? Why can't I have these multiple things?
A visualization of a GitHub repository. Image from Github.
OMAR: Why can't I trust that the computer is going to work? When I'm programming, why can't I just see what's going on? Why can't I get the data that I need from this other place and have it here? More like see it so that I can see if my program's going wrong. I feel like a lot of what I tweet comes out of, I'm doing something and I have this feeling that I want this to work in a different way.
DEVON: What should we do to work towards those goals?
OMAR: A lot of what I do is trying to provoke people and make these little ... Sometimes they're demos. Sometimes they're just these striking images. I think that that's probably a first step. Is, I'm relatively opposed to trying to articulate a philosophy or have a manifesto or something of what should be done. I'm much more drawn toward like, "Okay, let's have this set of really striking really concrete images of, this would be something that would be cool or that would feel good in a way that we want." Having that in the back of your head as an anchor for what computing could be like. I think that's kind of a first step. I think it takes a lot of work to make new user interfaces and new ways of computing, and there are a lot of things that are in your way. Maybe we just have to work through it, or maybe there can be better tools to help us program stuff. But I think that is often the reason that we don't see more.
"I'm much more drawn toward like, "Okay, let's have this set of really striking really concrete images of, this would be something that would be cool or that would feel good in a way that we want."
I'm much more drawn toward like, "Okay, let's have this set of really striking really concrete images of, this would be something that would be cool or that would feel good in a way that we want."
DEVON: Why do you prefer the striking images approach as opposed to the manifesto approach?
OMAR: I have this implicit assumption that this is the way people think. Is that they anchor on to, if they hear an image or an idea and they can picture it in their head, that's something that they'll keep coming back to. Whereas a philosophy or a set of rules, it's satisfying to write, but I don't know if it's really as creatively useful as just having a bunch of images. Then maybe later, maybe in a few years, I can articulate a philosophy, but I think that the images are the important thing.
An example of the "striking imagery" approach as used by Bret Victor. Image from Reform.
DEVON: I think something with sort of verbalized principles is they can sound very clear descriptions, like clear tests that you can apply. But then when it comes to actually building something, it's a lot less clear if you are meeting that principle or opposing that principle. Company values at tech companies often have this problem where you'll be in a meeting and you're trying to decide between A and B and then one person's like, "Well, A follows our company values more because of blah, blah, blah." The other person's like, "No, B is actually more ..." Neither of them is totally wrong or at least as the principles are written. Versus I think if you have a very concrete example in front of you, you can be like, "Well, this thing is more like that thing and they share these characteristics." It's more concrete. Now, items are very high dimensional, so that starts to fall apart at some point too.
OMAR: I think principles are flaws. They're like the ashes or the excreted product of this really rich thing in your head and you try to write it down as principles, but you're really not getting most of it. Or if other people get it, that's because they've managed to reconstruct the thing that's in your head. But it's mostly not actually in their written text. In your head, where you have this really rich aesthetic sense, it's not actually an iron law, or you would be willing to trade it off against other things because you have this holistic sense of what you think is good. But when you write it down, it's a really reduced, rigid set of principles.
"I think principles are flaws. They're like the ashes or the excreted product of this really rich thing in your head and you try to write it down as principles, but you're really not getting most of it."
DEVON: Universalizing too. Computers, I feel like don't have to be this way, but the way they've kind of worked out in the last few decades is that they're very universalizing.
OMAR: Right. It's like there's one piece of software in a domain that everybody uses, millions of people use this thing. I think for computer kind of part of the goal is to mitigate or push against that.
DEVON: There's all the goals of hitting web-scale or whatever. Which is, I think a valid goal for a lot of different things, but I think it ends up undercutting a lot of smaller, more personal projects that you might do. I think Robin Sloan has a really good description here. I think you might've been the one who shared this with me saying like, "Why don't we have more software projects that are like a homemade meal?"
OMAR: Right. Yeah, I've seen it.
DEVON: You just make it for one or two other people. Or something like that.
@rsnous: "Alan Kay in 1967, predicting the world where PCs and smartphones are everywhere" Image from Twitter.
OMAR: Often with these web-scale things, it's like they're way better than what was out there along one dimension or a few dimensions. It actually, there's good reasons to adopt them. But then you kind of lose a lot of other things. Or you're just forced to adopt them by management.
DEVON: I think a lot of them are really fantastic. The thing that bums me out is they suck some of the air out of the room. Because you can make a lot of money and have a lot of success by making "web-scale business" or something like that, and so it ends up being that we don't pay as much attention to other things the computer can do.
OMAR: Yeah. I mean, this also reminds me of, we were talking about I/O versus computation. I think a related point is that a lot of what people use computers for is not computation, but just to talk to other people, to communicate with other people. Whether that's email or messaging or making shared documents. I think the question of what software is on the computer is also a question about how do people relate to each other? How do people want to communicate? Maybe we don't want to give all that up to just a few pieces of software. Maybe people should have their own software, that that's the way that they want to communicate with the particular society that they're in.
DEVON: What is some software that you would like to build that would be more like a homemade meal?
"I think the question of what software is on the computer is also a question about how do people relate to each other? How do people want to communicate? Maybe we don't want to give all that up to just a few pieces of software."
OMAR: I mean, I think to some extent, Screenotate is like this. I mean, it's definitely this shining example of, I made this software for myself and I use it for myself and that's still, I think the first test of whether I want to make some change to it. It's like, is this going to benefit the way that I use it? Another example is, I have this browser extension, TabFS. One of the reasons I built it was because I was frustrated with the rigidity and the lack of extensibility of my browser. One of the directions that I want to go with it is using it to build little workflows or little extensions or scripts around the things I do on the computer that are much lighter weight than building a whole browser extension. Which I'm not going to do because it's a lot of work. TabFS hopefully would make those kinds of things possible.
DEVON: Can you share a little bit about what TabFS is? What's the sort of thing that you could do with TabFS that you couldn't do or it would be harder to do with a more traditional extension?
OMAR: Yeah. TabFS, it is a browser extension. What it does is, it exposes all the tabs that are open in your browser as files on your file system. They're like synthetic files, so every tab you have open gets turned into a folder on your computer and then there were files on it so you can get the HTML content of the tab and you can get the title and you can poke things inside the tab, send scripts to run inside of it and stuff like that. You can kind of go back and forth between your file system and your browser. What that means is you can script your web browser just using whatever scripting languages you use on your normal computer. They can just be one line scripts or they can be little files or whatever. You can get a lot of the effect of writing a whole browser extension by just writing these little lightweights scripts. I actually use it for a few things right now.
A screenshot of TabFS. Image from Omar Rizwan.
I have a little indicator in my menu bar that tells me how many tabs I have open. That's just looking at how many folders are in the TabFS file system. That's kind of nice. I just click it every so often and it refreshes and tells me that I have 30 tabs open or whatever. Then I also have some scripts. I write these email updates for my GitHub Sponsors thing, and I run the scripts and it turns into a screenshot of that tweet and gets embedded in what I'm writing. That uses TabFS to go do the communication between my text editor and the stuff in my text editor and the web browser where I have a tweet open. That communication would actually be pretty hard to do if I had to write a whole browser extension just to do that. That's really only possible or it's only worth the effort because TabFS already provides this communication layer where I talk to the browser from the rest of my computer.
@rsnous: "made a little BitBar (?) script using TabFS to show me the number of open tabs (updating every minute & when I click)" Image from Twitter.
DEVON: Something I would love for you to do, if you did a Twitch stream or some sort of video of you talking through these little tools that you've built here and there and showing them and showing them how you use them. Because I think with a lot of these things, this is also true for your work at Dynamicland, where I often and find that it's hard to follow exactly what's going on until I see a concrete example.
OMAR: Video is often a good medium for stuff like this. When you're writing or talking about something, you don't know what the other person doesn't know or you often miss important details that would actually help to fix their understanding.
DEVON: This is, I think, one place where screenshots really shine again too. Where there's a whole context that you get. Not just the imagery and the style, but you get to see what the other person was seeing as opposed to a description of what the other person was seeing.
OMAR: Without the screenshot, I think you often try to explain the conceptual model first and that doesn't quite ... It can be better to just be very concrete and give you a screenshot and be like, "These are the things you click."
"Keep adjusting your language downward towards concrete units until they start to get it, then slowly adjust back up towards greater abstraction so long as they're following you."
DEVON: I'm going to ask you just one closing question. Which is, what are three ideas that you've set aside that you would like to pursue in the future?
OMAR: The first, I only set aside a few months ago, it's this thing called web fork, which is sort of a web browser that I was working on. The idea is that you can fork tabs in a web browser instantly in a few milliseconds. If you're in a page, you can just make a copy of it and you can click something and open it in a new tab. You can click anything and open it in a new tab because new tabs can just be duplicated from the previous tabs. That's hard to explain, but that's something that I want to get back to working on. It has this longer term aspect of it, of being a browser that's under my control where I can monitor and kind of visualize what these pages are actually doing and what are the connections that they're establishing to other places? I don't know. There's a whole direction there or there are a bunch of different directions there that I think are really interesting having operations that you can do to any tab and having visualizations of a lot more of what's going on than your computer normally shows.
i like the idea that the OS could provide more operations that feel rock-solid and reliable, like taking a screenshot or copy and paste are today (here, you'd always know you can rely on fork/snapshot/rewind)
OMAR: The second thing is, we talked a little bit about this, but I was messing with haptic stuff in the beginning of this year with the iPhone. There's a really great demo from Apple, and you've played with it too, where you can bounce this ball off the sides of your phone by tilting it. It's weirdly impressive and it's just this Apple example code. I've not actually seen anything in a commercial app that's as good as that, and I feel like that shows the potential of these haptic systems. I was also playing with the PS5 controller, which I think has mostly been reverse engineered now. Thinking about new interfaces that use those. I mean, they were very constrained, so I think you really have to be careful to come up with something that feels good. They're these very non-intuitive rails of what feels good and then what really doesn't feel good with these haptic systems. Also, they're designed for certain contexts, like moving a character around in a video game.
But I feel like there's still a lot of things you could do which would give you a much more dynamic development workflow. So you could work, like you're writing Python or Ruby or something, really, really quickly instead of waiting minutes or hours to compile your thing. Then also having languages that were domain specific that could represent specific concepts. This is only possible now because a lot of these have been reverse engineered and the hardware vendors are no longer able to dictate how you program them. I think that's the last of the three. That also relates to my interest, we didn't talk a ton about this, but my interest in computers where I really understand everything that's going on. I think this is one ingredient in that of having pieces of hardware, where you program the hardware, and then you can use those to interface with other pieces of hardware without needing a driver. I don't know if that makes sense, but that's kind of my vision of why that's useful or interesting.
@rsnous: "basically I tried this on an FPGA a couple weeks ago..." Image from Twitter.
DEVON: Can you say a little bit more about that?
OMAR: Well, this was something we ran into at Dynamicland a little bit. Where you have this room with a bunch of projectors and cameras and a bunch of computers. One of the questions is, okay, how do you talk to a camera? You have a camera pointed at the table so it can see pages. How do you get the pictures from the camera into your software on your computer? The answer is, you have the cameras plugged into a USB port and then you have to know certain API's in Linux and you ask it like, "Can you give me the image from the camera?" It's actually very complicated. You need to get a lot of things right for that to work. You're relying on this huge stack of Linux's millions of lines of code and the drivers, a ton of code, and you don't have control of a lot of things that you might want to have control of. Like the timing and the compression and all this other stuff.
If you controlled your own hardware, you could run it at the speed that you needed, and you could have a talk in the protocols that you want to be able to communicate with pieces of hardware like that. Or at least that's kind of the dream. The dream would be that it would be a much simpler end to end system because you wouldn't need Linux and you wouldn't need these weird drivers and you wouldn't need to have exactly the right pieces of hardware because you could just have these pieces of clay sitting in the middle of your system that you transfigured to do the job that you need them to do.
@rsnous: "growing a router" Image from Twitter.
DEVON: It sounds like I'm going to have to have you back on the show at some point once you spend a bunch of time in these systems and learn more about them. All that stuff sounds really fun.
OMAR: Yeah.
DEVON: Cool. Well, thank you so much, Omar. This is a really fun conversation.
OMAR: Yeah, this is a lot of fun.
DEVON: This is really a good excuse to dive deep into your work, which I've always found super interesting and it's always been fun to talk about. But it doesn't happen organically. Thank you. See you soon, I hope.
OMAR: Thanks.
Enjoy this post?
Brought to you by Devon Zuegel
Devon is a software engineer and writer based out of San Francisco.
Edited by Molly Mielke
Audio by The Land Films
Illustrations by Roman Muradov
Get going on web or desktop
We also have Mac & Windows apps to match.
We also have iOS & Android apps to match.
Using Notion at work? Contact sales
Gretchen McCulloch talks about why we talk the way we do online
Gretchen McCulloch is an internet linguist — an analyst of the language of the internet, for the people of the internet. She's the author of the New York Times bestselling "Because Internet: Understanding the New Rules of Language," a Resident Linguist at WIRED, and was formerly the Resident Linguist at The Toast.
Devon Zuegel
Howard Rheingold on the past and present of virtual communities
Howard Rheingold is a writer and educator known for being one of the first thinkers to treat the internet as a social and cultural environment.


text:
Home / News / Construction & Development / United Properties revises office plan in Bloomington
United Properties revises office plan in Bloomington
By: Hank Long	November 6, 2015 3:00 pm
United Properties is in the early stages of planning a 15-story Class A office tower in Bloomington next to the largest office park in the Twin Cities – a departure from earlier plans to build a smaller office building and adjacent hotel on the 7-acre site.
The 455,000-square-foot 8100 Tower could be constructed as early as fall 2016 on two parcels of land the developer has owned since 2006, said Jessie Timmerman, communications director for Bloomington-based United Properties.
The construction timeline for the new office tower is dependent on when the developer secures tenants for the building, Timmerman said in an email.
Since 2006, United Properties has owned two vacant parcels of land next to the 1.7 million-square-foot Normandale Lake Office Park. Staff photo: Bill Klotz
The project site, at 5501 and 5601 American Blvd., is just north of the 1.7 million-square-foot Normandale Lake Office Park. The five-building campus is on the southwest quadrant of Interstate 494 and Highway 100, and includes the 8200 Tower that United Properties developed in 2009. The office park sold for $265.2 million in 2012 to a joint venture group led by Sam Zell's Chicago-based Equity Group Investments.
Although United Properties indicated the site is zoned for the 15-story office tower project, it would still need to submit a development application to the city before it could break ground on the project, said Glen Markegard, Bloomington planning manager.
In 2009 the city approved plans for United Properties to develop a 10-story office building and a 10-story hotel on the site.
But the developer communicated with city planners in recent months that it intends to move forward with its plan for a single tower that would be largely dedicated for office space, Markegard said.
Key features for the tower are 32,000-square-foot floor plates, a planned restaurant and fitness center, along with on-site parking. The project site is across the street from the Crowne Plaza Hotel.
News of additional office tower construction near the Normandale Lake campus is evidence the area continues to be a strong submarket for office, even as some developers have recently changed their focus to residential in the area, said Jim Vos, a principal at Cresa Minneapolis, which represents commercial tenants and advises on space use.
The office vacancy rate in the Twin Cities Southwest submarket, which includes Bloomington, is at 14.6 percent, an eight-year low, according to Cushman & Wakefield/NorthMarq's July 2015 Compass Report.
When the Twin Cities' office vacancy rate headed into the upper teens or higher during a slow economy, some developers switched to the apartment market, which had a low single-digit vacancy rate.
"There is an interesting amount of (office) density there," Vos said, "and that means greater opportunity for residential and retail and other support services," to complement the concentration of offices.
A five-story, 179-unit market rate apartment project is planned nearby, at 5660 American Blvd., a site once pegged for office use. Nebraska-based Commercial Investment Properties received approval for that project in September.
Other multifamily residential development near the Normandale Lake campus includes The Covington, Dunbar Development's 250-unit apartment at 5701 Green Valley Drive, which was completed last year.
United Properties recently released renderings of the proposed office tower .
PausePlayPlayPrev|Next
United Properties wants to build a 15-story, Class A office tower at 5501 and 5601 American Blvd. in Bloomington.
Construction could begin as early as fall 2016 if the developer gets tenants to commit to the project.
Cushman & Wakefield/NorthMarq Normandale Lake Office Park United Properties 3:00 pm Fri, November 6, 2015 Finance & Commerce
Hank Long
About Hank Long
jared bailey
The architect forgot to add a ramp for cars to reach the top of the parking garage…

redpajama_set_name: RedPajamaCommonCrawl


text:
Мухачи — деревня в Богородском районе Кировской области

География
Находится на расстоянии примерно 5 километров по прямой на северо-запад от районного центра поселка Богородское.

История
Деревня известна как починок с 1717 года, когда в ней было учтено 7 дворов и 33 жителя. В 1771 году было 166 жителей.  В 1873 году отмечено дворов 39 и жителей 273, в 1905 49 и 378, в 1926 66 и 351, в 1950 52 и 168 соответственно. В 1989 году учтено 16 жителей.

Население
Постоянное население  составляло 39 человек (русские 97%) в 2002 году, 29 в 2010.

Примечания

 Населённые пункты Богородского района (Кировская область)

redpajama_set_name: RedPajamaWikipedia


text:
Vancouver, British Columbia, November 24, 2020 – The Very Good Food Company Inc. (CSE: VERY) (OTCQB: VRYYF) (FSE: 0SI) ("VGF" or the "Company"), announced today that veteran plant-based food production executive, Ana Silva, will join VGF as president commencing in January 2021.
New President Appointment
Management is pleased to enlist a president with such an impressive background in plant-based food production, as the Company scales operations. Silva has spent the past five years with Daiya Foods Inc. ("Daiya"), where she served as chief financial officer. Daiya is a Canadian-based company that manufactures plant-based dairy alternatives available at more than 25,000 stores across North America. During Silva's time with Daiya, the company underwent a CAD$405 million/USD$326 million acquisition by Otsuka Pharmaceuticals, a Japanese pharmaceutical and nutraceutical company. Along with this significant acquisition, Silva oversaw a period where Daiya was ranked as the fastest-growing plant-based food company in America by SPINS.
"I'm thrilled about the possibilities in the plant-based food industry, and I believe it will secure our long-term global food supply," said Silva. "Very Good Food offers three unique assets: The founders are innovative risk-takers with a great vision. The core values and purpose are truly inspiring. And finally, this company is at the early stages of growth, which for me, is an important opportunity to contribute."
Silva's appointment comes at a transformative time as VGF steps into a period of expansion and brings online additional production capacity with its proposed Rupert and Patterson facilities, and expands R&D capabilities with its Mount Pleasant facility, in order to meet strong demand for the Company's products. Ana's experience will also guide the Company as it pursues its efforts to expand into the U.S. and other international markets.
"We are fortunate to have someone of Ana's caliber and experience joining our team at a critical inflection point for our company, as we are on the verge of scaling our operations by a very substantial margin," said CEO Mitchell Scott. "With significant capacity expansion and a large waitlist of wholesale accounts, Ana's previous executive-level experience at Daiya Foods will be an invaluable asset to our team."
Silva has more than 15 years of experience in business finance, with a track record that includes the energy and infrastructure sectors in addition to food. She is a Certified Public Accountant and has an MBA and Honours Bachelor of Commerce from Laurentian University.
VAUGHAN, ON, Nov. 23, 2020 /CNW/ - KFC Canada announced today that select restaurants will begin testing a new fibre-based 'spork' in December. Once the piece of cutlery is introduced permanently across Canada, KFC will eliminate 40 million pieces of plastic waste from its operations.
The new 'spork' combines fork and spoon into one and is made from bamboo, corn and sugarcane. This mixture is compostable at room temperature – breaking down into biomass, carbon dioxide and water. This natural process requires no additional treatment and leaves no toxic by-products, taking only 18-months to decompose.
"Operating sustainably has always been part of our DNA. We will continue to invest and innovate to protect the communities we operate in as well as the world around us," said Nivera Wallani, President and General Manager, KFC Canada. "Moving to a compostable, fibre-based cutlery is one of many highlights in our journey to eliminate harmful plastics and waste from our business. We hope this sets an example for the food industry and keeps us collectively moving forward."
Sustainability is not new to KFC Canada. Earlier this year, KFC announced that by the end of 2021 it will remove 12 million plastic poutine containers from its operations by switching to a bamboo packaging solution. Additionally, within the last year, KFC eliminated 50 million plastic straws, 10 million plastic bags and 22 million Styrofoam containers from its system – replacing them all with fibre-based alternatives.
"We are always striving to reduce our environmental footprint. After achieving several major sustainability milestones recently we've started pushing further and looking at all aspects of the customer experience – right down to the cutlery in our restaurants," said Armando Carrillo, Food Innovation Manager, KFC Canada. "Our new cutlery takes very little from the earth to make and doesn't harm it when we're done with it."
For more information on KFC Canada's sustainability commitments, visit www.kfc.ca/environment.
November 18, Toronto, ON---Fully supporting the trend to holiday shop more mindfully and locally, especially as many small businesses struggle with Covid-19, Canadian Women In Food (CWIF), a national association to help amplify the voices of female food entrepreneurs, has created a perfect way to thoughtfully support female food creators with the Gifts of Goodness Holiday Basket Bundles.
The gourmet gift baskets, now available to ship in the GTA and across Canada at https://natureknows.ca/canadian-women-in-food-gift-of-goodness-program/, feature a wide array of gourmet products including wine, olive oil, artisan chocolates, sauces, cookies, tapenade, maple roasted nuts, vegan cheeses, olives, wholesome baking mixes, jellies, dips, baked goods, teas, grains, fresh fruits, veggies and more — all by female food entrepreneurs.
"We wanted to highlight the incredible spirit of female food entrepreneurs and show how food can bring people together in a meaningful way," said Andrea Watson, CEO of Nature Knows (natureknows.ca) makers of Ready-To-Eat Fresh Fruits & Veggies and CWIF brand ambassador, who is graciously providing online ordering and distribution. "Whether you're thanking your customers for their amazing support this past year or just wanting to treat someone with something special, giving a Gift of Goodness will WOW every taste bud."
Convenient contactless delivery options are available and 10% of proceeds will help support emergency food provisioning programs of Building Roots (buildingroots.ca).
There are two basket options, both which feature a wide array of Canadian made gourmet goodies (items will vary in each box):
A. The Gourmet Gifts of Goodness, Only $99 (Retail Value of $200+)
B. Mini Gourmet Gifts of Goodness, Only $49 (Retail Value of $100+)
Single orders placed online will be shipped locally in the Greater Toronto Area for a $10 flat fee. To arrange delivery to multiple addresses, pick up or to ship anywhere in Canada, email This email address is being protected from spambots. You need JavaScript enabled to view it. for information and rates.
"In the face of an unprecedented lockdown, and without access to sell through proper channels, small business owners are vulnerable to the financial impact of a stocked inventory and no feasible platforms to sell on. We're really proud to see our members push through this and find ways to innovate and collaborate," said Cheryl Appleton, Founder of Canadian Women in Food (canadianwomeninfood.ca) which has been supporting female food entrepreneurs since 2014.
"Engaging in acts of service to help our local neighbours is the essence of community, so taking part in the Gifts of Goodness initiative is important — not only to contribute towards Building Roots' mission to improve food access and food security, but also as a way to connect with local individuals and families, through food, during what may be an isolating or challenging time as we approach the holidays amid the pandemic," said Janelle Jordan, Founder of Fusion Fit Foods (fusionfitfoods.c om ). Janelle's Caribbean Spiced organic dark chocolate protein bites are one of the many gourmet goodies participating in the basket program.
Gifts of Goodness Holiday Basket Bundles are available for a limited time only, so shop early and pre-order before December 1st , 12 noon EST.
Which trends will there be in coffee drinking in the years to come? Specialty, Latte Art and Cold Brew: here are the forecasts given by sector experts collected by HostMilano.
Specialty Coffee is the main trend in the world of coffee at the moment, as revealed by HostMilano insight dedicated to this theme. That much is clear from the growing numbers of small roasteries popping up in cities around the world: from the huge metropolises of Tokyo and Berlin to small towns like Harlem in the Netherlands.
"Specialty coffee is quite a craze right now," says Chiara Bergonzi, world Latte Art champion, today considered one of the leading experts in the field. (...)
And when the subject of specialty coffee comes up, thoughts soon turn to Latte Art which, says Luigi Lupi - one of the founding fathers of the discipline on a worldwide level- "is undoubtedly the most widely followed trend of all right now. (...)
The rise of coffee-based beverages
Cold Brew, Flat White and Dalgona Coffee, as seen in bars and cafés around the world, seem to be the big trends of the moment. (...)
The web is also creating new coffee-drinking trends. Ever heard of Dalgona Coffee? (...)
Where does the bean come from? How was it processed? Was it grown in a way that was respectful of nature? Sustainability and processing methods, these are the main themes identified by HostMilano and among the most debated by coffee lovers.
People are becoming increasingly aware of what they are consuming, and coffee is no exception. Coffee drinkers want to know where the beans come from, who farmed them, who roasted the beans and what method was used for that. The processing of coffee is coming increasingly into the spotlight, and famers are introducing new methods.
New methods include anaerobic fermentation, carbonic maceration, natural X.O., and lactic acid fermentation. (...)
All updates are available on: www.host.fieramilano.it, @HostMilano, #Host2021
Silverware Announces Integration Partnership with Cuboh to Aggregate Online Orders
Markham, Ontario, November 18, 2020 —Silverware has partnered with Cuboh to help restaurants streamline online orders from marketplace apps such as GrubHub, UberEats, DoorDash, Chownow, Caviar, Postmates and others. Cuboh replaces multiple tablets at the front of house with a single proprietary tablet capable of 86ing items, accepting and rejecting orders, executing refunds, adding upcharges to orders, and sending all information in real time to the Silverware point-of-sale system. Operators can map their own menus, make updates, and access actionable reports and analytics from one dashboard.
"Restaurateurs today are finding themselves in tablet hell," said Tyler Gellatly, Cuboh's director of operations and partnerships. "Demand for online ordering and delivery is rising rapidly as more and more players are entering the market. That means more tablets from these marketplace app providers at the front of house to process incoming orders. That requires a lot of juggling on the part of a restaurant worker hired to do nothing but process online orders and coordinate delivery; there's bound to be user error."
For example, a customer may use the notes feature in the mobile app to request extra avocado and hope the restaurant will provide it at no additional charge. However, Cuboh's ordering-management software captures the request, notifies the customer of the additional charge, and applies the fee on the back end, ensuring no revenue is lost from the transaction.
"We created Cuboh to bring online ordering services together into one device to reduce clutter on the counter and have only one platform on which to train staff and manage orders," Gellatly said. "When an order is placed, the information populates in Cuboh regardless which app it originated from and automatically sends the order details to Silverware POS, capturing the necessary sales and itemized order history data. Through this integration, all reports and analytics are in one place, eliminating the need for management to compare multiple dashboards. It's a real time saver."
Gellatly said Cuboh saves on average one minute per online order due to tablet standardization and automatic POS input. For a restaurant processing 100 online orders per day, that's 100 minutes in paid labor costs saved, or more than 50 paid labor hours saved monthly. Scale it to hundreds of orders and restaurateurs can quickly see a return on their investment.
To date, Silverware and Cuboh have 30 shared customers, including Yolk, Mad Mexican Tacohouse, and Hogtown Smoke.
"We are delighted that Cuboh has become Silverware's newest integration partner," said Lucky Thalas, Silverware's executive vice president. "Given the current challenges of the hospitality industry, restaurants have to maximize revenues driven through multiple online ordering and delivery platforms more than ever. Through this integration partnership, our customers can work with even more food delivery companies and subsequently increase revenues and shave costs by managing a single menu across all platforms now that the ordering process is streamlined through Cuboh.
"Due to the proliferation of online reviews, restaurant operators must do everything possible to ensure accurate and timely order preparation to keep customers happy and returning" Thalas said. "Creating hugely beneficial efficiencies via Cuboh and sharing orders directly into Silverware is key to making that happen. No one can afford negative comments today, especially since it takes many positive reviews to compensate for one bad one."
Decorated Executive Chef Ken Nakano Joins Celebrated Team at Newly Transformed Inn at Laurel Point
Maple Leaf Foods ranked second in global ESG ranking of the world's largest publicly traded protein producers
Warmth to Share – Campbell's feel good campaign
TUTTOFOOD_Pasta, boom in consumption


The Risk Management Institute (RMI) at Midland College was created to offer courses on workers' health and safety for employers, employees, and the general public.
Every year since 2005, Texas Mutual Insurance Company has presented Midland College with a $100,000 grant with which to cover all expenses associated with these workplace safety courses, including supply cost and instructor salaries.
As a result of Texas Mutual's generosity, all RMI course are free to the public.
*Minimum of five students required to conduct class. Pre-registration is required.
February 11 (Monday) 8:00 a.m. – 5:00 p.m.
April 11 (Thursday) 8:00 a.m. – 5:00 p.m.
February 4 (Monday) 8:00 a.m. – 5:00 p.m.
April 25 (Thursday) 8:00 a.m. – 5:00 p.m.
To contribute to the reduction of safety related incidents in the Pipeline industry by providing participants with the knowledge needed to identify hazards and risks, and understand practicing safe behavior in the workplace.
Provide a consistent approach to orienting new employees and introducing existing employees to the most up to date safety information in the Pipeline industry.
January 14 (Monday) 8:00 a.m. – 5:00 p.m.
May 30 (Thursday) 8:00 a.m. – 5:00 p.m.
Explores the information required for employees to recognize a permit required confined spaces, identify hazards and how to protect against them, and understand all procedures necessary to act as either an entrant, attendant or supervisor working in or around a confined space.
January 23 (Wednesday) 8:00 a.m. – 4:00 p.m.
February 16 (Saturday) 8:00 a.m. – 4:00 p.m.
March 23 (Saturday) 8:00 a.m. – 4:00 p.m.
May 22 (Wednesday) 8:00 a.m. – 4:00 p.m.
A complete training on the principle areas needed to effectively perform cardiopulmonary resuscitation and perform basic first aid. This course also covers the use an automated external defibrillator and instructs in the protection of workers from blood-borne pathogens. Training includes hands-on exercises to develop and demonstrate the skills needed for CPR and first aid.
January 19 (Saturday) 8:00 a.m. – 4:00 p.m.
A complete training on the principle areas needed to effectively perform cardiopulmonary resuscitation and perform basic first aid. This course also covers the use an automated external defibrillator and instructs in the protection of workers from blood-borne pathogens. Training includes hands-on exercises to develop and demonstrate the skills needed for medic First Aid Pediatric Plus.
February 15 (Friday) 8:00 a.m. – 5:00 p.m.
February 22 (Friday) 8:00 a.m. – 5:00 p.m.
April 12 (Friday) 8:00 a.m. – 5:00 p.m.
May 11 (Monday) 8:00 a.m. – 5:00 p.m.
What would happen if the Federal Motor Carrier Safety Administration came knocking on your door requesting an audit? Are you ready? This course is designed to educate the Motor Carrier on the regulations that apply to your company. Learn how to maintain the proper records required. How to audit daily operation to see where the issues may be and have a solution for continued improvement. After completion of this course participants will have the knowledge and tools needed to start the process of make improvements to current process. This course is for managers, safety personal, or personnel who are responsible for DOT regulations.
February 25 (Monday) 8:00 a.m. – 5:00 p.m.
May 23 (Thursday) 8:00 a.m. – 5:00 p.m.
March 18 (Monday) 8:00 a.m. – 5:00 p.m.
May 20 (Monday) 8:00 a.m. – 5:00 p.m.
This course explores the differences between excavation and trenching, the hazards of excavations, as well as the requirements for excavation permitting (company policy), completion of excavation permits and daily inspections.
Cultivates an understanding of fall hazards and the various ways to prevent injury, as well as OSHA regulations required for fall protection. This course also, explores the hazards of ladder use and the various ways to prevent fall injuries.
This course covers fire standards and regulations dealing with fire and electrical, the basics of fighting a fire and the ability to be safe while working with electricity, as well as the purpose and scope of the National Electric Safety Code (NESC).
March 4 (Monday) 8:30 a.m. – 12:30 p.m.
April 8 (Monday) 8:30 a.m. – 12:30 p.m.
Information and training for forklift operators including forklift design, controls and instrumentation, comprehensive pre-use inspection, forklift stability and factors affecting stability. The course includes hands-on training and demonstration of proficiency.
April 6 (Saturday) 8:30 a.m. – 12:30 p.m.
May 23 (Thursday) 8:30 a.m. – 12:30 p.m.
This course is based on the ANSI and Railroad Commission requirements for competent training needed by workers who may be exposed to concentrations of H2S. The covers exposure limits, properties and physical characteristics of H2S, symptoms of exposure, monitoring, and respiratory protections needed.
Course content includes defining health, physical and environmental hazards of chemicals, creating classification processes that use available data on chemicals for comparison with the defined hazard criteria, communicating hazard information, as well as protective measures on labels and Safety Data Sheets (SDS).
January 18 (Friday) 8:00 a.m. – 5:00 p.m.
April 26 (Friday) 8:00 a.m. – 5:00 p.m.
A course in the transport of hazardous materials and dangerous goods to meet the requirements of the U.S. Department of Transportation Title 49 CFR, Sub Part H, Sections 172.700 - 172.704, commonly referred to as Docket HM - 126F. This docket sets the training requirements for employees and employers involved in all modes of transportation, including road, rail, aircraft, and marine vessels.
Apply safety rules involving the handling and transporting of hazardous materials as defined on the Hazardous Materials Table; and select the appropriate compliance strategies in the transport of dangerous and hazardous materials via road, rail, aircraft, or marine vessel.
January 28 - February 1 (Monday - Friday) 8:00 a.m. – 5:00 p.m.
March 25-29 (Monday - Friday) 8:00 a.m. – 5:00 p.m.
Explores the major safety issues that affect the work place, including general safety awareness, loss control and regulatory compliance.
Identify legal record keeping and components of the safety program for various industries as required.
May 13 (Monday) 8:00 a.m. – 5:00 p.m.
This is the refresher class needed for continuing training required by the 24 and 40 hour Hazwoper.
May 6-7 (Monday - Tuesday) 8:00 a.m. – 5:00 p.m.
This course covers industrial hygiene practices and related OSHA regulations and procedures. Course topics include recognition, evaluation and control of chemical, physical, biological and ergonomic hazards, Permissible Exposure Limits (PEL), OSHA health standards, respiratory protection, engineering controls, OSHA sampling protocols and strategies, and workplace health program elements. The course features workshops in health hazard recognition, OSHA health standards and use of sampling equipment. Upon course completion students will have the ability to recognize basic industrial hygiene principles and practices, identify characteristics of common air contaminants, locate PELs, perform basic industrial hygiene calculations, and determine methods for hazard control and abatement.
This eight-hour course covers OSHA standards for machine guarding, and introduces the multiple types of machinery, machine safeguards and related OSHA regulations and procedures.
January 14–15 (Monday - Tuesday) 8:00 a.m. – 5:00 p.m.
March 4-5 (Monday - Tuesday) 8:00 a.m. – 5:00 p.m.
May 13-14 (Monday - Tuesday) 8:00 a.m. – 5:00 p.m.
OSHA Standards, policies, and procedures in the construction industry. Topics include scope and application of the OSHA Construction Standards, construction safety and health principles, and special emphasis on those areas in construction which are most hazardous. Upon course completion, students will have the ability to define construction terms found in the OSHA Construction Standards, identify hazards which occur in the construction industry, locate and determine appropriate OSHA Construction Standards, policies and procedures, and describe the use of the OSHA Construction Standards and regulations to supplement an ongoing safety and health program.
April 8-9 (Monday - Tuesday) 8:00 a.m. – 5:00 p.m.
February 4-7 (Monday - Thursday) 8:00 a.m. – 5:00 p.m.
May 6-9 (Monday - Thursday) 8:00 a.m. – 5:00 p.m.
Develops an understanding of OSHA policies, procedures and standards as well as general industry safety and health principles covered in the OSHA standard part 1910.
April 4 (Thursday) 8:00 a.m. – 5:00 p.m.
May 9 (Thursday) 8:00 a.m. – 5:00 p.m.
Employee orientation training that covers many of the safety related hazards in the workplace. This course is not meant to be a comprehensive safety training program however, it will provide a basic awareness of the topics covered.
April 29 (Monday) 8:00 a.m. - 5:00 p.m.
How to enhance safety responsibilities and safety management systems - including safety inspections, incident investigations, safety meetings and employee engagement.
Identification and control of hazards, incident prevention, OSHA compliance and continuous improvement in all areas of safety and health.
How to promote a positive safety culture.
Learning to support workers with on-going safety training, on-the-job training and promoting safe behavior.
May 29-30 (Wednesday - Thursday) 8:00 a.m. – 5:00 p.m.
The Supervisors' Safety Development Program (SSDP) trains supervisors and managers to incorporate best safety practices into their daily management activities. A key feature of the program requires participants to demonstrate that they have acquired the knowledge and skills from training and are prepared to implement those skills in the workplace.


text:
Q: Thymeleaf template unable to parse my html 5 page correctly I am developing a web application using Spring framework and gradle as the build tool. I am using Thymeleaf as the front end template engine. My code for my login page looks like this:-
<!DOCTYPE html>

<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="description" content="Bootstrap"/>
<meta name="author" content=""/>

<title>Login</title>

<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Arimo:400,700,400italic"/>
<link rel="stylesheet" href="assets/css/fonts/linecons/css/linecons.css" th:href="@{assets/css/fonts/linecons/css/linecons.css}"/>
<link rel="stylesheet" href="assets/css/fonts/fontawesome/css/font-awesome.min.css" th:href="@{assets/css/fonts/fontawesome/css/font-awesome.min.css}"/>
<link rel="stylesheet" href="assets/css/bootstrap.css" th:href="@{assets/css/bootstrap.css}"/>
<link rel="stylesheet" href="assets/css/xenon-core.css" th:href="@{assets/css/xenon-core.css}"/>
<link rel="stylesheet" href="assets/css/xenon-forms.css" th:href="@{assets/css/xenon-forms.css}"/>
<link rel="stylesheet" href="assets/css/xenon-components.css" th:href="@{assets/css/xenon-components.css}"/>
<link rel="stylesheet" href="assets/css/xenon-skins.css" th:href="@{assets/css/xenon-skins.css}"/>
<link rel="stylesheet" href="assets/css/custom.css" th:href="@{assets/css/custom.css}"/>

                Invalid username and password.

                You have been logged out.

            <form th:action="@{/extra-login-light}" method="post" role="form" id="login" class="login-form fade-in-effect" autocomplete="on">

Dear user, log in to access the admin area!

                    Username
                    <input type="text" class="form-control" name="username" id="username" autocomplete="off"/>

                    Password
                    <input type="password" class="form-control" name="password" id="passwd" autocomplete="off"/>

                    <button type="submit" class="btn btn-primary  btn-block text-left">

                        Log In
                    </button>

                    Forgot your password?

                        ToS -
                        Privacy Policy

            </form>

I ran the code successfully, but the Css files, images and the scripts couldn't be loaded on the page, and hence it looks like an ordinary page with just a form. The page now looks like this Page without any CSS. I reckon it is an issue with thymeleaf. What wrong have I done? Please go through the code and rectify the mistakes.
The project structure now looks like this:-
Project structure

A: Check in the developer tools of browser if CSS was loaded. If not it can be bad route:
th:href="@{assets/css/custom.css}"

Try that:
<link th:href="@{/css/fileName.css}" rel="stylesheet" media="screen" />

and the file should be located in:
\your_project\src\main\resources\static\css\fileName.css

redpajama_set_name: RedPajamaStackExchange