App Distribution on Windows with Shmueli Englard - podcast episode cover

App Distribution on Windows with Shmueli Englard

Jan 15, 202658 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

How do you distribute Windows apps? Carl and Richard chat with Shmueli Englard about the power of distributing apps through the Microsoft Store. You package your app as an MSIX and can deploy it to the Microsoft Store, and then send updates through it as well. If you want to charge for the app, Microsoft will do the licensing and payment systems for you (for a fee, of course), but if your software is free, distribution through the Microsoft Store is also free! Want to do your own updates? You can do that too.

Transcript

Speaker 1

How'd you like to listen to dot NetRocks with no ads? Easy? Become a patron for just five dollars a month. You get access to a private RSS feed where all the shows have no ads. Twenty dollars a month. We'll get you that and a special dot NetRocks patron mug. Sign up now at Patreon dot dot NetRocks dot com. Hey, it's dot net rocks. I'm Carl Franklin.

Speaker 2

And I'm Richard Campbell.

Speaker 1

We're here for episode nineteen hundred and eighty five. Yeah, the year that we both graduated from high school.

Speaker 2

Right, no, graduating eighty four. But you know I'm an overachiever.

Speaker 1

Well that's true. You skipped a grade I and only one only what I mean? Okay, Well, anyway, we're here with Schmooley Angel. We'll be talking to him in a few minutes. But first, well, as long as we're on nineteen eighty five, let's run through what happened, all right? All right? Well, International Youth Year, United Nations. It was a tragic year for Ethiopia. The famine in Ethiopia prompted international humanitarian efforts and I got to thinking.

Speaker 2

That's live AID.

Speaker 1

Yeah, Live Aid. Happened, you know, feed the world. But also like there's so many more famines that have happened in the last I don't know ten years that are just as huge, and you know, we've become kind of immune to hearing about them. I think.

Speaker 2

Well, the other reality, of course, is that we make far more calories than is needed to feed everyone in the world. All payments now are political. Yeah, there's enough food, it's just you choose to feed people or not.

Speaker 1

Mikha Al Gorbachev became the leader of the Soviet Union, and there was some earthquakes and an eruption in Columbia of Nevada Del Ruiz, Mexico City had an earthquake, but windows one point zero yes.

Speaker 2

Ye hundred bucks for one point oh.

Speaker 1

I remember it was basically a DOS shell. It was terrible. That was it was a good proof of concept. The Domain Name system was created DNS in nineteen eighty five. Very cool.

Speaker 2

The first dot com eroil gets registered. Then you want to guess what it was. I don't know nothing. It's nothing fun Like you would think it'd be sex dot com or something, but no, it was Symbolics dot com Symbolics. Yeah, wow, it was company okay.

Speaker 1

Top ten movies Back to the Future, Rambo, First Blood Part two, Beverly Hills, Cop Rocky four, Cocoon, The Goonies, Witness Loved Witness, Police Academy two, their first assignment of view to a Kill, and The Breakfast Club.

Speaker 2

Wow.

Speaker 1

Of course, the Color Purple Reanimator, Fright Night. There's a lot of good movies in nineteen eighty five.

Speaker 2

But maybe it's just our age that we like all the movies from nineteen eighty five.

Speaker 3

Yeah.

Speaker 1

Probably, I mean this was our movie time, right, Yeah, so you have some you have a list, I hear.

Speaker 2

I do as usual. I'm not going to go on the shuttle side. There were nine Shuttle missions in nineteen eighty five. I'm not going to list them all to Discovery the shuttle. Discovery did the most work that year, flew five of the missions, so they would turning them over pretty fast. Right, We're just a year before the Challenger disaster, which changes everything. Speaking of Challenger, in nineteen eighty five, Challenger had the only ever abort to orbit incident.

This was sts fifty one f so on the way up. So if you remember how Shuttle flies, it's about two and a half minutes with the solid rocker bushes and its separated. At three and a half minutes, there was a sensor failure on the fuel turbopump for the center and SSME the center engine. It was reading as over temperature and so it failed and then which is serious. But about two minutes later, at five point forty three,

the second sensor failed. With both sensors down, the computer automatically shuts off the engine.

Speaker 1

So did they know that it was the sensors that failed or did they just see these high temperature readings.

Speaker 2

They're seeing the high temperature readings, and there is an engineer, her name is Jenny Howard, the booster systems engineer, who's analyzing what's going on and realizes that it's likely the sensor around the time at the eight minute mark where sensor fails on the right engine.

Speaker 1

Wow.

Speaker 2

And she realizes if the second sensor fails, the computer will shut off that engine and they'll lose the orbiter and its crew. And so in that time span, imagine this whole thing's happen in four or five minutes. You've got to figure it out enough that she tells the crew to disable the or inhibit automatic shutdowns. Just yeah,

and this would be a good movie. It was if it came out in nineteen eighty five, right, It just happened so quickly, like the entire we forget that the entire time runtime of those engines is like eight and a half minutes, and then they're in orbit, and so now the reality is being down an engine. And this is before the software was fantasy enough to run the other engines for longer. So at the end of the eight and a half minutes when it shuts down, they

are aboording to orbit. So they have not reached the orbiting intended which was three hundred and eighty five kilometers. They're two hundred and sixty five kilometers. That's high enough to stay in orbit. It's about one hundred and seventy miles, and so they do their entire mission from that lower orbit. Only time an engine ever failed on the Shuttle on the way up, and only because of the quick thinking of this engineer of Jenny Howard, that they saved that

entire mission. Jenny Howard hero Challenger flew three times that year, including that particular mission. And then this was the first year that the Shuttle Atlantis was flying, and so Atlantis will fly twice.

Speaker 1

Wow.

Speaker 2

Eighty five is also we're coming up on Haley's comets return, which is actually eighty six, and so Japan launches a spacecraft called Sekakaki specifically to go observe Haley's comment by and doing that becomes only the third nation ever at the time to send off an interplanetary flight something above orbit Earth orbit, and it's to go out to Haley's comment. Later in the same year, the Europead Space Agency will launch Gyatto, which is doing the same thing you're going after Haley's comment.

Speaker 1

Wow.

Speaker 2

And we'll talk more about that in the next show in nineteen eighty six, when Haley actually comes to the view around Earth and how a big deal that was. On the Soviet side, the Soviets fly to had actually launched two more missions to Venuses are the Vega missions versus the Venera missions. These are newer vehicles they launched in December of eighty four, but they actually reached Vetus

