Hi, my name is Martin Woodward and today I'd like to talk to you about Microsoft's journey in open source you know open source software is enabling organizations and and individuals to collaborate to to build to create better solutions for our businesses, but also for our communities across the world and You know, it's creating new ways for all of us to work together There's massive advantages to sort of building solutions to our common problems in the open However, the new way of working does kind of bring new norms and a need for new tools and need for a common understanding of how to work and Microsoft's deeply committed to helping, you know, our customers and the community build better solutions for open source and so in this talk I kind of I wanted to talk about the value of open source But also how Microsoft works with open source, you know, and why Microsoft works with open source I also want to talk about how that approach has changed over time and how working is in open source has helped change the culture of Microsoft for the better really I Started in Microsoft a while ago and I've had, you know, been a part of this journey for a long time I actually used to look after the coplex website, which was Microsoft's hosting platform for open source But the first open source project from Microsoft was actually released on source forge It was a thing called the the windows install a toolkit or wix that was back in 2004 coplex came along 2006 started contributing to the Linux kernel around 2009 and then It's about 2012 where we actually started getting involved in the git project That's something I was heavily involved in and still I'm involved in I actually created the Microsoft org on github In 2012 and that was the first project that we created on github and that was TypeScript actually fun enough Which you know has become now massively popular That was that very first project and then also helped create the dotnet foundation and helped, you know Bring dotnet to the open source community and make it a full open source ecosystem Visual Studio code is obviously massively important and then in sort of 2017 we actually Got the windows team Migrated over to git for source control and that was a massive massive technological achievement But also, you know, think about that for a second The team that build windows build it in the version control tool That was you know, originally authored by Linus Torvouts the author of Linux So that was just like a massive massive change for me and kind of a Fundamental sign that the culture at Microsoft had really changed I was part of a github acquisition team in 2018 and I now work over at github helping open source communities to be more successful and now Microsoft actually have well over 17,000 open source projects Hosted on github in the open, you know open source and this is a massive massive community That's across the world and in fact when we look at that global community on github We see it spread all the way across the world, but we see a really strong presence in Asia So thanks to everybody here. We're seeing huge amounts of open source contribution And when we look at the numbers of active users on github contributing to open source, we see Asia is Growing very very quickly and is about to overtake North America It looks like when it comes to the number of active users contributing to open source every year So fingers crossed, you know, this year's state of the octopus report. Hopefully we'll get there We'll see but open source is, you know, really changing kind of how we build software Not just for our communities and not just in the open But it's changing how we build software at work as well and in the enterprise If we look at the types of applications that we ship, you know over 96 percent of deployed Applications we see being deployed today Actually contain open source components and when we look at the amount of code that's being shipped You know 80 to 90 percent of that code is actually open source only 10 or 20 percent is the code that you wrote And that's a massive change from where we were, you know, 10 15 years ago at the start of Microsoft's open source journey And open source is kind of core to Microsoft's business It's core to how we build software at Microsoft, you know There's over nine and a half million kind of components used inside of Microsoft But in terms of contribution as well, there's over 40,000 Employees at Microsoft who have their GitHub accounts and are contributing to open source projects on GitHub And that's a massive change from again where we were at the beginning of that journey when I Created, you know, Microsoft's GitHub account in 2014 and this is a big big change where Microsoft is You know, we now have our CEO standing up on stage saying they love Linux, you know Microsoft believes the open source is a great differentiator for enterprises and and is deeply committed to open source because Microsoft's mission is to enable organizations and individuals to achieve more and Microsoft believe that open source is the fundamental part of this solution by creating open solutions You know, we not only enable our customers to build on the work we do We allow them to innovate more. We allow them to achieve more But when you look at, you know, why is Microsoft doing this? What are they doing? You know, they're trying to make open source work really well with Microsoft and allow our customers to do that And it makes sense, you know, if we look at Linux, for example Over 50% of the virtual machine cores deployed on Linux on Azure are Linux cores now Microsoft themselves over a third of the Microsoft cloud estate is actually Linux that running in the cloud And this is a massive change that any Improvement any investment Microsoft make in improving Linux and making it work better in Azure, for example Those cost savings those efficiency savings really add up across all of Microsoft's customers and across Microsoft's internal development themselves And so that that level of investment really justifies significant investment in open source It's a sustainable business strategy for Microsoft when investing in open source So how does Microsoft work with open source and why does Microsoft work with open source? Fundamentally it tends to fit into kind of three categories of projects The first category is actually related to DevOps and being more agile You know in the old days trying to get people to use the latest versions of .NET was incredibly hard You know getting people to upgrade use the latest bits And that meant getting feedback on those Latest releases of .NET was incredibly hard as well and was limited to a you know a reduced number of people By working in the open Microsoft are able to not just get feedback on the very latest release that they've shipped to customers They're able to get feedback on the latest commit They're able to get feedback before that commit has even been merged into the source code base And so that allows these teams these infrastructure teams to be so much more agile than they ever were in the past Another reason that Microsoft typically go towards open source is for when they need wide distribution So perhaps it's you know an Azure SDK Perhaps it's the documentation By making those available under a very permissive, you know MIT open source license for example That means not only can those SDKs and those Documentations and those source code samples and things not only can they be used in Private projects inside the enterprise. They can also be used in other open source projects They can be used, you know in open source projects under every different license And so when we want this broad distribution, then it makes sense to obviously go for open source Again, that's a change from how it was in the past And then finally you see Microsoft being involved in open source projects when there is, you know, a large market that uses kind of Open source standards open source mechanisms like Kubernetes, you know containers Linux Git that sort of thing and it makes sense for us to have the best hosting platforms for those types of workloads To have amazing compatibility to to be able to produce the best experiences for our customers And so again, that's an area where you'll see us contributing heavily to open source projects But there are times when I hear sort of dubious business goals about why we should be involved in open source And if you want to have a sustainable open source strategy You need to make sure you have a fundamental business goal for Working in open source and for contributing to open source Doing something because it's good PR is not a sustainable business goal Yes, you will get good PR from making something open source But that only lasts, you know till the next headline that only has 24 48 hours PR won't sustain the kind of long-term investment that the open source community needs and deserves And so PR isn't a reason to open source. It's a benefit of open sourcing Another kind of thing you get from open sourcing is goodwill, you know and goodwill is great People like the fact of open source, but again, you can't take karma to the bank You can't, you know use karma to pay for developers to work on things And so while you do get goodwill, it's not a business case for open sourcing And the final kind of dubious business goal I see around open source is people know that it's good for recruitment and it is people, you know like Seeing Microsoft working open source communities, they get to work with other developers from Microsoft They like to come and work for Microsoft So we definitely see working in open source helping recruitment But unless you've got a sustainable business strategy for building that thing in the open You're not going to be able to have any jobs for those people to come and work on So again, you do get recruitment benefits from working in open But it's not the business reason for open sourcing something You think about what your business goals are and how to make those around building communities in the open But you also need to make sure you've got policies in place to make it easy for your developers to You know use open source to consume open source responsibly respecting all the license conditions To contribute back to open source and to be able to release open source software Um, you know new versions of open source software Now consuming open source is usually a very easy sell to kind of manages in teams when they're getting used to it Well, how do you help convince them to contribute back to open source? And that's something I had many many conversations with different teams with over the years And the best way I found of explaining it is that um, the further you take without contributing back You're actually running in a fork and you're building up integration debt So as you're moving off in your own little private fork or something This project keeps going. It keeps getting new features. It keeps getting security updates And the longer it takes before you've got your code changes into the upstream project The harder it is to take changes that have gone upstream and bring them over into your project And allow you to take the benefits of consuming that open source library in the first place So if you don't give back you can't consume later And so think of kind of forking and think of not contributing back as building up integration debt And you want to keep that debt paid down and you want to you know, regularly contribute code back up to those upstream projects And to do that, you want to make it easy for your developers to contribute to open source You want to simplify your business processes?  Don't just arrive expecting your change to be consumed by that project If it doesn't take the project in a direction they want to go If it doesn't make have any benefits for them What's in it for them to maintain this code that you're giving to them? So you've got to you know, when making a contribution first of all Create an issue to make sure it's something the upstream project actually want to have changed And then when you do make those changes, you need to provide unit tests to show Yes, this does improve performance for everywhere not just on azure say but for everybody you want to You know give the reasons why you want to make it simple to review You want to make it easy to understand so that make this You know an easy decision for a maintainer to want to take your change and merge it into their project So then you can take all the benefits of all the other changes these maintainers don't owe you a thing at all So make it easy for them when contributing changes to the code And if you can't you know pay for developers to contribute changes to code to a make open source project and open source projects value Sort of code contribution over everything. What you can do is directly fund the project to maintain the code themselves Through open collective or through github sponsors You can pay open source maintainers You can give them a revenue stream to help look after that project And we actually have a fos fund inside of microsoft For funding critical open source dependencies and for projects that are sort of nominated by people inside the company And we send that money and we send it via github sponsors And hopefully allow those open source maintainers to earn a living and to justify some of their time that they're spending You know reviewing and keeping projects up to date Now one of the projects and one of the communities that I was involved in building was actually the dot net community as I mentioned And proud to say you know With the latest cncf survey dot net's now one of the top 10 sort of highest velocity open source projects But that didn't come overnight that itself was a long journey and kind of Had a few different stages along the way The first stage was just releasing the source code with an open source license But we weren't really accepting contributions We just released it and said here and allow people to look at that code allow people to find You know issues and sort of inspecting things But then the next thing that we did was actually we We opened the design notes. We Made rfcs We made design decisions in the open And got feedback from people and now we started getting you know quite a lot of value from open source Because we were able to get feedback not afterward shipped but actually on the spec on the design Which was great The next stage that we made was to kind of you know Allow people to send us pull requests But we had a private version of the code internally that we were working on And we would take those pull requests We'd merge them with our private code and then we'd make changes and then we'd push them back and then we'd distribute And again that was okay. It did a good job. We were able to you know get changes That was nice But the big change and where we saw the massive increase in the dot net community Is when we took the whole project and moved it truly into the open And we adopted that same community workflow for everybody on the project Not just the contributors that happen to live in microsoft but for every single person And that meant actually making the documentation better Sorry to tell you Just because you release something as open source doesn't mean you don't need documentation anymore You actually need better documentation because now your team Is asynchronous and is across the whole world It isn't just the people that happen to work for you and then the final stage in terms of You know making dot net open source was to kind of share ownership to give people the confidence in investing in open source and investing in the dot net platform Because they were able to say where that platform was going and they were able to you know be involved in the future of that project And that was kind of the fundamental lesson i learned really was to be part of the community Don't think of you versus the community you and the community think of you as part of the community that you are in um And if we think about how people contribute to projects and get involved in projects I often talk about the contribution funnel because 99 percent of people just consume your code And that's fine. They never come back But a small percentage of people will give you some time And then a small percentage of those people will give you some code and that's a massive gift and that helps you improve your project But you're not going to give code unless you've given time and you're not going to give time Unless you've got value from the project by consuming it So it's very natural that you know these are subsets of the people consuming and then the people contributing and then the people giving code And then finally a very very small subset of people who give code like she stick around and help you maintain Help you run that project And so you've got to think to yourself all the time like how do you maximize the number of people each stage? How do you maximize the number of people consuming the code? You know have a good read me make it easy to consume How do we maximize the number of people coming down that funnel so that we get more code into the projects? We get more involvement so we build a community Because you've got to remember an open source community is not a zero sum game You can work together with your competitors and build a solution that's better for everybody Not just better for you and if you make something work Well, you know if microsoft make linux work well on azure It doesn't make it work less well on a different platform It doesn't make it work less well in the data center. It works well better everywhere So it's not a zero sum game, but it does allow you to benefit everybody by making changes in the open And it's really kind of drove culture changes in microsoft and help, you know The team become a completely different organization And that was just a small small part of this overall massive team You know contributing to open source in microsoft And it was a you know an honor to be part of that journey and had a fantastic time So I want to thank you very much. Thank you for being here at forge asia Thank you for listening to this talk And also I want to you know, thank you for helping change the culture of microsoft One pool request at a time. It's a much more collaborative Much more inclusive much more open place to work And that's thanks to the community getting involved and thanks to the welcome that we've had here at foz asia And elsewhere around the open source community. So thank you very much. My name is martin woodward. Have a good conference


All right, so we have a couple objectives for this module. We're going to explore methods to glean biological function from transcript sequences, and learn to differentiate between two different approaches, homology-based and sequence composition-based approaches to functional inference. The general challenge is that we have, we've done our transcript assembly, we've identified our different transcripts, we've got these sequences, but we don't necessarily know what these sequences represent functionally, biologically. So can we gather hints of the biological function by looking at the sequence data? And there are a couple key approaches that we might take. One is using sequence homologies, probably one of the best ways, most reliable ways to infer a function of a given sequence. In this case, we might somehow search a database of proteins of a known function and see if we can capture a significant sequence similarity or sequence homology to proteins that have known functions. And alternatively, we might just analyze the, or in addition, I should say, we should analyze the composition of the sequence and see if the sequence composition alone can provide us with hints about what that protein might be doing. And there are different machine learning methods that can be applied to gather these insights. Starting with sequence homology, the most popular way of doing this is to perform a BLAST search. We have our transcript sequence from our assembled transcripts or might have run string tie, given a genome. And we can take that transcript sequence and we can do a BLAST X of that transcript against the protein database and see if we can identify proteins that are homologous that have functions that are known. And it's a great database that we can use for doing this called SwissProat. SwissProat is part of the Uniprot Knowledge Base, which also includes Trumbull. The Uniprot Knowledge Base is a very large database. It's part of, it's Uniprot, it basically goes to uniprot.org. It has many millions of sequences, just over 88 million sequences in the database. SwissProat is a small subset. There's only, what's that? I hope so. Amos is working on the next Peru. Next Peru? Okay, human SwissProat, next Peru? Okay, I don't know, I just, I mean, SwissProat has been around forever, so I kind of just, yeah. Is it to have new data steps? Oh, I have no idea. I mean, I'm kind of assuming that it's still growing. Maybe that's not growing at the same pace or by the same mechanism, but they have to have some way of separating out like the highest quality annotations, right? Yeah, that's all right, that's all right. Hopefully it's still being maintained. Given how important it is to the community in general, I mean, it'd be a crime if it wasn't. Yeah, hopefully, hopefully someone is still maintaining this. I'm just wondering about that. But I mean, the database is just, they keep continuing to grow at a rapid pace, right? I mean, the basis of anything growing exponentially. It's just like I said, there's over 88 million sequences now. This page is constantly updated. The SwissProat right now, so this is actually as of July this year, SwissProat is just over a half a million entries. But these are arguably the most high quality records in the dataset. They've been manually annotated and reviewed. Most of them have functions that are known functions. And there's just a lot of rich information that's tied to these records about these proteins. And so we can basically search, one of the best things we can do is just search SwissProat directly and see do we have any proteins that are highly similar in sequence and waiting for our homologous, share some evolutionary history or evolutionary related and it might have conserved functions. This is just an example of a page within Uniproat for one of the entries that's in Uniproat, sorry, that's in SwissProat for posting me in three kinase. And you can see it has some nice functional information there. It tells you about what the protein's doing. You have genontology information. So genontology is a structured vocabulary for defining molecular functions, biological processes and cellular components. And here we have gold molecular function and they have different activities that are assigned to it, likewise for biological process. If you click on the genontology link, it'll also show you the full structure. So genontology is represented as a graphical structure. We have nodes. We like our graphs, right? Like our de Bruijn graphs and all sorts of ways of using graphs and bioinformatics. So in this case, it's a directed acyclic graph where we have parent terms and child terms. And in this case, the information stored at a given node, at a given child node, is more specific than the information is stored at a parent node, which is actually more general. So in this case, you'll see a fructosamine in three kinase activity, which is down here, that's the terminal node in this hierarchy and its parent term is kinase activity, which is more generic. If you're assigned, if you have a given assignment, a given node within this hierarchy, it automatically means that you have all of these parent assignments as well or you have all these parent functionalities. So you'll find, given different proteins that might have assignments at different levels within this hierarchy and that's different levels of specification for wherever that function might be. So this is hugely useful. And this is going to allow us to computationally explore different functional properties of gene sets. So for example, when we did differential expression before we ended up with collections of genes, this had similar expression patterns that were co-regulated. And we might ask a question, given the annotations that we have assigned to those genes, do we see any particular enrichment and function or are there certain pathways that are enriched, statistically enriched for functions given that set of genes? And the statistical tests are much like doing Fisher's exact tests. In this case, we have gene ontology categories and we have differential expression characteristics. And we can basically build a two by two table or a contingency table and where each number of genes or transcripts in each of these cells, each of these four cells is basically this joint. And we can ask a question for those genes, these 50 genes that are both differentially expressed and have this particular gene ontology category, is that statistically enriched? Is it significantly enriched if we run something like Fisher's exact test? All right, and this is just, this is very similar to, the more classical descriptions of these tests where you have an urn, in this case, you have an urn that's filled with green marbles and red marbles, and you draw some number of marbles out of that urn. All right, some are gonna be drawn and of those that are drawn, some might be green and some might be red. And we might ask the question, is it, what's the probability of drawing exactly K green marbles? And that's the formula for making that kind of calculation. So it's very, very similar to what we would do with gene ontology. Instead of green marbles and red marbles and drawing them or not drawing them, our urn is filled with the transcripts. All right, and these transcripts have gene ontology assignments and they have a characteristic of being differentially expressed or not differentially expressed. And you're doing the same thing. You're pulling these transcripts out of the urn. In other words, you're identifying them as being significantly differentially expressed. And then you're just testing to see, is there a relationship between these two characteristics, being differentially expressed and having a certain gene ontology category assignment. All right, but what happens if you run your blast searches and actually you don't have any good hits? Or is there anything else that we can do? Well, there's a number of questions we might ask. We might ask, well, does it look like it might be a coding transcript? We can just look through our sequence and see, do we find any open reading frames? All right, do you find any stretches of nucleotides where we have a start codon, a candidate start codon, a stop codon, and no intervening stop codons? Because that has the potential that it could be translated into a protein sequence. And given that protein sequence, is there anything that any characteristics that it might have that might lead us to believe that it could be a functioning protein? In order to find open reading frames, there's a tool called Warfinder.  But one simple popular one, if you're doing this on a case-by-case basis, is using Warfinder. You can just pop your nucleotide sequence into a text box, click Go, and it will give you this nice little graphic showing you the positions of all the different open reading frames that it can find along the sequence. One of the problems here, though, is that just because you find an Orf, doesn't this really mean that it's a real coding region? Because in a random sequence, you can find open reading frames. It's generally the case that the longer the open reading frame, the less likely it is to occur at random. The more likely it is to be something that's real, but that also depends on your GC content. Because if you have a GC rich genome, you find open reading frames all over the place, just by chance, even long ones. So we have a tool that we developed, and there's other tools that do this as well, where they'll try to not only identify all the different open reading frames in the sequence, but then test those reading frames using statistical models in order to determine if it looks like it's likely to be coding sequence versus just non-coding sequence. And our tool that we developed is called TransDecoder, and you'll be using that this afternoon during the workshop. So once we have that coding region, even if we don't find good blast matches to other proteins, we can still, we can mine those coding regions to see if there's any evidence that they might have domains of conserved function. You might find that there's a domain that could be consistent with being a DNA binding domain or an RNA binding domain, calcium binding, any kind of metal binding domain, or you might find other domains that show up that could indicate enzymatic function or other kinds of regulatory activities. So oftentimes if you find a domain match to a kinase or something that is a protease, chances are you're gonna find a good blast match to that protease or kinase too. But if you have a small region, it's like a calcium binding region or some kind of metal binding region, that might not be sufficient to find evidence for that in a blast search. But you can search a database of domains, a domain profile, it's called PFAM domains, hidden Markov models, and based on those searches of hidden Markov models, you can often detect signatures of these functional regions. So PFAM is incredibly popular. There's a website, and again, if you have a protein sequence predicted or just captured as an open reading frame, you can input your protein sequence into the text box, press go, and it will search it through an entire collection of hidden Markov model profiles, an HMM library, and it will return to you all the domains that it finds that appear to be significant or high scoring. Here's just an example of a protein sequence that has lots of different protein domains, and you can see there's a nice report here that shows you this is the name of the domain and this is where it's found, and this is the significance of that match to the domain profile. So this is incredibly useful. So even if you don't know exactly what this protein might be doing, you can still get some useful hints, like it binds DNA or binds RNA or has some other sort of functions related to the activity of these domains. Another thing you can do is look for evidence of transmembrane domains. See, you have many different types of transmembrane proteins with different domain structures, but they tend to have certain signatures, like a stretch of hydrophobic regions surrounded by hydrophilic regions, so the hydrophobic regions will extend through the membrane. And there's a tool that we use called the TM HMM, and this will predict the transmembrane domains within your protein sequences. Again, you just input your protein sequence of interest, press go, and it will give you a very pretty report, very informative report that shows you the predicted transmembrane domains if it finds any, and the orientation of being inside versus outside the cell according to these persons. So here, this case here, the blue indicates it's on the inside, the red part is the transmembrane region, and you have a little purple part here that's on the outside. And I'll show you the scores as well across the sequence. And another thing we can do is we can look to see if we can predict secreted proteins. So there are secreted proteins that have a signature. Again, this is a signature where you have a hydrophobic region at the very end terminus of the protein that's surrounded by small hydrophilic regions, and there's a cleavage site, a signal peptide cleavage site, which also has a signature. And there's a tool that you can apply to the end terminal regions of your sequences to look to see if there's evidence for it to be having a secretion signal. It's called SignalP, this is incredibly popular. Again, put your protein sequence in, press go, and it will give you a report showing you the evidence for any secretion signal. So in this case, we've got a few different scores that has a signal peptide score, that has a score separate for just the cleavage site itself, and then it has this combined score that integrates these two, and based on this combined score, it'll make a prediction as to whether or not you have a predicted signal peptide. So at the very least, if you know nothing else about this protein, if it has a secreted peptide sequence predicted, then at least you know that it might have something to do with being secreted and interacting with the environment or other cells. So going through and doing this one by one is something you're not gonna wanna do if you have a list of thousands of protein sequences. And each one of these tools, in addition to the web interface, they have command line based tools. So you can actually just run an entire set of proteins and get the results. But it's a challenge to try and integrate all that information, yes. All of these tools have, I guess, databases to query. Is there a way to have local databases? So you're not independent, or do you find that generally you need to have it in order to get these kinds of tools from? Well, for the web-based ones, it's all, you know, it'll use their server. But for the command line tools, you don't need to have access to the server. You can say you could run it. Okay, so you can put it back in the database, which they, okay. Yeah, you basically download the tool and any resources it requires to your computer, and your business run it vocally. It doesn't require having any sort of external activity. So we have a tool that we developed called Trinitate, which basically, it's both a tool and a protocol. It's a protocol in that you have steps to run to, from the command line, you're executing these different tools. But then, as a tool itself, it basically organizes all that information. It takes the results from doing your BLAST searches and your PFAM searches and TMHMM. And it basically incorporates all that information into a single database, that you can then generate a single tab to limit a report that describes all of these characteristics of your input sequences. And there's another tool called Trinitate Web, that we'll play with later, that provides you with a nice web interface for being able to interact with that data. So in addition to having a large report, they can put an Excel and you can use Excel for querying different things, or even just, you know, whatever your favorite way is from, you know, using grep and other command line tools for extracting information from that file. The website allows you to interact with it and perform searches and gives you lots of, you know, pretty graphs. And it also incorporates your expression data, which is one of the key features. Not only do you have your annotation data, but Trinitate Web will incorporate the expression data so you can go between the two. You'll find genes that look like they're interesting or differentially expressed. Click on them within an interactive plot or zoom in and click on them in an interactive plot and automatically go to that annotation report page to get the sequence information or understand what the domains and whatever functional information you might have. Of course, there's no substitute for experimentally validating protein functions. Sorry, I don't think there ever will be. So this is key. If you find something that looks interesting, you think you know what it does. It's super important to you. It's not going to keep you from doing an experiment. Okay, any questions? Now, before we go into the workshop activities, the practicals, okay. Yep. I guess we'll work the other way. Right, right. So this would be, right. So there would be a lot of transcripts that are going to have, and finding like RNAs is sort of like another challenge in itself. But yeah, it has an obvious coding region with a good blast match. There's a way to put a filter on it to remove all the things that are obvious for coding genes. But of the ones that remain, trying to discern which ones are actually truly non-coding versus being parts of other coding transcripts. Because maybe the coding region was too small or maybe you're looking at mostly a five-prime or three-prime UTR for a transcript. It's a coding transcript. That kind of study is definitely challenging. So I guess it's still there through any form that's what we're looking at. We have a tool that was developed called Slinky. It's L-S-S-L-N-C-K-Y that will identify conserved non-coding transcripts in human. Now you've discovered that most people don't have the software. That's right. So Jenny Chen and Naveed Vragev's group built this out, published it a couple years ago, and it's freely available software. So if you're looking for, again, if you're looking for conserved non-coding RNAs, that would be one way to go. But link RNAs in general, again, it's one of those things where it's part art and part science and different people will have different definitions for what they're going to call a long non-coding RNA. So in all different counts too, so people will say there's many, many thousands of them. Others will say, no, there's really a small number.  But it's a tricky thing to do.