in eighty five. Their fly by probes, the carrier vehicles that actually drop the landers down on Venus then do a slingshot around Venus to go also intercept Haley's comment, so they both of those did that, and then the Landers themselves were very much like the Veanera missions. They went down to the surface. But most of what we know about Venus comes from these Venera and Vega missions. All of these will be the last. That's it for space.

I want to talk about two general science things. One I think is very well, they're both relevant to us, but very relevant to you. Is this is the year that Robert Ballard founds the Titanic. Yeah, that's right, and that's side of woods Hole, just not that far from you.

Speaker 1

And he landed at the Mystic Aquarium that's his home center now and he's got a lot of Titanic exhibit And of course I grew up in Mystic, so yeah.

Speaker 2

Yeah, this is it's important to me. You're part of the world, so I don't know how much you know of the story. Of course, after Titanic sinks, with folks like Jacob Astris over going down there and the Guggenheims were on there too and died on the ship, there's a lot of interest in finding and recovering the ship, maybe recovering bodies. There's a lot of ealth that went down and so forth, and there's all these ideas, but of course they're ridiculous. They never go anywhere. The first

real attempts to find Titanic at all. It's actually a wealthy oil man. This is a nineteen eighty a guy named Jack Grimm. Before the tech billionaires, there were wealthy oil people that did silly things with their money, and

so he had some sonar systems and so forth. He had multiple missions over several years and never found Titanic, although once Titanic was found, they realized that in nineteen eighty three his crew and equipment traveled almost directly over Titanic with their senses just weren't able to detect it.

Speaker 1

Wow.

Speaker 2

In that same time span, Robert Ballad is actually doing work for the Navy with a system they called Argo and Jason, as in Jason and the Argonauts. And Argo was a deep water submerciol designed to be towed behind a ship that then had a tethered rover that could

call Jason that would go out from under that. Now, this was actually a classified system built for the Navy to find Thresher and Scorpion American submarines that had imploded him around the bottom, and he succeeded in doing that and what so Ballard basically was operating the system on behalf of the Nighty to learn how to find lost submarines and to maintain the equipments of it. Ever happened again, they could get to it quicker, right, They Threshered, the

Scorpion had gone down decades before. And one of the things he learned any published papers on this is this whole when a disaster like this happens and the vehicle breaks up, the submarine or the ship, the lighter debris falls in a wider area, and you have these debris field effects, right that can cover kilometers. You know, the vehicle itself is small, the ship itself will be small,

but it makes a big debris field. And so one of his insights from that is to search for the debris field rather than the search for the ship itself.

Speaker 1

Because the debris fields kind of like breadcrumbs that'll lead you to the big parts exactly.

Speaker 2

And so he had done this to find Thresher, and in between the times that he's doing searches for thresh Sure and Scorpion, while he still has a crew out, he would get a little bit of time to go do Titanic this is all in the Atlantic area, more or less, and sure enough, with only a week of time after doing search, after locating Thresher, he had a

week of time. He goes looking for the debris field and finds a boiler which leads to another piece of debris, another piece of debris that leads them to Titanic.

Speaker 1

He also found the Lusitania. If I'm not mistaken, didn't he.

Speaker 2

He found the Lusitania. He found Bismarck like he's the man, but you know, he's also taught a lot of other people how to do it. Now, Paul Allen's crew who've gone after used to go after World War two ships Paul Alans passed away now found Musashi and so forth. Very much similar techniques. So man missions to the two Titanic will happen the next year. But this was the find and just I don't think most people realize, like largely financed by the US Navy to deal with submarine issues.

All right, what more science one and this is also a long This is the year of the first practical lithium ion battery. Now, lithium ion batteries have been around long before that we associate this battery with a guy named Akira Yoshino, but you know other names and they're all like the three people shared a Nobel Prize in Chemistry in twenty nineteen for the lithium ion battery. M Stanley Whittington, who built the original batdies in the seventies.

He used titanium diceulfide and lithium aluminum which had a tendency to create fires and it was a dangerous battery but worked. And then John B. Goodenough, the English fellow. Lots of people know that name nineteen eighty. His name, last name is literally good Enough, and this guy is an incredible inventor, Like the British are super proud of him. His story's awesome and you know, a little off the path, but he definitely improved the design in nineteen eighty by

changing the catho to lithium cobald oxides. But it's a Kira Yashino that came up with the carbonaceous anode working at a company called the Sashi Casse and that battery design will be commercialized by Ashi Casse in their work with Sony to make the first commercial lithium I in batteriesnineteen nineties. But that battery design was completed by a Kirioshino net.

Speaker 1

Wow. Okay, very cool.

Speaker 2

Yeah, I couldn't pass either one of those up. They just seemed super relevant, right right, okay. On the competing side, nineteeny five is a banner year beyond Shawstrup publishes the C plus plus programming Language book and really sets the plus plus on its path.

Speaker 3

Uh.

Speaker 2

There. Microsoft also puts out quick Basic one point zero almost the same, No, not all, not at all the same. But if it's on a three hundred and sixty K five and a quarter inch floppy, so.

Speaker 1

I down small pick Basic one point Oh yeah, I.

Speaker 2

Don't think it did.

Speaker 1

No, I did from a from a bulletin board, you know.

Speaker 2

No, yeah, there was bbs is then.

Speaker 1

Yeah.

Speaker 2

Most people remember version two because it's the one who had the id unit. I mentioned symbolics dot comedy in the first domain registered also in networking land NSF net that's the National Science Foundation. Net starts up using ecipip to connect a bunch of supercomputing centers together Princeton, Pittsburgh, University of California, San Diego, University of Illinois, a Berta, Champaigne and Cornell. As soon as then they use TCPIP, which kind of a big deal new network at major

universities all TCPIP. Within a few years, dozens of more educational networks are tied on to that as well. This is also around the time that ARPAET starts to break up. Parts of it will go to NSF net and other parts will go over to the military side to mill net. But you now have the foundation of what's going to become the Internet. In nineteen eighty five, very cool, Intel puts out the eighty three eighty six, the first full thirty two bit processor made by Intel. The three eighty

six will lead to new machines, the three eighty six. Yes, Michael Dell, in his his dorm room in university starts a company called PC's Unlimited and he makes a Turbo PC compatible PC Compatible for seven ninety five, and they'll eventually become del It's also the year that the Amiga one thousand is released.

Speaker 1

Ah, very cool. I remember playing that thing.

Speaker 2

Yeah, twelve ninety five without a monitor and the inside of the case had the designer signatures on it, including the pawprint of j Minor's dog. Mitchie and Natari releases their Atari st as the competitor, the amigaan in the same year. Yeah, and it has a gem based guy in it as well. I used plenty of both. And last but not least, the new manifestow being GANU is not unix by Richard Stalman, the whole idea of software free software, but if you're going to use it or

contribute to it, you contribute back. A new manifesto is sort of the foundation of modern open source thinking for Richard Stalman. Again, lots more to that story, but that's the foundation of it. And that's what I got when we're talking about nineteen eighty five. Oh my god, I told you it was a big list. She's he's been very patient, hanging out. I apologize.

Speaker 1

I apologize. Okay, Well let's go on to better know framework roll.

Speaker 2

All right, man, what do you got?

Speaker 1

Okay? This is another creation from one Simon crop Ah.

Speaker 2

Simon.

Speaker 1

He's such a genius he and he's very prolific.

Speaker 2

He is too.

Speaker 1

So you know what Mermaid is, right.

Speaker 2

Isn't that the sort of a woman not really a woman, might have been a dougong.

Speaker 1

Kind of half fish half no. No. So this is a JavaScript tool that came out in twenty fourteen. Oh, to create I guess you would call them flow charts, but organizational charts.

Speaker 2

And relationship charts. I presume his data relationship charts. Yeah, exactly.

Speaker 1

So Simon basically created a tool that you send it a database connection string and it generates a chart of the nice entire database. That's crazy. Yeah, take a look at it. I mean it's beautiful. Mermaid is beautiful, by the way, it's just uh, it's just great. But you know this will take a sequel server database or Enny framework core model h and just generate beautiful UI.

Speaker 2

Yeah, awesome, dude, that's cool.

Speaker 1

Yeah. And Simon Simon, he posted in the general channel of our slack of apppnax slack and he goes, yeah, I did this.

Speaker 2

I did a thing.

Speaker 1

I did a thing. Yeah. It's like, oh, of course you did.

Speaker 2

Of course he did. He does things.

Speaker 1

Spend some time with your wife, Simon.

Speaker 2

Yeah, just signs about marriage breaking down. Is that what we're talking about it?

Speaker 1

Yeah? He is that or all the kids have flown the coop and he doesn't have anybody to right, All right, Okay, cool stuff, man, Well that's what I got Richard, who's talking to us?

Speaker 2

Grady comment of the show twelve sixty seven. I know we're going to talk about about employment, and it made me go back and look at when we talked about deployment mechanisms and continuous integration and stuff a lot, which is a while ago. This is a comment from Jeffrey Pillermo show called Azure Continuous Delivery. It's from twenty sixteen.

Speaker 1

Wow.

Speaker 2

And as also, we did a bunch of shows on Octopus deployments, so we're like, we just haven't talked about deployment much lately now. This particular comment, and again its a few years ago, has comes from Keith Williams where he says, great show. It's good to hear that people having success with Team City and Octopus deploy that's what we're talking about at that time. It's also refreshing to hear someone downplay the thirty four releases per day type stories.

Remember that was a thing. We were so excited about your deploy all the time, and now we just don't ever talk about that. Yeah, he does go out to say, you know, we do continue to deploy to our test site and that can get up to tenploymes a day. But come on, I know, but a nitpick small organizations do and need the custom software from time to time. My first yeah gets supported the custom SEQL server back

end with Microsoft Access front end. Ouch held records of a best dose within customer properties for a twenty person company.

Speaker 1

Wow.

Speaker 2

We manage the continuous delivery by place in the ADP pile into a shared folder and writing a log on script and VBA to copy it to each user's desktop during log it. So in your version was just to log out, log into update clever. This is back in two thousand and five, to the best of my knowledge, still going to this day because old software never dies. Friend never ever dies. But true enough, well some of it should, Yeah, but no, not wrong and probably tricky

to make work on a phone. But but you know, he makes a valid point. A company specializing with dealing with his best dose and they need a particular day store. I wonder if now they'd have an M three sixty five account so they'd be doing it as a power app. Who knows it is interesting to think you know a storm. But Keith, thank you so much for your commented. A copy of music cobi is on its way to you, and if you'd like a copy of music cobuy write a comment on the website at don at Rocks dot

com or on the facebooks. We publish every show there, and if you comment there when I read in the show, id your copy?

Speaker 1

Music? Go Music to Code by twenty two tracks of twenty five minute goodness music that will help you stay in a state of flow while you're writing code. Track twenty three. I didn't get it out for Christmas, but it's coming very soon. All right, cool, and you can get the entire collection in MP three, flak or wave formats at music to Code by dot net. All right, let's bring on Smoothly Anglard. We first met years and years ago in New York City. I can't remember the event. Richard probably does.

Speaker 2

I don't know, man, that's a long time ago.

Speaker 1

It was so it was a long time ago.

Speaker 3

I think it was the road trip.

Speaker 1

Yes, okay, yeah, all right, So let me read his bio cutting his programming chops on the dot net two o betas in two thousand and five. Smoothly Anglard grew to love developing software. He started out using vb net, but moved to C sharp quickly and never looked back. Well.

Most of his work is in C sharp Smoothly has professional experience with cross platform development and Java c plus plus, web development and JavaScript noe JS, and database development with Microsoft seql server, Postcress SQL and my sqel, and data integration services using different transport protocols like Jason GeoJSON XML and Google protocol buffers. Welcome, Schmooley, Thank you.

Speaker 3

I have to say it sounds a lot nicer when you're reading my description.

Speaker 1

Well I had to third personize it. But that's that comes with a job, you know's it.

Speaker 2

Aren't you a blue badge Smoothly.

Speaker 3

Now, I am. That's a relatively recent thing.

Speaker 2

Oh gratulations.

Speaker 3

Well it feels recent. It's now been, dear God, nearly five years. I will be five years in April. Wow wow, it feels like yesterday.

Speaker 1

Wow wow. That's great. So what are you working on?

Speaker 3

I work on the Microsoft Store to clarify the app on your computer. Not the lovely website where you buy surface computers.

Speaker 1

Okay, okay, yeah, it's the software store.

Speaker 3