Hi everyone, Joe for jazzy's casebreaks.com. Happy Tuesday coming at you with 2022-23 Panini Revolution basketball eight box random team break number three one spot gets you two teams all card ship Big thanks to this group for making it happen. Let's double you up like sir mix a lot and all 30 basketball teams are in Let's roll it randomize it four and a four eight the hard way one two three four five six seven And eighth and final time After eight we got richard down to ryan four and a four eight times The teams two three four five six seven And good luck eighth and final time. We got the hawks down to the magic All right, so trade window is open richard.  Welcome back everybody. No deals were done. So this list right here remains the same Raymond with that double last spot mojo one spot gets you two teams And let's pop open this master case here So we'll go one two three for this inner case four five six for that inner case It's three one two three for this inner case for uh for random team three And this will say for random team four Revo random team four And let's see what we got in here. Good luck everybody all car chip Not every box has an auto But I think each inner case says what three or four autographs in there Looking for different parallels the galactic parallel Super short print. I believe Falls one per case One for master case Dodgers pirates on in the background. They're in pittsburgh. They're down a couple runs In the top of the seventh and I'm sure by now we should have That's probably has some hoops action happening now too, right? Yeah, first game of the uh the triple header Hox Celtics hox are at Celtic Celtics up 65 56 Timberwolves nuggets on nba tv a little tv a little bit later about half an hour from now and then clippers at suns tonight suns looking to close things out and Look at this. We're gonna start off with a chet home room sunburst Nice good start. That's going to go to tibode and the oklahoma city thunder Nice start Now these are the So this pattern back there, that's the uh What's my call? That's the base versions right there and here are the uh, that's a parallel Trey man. That's a fractal parallel. So you can kind of get kind of get a feel for the pattern here We got a palo ben caro shockwave insert And that's going to be for ryan harrell and the magic dj lydel the astro parallel Got another palo ben caro groove parallel for ryan. He's pretty good that orlando team's going to look Probably it's going to look pretty scary sooner rather than later box one in the books next one So we got three closeout games tonight In the nba. So the Celtics are up three one. They're trying to close it out over the hox Nuggets are up three one. They're trying to close it out against the timber wolves And the sun's looking to close things out against the clippers The clippers are going to be Are they are they without hawaii lennards today? They're already out without paul george I don't know if he's going to play tonight Ben caro by the way Wins rookie of the year award in a runaway. That's the latest Claiming 98 of the 101st place votes You know speaking of hawaii lennard. There he is 29 out of 149. I don't I don't think he's going to have an impact on this game I'm just kind of unfortunate Yeah, I think I think he's already ruled out. Yeah ruled out Clippers raymond with the clip show I'll try to try to get next year I've got a chat home room just a rookie base. That'll be for tibba and the thunder And mithurian had a nice season. This is going to go to the pacer seem flat gets the groove parallel There's yabari smith jr Zion williamson Lift off die cut it's yabari smith jr. Non-numbered astro parallel For The rockets that's going to be tibba and an autograph. It's jade and ivy nice rookie auto for detroit That's tibba. Davey Got randomized the pistons and gets the 90 out of 100 fractal parallel jade and ivy Nice and we've got mark williams 43 i75 nice sunburst to 75 adam with the hornets Lebron james the big big game yesterday 2020 game 20 rebounds There's benedict mithurian again fractal parallel There's box two Seem flat with the pacers Another box ponder joe's on the pirate all right We have a jailen sugg's impact For orlanda that'll be for ryan. That's to 36 out of 149 Got an anthony edwards die cut for uh nick and the timber wolves Got a jailen durin a rookie card astro parallel All right next box What are the news is out here king's is uh deer and fox plants play game five I think is tomorrow for them despite finger fracture Yeah, lebron's first 2020 game See jimmy buller putting out 56 points last night Putting the bucks on the brink Be that quite an upset there. All right another box. We've got a rookie Cosmic 41 out of 99 tyrese martin That'll be for richard and atlanta Edwards fractal parallel Got price uh mcgallon's astro Can you lofton groove Halfway through this intercase break Oliver what's going on? How are you? All right next box So van caro runaway winner for the uh For rookie of the year voting got 98 First place votes one second place one third place vote In case you're wondering who the others are that were in the mix Jalen williams the uh j a l en jalen williams from santa clara the second kessler walker kessler Had uh had two first place votes, which is pretty impressive, but he finished third overall benic methorian Was fourth he and murray Got a few second place votes and a dozen third place votes and jaden ivy jalen ivy Jalen ivy We just pulled his autograph a little bit earlier for detroit jade and ivy uh Was fifth in voting with three third place votes. So those those are some of your top rookies right there. Here's paulo ben caro astro parallel for uh For ryan and orlando Adam what's going on adam s in the house Doing pretty well and and joe doomars pistons autograph Jade and i've and jalen duran right is that is that the other piston that i'm mixing up those names? tibault with joe doomars And then we got a dale and terry seven out of 50 Cosmic for steven and the bowls jade and ivy jalen duran there we go and then dale and terry jaden jalen dale and other jalen jalen jalen two jalen's okay c Yeah, not to be confused jaren duran or duran duran Is jaren duran jaren duran or jaren duran? I don't know if i've ever heard his name pronounced in like a baseball game. All right We've got a chet holmgren groove They're not numbered but a parallel nonetheless going to tibault and the okay c thunder There's a base chet holmgren jalen suggs astro And then there's a jalen green jaden jalen jalen green dale And we've got a jeremy sohan For the santonio spurs richard with the spurs i feel like He's got he's gotten a little love. He's got some a bit of a ceiling here And tracing there's another jade lin williams that declared for the upcoming draft It's gonna get very confusing Yeah, i'm liking michael bush's work too oliver Let's see what he can do here Nice and takes a walk There's ojana. Yeah jason jaspy's right It's almost as if the thunder will be uh Will be they're obligated to draft him ojana obi goes to bill bell And the raptors Two more boxes to go Yeah, i like it oliver having You know having those young guys gets playing opportunities i think Kind of re-energizes the veteran players i want to say You know Some scrappy youngsters Think it's good Oh chris taylor yard Three run jack that would be good to have that chris taylor Show up more often Dodgers up a run now 422 feet And we got a jague laravia For the gris that'll be for adam cupperman And the grizzlies And we got a djunta murray 37 out of 50 Uh cubik Got suspended a game for arguing with a ref i apparently have a history We've got a donovan michael 34 out of 99 cosmic for the calves that's for kreg kreg m Wow three hits in his last 11 games and then three hits a night There you go. Maybe he's uh I think something is clicking There's a chet holmgren groove parallel for Tibbot and okc Last box coming up Next intercase in the store ladies and gentlemen. Check it out. Jaspy's case breaks.com Feel like revolution pretty underrated a lot of nice stuff in here And I know we have one box left, but we have yet to see that galactic parallel Which is generally one per master case So that's something to chase Speaking of here's one of the jailen williams is You think uh this one's uh arkansas jailen williams Not drafted as high as santa clara jailen williams his teammate, but Still having a still having a solid season still contributing. Could they fill a team with jailen williams's? Here's evan mobily Future frame 19 out of 60 For the for kreg m and the calves And here he is again astro parallel Jalen williams for okc And his teammate Sga fractal parallel Let's see what we got another palo ben caro We've got a ja marant fractal And is that an autograph coming up? What do we have here? It is it's a johnny davis rookie auto for the wizards nick with the wizards. You're a wizard nick 22 out of 25 I got lebron james and we got tyrese halibur All right, there you go ladies and gentlemen. That was a revolution basketball Random team break number three Yeah, I kind of do like the uh the no guaranteed auto format here as well All right, so here's a quick little recap on what we had and it kind of puts a little more emphasis on parallel hunting, which I think is Which I think is pretty fun All right, there you go ladies and gentlemen, i'm joe for jasmiescasebrakes.com Thanks for watching. Thanks for breaking us and uh, we'll open up some more hoops with you next time. Bye. Bye


Well hello and welcome to Understand Men Now. I'm Jonathan Asley of JonathanAsley.com And I'm so excited to be shooting this short video for you today. Our topic, Why Men Come Running When You Lean Back. Now really quickly before we get started, if you're new to my YouTube channel, please hit the subscribe button and hit that bell so you get notified of new content. Okay, let's talk about those 50, wait, 50% Is it 50% or is it 50% of men Who keep who come running when you lean back.  We don't fall in love when we miss you In fact, I've shot a video about then one of the myths about How men fall in love and the whole concept and missing but I want to lean in to this conversation of leaning back now On some level leaning back makes sense if you're a woman who comes who puts in way more Effort than the man puts in effort then it's important to come back to the 50 So I want you to think of like a football field. I'm a man. I'm gonna think football terminology I know thankfully a lot of women love football is There's two goalposts and in the center is the 50 yard line and If you guys are right at the 50 yard line, you're right there together That's the perfect place to be but if he's over here and you're always coming here that you've passed the 50 yard line Then I do recommend leaning back to the 50 yard line of effort in other words effort should be mutual It should be in other words fluid if he puts an effort you put an effort if you put an effort He puts an effort into the relationship. You're investing Equally at the 50 yard line a relationship So there is some value from this understanding of leaning back is from the perspective of if you've given too much to come Back to center great advice love that However, many of you have been conditioned that this leaning back is going to make him come towards you and That's true for 50% of the men who have a needy Anxious needy attachment style.  In fact, if you're not familiar with the book Attached the book attached it talks about love attachment and love attachment are both Anxious attachment styles and avoidant attachment styles. It's how we attach ourselves to another human being So I highly recommend you understand how this read this book and understand that this lean back concept might get him running back to get you But it's coming from that place of fear inside of him not fear of and the fear of abandon Not because he values you Think about that Wow, wait pause He's running back because you've triggered his abandonment issues and he's coming back to get love from mom or dad Which he didn't get as a child or is he running back because he realizes he loves you.  It's just a matter of degrees We have some people on the incredibly Emotionally unhealthy realm those narcissists those sociopaths those bipolar and and borderline personalities Men and women alike. Okay, and no disrespect to them I'm just saying they're deeply troubled and makes them difficult to be in relationship Then you have those all the way at the other end of the spectrum that are relatively secure They've healed their childhood wounds and traumas. They've recognized that they take personal responsibility for their choices in their own life So do you see where I'm going with all this is every most everyone is in the middle and a lot of dating advice is designed to trigger the unhealthy emotions with us that comes us running back Because we're in fear and not because we're deeply in love And I'm here to say that everyone has to begin by falling in love with themselves first Hence why I wrote my book what the heck is self-love anyway. I wrote this book because When a healthy person or at least someone who's healing and is working on emotional healthiness is Meeting someone else that's emotionally healthy Emotionally mature they have a better chance of being a relationship So you don't have to play these leaning back games to get him running towards you Because he's only running towards you because he got triggered by abandonment issues most likely And that's not meaning and you're gonna go through this dysfunction over and over and over again This is why it's so imperative that you this is why I'm a big proponent My book talks about it is beginning a daily practice of personal development self-help and spiritual work So you become confident in your sovereignty you retain your power Because what I've witnessed with so many women you give your power away to a guy You you basically you a you're in it's incumbent upon him for him It's incumbent upon him to love you for you to feel good about yourself And the minute he has doubt uncertainty fear And god forbid he projects that on to you his doubts fears and uncertainty It's going to create a whole chaotic mess Just understanding i'm just here to talk about the leaning back advice It's designed for you to come back to center And it's not a manipulation technique to get him coming back Okay, and quite frankly it's really designed for you to lean into your own self love your own empowerment Don't give your power away lean back into your own power Because when you're in your own power Then you should attract a person that's also in their own power And you may not be able to fix the guy that's got attachment issues But you can certainly move on to a more healthier relationship once you begin on loving on yourself And that's my invitation for you today Okay All right. I'm sure you have a lot of questions. I'm sure some of you are even going to argue Please post a comment. I want to hear about it. Ask a question. I read almost every comment I do my best to respond. So feel free to get a conversation going And if you feel like this had value for you and you'd like a little more of a personal touch Hit the button below to learn about private coaching to schedule a one-on-one discovery call with me All right. I'm going to wrap up this video as I always do first starting off by giving myself a big gigantic Jonathan Bear hug.  Hugs are a great source of love and we can always use a lot more love in our lives And that's my request of you today Thank you so much and wishing you a super duper wonderful fantastic day. Thanks. Bye. Bye now