Yes, And you're one of the few people who when I tell that, they don't say, oh, you have an app store, Yes, we have an app store.

Speaker 2

Yeah, yeah, I mean it used to be called the Windows Store. But I don't think you call it that anymore, right is now? Is it the Microsoft Store?

Speaker 1

Now?

Speaker 3

It is the Microsoft Store? Right if it makes you feel better. I have been in many meetings where high up executives still call it the Windows Store.

Speaker 2

Nice. Yeah, but I mean that really was started around the Windows eight time frame, right, Like, that's that's when we needed a store because they were going after the tablet market.

Speaker 3

That was the you had your eight, you had win on those RT right store or nothing?

Speaker 2

Yeah, there was no other way to load stuff onto an RT device.

Speaker 1

Yep.

Speaker 3

And there are parts of the code base that are from back then. You look at them and you're like, why does this be? Why is the code? Oh right, it's that old. Okay, now this makes sense now it's.

Speaker 2

From two thousand and eight. Yeah, oh man.

Speaker 3

Unfortunately, because of versioning system changes, we don't actually have the history all that way, all the way back unfortunately. Oh sure, we only have the history for I think it goes maybe a year before I joined, so it's not very far back. We can actually go so a lot of time decisions we literally have no idea anymore. It's like, why was it done this way?

Speaker 2

I don't know Is that all in GitHub? Now? Is that why they migrated the GitHub and the history was lost? Oh?

Speaker 3

I wish that was it. No, it was it was a case of changing teams and they didn't know how to apparently, I guess they didn't understand how to move things properly with gets. So the history we just have a giant initial commit effectively.

Speaker 2

Oh man, but.

Speaker 3

No, we're in We're in Azure DevOps.

Speaker 1

Okay, okay, So you know a few things about distributing Windows applications. It looks like you, I know, well, it looks like you've been doing it a long time, you know, with various technologies.

Speaker 3

Yeah, it is kind of my day job now at this point. But I've done them all. I've done I've used Wix. God have a love hate with that. Yeah, but now we m that's our lovely MSI. But now we have MSIX much nicer, yes, in my opinion at least, But yeah, no, we want Distributing apps is hard. We've all done it. It's how do I get my app out to a bajillion people? Used to be Floppyes, then it was CDs. Then you had downloading it, you had click.

Once we had we had our silver light apps where oh, just go to this website you don't even enough to install anything. Yeah, and now we have app stores. Mostly everyone has their app store. That's how we're doing on the phone.

Speaker 2

Should we be distributing regular apps via app store?

Speaker 1

Like?

Speaker 2

Is that advantageous in any way?

Speaker 3

Generally?

Speaker 1

Yes?

Speaker 3

I mean then you don't have to deal with hosting, although most apps you're not dealing with that anyways. Most apps nowadays, if you're not in an app store, you're probably hosting an open source app on GitHub, so they're doing the releases for you. But if you're doing that, that means you have to you have to now deal with telling people where to go hope they find your app. And then there's always the fun of how do I

update it right? And that is one of the big things app stores give you is that it's not only how do I get it, but it's how do.

Speaker 1

I update it right? It's one thing if I build.

Speaker 3

An app and it's distributed on get ub I now have to find an updater. And yes, there are bajillion ways to do it. I've built some of my own over the years, but how do I deal with updates? How do I check for them where they host it. How do I I have to do version checks and all that. I don't have to if it's in the store, I just give them my new version of my app. Updating is the problem of the store. How they download it? Do they do deltas do so it's more efficient? Do

they do it? How do they check for it? That's not my headache. I just now have to worry about how do I build my app, not how do I install it and update it?

Speaker 2

Right?

Speaker 1

This is one of the things that Mac users listen to conversations like this and like, what are you talking about? You know, I just go and I see there's a new version, and I download it because it's you know, it's built into the platform. And whereas the Microsoft Store is kind of an option for people who've been doing it, you know, in all these kind of janky ways for over the years.

Speaker 3

Yeah, there's a bajillion ways. And it should be noted that going into the store doesn't mean we take over updates. That doesn't need to be how we do it. That is the golden path. We'll provide everything for you, but you have the option of just giving us your exc You have an exc it installs your app. You can submit that to us and we will now distribute that updating is now on you. That installer is now on you. But now we're just a distution channel.

Speaker 1

So there isn't anything where you could go to like Programs and Features and control panel. Look at all your apps and see the ones that need updating. Right click and update right I mean.

Speaker 3

Right now, not in settings, but if you in the store we did. We have somewhat recently added the fact that we will show updates for those apps that aren't managed by us if we can. Sometimes we do know, sometimes we don't. It's up to the apps how well their installers work. A somewhat funny example recently was a discord they're now in the store, but we don't handle their updates. They had a bug where they would not correctly update the version information in Windows when they updated.

Speaker 2

Oh man, an update bug.

Speaker 3

We would perpetually think there was an update, but there wasn't one, and we didn't know because we're looking at the version installed, the latest version. Oh there's an update, we should give it to you. So they recently got that in they got the We were able to get them to squeeze that in before the new year, so most people should now have that update. But now they correctly update that information and we correctly don't think there's an update. So that is the downside they had to build.

They've built an update, it had bugs, and that's on them instead of our update. Now, yes, our updater could have bugs, but it's not on.

Speaker 2

You, right, yeah, yeah, you know that the whole purpose of the cloud to have somebody new to blame.

Speaker 3

Yeah, exactly, And more importantly, you pay to get blame them blamed.

Speaker 2

Yes, I give you money. Now I get to blame you for style. Yes, oh man, I mean the classic argument here is this is why we do web apps because zero deployment, like deployment has always been a challenge. It's just it's good to get into. You know, what's the twenty twenty sixth way that deploy an app if you're going to build a client side app.

Speaker 3

Yeah, and it varies, and web apps are great, but you can still put them in the store. The store has a lot of web apps from straight up PWAs you can find in the store, as well as apps that are web apps but they're locally hosted, like say discord. We all know they wrote it. It's a web app, but they're running an electron they're not dealing one in the store. Electrons in the store. Slack is in the store, and Slack is using our updator, so you can be

an electron app and use our updater. Those are not mutually exclusively, so Slacks in the store, they're in updated PWA's that are in the store would be Facebook is in the Facebook and I'm blanking on the other one. I was going to use us my example now, but they're in the.

Speaker 2

Store WhatsApps of PWA. But yeah, there's a whole.

Speaker 3

Bunch WhatsApp actually is in a PWA. Okay, well, not a conventional PWI. They are an interesting case. Facebook Messenger recently just got fortunately they got rid of it. I can't think of the word brain, but they were actually an interesting case of the PWA you installed from the store and the PWA you would installed from the web

we're in't the same thing. Actually, when you installed it from the store, they installed a notification process in the background that was native code, so there was actually a difference. And luckily enough, the icons were also different, so you could slightly tell which one you had, but you will find PWA's in the store. And the advantage there is find a searchability. When you search in the store, you'll

find them. That's one of the advantages also you get from even if you don't use our update, if you're in the store, people will search for them. We can handle those things, and we integrate with many parts of Windows. You're typing into the search and start, we will suggest apps from us. A feature we're currently experimenting with and I think some insiders have now is the open with dialogue.

Instead of us just showing you, hey, these are applications that are installed on your system, we will actually show you, like the top three apps that can handle that file format, even if you don't have them installed.

Speaker 2

Right, So just the open width has been improved exactly.

Speaker 3

And if you're not in the store, we can't show that information about you.

Speaker 2

It's a great sales channel.

Speaker 3

So even if you are APWA and sure you don't need to go through us, you're not getting our update advantages and all that. But now you have the ability to say, hey, I can open this file format, do you want to use it? And now you can be installed there.

Speaker 1

All right, this seems like good place to take a break, so we'll take a quick break for some important messages when we come back. I got some questions about the updator, so stick around and we're back. It's dot net Rocks. I'm Carl Franklin. That's my buddy Richard Campbell. Hey, and that's our old friend Schmoui Angelard. We're talking about distributing Windows apps, and you mentioned a couple of times they're

using our updator. They're not using our updator yep. So if I have an application that I want to distribute through the through the Microsoft Store, the Microsoft Store, right, yeah, yep. And I wanted to be helpful with updates, what does that do for me? Exactly?

Speaker 3

The updater having us do the updates. Mainly, the big thing is that you don't deal with them yourself. It's our CDN, so you don't have to worry about how you're distributing it. We have the up checking logic, Hey, is there an update? Is there not an update? We handle making sure that you don't have to worry about Oh so someone's hitting my update server pajillion times. And we will also do delta updates for you.

Speaker 1

But how does that manifest itself? To the user, like does the user when they run my program, does a dialogue box pop up and say there's a new version available, do you want to download it now?

Speaker 3

Because that's that is actually up to the app we in the background. By default, we will be updating your apps once we check once a day. By default, the user can click the check for updates as much as they like. But apps have control over if they want to force an update. For example, what's app does that? They will do a check and if your version is two out of date, they will force you to update. There are some apps that I know will do a check and then that you They let you decide.

Speaker 1

So is there an RSS feed or something like that that we subscribe to?

Speaker 3

So there's an API. We have the store APIs on Windows. There win our tapis, so you can use them from any app and they let you say check is there an update? You can then pop up a dialogue about it. You can force the update. You can even say hey down, download it, but only update it once the user restarts me.

Speaker 1

Right, so, and all the logic of you know, remind me in three days, five days whatever. You could do all that yourself.

Speaker 3

Yeah, yeah, those kind of things so we don't as we don't do the reminding. That's up to you, but we give you that power. You have the ability to do that, and then we'll update you if your app is run. If the app is running, we won't force updated. Apps can say we are allowed to, but the we won't. So that way you don't lose your important context or whatever it is you're doing.

Speaker 1

Right.

Speaker 3

Obviously, a user can always force it if they want to. Users have choice in the end of the day. There, yeah, and as do companies. We have GPO policy. So a company wants to say, hey, don't update these apps. I want them at whatever version they're at, they're stuck there.

Speaker 1

Now.

Speaker 3

We have GPO policies and we are working on building more over time. So companies aren't at the mercy.

Speaker 2

So you are able within the store to put your internal company app that are only available to your company employees.

Speaker 3

Unfortunately, no, no, that isn't on us anymore. That's the Store for business. We had that for a while.

Speaker 1

Well wait before you answer that question, what's a GPO policy?

Speaker 2

Yeah?

Speaker 3

Sorry, ah, yes, no group policy object.

Speaker 2

I think group policy objects. Yeah okay, yeah, my memory is good.

Speaker 1

So these are Windows policies basically at the enterprise level.

Speaker 3

Yep. These are We're mostly used to hearing the term MDM or mobile device management now and people think of that for their mobile devices. Windows does do that, but from historical perspective, we call them group policy objects. Yeah, and they're the way you can set it. So from a company's perspective, they have a giant hammer. They can just literally say you can't run the store. So if a user tries to launch it, we'll give them a nice dialogue and says, hey, we're sorry your company blocked us.

We'd obviously love if they didn't do that, but they do have the giant banhammer. They can also control our auto updating, and they can control what apps you can install. So even if we'd love you to not hammer band the entire store, but you can still limit what apps the user can and can't install, and we will check that information before we install apps.

Speaker 2

This has been a run ass topic routinely, but it's like, okay, we only allow these versions of Adobe Reader, and so I can push out a policy to any of my company machines that says you can go to the store and get Adobe Reader, but only these versions.

Speaker 3

That's a bit more complicated there, because we have the concept of if it's a thing like oh, they have different products for each version, so twenty twenty five and twenty twenty four different products. You can do that, but right now we don't have the ability for you to say only this product, but only this particular version. I don't think. I admittedly, as I say it, I'm part of my brain is saying no, you can. But I'm not confident.

Speaker 2

I'm pretty sure I've done a show on that, truly, But I'm with you the I mean, you really see there's different categories here, right there's I have an app I want to sell. I put it on the store because it gives you marketing and a sales engine like you will cut me a check.

Speaker 3

Yes, yeah, we also do that. We to do that, you have to use our installer. We don't do that if you don't, and that's for licensing reasons, because if you're not using our installer, we can't control licensing concepts, which are required obviously if you buy it. But if you buy it through us, then it's installed. You can have it on up to installed onto ten devices actively at once. So it's not that you get it. You can have it on your laptop. You can have it

on your desktop. You can have it on your Xbox, which is one of those depending on how you build your app. You can distribute it even on an Xbox if you're somehow still running a Windows phone. Even be my guest, it seems unlikely the lemetary logs, my friend I have a man. Admittedly, all those are people who are running whin have hacked Windows on ARM onto their phones.