Well, thank you for coming I'm for so get any I'm one of the DC developers I will see work on the muscles for those who do not know what it is. It's like something out What's get in a video player? We talk a bit about video land pretty fast and then Talk about multimedia and what you want to hear about which is next release of you see so the not so technical part We are video and we are fetching people. We have not a large amount of member We only survive of donation and ads and we have some Day-to-day video with a lot of media guys. We have also bounty. We talk about this later This is us three years ago in Dublin So we manage a lot of project in open source including encoders Decryption libraries for glue everything you might know about So you see what you make know about as you call Which you have on your desktop? so It was first student Experience on the token ring network. We were trying to play Doom and Since this is token ring network. It's not possible So we needed a new network, but the university Disabates they just gave up the chance to upgrade that network if they could justify the needs so They had a satellite on there on the roof and we decided to stream video on that network And that's how the first VHC ID went So let's keep this one. So today we have more than one million donors a day We have more than 150 million users on every platform with cannot count linux linux users first and we We passed the two billion downloads last year we are on one of every six max top windows 15 software every time and top ranking almost up platforms and we just Had our 15 birthday this year That's getting me. Yeah. Thank you. We are also on every platform including ways to if you remember I think It works and so Lewis. Yeah, there's someone walking on the rice We thought almost every collect so our distribution is currently 2.2 We only support XP With everything else and wait We know support and wait six with a new design We are still supporting the Android 2 devices We are also on Chrome OS because we did release It We didn't took the Android version and did some adaptation First adaptation and doing on doing the time of Chrome. So we have most playback abilities Which is also present on the Android version. We are on iOS. You might know Also on Apple watch Anyone knew this? No We are on a poor TV recently. We did a release We are winner T Tyson Which mostly looks like and And what is coming is we already have and wait TV working on most of Prince said top boxes We also have five Amazon fire TV working and With the update of the Xbox to with no stand we will have Xbox one working So, how do we pay the thing? Well, first rule is everyone everyone in multi. There are things he understand everything But in reality, no one does why? Everyone does his home cooking recipe Based on suppose back. So we have lots of kind of codecs and love of lots of containers You know what is codec and containers one stop or an issue? Yeah So containers almost everything is broken. Of course MP4 and TV most okay. Maybe not MP4 anyway There's some really bad candidates Or the VIP FFV flash yeah things hope for this which is an open Container, which is we said a lot of laws And some are designed just for 101 codec, which is the most useless Okay Yeah, so maybe I can There is lots of by design Content is usually paid in credit because people and code it works. But in fact, it is wrong Codecs are yeah, anyone knows what is a codec profile? Yeah, but you just Add some abilities to some codecs and sometimes people add ability to codecs instead of creating a new codec For example for 3d you can get better in the session. Maybe I don't know but sometimes she's wrong and this is brings a lot of more complexity And some people are trying to fit one containers I'll give some example and Some people also modify some codecs to fit a specific content, which is even worse So we are in World 2.  So people will use broken thing and say Your player doesn't work Then your player is broken, please support it and because usually those people are big players in the industry Then we have to support it anyway So codecs Maybe it's the bad joke We have people putting MP4 in MKV, ASF in MP4 Although this has some flow, we never know what the granularity refers to anyway Some people are forking stardust like the NPEG stardust is forked into the Japanese airweaver organization So it breaks EIT and EPG And subtitles There's some issue with some strange recording format for Microsoft There's some AVWIFT which has junk section which are supposed to be junk But some Chinese products are using junk to put video in it Why? No, no There are some Panasonic things which are AVC intra which are supposed to give initialization information to those codecs to build frames and Because some hardware decoders are broken Someone has to remove both initialization programs and put it in the hardware and then you have no way Instead of building it inside your player and guessing what the parameter is there Well, so that's a lot of example and Well, Apple is pretty bad But at least as well there's lots of issues with the quick time things Flash and most recently with HLS we said it's a dirty act and we talked about it. So it's technical parts Yeah, this is not this wasn't technical PLC is layered Everything is done with plugins which are loaded by capability. You can have an input video output and thing well there are priorities and Prior They use probing on the stream on the input stream to guess what which format you are trained to handle So for example, this is a global layer of the chain We you have an access which is your World data which goes into the demixer which solve things which sends each stream to a decoder and turn up output with given If you want to put some fighters or for audio or video, so the example is a mp4 5 which could be G-Zip Why not? You have a file access a decompression to figure You go to an mp4 demix and you have one mp3 stream Which goes to the line-up first audio output You will have x3 connect which goes to the x11 video output and spu which is Burnt and on to this video output. So there's also packetizers which are trying to sync with the stream and rebuild We sync And can handle packet losses and everything so technically you can have an mp3 Stream starting with ASCII. I love kittens and you can Interactive kitten picture and we'll see can read it if it work if it's yeah so Because we have done a lot of crap We are shooting outside to food Because people are testing every crap. They are producing with VC So if something works with VLC, it doesn't mean this is correct So we arrived to what you want to hear freedom be a VC. This is free as freedom free as beer and free as VLC we will have The 3.0 release soon, maybe No, we will be there with a wax name code, which was the previous name code which has been we name it because TV Pratchett died so This is more than six thousand commit which is pretty high We have many regression we are working on it right now We mostly worked on the mobile releases and do it and do it and do it Are you right? Sorry and of course we are late. It was supposed to be really fast It also will be an unified with this though. You don't have to guess what the Tizen 00.9 is if we try to manage the library version and The minor release and the same so it should be VC free everywhere On the input side, we have a Lib archive and new access which cannot all envy compressed format We have support for DVD T2. Sorry Probably is not used in Singapore. No, yeah, okay We have support for SAT VIP Probably some people are watching TV with this and we have also support for HTTP to find on the voting side We have new and the emptiness as you will come February Bonjour Discoveries we know have network browsing working over NFS SMB FTP We did rewrite the UP and P module which was quite broken. So it should not work We will and But to handle all those credentials. We know have a new key store API which combined to your K-wallet on everything you are using on iOS to handle your windows show and lookings one surprising thing is we will support torrent so you could Possibly paint torrent directly with VC, but We will not enable it in our own releases. So you have to be VC by yourself. Guess what? New support is we have support for do the MVM more which is was a broken thing if you remember from here We have zero copy for G streamer input. Yeah, we have G streamer input support We did fix a lot of DTS audio issue we had And we have better channels reordering and larger number of channels On the blower side, we did really improves the thing especially for the Java PD thing For our Libre We have support for MVD subtitles and fonts No words really well We have support for Japanese free to view With also decryption library, so you just have if you are in Japan, you just plug in your own BK scarred and you can watch the free streams and even record if you and We have support for the ones sake, which is lower quality It works everywhere now in Japan if you have a Regular is dbt adapter or a mobile adapter On the new codex mostly professional codex or Meeting codec we have TDSC support. Can you push ash Qx go to meeting codex? support for VP9 the Google codec, which is quite interesting and Mostly professional GPAC to present over TS Supposedly we have support because we didn't find any sample so I wasn't able to test but it should be Correct according to the spec, but as mentioned before someone might have did implement the spec very well, so we'll see And that is coming again also. This is Dela for those knowing Dela or not. This is The really next generation codec which will come after HEVC Which is targeting to be the best codex ever for its generation For those who know Opus is the same guy doing such a job, so this is quite Yeah, sorry. Thank you. Okay On the current codec, which are H2C4 and HEVC which is the 4k codecs and high-performance codec We have better support for raw streams We have improved Placetized results. We have arm optimization. Yeah, because we focus on module or mobile We have ASM optimization for those things as well And we didn't introduce a certain kudos decoding because one issue we had with mobile port is that all our Mobile application what had better performance than us Just because of hardware decoding VLC wasn't designed to do hardware decoding at first So we had issue and we had to we write the way to do asynchronous decoding. So now if you try any mobile version of VLC, we fill the gap with any other Competitor and we should ship the same performance when you are doing hardware decoding and Votes on Windows platform my height might have Experienced the awful rebuilding phone cache on start And we finally got rid of this crap so on the demo exercise See we're going pick TS have been We worked most totally So we cannot do a lot lot lot of broken things like Encrypted programs and free programs selection automatically or not PMT path. Yeah, it's nothing for before you We'd also this plate the impact yes To be able to under Multiple standard because we were French guys. So only targeting the French standards So now we are about to end all the American startups and the Japanese standard and maybe the Brazilian startups soon Working on it. We have support for the Korean startups. Well, which is Don through mpeg for SL Someone from the IETF join us recently and is working on doing MKV optimization He's working on C++. He's really talented. So You should gain a lot of performance. We have also support for fragmented mp4 muxar Which will be used in the next slide Also support for DVD audio anyone knows what it is Remember what DVD audio was? Well, that was audio high-quality audio about DVD We have support right now. So If you still have one it might work we are support for a gdvd, which is also a date standard Special evil things creative work if you remember the sound blaster formats or really old format I Did fix both things and also the really really old adp cm Codecs on two bits. They are really crappy audio Because we had really a lot lack of space at that time So it was really really highly compressed in bad way, but now it works on the output We have a direct 3d 11 on windows. We have a new Wayland video output We dropped the Yeah, that's basic so fast and I don't remember this at my part Maybe I can ask for you I don't know I have to dive into it. Yeah. Yeah, this is not my part. Yeah, sorry Android the open gel module is not by default. It was buggy noise was fine So we gained so performance Then we do the track have been reworked for Joe so we fix the lentisee issues The video surfaces also have been improved and we are support for Tyson On the other acceleration we have direct 3d 11, of course we have Raspberry Pi VC one sounds Raspberry Pi with hardware decoding. We are we've useful HEVC up to 4k on full hardware decoding probably only on the nvidia 960 cart on from both ones And with omex and we did fix a lot of things in some some media collect Which was really really broken and windows Dxv2 We will provide support from Comcast You will be able to stream to directly to Chromecast It might involve transcoding It works right now We see working on it, but basically it should work More or less Chromecast wasn't designed to do this. So it is a hack to Have the Chromecast fetch the streams you are transcoding from VRC which acts as a web server It works On the subject of the subtitles side We did we work the rendering styling things everything should be correct We have a new TTML module which works also really well. We have the Japanese Standard week which also have been worked We have closed closed caption fixes for Really really odd issue we had Creative caption also support in various Mux formats and the YouTube SBV formats you have on some YouTube video This is basically just TTML in a different format, but anyway So a Syrian guy Centers have both fixes. So now if you have a really complex language And had issue displaying characters Everything works. We also have phone for back. Well do well your font didn't had the expected character It was just displaying a square or any junk. No, it should work also Correctly and on the Windows and OX is excellent version. Sorry. We also have text to speech output for accessibility so On the adaptive streaming do I still have time? three more minutes. Yeah For those not knowing what adaptive streaming is is when you are watching video It's not really bad quality and it improves with your bandwidth. So it just providing alternative on bit weight content supposed to save bandwidth and improve user experience Mostly use for life very many formats like see Microsoft smooth streaming which Is back to the key an XML and fragmented and before strip with strip in it params. Yeah, it's not We interesting One is fully standardize, which is dash XML based Yeah, and the Apollo one which is HLS Which anyone knows what is as the m3u playlist? So this is just a playlist and HLS took a playlist to make it the basis for its adaptive Streaming formats. So we barely releasing a new format every six months because this is just a pile of acts They are trying to do what every other form of standards is doing. So this is really really really bad really really bad I did work a lot of this And for the turn actually this is used by most streaming company But in the latest specification, it works well and on the 3.0 it should works perfectly and We have also a dope HTS format. So We skip it, sorry We have a content which are you know on multiple format. So if there is a content in a single container format Where you can switch? Quality you can just append segments and Our demuxer will handle this but in the other case we have to work around so we had to make black boxes around our demuxers and do output stream remapping In case of quality change or format change With this was really tedious So we are now able to handle quality change over different formats and yeah, this is really complex. Yeah, I'm finishing So finally we had many broken module doing adaptive before and now we have a single Adaptative module with does everything because the dash status allow us to remap every other Format into a dash subspec and everything works Well If you're interested you can contribute we have many list if you want to contribute with some Money we have bounties We have some tasks on our wiki if you are wanted to buy to work on it Please tell us if you can succeed working on it. We will pay And we have the also the summer of code. We have I think for a few projects on this Well, thank you for listening. Maybe it was bit technical But I believe you got most the lines Yeah, if you have one question I can give you some basic chocolate Which is limited edition Christian now Window says works. Yeah, I don't know why it doesn't work. We are on the window store. Yeah. Yeah VLC is library There's live VLC which I'm but mostly of the features I've been talking about and then you have the UIs and And the Windows 10 UI is different because this is different platform. This is different language The Android UI is different the iOS UI is different sometimes difference in Capabilities because you I bring some iOS things fingerprint or browsing. I don't know So that's mostly the reason but for VLC for we have we are planning to unify the UIs So you might get Something like Windows 10 UI on your Linux desktop I know but the Linux UI currently is really old Probably we should have it yet Yes, Tyson does it really work well right now But it's the same as it felt some time on Linux anyway, so yeah, yeah much Yeah Okay, so if you guys want to discuss more, maybe you can discuss it. Yeah, please