I haven't seen an actual Windows phone in a while, but I have seen in our logs the store is running on a Lumia nine point fifty, and I just love that.

Speaker 2

Yeah, no, someone is doing it.

Speaker 1

That's cool.

Speaker 2

I've got mine in my in a drawer somewhere. I'm sure it doesn't hold a charge anymore. It's just a shrine in my sadness.

Speaker 3

Oh no, no, that's assuming the battery hasn't expanded on you yet.

Speaker 2

Yeah. Yeah, it has set fire to the building. So then there, I mean, there's the I want to be paid for my app put it in the store. Then there's the I want to give away my app for free, yep, handle my distribution and my updates yep.

Speaker 3

So you can do both those. We handle that and then either way, as you said, you get the marketing, you get the open with experience, and as we expand more things, you'll get those. It also allows for from the enterprise perspective you have in tune. In Tune has access to our catalog. Yeah, so if you're assumed generally that's only for free app stuff, paid apps get but more complicated there. But your app now can be automatic installed on people's machines and then you got it there.

So you've got all that. And then you also have if you're not using in tune, you also have win get, so command line access. Wind Get can install all our free apps, so you get a massive amount of development ease. People can just win get has their configuration files where they just like configure your repo for you. Well, that can include installing store apps. So you want to get

Python from the store, be my guest. You want to get visual studio, it's in the store, visual studio code it's in the store, and all these things you can just quickly easily install and you find it. It's nice and easy like that, and we're constantly adding apps.

Speaker 2

Yeah, I wonder if it's a conversation that devs need to have with their it as well about hey, if you want me to employ this through the store, because always the question is do I want this app publicly visible? Ogain?

Speaker 3

Can I control who can see it? You have some level of control right now. The control is effect. It's it's kind of more like how you would think of like test flight on iOS, where you can give a bunch of msas Microsoft accounts and we will only allow these people to get the app. So if so, you can kind of do that. Obviously in a tiny shop that wouldn't be so bad. Giant corporation not so good. That's where you start looking at the intune side of things.

But admittedly, the store right now is public only. You're either in the catalog or you're not. We don't have the idea of a hidden catalog. The best you could do is have an app that's not listed, meaning you have to know it's there to find it kind of thing.

Speaker 2

So you can do that. But that's security by obscurity, that's right, That's exactly.

Speaker 3

Yeah, So it will depends on what it is. If it's an app. We there are apps in the store where it's like it's obscurity. Plus you need to like log in, so it's like the app is useless to them, to somebody ran with it.

Speaker 1

Yeah, it seems to me that the store is really beneficial for those who want to distribute a publicly available application.

Speaker 3

Yes, that is our primary focus.

Speaker 1

Yeah, because the stuff you're talking about with updates and everything, like, we could do that stuff. I mean, you know, it's just looking at a manifest file somewhere, you know, and a quick API for it.

Speaker 3

But then you have we can do it, but then you have to have the logic to check. And then you have to deal with if your app is huge, now you're downloading the entire thing again, do Delta updates for you. We will calculate the difference.

Speaker 2

And then you have to deal with remote workers. Like it's one thing to set up a file on an internal server and everybody in the office gets a new version. It's another thing when you have a bunch of remote workers. Now it's got to be through the cloud, or it's got to be through a VPN. Having help you right, like, yeah, hevn help you. This is the I need you all the log into the VPN to get a new version of the app. And just watch your VPN crow yeah, right, your multi gigabyte file.

Speaker 1

I'm thinking of all the commercial Windows apps that I use. Most of them are hosted on their own branded website and you download them and then they should they phone home and check for updates and tell you when you've got a new version.

Speaker 3

Because they're a giant corporation, right exactly. When you're Adobe, sure you have that reach, right, but you're a developer, even as medium sized developer team may not have that reach. We have CDN servers all over the world.

Speaker 1

Which means yep, that's a benefit, and.

Speaker 3

We're hosting it. It's our CDN. If you're using our installer, at least, it's our CDN, which means you're going through our system. And it's the same CDN we use for other things like say Windows updates. So unless you're in a place where they're blocking Windows update, our CDN will get through.

Speaker 1

And if you are go somewhere else, come on, yeah, we would block Windows updates.

Speaker 3

It's like, uh, that's Richard's territory, I believe.

Speaker 1

Yeah, but I mean he's he's with me, I'm sure. I mean updates provide security, you know, in the in the big shops too.

Speaker 2

A lot of shops, like updates in the past have been blocked. Do you know that behavior is really you know we now we talk about the bigger risk here is on patch servers than it is bad updates. Yeah, and so you know you're better off to get the update as quickly as possible to deal with the effects, and you are to hold the update, find out you had a patch that could have fixed the problem, and then you've got the problem because you didn't have time to test the update.

Speaker 3

Yeah. Yeah, so it's not as big a thing anymore. Yeah, so we've got that, you've got our reach. You don't have to deal with that. But if you are a giant corporation like Adobe, Acrobat Reader is in the store and they're not using our installer, but they get our reach, and then you have other features like we recently rolled out the multi installer where a person can have a bunch of different apps and click install in one go.

So Adobe now is once again part of that. It's as Richard said, it's the marketing angle.

Speaker 2

I usually do that with a wind gat script, but you're telling me I can just do the store now.

Speaker 3

We have a UI for it. It's not as controlled, right, now it's experimental rolling it out. Uh, it has its limits, but yeah, we are giving you the ability to install multiple apps at one go.

Speaker 2

At least if you know you've got five things, you want the fact that you don't have to wait for each to install and go, here's the five things go. That's a little more pleasant when Yeah, if you're whiting a wind get script, it's because you're a geek and you build a lot of machines. Like you want to see a guy who knows how to configure machine fast. You watch a guy like Paul Tharrott, and that guy tests three or four laptops a week. Oh yes, his

box configuration process is polished. I've watched him in action because he just does it so much. He's not a normal hen Like most people don't build that many machines, right, but in it you did all the time.

Speaker 3

Yeah. No, And the multi install experience is mostly the idea is you just turned you've got a new computer. You want to install a bunch of apps kind of thing that's you know what you want is focused? Yeah, yeah, but we also have another advantage of going through us is that new PC experience the user logs and got a new computer they log in, we can Windows itself will offer the restore experience where we put back files and stuff that includes apps that are using our installer.

If you're in the store using our installer tech, then we will we can let the user just click the restore button and we'll start reinstalling those apps for them, like you can look almost like migrating.

Speaker 2

Only if you're using your installer. Like yet another reason to use your installer, as it means you'll be included. You don't have to be top of mind.

Speaker 3

I personally would say the only reason to not use our installer is generally momentum, because you have your own installer already, yeah, and you already using it. That's the biggest reason I find is like it's a case of yes, there are advantages, but the effort it requires for us to move it. The other reason is when you start getting into cross platform stuff, right, because obviously our installer

is Windows only. Technically it can run on other platforms, but I don't think anyone actually uses it for.

Speaker 2

That, right. Yeah, But if you're making an app that also runs natively on a.

Speaker 3

Mac, yeah, that now it's a bit more complicated. It doesn't mean make using our installer doesn't make sense. See WhatsApp they use our stuff and yet their cross platform. But if you want to have one installer kind of thing, then yeah, ours doesn't make as much sense. But for a lot of apps, it's a very easy process. The our installer is the MSIX both loved and hated. It

is pretty much just a zip. It's a zip file pretty much of your app, all the files you need for it, and then an XML file that describes what you're installing in manifest, and in there you can do the manifest exactly and there you describe how to create start menu entries, what application, what excuse me, what file formats you can handle. You can also use it to register more advanced concept you have a Windows service, you can register one. You're going back into calm days and

you need to do out of process comm stuff. You can register that. You want to register a file, not just a file handler, but you want to say, hey, I will give properties for the file or a right click menu, all those things we will do.

Speaker 2

And with that XML, yeah, is there a privilege request and things like that. This is where you set up the rules for Hey, I want your camera and I want this I want that.

Speaker 3

It's all the manifest that's also where you document all those things, right, and that's how it's the same system. You say, oh, I want to be able to elevate, I want to be able to access the whole file system, or I only need your documents folder and all those things. The things we think of for mobile apps usually oh, this app is going to access your camera. Well, we do the same, and you can say no, yeah, and

so the user gets that. Obviously you don't want the user to say no. Admittedly, a user nicety is that it's easier to uninstall, but obviously as developer, you never want them to get there. Yeah, but it is a nicer experience for uninstalled if they need to and it are there limits to it? Yes, there are a few things you can't do. The biggest one is drivers. If you need to install a driver, you're going to have

a bit of a headache. Technically, there's nothing stopping you from installing a driver from a technical perspective, but we will block you. We scan all our you submit an app, we are scanning it, we are putting it. We will trial install it on VMS in the cloud and see what you've done so, and we will run down through this virus scanner, malicious scanner and all those different things. So we are checking that you're not doing something we didn't tell.

Speaker 1

You to do.

Speaker 2

But the bottom line is, if you have an app that absolutely needs a driver, you need to go about this a different way.

Speaker 1

Yeah.

Speaker 3

Generally, yes, Obviously if you're a giant isv things get a bit more complicated. Sure, like you're Intel or whatever. We have ways to do that, but the over general, the general rule is unless the driver is signed by Microsoft, it's not in the store. Right, So that's how CIS internals can install a driver. CIS Internals a powerful app. It's in the store using our installer, So I like to use them as the example. If cis internals can do us, then anyone.

Speaker 2

Can, right. You just have to go through the rule.

Speaker 1

So this internals works for you now, right.

Speaker 2

Microsoft?

Speaker 3

Yeah, yeah, right, yes, we really wanted him, but you know it will take your product too. Well. Yeah, but they're in the store using our updator and they do install a driver, but it's a Microsoft sign driver, so it's fine. Interesting, But yeah, generally speaking, there are very few apps I can think of that I would have installed on my computer. That wouldn't make sense. And the biggest one, honestly is visual Studio. Code is Visual Studio,

not even Visual Studio code visual Studio. They're not going to use our installer because it's actually not one products, it's like twenty different products.

Speaker 2

Oh yeah, the install process is crazy.

Speaker 1

Yeah, they have their own installer. That's how big it is.

Speaker 3

Yeah, and there are a case where it makes sense, but most apps it doesn't. You don't need to be you. What are you installing one thing? Your your got as I like to put it. If you can be X copy installed, yeah, you are perfect candidate.

Speaker 1

Yep.

Speaker 3

There is nothing you can pretty much be doing at that point that we can't handle. Sure, and even those we can. As I said, Windows Services integration points with Windows you don't have to deal with the registry. You're filling out an XML thing that we will tell you when you try to create a package. Yeah, you did something wrong, right, It's not you installing it into the registry and now hoping you got it right.

Speaker 2

So can we talk a bit about the various update strategies because I know we have versions we hate and versions we can tolerate. I use the Azure Explorer all the time, and it'll always pop up and thinks says, hey, there's an update. Do you want to install it now or when you're finished? And I'm like, hey, I appreciate that because I got stopped to do That's why I spend this and updating you wasn't one of them.

Speaker 1

Yep.

Speaker 3

So by default we do a check every twenty four hours right to see if there's updates, and if there are, we'll try to install them. If the app is in use, we will still download it, but the install will then fail and we see, oh you're using it will late to later when we retry, there's different logic and algorithms. With a back off, we'll say okay, we try a bit, Nope, still not fine. I'll try again later.

Speaker 2

So, as me as a dev, do I have some control here? Like? How did they?

Speaker 3

You do have some You can force it to be faster?

Speaker 2

Yeah, how did Azure Storage know how to pop that thing up? To me?

Speaker 3

You can do it faster? As a developer, you can. There's an API We'll we'll definitely put in the links that you can say, hey, I want to know if there's updates and if there are, apply them, now apply them when I'm done running whatever. So a lot of apps do that, but you don't need to, and you can. It's your choice. We're not going to force you to, but you do.

Speaker 2

Now.

Speaker 3

The one thing we don't have is pinning. So if an app, when you install the app, it will be updated. You can delay it as much as you'd like, but it will be updated because, as we said, with security, we don't want Yes, you may want to hold onto your version forever, but we don't really understand the concept of security versus Oh, I added a billion new features with a billion new bugs, right, and therefore you will get your update. There's no question.

Speaker 2

Yeah, because then what's the other way that? I mean, it's the awful way, which is you go to open the app and goes there's an update, and you will sit here while I update. Yeah. I also like how the browsers do it where you get little icons just like hey, you should close this and reopen it for the new version, and it starts off with just like a little yellow and it gets right, it's like you really need to do this, Oh yeah, you know it's been that week. I really really need you to do this.