So you got to be able to swap out parts of that workflow easily. And a lot of that comes down to tools and process. And I try to keep my workflows as flexible as possible because you never know how someone's going to want to work, or they need to use their server or whatever. So you want to control as much as possible because when variables come in, you can account for them. You know, okay, well, I know how long it takes me to do this stuff in mind. This is going to be different, so I'm going to have to increase my quote because we got to use their server or we got to do whatever. So tools. Tools are often the easiest to control. You can control what tools you're using. And the more familiar with your own tools, the better you can anticipate problems. So if you know your server, you know how long it takes you to get live on it.  So first off, you can start with hosting. We don't believe in cheap hosting where I work. I always say if you spend more on Starbucks than you do on your hosting, you're doing it wrong. Case point. So we tend to host on AWS using Plesk as a control panel. AWS, we use because a lot of our clients already use AWS because they're SaaS service providers. So they already have internal staff that can manage the server. And it's kind of robust infrastructure. So if AWS goes down, everybody's going down. It is self-managed, so you do have to have a certain amount of knowledge to get up and running. But it's automated. You can automate all those things. Once you get used to it, you can script a lot of things. You can spin up a server like that when you're ready. So the Linux distro we use, we tend to use CentOS, but it doesn't really matter. You can pick whatever you want. And we tend to use Plesk Onyx for a couple of reasons. I like it because it's got a really powerful management stack. You can edit Apache files, Nginx files, PHP settings right in the panel. So you don't have to SSH in and remember, oh, where is it in this distro? Where do they keep the option files? Where's the configuration? It's got some pretty advanced integrations. It's got one-click Git deploy right in the panel.  And just when you're ready, pull, pull, pull as you go. And that's right from the web panel. It also has built-in let's encrypt. So you can get a certificate really easily and it automatically renews. You don't have to worry about setting up weird deploy robots to renew your certificate every three months. And it's got a really good WordPress toolbox. I can basically spin up a WordPress instance. It lets me create sets of plugins and themes. So I can basically one-click. I spin up that instance with all the plugins I want without having to install them manually. And it's easy to clone from dev to live, one-click. So it saves you a lot of time there. So key takeaways from that. Hosting, you want to be familiar. You want to be auto-madeable if that's a word. You want to be flexible. And you want to have, if possible, an easy dev stage layout. I tend to use Elementor Pro with Hello Theme. I'll get more to those later. And then my standard plugin set kind of includes gravity forms. I like it better than other forms because it's really powerful. I can do stuff like if I want to build a ROI calculator, I can do it right in gravity forms. I don't need an extra plugin. And that's my contact forms and all that, the normal stuff. If I'm just doing, if it only needs a contact form, I'll a lot of times just rely on Elementor Pro's form plugin because it just comes with a form thing. And it's fairly good. Advanced custom fields for custom metadata, CPT UI, which I think there's already talk going to be done on those two later. So I won't go into those too much. Yo, that's what SEO guys like, so I put it on. And I use WPS CSS, which is a SAS compiler that works in PHP. Part of the reason is because Hello Theme actually includes the SAS files, so I can upload SAS files, have it compile, and I don't have to do an extra CSS file. It's the native theme CSS. And as a kind of a side, I do tend to then use the WordPress theme editor a bit too much because I just added the CSS files in the theme editor, which I tell people never to do. Then kind of a few extra helpful extras. I use custom icons for Elementor, which lets me upload a SVG font file. And anywhere that Elementor has like an icon, I can replace it with my own. I like custom skins, which lets you create custom loops in Elementor. I am hearing rumors that it's not being supported anymore, so I'm kind of trying to find a replacement or hoping that Elementor actually ends up just making that as part of their core functionality. Because it's nice, because I can create a custom skin for the archive post so I can make it look how I want instead of the two options that Elementor comes with out of the box.  I like Seed Pro coming soon, Seed Pro coming soon pro. Elementor has a coming soon functionality, but I like Seed Pro because it lets you bypass it with a variable, so you don't have to log into WordPress to bypass the coming soon page. It's really good when your client needs to kind of circulate it around their team. You don't have to give everyone access to WordPress. You can just send them a URL with like bypass equals with whatever variable you set, and then they can share it internally without actually having to give, you know, log into everybody. So when the CEO wants to see the new website, they can see it without having to find a new password. And for feedback, I've been using lately project-huddle.io. It's a WordPress plugin that lives on another WordPress instance. So you kind of spin up your own WordPress site, install project-huddle, and then you put a little bit of JavaScript on the site so you can use on, basically, you don't have to worry about WordPress, you can use it anywhere, and it gives you on-page commenting. So like, just like a PDF comment, you can like add a little sticky note, make a comment, and you can discuss, anyone who has access can discuss. We were using Bugherd, but Bugherd, they changed it where you can only see your own comments. So it wasn't good for James discussing it. So lately we've been playing with that. I've been happy with it so far. So Elementor plus Hello Theme. So I don't know if you guys are familiar with Elementor. It's a fairly decent layout plugin. It's good because it gives you a lot of options, there's not a lot of abstraction, like you don't have like that visual composer view of just blocks. It's actually WCWIG, and you can edit right in browser so the client can put their cursor in where the text goes and just start typing. It's fairly performant. It's a layout plugin. It's not going to be a rocket no matter what you do. Very few I've seen that are really fast anyway. There's minimal accessibility issues, so if you're working on Terio, that's a good thing because most web designers don't even know that accessibility is actually a law on Ontario that your website has to be accessible. It's fairly customizable, and the pro version gives you like the ability to custom headers and footers. Hello Theme is nice because it's totally neutral, so it's really nothing to it. I'm a person, I can write probably CSS faster than I can find options in the WordPress Customizer, so I just write my H1 tag, CSS, write my body CSS for my thing. I don't have to dig in through the WordPress editor to find out how do they organize their customizer. I don't know. It's nice because what I've done is it's been recently added to the WordPress repo for themes until about two weeks ago. You can only get it on GitHub, so I just forked a version. It has a lot of CSS files with the standard things I customize, like I have a typography of CSS where I just throw in my options. I have to remember, oh, what selectors is it for header tags for each different thing? Yep. Well, hello's been around for a while. It's been around for about a year or two. They recently moved it to the WordPress repo, so you can just install it from WordPress. I still use the Git repo because I end up customizing it a lot, and so that's the URL for my branch of it, which has a lot of those optimization options in it already in SAS files. You go in, add the variables, add the stuff, and it compiles new SAS for you if you're using WPCSS or if you're compiling locally. The next step is process. It's a little less control here, but you still want to standardize it to a certain extent because you can kind of plan your project that way. So usually we start wireframing. Then we go to move to design, then the build, which is actually taking the design and putting all the pages in. We test and optimize, and then we launch. So here's where I'm going to lose the room, all right? Before you start any work, get content first. I mean it. This is the hardest part because web design is one of the few industries where designers were like, okay, we'll design it, and then you give us the content. If you go to design and add for print, you get the content first, then you design the add. You want to design a book, you get the content first, then you design the book, right? And getting the content first saves you a lot of headaches down the road. What happens is having the content first means the client can figure out what they really want and content's the hardest part for a client. How many times do you talk to a client and they're like, oh, we have a website right now, I'll just edit the copy, I'll get it back to you in a week. Two months later, you're still waiting for copy. And realistically, you don't need all the content. Sometimes, depending on the size of the project or the speed, I say, get me the homepage, get me your longest product and your shortest product, final copy, because if you have the two extremes, everything in the middle for a large product website is easy to figure out because you know, okay, I need to be able to have this much copy and this little copy and it still has to look good. So, wireframe through content. I tend to wireframe in browser. Either using a framework like Foundation or I'll do it right in Elementor with Hello. So, this way, the client can see how their content flows. They give you a bunch of content and they see, oh, well, realistically, once on a page, I think these two points should be in a different order or we need to say this further up the page. They have a better idea where they're called to action because when they write the copy, they don't necessarily think it calls to action, but then as you're scrolling through, you're like, oh, wait, we really should get them to do something here at this point. And the other thing about wireframing is they're not distracted by weird things like poor image choice or color choice.  Right? If you do a wireframe, it takes all that away, right? They can't be distracted by the colors that they don't like or the image choice they don't like. All they're worried about is content. So, I'll kind of show you an example. So, this is one we recently did. Realistically, it's very simple. This is done right in Elementor. You know, a little bit of interaction. You know, the client video, a little bit of stuff. In this case, we're doing the copy. So, I was able to use, like, lower Mipsum a little bit more of the copy just because our copywriter is writing it. So, I had a little bit more control over what the final product was. So, another page. So, this is like a product, a market vertical page. Right in Elementor, the client can see it, give feedback, they see it as an actual page. So, potential problems with wireframing? Clients sometimes have trouble visualizing it, right? They'll go, well, I don't get how my, how's it gonna look with pictures in it? But that's not what they're worried about there and it's trying to keep them focused, like, you're not worried about pictures now, you gotta worry about, is this the right order? Is there the right emphasis on certain points? You know, are we talking about the right thing at the right time on the page? You can burn too much time trying to get things just right. Just, it's, you gotta be fast, you gotta be iterative, don't waste too much time on these. Can trigger a lot of copy revisions? They can, once they actually see how the copy looks in order, they wanna rewrite it. Which, it's a problem but it's a good thing because they're gonna get closer to what they need. So, and then we move to design. Often I'll move to an offline editing tool for the initial design. Like, I'll go to, like, the illustrator or experience design or if you like, what else, like, any of the other tools. And I'll just do, like, a static mock-up in that kind of based on the wireframe. Because, you know, most designers, wireframes are first step anyway, so you might as well show the client it. So, and then once I kind of get a first feedback on the kind of static version of the site, I'll move it into Elementor and just start designing it. I tend to try to plan my reusable blocks at this stage. Elementor lets you set global blocks and templates. So I try to start planning ahead going, okay, this is probably, you know, this section can be reusable. I'm gonna make this a template. I plan ahead. I also plan out my accessibility here just so I know, you know, everything's got the right area tags and things like that. And I build out any page templates here for those key pages. You know, the whole trick is make it as reusable as possible. And I write my initial CSS at this stage. It's nice because it lets you write CSS on a per page and per element basis right in the tool. So if I just want, you know, this one type of, like, call-to-action button to look a certain way, I'll write the CSS right in that element just to get it right. And I can iterate quickly that way. I think a client signed off. So, you know, you don't move past this stage until the client says, yes, I like how this looks. Potential problems, you're not thinking responsibly. You're just worrying about the desktop layout. One problem I do have with Elementor is it's written desktop first instead of mobile first. I tend to think mobile first.  And as a result, you don't have breakpoints already set for those huge screen sizes. It kind of, your last breakpoint in Elementor is at 1024, which, you know, most people's screens these days are bigger. So I'm always writing a little extra custom breakpoints for the big screens. Get two meritorious tools. So you put a widget in or an element in and you don't customize it enough because you're like, oh, I don't want to have to work on this or, you know, it's got to be done this way. Like, oh, it's a call to action. I have to use the call to action element instead of building one from scratch. Like, and you make it a reusable block. To marry to your vision. So your design, it's got to look how I want. Let the client give it, the client's got to give feedback.  But there's some things I tend to push back on. I like, I haven't built a carousel in two years. Yeah. Analysis paralysis is another big problem. They start to try to get it perfect at the stage. Right? I tend to say a word press site or any website. It's a living document, right? It's meant to evolve. It's not meant to be static. You don't have to get it perfect. You can keep changing. You can change it two seconds after it launched. You know, you don't like, oh, I need a period there. It's fine. Put it in. And the nice thing about word presses, you can just log in and do it. You don't have to get a developer to do it for you. So at this point, I actually start building out the site. Once I have approval on key pages and design. And usually by this point, I have enough kind of pages built that there's enough design language established that makes it easy to roll out to other pages. I kind of know what my blocks of copy are going to look like. I know, you know, what layouts I'm going to be using for different types of content. So at this point, I move my CSS to production code. So I just, usually what I end up doing is I copy that element code out at a class, replace the generic selector with my class and in my CSS, compliance done. I copy, paste, change a few things and where we have production-ready CSS. You might have to do some refactoring, but, you know, usual stuff. Build all my pages. Finalize image selection. So this is, you know, where you really start worrying about is this the right picture? Do I like the way this lady looks? Is she too old? Does she look happy enough? This is where we use Project Huddle for feedback because, like I said, the client can just mark up the page. I want to change this image. I want to change this copy here. Just click a button and it adds a thing, sends you an email to tell you, hey, there's a change here. You can then pass that change off to someone else, assign it to someone, or you can do it yourself. And then you can just say, oh, yeah, the kid's done and the client can say, yeah, okay, good. Next, we move to the test-optimize phase. So here, I tend to start checking forms, integration, so, you know, check your HubSpot connections, your Salesforce connections, make sure all that stuff works as it's supposed to. I test my caching plugin because I'm working, I know my server environment. I can technically test my cache on Dev. I don't want to test it on live. Do my SEO checks. The usual stuff, make sure all my images have alt tags and every page has a meta description and all that stuff, which, you know, realistically, you should be doing it as you go, but just do the double check and make sure you didn't miss anything. I retest accessibility just because accessibility is important. This is where I test my cross-browser issues and any custom redirects. Right now, I tend to use SuperCache just because I'm familiar with it.  So I went back to, like, remove their caching plugin, put W SuperCache and took my settings that I know and it was, you know, the speed where it was supposed to be. Because I tend to plan my performance ahead of time. Like, I know, I'm like, okay, I want my pages. I don't want them to be any bigger than X. So I know that Elementor is going to give me a certain amount of CSS. It's going to give me a certain amount of JavaScript. So I know I have, you know, this many kilobytes to play with for fonts and images. So from that perspective, I'm already ahead of the game because I'm thinking about performance as I go. But like the caching stuff, like I said, I find a tool you like and use it, like, be familiar with it. And that's the whole thing about workflows is finding the tools you know how to use because, you know, there's nothing worse than having to, like, sit there with someone's new theme and go, how do they set the font size in this? Where's that option? Is it in the Customizer? Is it in a Custom Settings panel? Yeah. So it's all about, you know, trying to control as many of those variables as possible. And then we launch. So I tend to, you know, check to come, turn on the coming soon plugin. Make sure it's on, on dev. Remove any dev plugins I used because you install stuff just for dev. Then I migrate the site with Plesk. It's one click. I just say cloned alive and I'm done. Then I go and check the usual suspects, make sure any, you know, URLs didn't get, didn't get caught or, you know, you can't log into WordPress panel. It's just the usual gotchas that anyone who's deployed a live site, you're probably used to it by now. I remove the coming soon plugin and then I run a crawl on the site. I usually use Scream and Frog. It's a tool that SEO people use, but I find it's one of the better actual crawlers. It's expensive though. It's like 150 pounds a year, which for a tool that I only use a handful of times seems like a lot, but it does things that when I need that feature, nothing else does this thing. And then we're good. So that, I'm just going to go back and show you that this site here, you went, this is the wireframe. This is the final. It has its own CSS, but it's not, it's very neutral. So out of the box, Elementor looks like this, right? The Elementor with Hello theme has no styling. Yeah, yeah, exactly. You can write, like you can, it has the options to customize font, customize things, but a lot of that stuff is reusable. So you don't want to have to customize each element every time. Oh, I'm like, oh, I like my headers looking a certain way or like, you know, I have this lead copy or whatever, right? This lead paragraph, right? I'll write custom CSS for that because I'm going to reuse on every page. I don't want to have to go in and change the options on every, it's too slow, right? Well, it depends if it's reusable. If it's a one-off, I'll do it all in that thing, but if it's something like, that's one of the things, like I'll set those defaults, because Elementor has like a neutral default. I will rewrite those to be what it should be for this site. So that way when I create a new call to action or a new header, it already looks like what I want. And I don't have to make it look like I want for that site. And there's a lot of good themes already for Elementor that you can use it with, and so you can have those header and font options and all that. Like I said, I've just more come from writing CSS. So for me, yeah. Yeah, but it's, that's how you learn, right? You get to a thing like, I really want to do this, but I can't get it to do it with the built-in options. So how do I do it? You start learning a little bit of CSS. You find the way someone else did it, copy it over, change some things, see if it breaks. That's web design. I always say web design is one of the classic punk art forms, because punk rock was all about, I don't need a music degree. I can get up on a stage. I know three chords. I can do this. And that's what web design is like. It's like, I don't know anything about web development, but I can do this. I can figure this out. Questions, and then I'll just bring this as a slide up, so you guys can actually see what I'm, the tools, so if you have specific questions. Back. I tend to use, there's a plugin for Firefox called Wave, I think. It was last year's WordCamp, there was an accessibility talk, and they mentioned it, and I tend to use it. And then I run it through the regular web-based checkers, but as I go, I tend to use the Firefox plugin, which is really good. And like I said, Elementor's pretty good, because it doesn't have a lot of major accessibility, so you just remember to set some of your area tags and things like that. You had a question? Any other thing on the server itself? I tend to rely on, like, plus security, it's kind of like a security audit thing. Yeah, and it's pretty good, because I also don't have a server guy either. So, like, I'm not a server guy. I've figured stuff out by having to, right? Yeah. And I find sometimes, sometimes one of the security patches will lock up.  He was asking about using Plesk, and if I think the security's decent on it. Like I said, I'm not a server guy. I tend to use it. I just follow its guidelines. It's pretty good. And if you're using AWS and you keep, you know, strict permissions on who can have it access the panel, it's also really good. But as I was saying, we had an issue this week where one of the scheduled updates to Plesk crashed the server. I'm like, you know, 10 in the morning, all of a sudden I get this email from my uptime monitor saying, server's down. I'm like, why is the server down? Can't log in. Can't SSH in. I can't do anything. It'll log into the AWS control panel, and processor usage is at 100%. I'm like, what's going on? You know, luckily, I have a backup process running, so I'm like, I'm going to reboot. Log in, and I see there was a scheduled security update today. Like, security patch reduced yesterday, so I'm like, okay, it must have been that. It must have just locked up in the update process and just pooched. But like I said, if you have a backup process, you don't have to worry because, okay, well, it was backed up last night. I'm sure no one's changed anything yet, so just reboot and get to go. Any other, we've got five minutes left. Any other questions? Like I said, right now, we backup the whole server. I use scheduling, which is just a service that lets you schedule AWS backups. But it's something you can set up manually in AWS. I just don't have the time to fight with it to figure out exactly how to do it. Scheduled backups in AWS. Oh yeah, and as an aside, we're hiring. If you're a techie dev guy or a marketing person, come see me. We're looking for more people. So any other questions? Yep. Like I said, there's a bit of a learning curve just because it's self-managed, right? But uptime's good, and like I said, we use it a lot because our clients use it. We have a lot of SaaS service clients, so they're already using AWS for their product, so I can just spin up an image and then transfer it to them. But yeah, there's days when I'm just like, oh my God, I have to figure out why this isn't working. I don't... It's self-man... Like something that's managed like WP Engine. If you don't have the internal resources to deal with managing a server, something like WP Engine is great. Like I said, we only use AWS because our clients use it. Yeah, but like I said earlier in the talk, I'm like, if you're paying more for your coffee than you're hosting, you're doing something wrong, right? Because yeah, like I can go to GoDaddy and get like five bucks a month of server. I'm like, I spend seven bucks on coffee sometimes. So and like if you're running a company and you're making profit, you should pay for good hosting. You should be able to afford good hosting. I'm like, yeah, if you're just... I tell people about clients, I'm like, okay, if you're just running a blog for yourself, GoDaddy's fine. You don't have to kill that. You don't have to break the bank. You just do it for yourself. But if you're making money on your site, pay for good hosting. It helps. Any other questions? My general... What do I do for email? My general rule is don't host your email on the same server as your website. Don't host your DNS on the same server as your website. So most of our clients already have email set up. They're usually running either... They're running Google apps for email or they're running Office 365. So then you just have to deal with the SPF slash de-kim issues for your form-sending. Because when you have your email on one server and your website on another, if your website sends email to you, Hotmail like Office 365 and Google both check to make sure that the server sending the email is allowed to send the email. So if you're sending to your own email address, it goes, well, it's not me, so I'm not going to accept it. You're getting forms that are like, I'm submitting the form. It doesn't work, but when I submit it to someone else, it works fine. So it's one thing you need to understand. And usually I tell most people the easiest way around this is to put an SMTP plugin in because then they'll just use SMTP to send emails instead of PHP mail. Yeah, so he's saying plus has the ability... I don't host email on the same server as my website because my website goes down, my email's down, right? So I'll pay the five bucks a month per email address on Google or Office 365 to know that my email's up.  I'm a big proponent of paying for things. I'm like, if it's going to save me time and a headache, I will gladly pay. I'm a little lazy. I don't want to have to sit around figuring this stuff out and managing an email server.  I don't know what goes on in there. It just gives me email, it sends email. I don't know what's happening and I don't know how to figure it out. So I was like, I will put it somewhere else and let someone else deal with it. Any other questions? I think we're good. All right.