Speaker 3

Yes, and you could do that. You will have to write the UI to do it, to check for updates and then show that button, and plenty of apps do that, but you don't have to.

Speaker 2

Yeah, no, And I just appreciate if I'm working with you that I will still want to give my by using the Microsoft Update or I'm not guaring taying my customer a bad experience.

Speaker 3

Yeah, it is at the end of the day, and if the customer wants to force the update, they can. In the store, we show you the list of apps that have updates, and if you try to update an app that's currently running, we'll first time we say no, it's running, and then the user can say I don't care update anyways, and then it will be updated. Right, So the user still is in control, right.

Speaker 2

Or at least they feel like they're in control.

Speaker 1

And that's the most important thing, like that feel think they're in control.

Speaker 2

Feelings all right. Now, I get this and it makes a good case for I just it lightens my load if I'm prepared to jump through the hoops deploying into the store in terms of making apps available, and then I can just push my updates up to the store through the API, and that's then handled for it.

Speaker 3

You can do continuous integration.

Speaker 2

And then if I want to make it pretty, I can write some code and interact with it.

Speaker 3

Yep, you can do continuous integration. As we were saying, you have your fancy CI. We have actions for GitHub, actions for debt as your pipelines as well as just an outright command line tool that you can run and you can therefore push your updates up to us and then boom, now we have the new version. So it doesn't require you will need manual interactions for the first upload because you've got to tell us all about your app.

But when you're doing updates, you don't have to. You can just have it as magical automation and we'll get it and distribute it.

Speaker 1

So have we talked about pricing yet We haven't.

Speaker 3

And the good news is we recently rolled out that now to go through US is completely free.

Speaker 2

Oh that's a good price.

Speaker 3

We don't charge you anything unless you make your users pay something. We won't charge you, not even for registration.

Speaker 1

Wow.

Speaker 3

So you have an app if it's free, there is literally zero cost to you.

Speaker 2

Wow. An is it the typical thirty percent?

Speaker 3

Yep, it's the thirty percent I think there are some different numbers there based on like how much your app is used or whatever. I don't know the details, admittedly, sure, but it is a system of yeah, if you are now charging your users will take the thirty percent cut. But you don't have to.

Speaker 1

But I'll let you also handle all the money, right, so people buy it from the store and then you cut me check at the end of the month.

Speaker 3

There we deal with taxes.

Speaker 2

And when you say handle all the money, you mean taxes, like that's the service.

Speaker 3

We will handle sales tax and all that. We will handle conversion between units. We will handle your payment options. The user wants to pay using PayPal, they want to use a credit card, we deal with that. And then also we're dealing with your licensing. As I said, you install it now you have ten licenses to it, right, right, it's our headache, not yours. You don't have to do the check of oh is this user allowed to run the app? There's no. You don't have to have an

account system if you don't want it and all that. Nope, no user logs in and we're good.

Speaker 1

Nice And again you said you can handle like Xbox games and things like that. If I want to put ye a game out there.

Speaker 3

You want to make an app that runs on the Xbox, you can go through us, and you know what, you can still be paid also for that.

Speaker 1

Android apps a lot of games that way.

Speaker 3

Android apps. Know, unless you're in China, then you get to be special.

Speaker 2

But now I normally expect that I deploy iPhone apps to the Apple Store. It just knows. They want their cat am i Android apps to the Google Store. They want their cat Google Play and then Windows stuff.

Speaker 3

Yeah yeay, you you laugh. But I My favorite bug report ever was a user complained that they couldn't install a Mac app in the from the Windows Store.

Speaker 2

From the Windows Store.

Speaker 1

Oh that's funny.

Speaker 2

Done, dun't. Uh, that's awesome.

Speaker 3

Yeah, so users can get confused, but yes, it is the app store model you're used to.

Speaker 2

It's not like we made stuff easy for him either.

Speaker 3

No, and unlike those other app stores, you don't have to use our payment system. We don't require it. Interesting, you can no legal We are not forced by legal or governments to allow it, but we will allow it. You want to use your payment system, be our guest. Obviously we don't help you anymore. You don't get our licensing features and all that. But you want to do it, it's your you can do it. Just like with the installers,

will happily still host your app for us. It will be effectively a free app as far as we know. But you can then have users have to pay somehow. Adobe does that for some of the products I know for an example, they have where the installer. We have the installer effectively, but you still need to log in with your Adobe account, and then it's Adobe's payment system, and then you're not giving us any money. You're giving. It's whatever the percentage your payment processor is taking, so nothing.

So you have options. You can use our installer you cannot. You can use our payments you cannot. We are very much our goal is to be how you get the app. Beyond that, we'll give you options, we'll let you do them. But if you don't want to use our stuff, I mean more pain to you.

Speaker 1

That's pretty cool.

Speaker 2

Yeah, I like it.

Speaker 1

Yeah, I'm a believer. Smoothly, Is there anything else that you want to say before we sign off?

Speaker 3

I'd say we have a discord. There is a we are in the Windows App Developer discord. We have a channel there and we will We are very good about trying to answer people's questions. So something here you don't know, you can reach out there, people can reach out to me. We will try our best to help you and looking forward to having your apps very cool.

Speaker 2

I'm just trying to deal with Microsoft having a discord. That's very hipster of you. We had a slack at one point. I don't think we do any more. That's weird too.

Speaker 3

Sorry, it will have to migrate to teams right.

Speaker 4

Oh no, no, no, no, please, no more teams smoothly. It's been great catching up with you, and thanks for all the great information and I'm sure everybody really.

Speaker 1

Appreciates it, of course.

Speaker 5

All right, and we'll talk to you next time on dot net frocks.

Speaker 1

Dot net Rocks is brought to you by Franklin's Net and produced by Pop Studios, a full service audio, video and post production facility located physically in New London, Connecticut, and of course in the cloud online at pwop dot com.

Speaker 6

Visit our website at d O T N E t R O c k S dot com for RSS feeds, downloads, mobile apps, comments, and access to the full archives going back to show number one, recorded in September two.

Speaker 1

Thousand and two, and make sure you check out our sponsors. They keep us in business. Now go write some code, see you next time.

Speaker 3

Got vans and chime.

Speaker 1

God, my face is hard than my taxes.

Speaker 3

In line D

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android