first of all thanks to the organizers for the opportunity to speak here. I also wanted to express my sincere regrets that I had to miss the first half. I had a previous obligation but I'm happy to hear that the videos are online so I can catch up on what I missed. Speaking of missing the first half I noticed that my abstract featured only the first half so I think that's fitting. So what I want to talk about is quantum cluster varieties as they were introduced by Falk Gantroth and how I've come to understand them as an instance of factorization homology as introduced by Ayala Francis and Tanaka. Just quickly before I get started I want to advertise a pair of workshops. So in happening in Edinburgh in June there's two weeks. There's a summer school which is happening the third through the tenth and then there's the conference week the next week happening the tenth through the fourteenth and so we have excellent lineup of speakers and I'm hoping that many of you can can can make it. So for the summer school there's some funded positions for students in postdocs and people who attend the school will also be funded to attend for the next week. So I hope you can help me advertise this. Okay so that's that I don't need the projector anymore. Okay so I want to start by just recalling Falk Gantroth's construction. I'm sorry first I'll start by reviewing character varieties and their quantizations. Okay and then I'll give a more detailed discussion of Falk Gantroth. Now so these cluster algebras quantum cluster algebras they're really complicated. There's a lot of a lot to say about them and in some sense part of the the point of this work is that I never really understood the axioms of cluster algebras and I want to bypass those. So my presentation of Falk Gantroth construction will be a bit biased and a bit abbreviated but I need to give you the main details and then and then I'll talk to you about factorization homology approach and parabolic induction. Okay so I think we know what is meant by the character variety of a surface. So we look so equivalently we can think about representations of pi one of the surface into our favorite group G. So G can be any reductive group for what I'll say but I'm especially gonna focus attention on GLN and even the case GL2 is interesting for today. So if we are algebras we can think about just maps from the fundamental group into G modulo conjugation action or if we're a bit more topological we can think about G local systems on S regarded up to isomorphism. Okay so that's the the character variety and so a basic problem is singular in general but so even regarded as a singular variety it carries a canonical Poisson bracket, Vitiabat and Goldman which I imagine people here are familiar with. Okay and so longstanding question that's been answered in many different ways is sort of what's the right way to quantize this Poisson structure, taking it into account the singularities and trying to do this in as natural a way as possible. So one way to deal with the singularities is just to pass to the character stack. So consider, I'll denote it with an underline, the character stack. Yeah I will consider both cases yeah it's interesting in all these cases. Yeah as you're alluding to it's much easier when the surface has at least one puncture but we can also consider this stack when it's close. Indeed when it's closed then even working with the stack doesn't quite deal with the singularities we also have to worry about taking derived intersections. Okay and so in this context sort of a motivating result, Lindsey Francis and Navler says that if we study the category of quasi-coherent sheaves on the character stack of a surface, again S is either closed or open, this is the factorization homology of the category of representations of our group G and so they prove this in the in the setting of infinity categories, the derived setting and in work I'll mention later we also prove that the same thing holds just at the abelian level. Okay so whether you take the derived category of the abelian level the point is that the classical character variety is computed just by the factorization homology of rep G. So with David Benzvi, Adrian Brochet and myself we introduced the quantization which I'll denote by ZQS and the definition of this is just we take the factorization homology of the category of representations of the quantum groups that's a braided tensor category and E2 algebra and so it makes perfect sense to compute factorization homology in this sense and we propose this as the sort of most natural quantization of the character stack. Okay so that's just a definition but so there are, this is not a talk about this construction but I'll just for context say so we described so for punctured surfaces which I'll indicate with a with a circ here we wrote these as modules of algebra of categories of modules for a certain algebra in rep QG and these algebras we identified these are isomorphic to certain very explicit algebras introduced in the 90s by Alexei Avgrosa and Shomerus. Okay so when your surface is punctured then the the pi one is just a free group and so the character variety the character stack is just a bunch of copies of G considered up to simultaneous conjugation action and using that presentation so first Falken Rossley for punctured surfaces they rewrote the Atia Bot Poisson bracket in a in a way using classical R matrices and then inspired by this Alexei Avgrosa and Shomerus they simply proposed by generators and relations an algebra called the which I call the AGS algebra which where you simply replace the R matrices in the relations with with quantum R matrices and so you define by generators and relations a quantization but you have to do it by hand and you have to make some choices on the surface okay so the nice thing about factorization homology is this is this category is completely canonical without any choices and what we showed is that if once you have this canonical thing then you go and make some choices then you recover these nice algebras that people introduced in the 90s okay so that was the sort of story for punctured surfaces for closed surfaces I'll just say I'm not going to really focus on this today but we describe zq of s for closed surfaces the quantum Hamiltonian reduction and I'll also say that work in progress of one of my PhD students relates these to the so-called skein skein algebra skein categories that people studied also in the 90s okay so the the upshot is that for ordinary character varieties these these quantizations are sort of the universal thing and because of the universal thing you can start connecting them to whatever you want okay so but before all this business about stacks and character stacks and factorization homology and so on there's a there's another way to deal with both the quantization question and the singularity question which was the idea of a fucking gun trough okay and what they what they did is they said let's consider a different a slightly different variety okay so instead of a surface s they consider what I'll call a parabolic surface and a parabolic surface for so in the fuck gun trough notation so in fuck gun trough notation what I'm calling a parabolic surface they would call I think a decorated surface you you have a surface it may have boundary components proper boundary components and it may have what they call punctures and the boundary components are required to have certain marked points and the punctures we also regard as sort of a marked point and they suggested to consider a different variety so just write it like this okay right and so what we consider is we consider g local systems on s together with a reduction to the borrel at the marked points and a t-framing at the marked points okay and we consider these up to isomorphism okay so if you're not a geometry then this reduction to borrel might be might require some explanation that there's only really two cases to consider basically this is some extra data that we that we attach so if you have a mark point on the boundary then this reduction to borrel is just the choice of a flag in in the in the fiber over the mark point okay and if your mark point is at a puncture then it's the same thing but there's a condition that it be preserved by the holonomie okay so what they said is all right I don't they didn't like the singularities that come from stabilizers and and they basically rigidified the problem they said well okay we're going to add some extra data of some of some flags at the mark points and some compatibility in the case of punctures and then so that's the that's the reduction to to borrel and then the t-framing so and so the way I've phrased it here the moduli space is g mod n and the t-framing just says we'll replace this by sorry is g mod b and you replace this by g mod n so you consider not just a flag but you pick a basis in each step of the flag which is just you know a choice of a single vector in each in each co-carnal and and so so that so so basically you're just replacing g mod b by g mod n but now it has a residual t t action a line sorry yes a line yeah well no sorry a vector here and and and if we quotient by that t action then we only consider the line okay so this so this would be a line and and in here we really we really pick a vector okay all right and so what's interesting about this this choice that they that they make is now so and now when we consider up to isomorphism I don't mean as a stack I really mean we take just we quotient in a geometric sense by isomorphisms and the thing that you get in this case because you've added these extra framings is still nice so this has the structure of a cluster variety and so roughly a cluster variety x is is a variety which is covered by a bunch of charts u alpha and each u alpha is is homeomorphic to just a an algebraic torus c star to the r and these are all the same that's the same dimension r every time and moreover there's a Poisson bracket on x which is quadratic in each in each chart so what that means so so I'm saying that the each chart functions on it is just a Laurent ring and several variables and the Poisson bracket this is this famous formulas the Poisson bracket is just x i times x j times some integer a i j and I'm gonna say a little bit more about how you extract these integers in a second so the Poisson bracket is is sort of sometimes called log canonical it's just it's the Poisson so this is what you would expect if you're try and do sort of canonical Poisson structure on a on a torus for some matrix a i j here and so right and so now if you have two of these different tori in and you glue them together the transition maps they have to preserve this Poisson bracket in the suitable sense and so that implies essentially so that's almost the sense I don't want to get into implies that the the transition maps are these cluster transformations okay so very specific ways that you change variables when you move between these charts and so combinatorial they minded people love to write down these formulas that I never understand but it's really just encoding the fact that this Poisson bracket needs to be globally defined all right so let me explain just a tiny piece of how they construct these charts and I want to do it just in the case of GL2 okay because I always found this procedure very mysterious and and I'm hoping that you will also find it mysterious and then I want to explain why it's just what happens when you read the Ayala Francis Tanaka manual on factorization homology I think that's interesting okay so what you do is you triangulate your surface so they say you first need to choose a triangulation okay this just show you how bad I am at this we'll pretend that's a triangulation okay so you cover the thing with triangles and the only thing that the only stipulation is that the end points of the triangle need to be at one of your marked points and that's it okay so the end points of the triangles are at your end points and and so the first thing they do is they tell you what to do with a triangle okay so let me show you I will show you quickly just GL3 so you can see the difference but then I want to move to GL2 for the rest of the talk that's simply just because otherwise you have to get into the like the conatorics of root systems and stuff and for SL2 you see all the basic ideas without all the without all the fuss okay so what they would do is they would draw a triangle like this and they draw some squares on the edges and on the inside they draw a circle and here for GL2 something nice which happens is that there are no internal ones okay and then there's a certain quiver that they draw it sort of looks like the triforce if you're a Zelda fan okay and and so here it's just like so and and okay so what you do to get these charts the C star star to the R the chart associated to this has C star to the number of box boxes okay plus the number of circles okay so you have a variable for each one of these things and then those AIJs are just coming from the adjacency matrix of the quiver that I've drawn here so they're like plus minus one or two depending or more so I can I've only drawn with without repeated edges but you're allowed to have multiple edges stacking okay and so so the AIJs are just this thing so they tell you that they just declare from the sky that this is what you should do to a triangle and then they say that when you glue two triangles together along some edge so let me again just do GL3 and GL2 what happens when you glue along two triangles along an edge is that these square ones that you've glued they now become circles and you still have the circles that you had before and then the edges that you and the the squares remain squares so so in SL2 already you get now a circle here and there's a there's a simple calculus for how you how you fill in a quiver here which I won't go into but so so you basically just glue these quivers together and so so in the in their terminology these squares are called frozen and the circles are I guess unfrozen all right so you keep doing this you keep gluing these triangles together and then in the end what you get is basically you get a quiver some complicated quiver that you've drawn on your thing it's somehow in some way related to your triangulation and then only on the boundaries do you ever get these frozen things because you've glued all the internal edges together and so you you just have these this boundary here okay half squares well talk to them alright and so okay and so so in the end what you get is each triangulation leads you to some some chart c star to some rank and what they say is that you can think of this as a chart this is some u alpha these actually they tell you that these actually should correspond to functions on the on the their the character variety for this parabolic surface okay and then there's an interesting so of course if you change triangulation you get different charts so you get you get one of these for each chart I should say also for SL2 that's that's basically it in other types there's some more data that you have to indicate so each of these triangles is colored by some some root data that I don't want to go into okay can you tell us what the open set is and the character it's a bit of a pain I mean yeah sorry yes I will get there at least for the triangles we'll start to see it as I as I do the rest of the analysis and and then basically as I will try to explain to you you just glue these open sets together and some stand away from triangles and so yeah that will be a major part of the talk okay so this always baffled me I mean why why should you do that why do those give functions that's a good question so you get this plus on bracket they claim as far as I know well I don't know what the status of this this claim is for general g but that is this plus on bracket here is the a tia bot somehow you should think of it as the a tia bot plus on bracket and well so so the rest of the talk I just want to come to an understanding of this construction and in particular its quantization using factorization homology so so again kind of gave myself an easy job because I wanted to convince you this was confusing so I just have to do a bad job explaining it and I think I've done well right I should say right before I go on though the point so that for them a very important point of this simple plus on bracket is that when you quantize such a plus on bracket you simply say that x i x j equals q to the a i j x j x i if you think about that that's a sort of obvious quantization of this thing and and so so their quantization of these character varieties that they proposed is what they call a quantum cluster ensemble you don't say sort of once and for all what the quantum gadget is you say what all these charts are and then you you quantize all the change of variables between the charts and you just declare that whole system of all these of all these quantum tori together with their changes of variables you declare that to be your quantum character variety okay so I would like to understand how to connect that to these to this character stack story and I just want to give one piece of motivation why this is not just me revisiting the 90s and so demafti and subsequently demafti govela and guntrov they proposed an algorithm to compute so-called quantum a polynomials of knots and and what they do is they say you should not just triangulate surfaces like we're doing here but you should learn how to triangulate three manifolds so if k is a hyperbolic knot that they explain that if you look at at the complement of this knot this can be tiled by tetra by ideal tetrahedron and an ideal tetrahedron tetrahedron is something like this so it's a tetrahedron but at the end there are these facets and and these so you can tile the complement by these by these facets and and the point is that the the union of all these facets union of these of the facets is a triangulation of the torus okay because they the the union of them is just the boundary of the three manifold and if you've constructed the three manifold by deleting a knot then you've just got a triangulation of the torus and then they say well we can now take this triangulated torus do fuck guntrov description and we get all these nice quantum tori and then they explain how to use these quantum tori to to compute the this so-called quantum a polynomial which is a very nice invariant of knots that's still quite mysterious okay but the problem with the prescription as as tutor says quite well in his in his first paper on the subject is that this choice of triangulation tetrahedral triangulation it's it's it's a choice that you need to make yeah and and so you don't know that the corresponding computation that you've done for the would be quantum a polynomial is well-defined and so as a first step I want to explain that the fact guntrov thing is not a choice it's a canonical construction and and these charts are the choices that we are allowed to make once we know it's canonical and then once we have a three-dimensional theory again using ideas from factorization of ology then we can actually prove start proving things about their their construction so we can prove for instance that there is a well-defined invariant and they're just making choices to compute it all right so let me get into the the story about factorization homology now okay so Francis Tanaka plus some some modification of Ben Ben's V Francis Nadler tells us that if we want to understand causing coherent sheaves on these parabolic surfaces we can also compute this so I'll stop using the integral notation just because it gets a bit cumbersome so we can compute this as factorization homology of our parabolic surface with coefficients and now this is going to need some explanation so before we only had to tell you a group G but now I need to tell you the group B and the group T so these are going to be our local coefficients for a factorization homology theory and and what this means is that whenever I see a a line defect so a parabolic surface up so there's one thing I need to say so so in fact Guntrov so I want to translate between these pictures so you had punctures and marked points okay and so the connective factorization homology we just have to do a sort of trivial change of perspective so if I see a marked point I'm just going to replace that by a line a contractable curve I'm going to label the curve by B I'm going to label the inside by T and the bulk of the surface is labeled by G and similarly when I see a marked point I'm going to grow that into a little line here and I'm again going to mark that by G that by B the bulk is always G and the inside is T okay so this is just the same data just a different way to think of it and now ordinarily in in sort of unstratified factorization homology we we have to specify some braided tensor category that we assign to the bulk of some surface so that's G we have another braided tensor category which is just rep T and then B is a one morphism in a suitable category and this is sort of explained in various places I think Claudius thesis there's a nice exposition of why you should think of these as one morphisms so you have B on the line you have G here and you have T here okay and as a sort of spoiler when we quantize we'll have rep QG here we'll have rep QB and here we'll have rep QT and and there's a there's something you need to check which is that rep QB has the structure to be an interface between rep QG and rep QT this is sort of classical in some some way the way you construct the r matrix for rep QG is a sort of quantum double of rep QB and that's that is you trace through that that tells you that this is a morphism you know between these two braided tensor categories it's the kind of thing that you can mark here all right what does what picture I mean this one yeah so in stratified factorization homology you consider a stratified let's say surface so this is a stratified surface and the principal strata I need to label by some local coefficients those local coefficients are some e2 algebra this is what we learned from our friends at Tanaka and the one-dimensional strata are there a locally what's called a locally constant factorization algebra on this stratified space so in the idea is that somehow okay the idea is like every point on this stratified surface either looks like this thing this thing or this thing so this thing is what tells us what to do with points like this it's not braided that's a good point but it's so let me say more specifically what we need from rep QB we have a braided tensor functor from rep QG tensor rep QT with the reverse braiding to the Drenfeld center of rep QB so this is what sometimes called a GT central manoidal category so it's not just a manoidal category it has to have these anchor maps down to rep QB and these so so the first map here this is just from rep QG to rep QB that's just the forgetful functor from rep QT to rep QB that's just the pullback under the projection and then I'm claiming that this has a canonical central lift which comes from the quantum double construction to give you a braided tensor functor like this and so I'm going to get in these questions this structure right here of a pair of braided tensor categories a manoidal category and a functor to the Drenfeld center that is what one unwinds to be the allowable local coefficients for a one-dimensional defect between two two-dimensional between two e2 algebras okay and so right I didn't give a formula for factorization of ology because I'm sort of taking that as given in this in this audience but I'll say that the idea is the same as you do for ordinary factorization of ology for ordinary factorization ology I would sort of cover this thing by discs and then I would correspondingly have some sort of co-limit that I need to compute and I would compute that in the category of categories to category of categories here as well we cover this thing by discs but now there are three types of discs and so we write some this this thing is just defined as some co-limit of all the ways of embedding these three kinds of discs and their district unions into s and then we have some term which is just which is just rep qg to the number of g discs rep qb to the number of v discs and rep qt to the number of t discs so basically these so every time that we would give a partial covering of this by these three different types of discs we would write down the corresponding categories and then we take a co-limit in categories and we we get some answer okay so if that sounds like hopelessly abstract somehow the whole point of my research program is that using tools from quantum groups you can actually unwind this and make it quite explicit that's what I'd like to do that's what we already did in the unmarked case with benzene brochure and that's what I'd sort of like to do now in the parabolic case okay no it is the same as a it has a different braiding it's the same as a minoidal category but it has the quadratic the standard quadratic pairing giving you the braiding and that's important I mean to get this structure you have to fix that particular one absolutely all right so it is sort of implicit so the definition with okay lay Schrader Shapiro myself just completely following what we did with benzene brochure is the quantum invariant we just defined to be the factorization homology of the parabolic surface with rep qg rep qb and rep qt I do apologize for sort of skipping over this this sort of calculus it would be a whole lecture in itself and we wouldn't get to the punch line in that case no no you start with so in factorization homology you start with an e2 algebra in whatever and you end up with just an object in whatever so here we started with a we started with a braided we braided center category which is an e2 algebra in categories and at the end we just get a category precisely the braiding comes from symmetries of the disk and if you take a general surface you you doesn't have the same symmetries okay so right so what I want to explain now is some examples so they're the most important examples so let's look at okay so this thing this is just rep qb by construction and I'm going to call this conf one so this is zq of conf one and in general the first class of examples I want to give you is is where we take a disk g and we put n of these little parabolic induction restriction things around the boundary so that's comf n and of course here I I'll stop worrying about g or rep qg I mean you can treat the classical on the quantum story in the same breath that's the whole point so this is comf conf n so I have a parabolic restriction restriction along each of these things and a t-framing all right so if you think about this all this is saying is that comf n as a stack is just g mod n cross g mod n so the number of of mark points that's just the fact that I have to fix a framed flag at each point by definition and then when we consider it up to isomorphism I want to quotient by the G action which is just simultaneously changing the trivialization on the left and by the t to the n action the torus acts on on the right rather I don't want to quotient by this I want to just remember it so in this business it's because I think you miss this so you wrote the reduction to be yes the reduction to be and a t-framing I think that was before you arrived yeah yeah yeah this is an important point it's not such a big deal but it's it's necessary this is I mean reduction to be in t-framing is the same as this reduction to be that's right yeah but I but I remember the t-action yeah that's right okay very good okay so all right so it so so sort of feature of these factorization homology theories is that the categories you get they always have a distinguished object and so in fact this distinguished object is the one which gave rise to these AGS algebras and that's somehow a big a big important point for me so and I want to understand is what is this distinguished object look like in these cases and and I'll just I think I'd just like to state that if I if I take the endomorphic internal endomorphisms of this distinguished object so I'll say what I mean by that in a sec what I get is isomorphic to a copy so I take OQG mod n tensor OQG mod n this is okay so this is the standard quantization sort of FRT style quantization of the the coordinate ring of this the standard affine space and this is the braided tensor product of algebras and this all takes place in rep QG tensor rep QT to the n okay and now I can explain what I mean by internal endomorphisms so see that this is where the T and the G action are so useful I can I can this category just carries an action of G rep QG just by inserting discs into the into the boundary here and rep QT by inserting discs into the boundary here so if you're familiar with how we proceeded in the unmarked case it's the same thing but now we have these additional sites and they're acted on by an even simpler gauge group rep QT okay so we can exploit that so that says that this is a module category for that braid tensor category and a fun thing to do in that case is compute internal endomorphisms and the claim is just like we got these AGS algebras by just doing some standard playing with adjoin functors and so on when you do it in this setting you exactly get the expected quantization of the standard affine spaces okay so that's a computation how is this statement related to the previous statement that quanth ends is equal to this product well when Q equals one then I'm saying that there kind of quotient by G right and here I'm working G equivalently and T equivalently so so it's I mean whether I so it's if I work G equivalently that's the same as considering the stack quotient mod G yeah this yeah sorry this is the braided tensor product of algebras so if I have algebras in a in a braid tensor category there's a canonical way to combine them and they don't commute they commute using the braiding it's the only thing you can write down and this says the standard FRT construction so if you don't know what that is it's just there's a canonical way to deform functions on G mod n let me make a remark actually about this this is I think useful so this is the same as the FRT quantization of G so it's just a Q deformation of functions on G and then we take n in variance and so if you think about payter biotherm that's just the direct sum of over lambdas I have irreducible representation V lambda that tells me how G acts on this thing and T acts with weight chi which is minus omega not lambda so that's just the lowest weight for the for the representation okay so the highest weight for the dual representation and so so if you forget about that for a second I'm just saying that this is a direct sum one copy of each irreducible representation of G it's quite a harmless thing and then I'm saying that there's a grading on it by the by T and that is given with this weight okay so this is like a very lovely thing and when you multiply coordinates it couldn't be easier V lambda tensor V mu has a canonical projection onto V lambda plus mu and that's how you multiply okay so note if you tensor V lambda tensor V mu you get a whole bunch of different things with different multiplicities but I'm saying that the multiplication in this algebra because you're fixated on highest weights it only preserves the thing of the incorrect weight all right so this is a very easy algebra to work with some how this is the same end yeah same end yeah yeah so did you say what the category was in this case this is the category that we take as a definition in this case is there an answer no yeah okay good question yeah excellent question so so here I'm talking about the coordinate algebra of functions you may be familiar that like g mod n is not an affine space so it's a little bit dodgy to start all of a sudden talking about this this dist this dist object is going to be like global functions but let me remind you that that's the same thing that happens in front gone trough they do not study the stack or indeed even the variety of these parabolic local systems they only ever study global functions on it so they they themselves are only ever working up to co-dimension to so indeed the correct sort of quantum invariant is this one but if I want to connect to fuck on trough I had better start studying the algebras of functions and so this is what justifies me looking at this so that so somehow the distinguished object corresponds to taking global sections that's yes there's a functor of global sections but just taking hams with this object yeah now note I should say one thing so this was the internal endomorphism so to get to what you're what you're saying I need to take the invariance so I want to take this thing and I need to take the G cross t to the n invariance so this thing is kind of the stack but but still global sections on you know so so the the structure she found the stack and if I want to go down to the variety which is where they work I need to take invariance for the group that just quotients out by the group action yeah these are really good questions thank you okay we do want to embarrass yeah yes that's right we want yeah sorry again we want to take G invariance but we want to remember the T action so that's gonna be important when we start amalgamating okay so what have we done we've so I should have said that this thing this algebra is what fuck on trough assign to the quantization of this thing so so far we're just following the a la francis tonic prescription and we get exactly what they do for for discs at least with many punctures but there's a few there's a few caveats even for discs so so I want to zoom in on comp three and and then come and then go back to comp two so so for comp three so this thing is not a quantum torus so so so I'm I'm misleading you somehow even when I take G invariance this is not a quantum torus it does not have these x i j coordinates even when I take G invariance so there's two steps that we need to do so first of all what we end up looking at is g mod n tensor g mod n okay and that's just the sum of the lambda tensor v mu tensor v new again so if for instance this this kind of calculus is in Chen and gun shove wasn't quite explicit in the original papers but it's certainly there so we look at a triple tensor product of irreducible representations and we want to know when are there g invariance and and what you find so so in type a I think this is Chen and gun shove and in general type this was due to Ian lay as far as I understand and there are certain triples so there exists triples lambda mu and new such that this is a one-dimensional space okay that turns out to be important okay since this is a one-dimensional space even when we quantize it means that these these things will Q commute so these guys this algebra is not a quantum torus but when we when we take G invariance and we consider these guys they Q they Q commute so that means there are some basis in which they just commute by powers of Q and so what we can do is we can invert these okay and and the claim is that once we invert these so that the two-step process is we invert and then we take G invariance and and the thing that we get at that stage is a quantum torus I mean we have some non-commutative algebra and these are some elements in that algebra and they don't have inverses in the algebra we formally take their aura localization it's very useful if you're considering aura localizations to have Q commuting things because then you can just not worry about fractions you just have sort of non-commutative fractions okay all right all right so right so classic there's some classical geometry here which is if I consider triples of flags so what have I got so sort of on this picture associated to each of these edges I'm supposed to each of these vertices really I'm supposed to imagine I have a flag F1 F2 and F3 and what's really happening in this once when I invert these things is I'm asking that pairwise each of F1 F2 and F3 are in generic position as flags and then there's a further generic generosity that I can ask I can reflect flag 1 through flag 2 and I want that to be generic with respect to flag 3 as well so there's some I'll just say biocombinatorics for producing these charts and it's a well understood thing okay and so what it allows us to do is in comp 3 there's a subcategory of comp 3 which is which is just generated by this algebra so I take that algebra let me call it a and I invert these elements I invert these these guys and and I consider modules for that thing in repqg of qt to the n which is to say I just look at a subcategory where these operators happen to act invertibly so it's a subcategory of here and I should have mentioned by the way already for comp 2 there's something similar going on so comp 2 contains let me just say classically so comp 2 is g mod n mod n and then I look at the the t cross t action and I have the g action and there's an open subset in here so this is comp 2 there's an open subset where the two flags are in generic position and and if I look at qc of comp 2 tilde as a stack this is just a manoidal category which is rep t and I want to stress something here in the formalism I was discussing with with Sasha Brouwerman that this can be rep qt for the disk but here this is only manoidal so I just mean rep t so I'm claiming that there's a not obvious equivalence there's a sub a manoidal subcategory of qc comp 2 which is just rep t and when we quantize that remains rep t so I'll write it this way zq comp t is a manoidal category rep t all right so that so there's that's comp 2 and that corresponds to this picture here all right so we're getting this is a subcategory it's a manoidal subcategory it corresponds to an open sub stack of the classical gadget okay I'm running a bit uh short on time where are the erasers oh here we go okay so I think I'll just have time to explain so okay so so just to summarize what I've tried to explain is that comp 3 we have this open this is the subcategory comp 3 and this is isomorphic to some quantum torus so modules over some quantum torus and and it's the same quantum torus that fuck on trough prescribed so that's quite nice and now what I need to explain is finally the amalgamation process right they define their invariant by gluing triangles together all right so this is uh actually I have to say we were stuck for quite a long time uh uh before Ian lay uh jumped onto the project and it was really this uh important observation so look suppose I look at comp 4 so that's you should think of that as a quadrilateral in fuck on trough picture and I want to decompose that into triangles so uh pictorially I want to draw a line like this okay and now uh I offer answers to not go tell us we have excision for uh gluing along uh cylinders and here the cylinder that we're gluing along so this is so here's an obvious statement this is a union of this triangle union over this triangle wide rank too long two earth fill lines uh this is the cylinder that we're going to glue this is the this is the interval direction and this is the the the direction and what are we gluing over we're gluing over this thing so that's conf 3 that's conf 3 and that's conf 2 okay so it's just a fact of life that the invariant say this is just one example z q comp 4 is by excision just z q of comp 3 tensor with z q comp 3 over z q comp 2 okay and this is hard this is a stack that we somehow not can be a stack that we don't understand but we can now uh look at the tildes okay and the tildes we do understand this is a quantum torus this is a quantum torus and this is just rep t so what that says in in words is that these frozen variables when we tensor over something which is just representations of a torus and then we take t invariants for that torus what it exactly prescribes is that we multiply these two things together and we force that we restrict to the the degree zero subalgebra and so taking uh this is this is rep t even when we quantize and uh and this uh procedure so excision from this from from excision follows the amalgamation prescription of front contrast so i'm i'm already out of time um so uh let me just say that for a general surface we just write down a canonical formula and when we compute it we get exactly the cluster charts that were predicted by fucking gantra thank you and what we do in three dimensions um right so um so okay without these restrictions without the parabolic markings we showed with uh brochet and noah snider uh using work of of uh claudias and uh of um runa haugsang um we showed that there's a 3d tft that extends factorization homology okay so you have this coborus and hypothesis you need to check some axioms and we check those um uh so the claim is uh that if you take any rigid braided tensor category it lives us canonically in some four category of such and it's three dualizable as soon as it's rigid rigid is all you need so this echoes some results of uh schoemer priest douglas schoemer presen snider for a few for tensor categories and it's the braided analog of that um so to define that four category that's where we need claudia and uh and theo johnson freed and uh and runa haugsang's work uh but then you just read the manual you check some axioms and you see that you have three dualizability since you have rigidity um so now as i've said uh rep qb serves as a one morphism from rep qg to rep qt in that uh in that same four category and so in order to sort of uh uh consider not just a three-dimensional tft but a three-dimensional tft with these defects we need to understand dualizability okay and if we could understand that dualizability then you could just sort of um and if uh some topologists do some work for us then you could uh define sort of tfts with with interfaces and then you could implement the uh the uh demofte gabella gone trough or at least some relative of it for for a given um triangulation um so one direction is that uh you'd like to to know that you can make sense of some sort of drawing where you have sort of g out in space t out in space and b along some along some plane and so there's some some hard technical uh work that needs to be done there um another approach i should say is that inside any parabolic surface you can just uh cut away all of the parabolic bits and then you just get a g surface of surface colored by g and uh and you can just try and do tft with that instead um so that would be a way to sort of bypass uh these uh these uh berels but um yeah it's this is a future hope but it's certainly not something that's uh that's in the works right now yeah so does it mean you can say that just surfaces without mark points or is that what no like um so i mean if you have so i'll just explain you the dictionary like if you have some fuck on trough surface like so okay so i've said that this is b t g and uh b t g well what i can do is i can just look at the sub stratified surface where uh where i just cut away that all the stuff that i don't like about t so there's just a sub surface in here that has no markings but i can regard it as a parabolicly marked surface just in a trivial way and this gives me functors from uh our our usual character variety that we uh studied with david and adrian it includes into the parabolic one so there's a functor an inclusion of functor okay and and it comes from in fact what it what it tells you is something that people knew in some cases classically which is that the ags algebras have cluster embeddings so this is something you can try to do by hand you can take some you know random non-commutative algebra and try and embed it as a sub algebra of a quantum torus and uh by by thinking about this uh this picture you get that the ags algebra associated this punctured surface it embeds into the corresponding cluster uh uh ensemble and so that's that's another thing you can do yeah


Okay, another time, this time, by Chris Thiel. Even if I leave the universe, okay? And it's in the car, which is a web 2x4. There's my web. Chris, cool. Thanks. Hello, everybody. I'm a slave again in the weather. I had some major dental work yesterday. So if you see me like grimacing, that's like... Pardon me? No, I think it would have helped a little too much. But thanks. Thanks, though. So universal cake is something that me and some friends made up about 10 years ago. And we were trying to launch a product. And it was in like an artist loft in Montreal. And we were thinking to ourselves, you know, what kind of product do people like? And we came up with this strange concept called the universal cake. And basically the idea was like, it's the perfect product. You know, everybody loves it. Tastes delicious. It speaks your language. It does whatever you want it to do. And so not much happened with that company, but it was quite fun. But that's about as far as we got. I think we did a little box. You know, it's a universal cake on it. But we could never decide exactly what goes in that box. That was kind of the problem. But since that time, it's been a great help for me in doing software, looking for applications that I want to use or that people want to use. And it's... Anyway, that's kind of where the story starts. So in the end, universal cake is a laundry list of qualities, good qualities that you're looking for in software, that people are looking for in software. So for example, one would be accessibility. Like is this software that I could actually use? Is it software that does something that I want it to do? Does it work? Is it in my language? Does it run on my computer? So I'd need to worry about any of that stuff. So that's kind of the basic idea behind the universal cake construct. And it's been really helpful for me over the years in identifying products that I want to invest my time and energy into. Because if they're not headed in that universal cake direction, you're going to end up on some side road, who knows where, supporting a product that maybe people are still using, but it's very difficult to support because there's no community and everybody's moved on to this and so on and so forth. So it's an extremely helpful exercise in that way. And I wanted to ask some people, I wanted to ask you all to think for just a moment what kind of qualities you're looking for when you use a software. And you are the Uber users, but you probably have the same experience.  It doesn't do what I want. This is totally awesome. It does exactly what I want and I don't even have to think about it. And I think that's kind of the ideal of universal cake. Can someone think of a software that they really, really like? Emacs.  How many people, the first thing that comes to mind is Emacs. Okay. I'm the same. I'm deeply the same. But it works great, doesn't it? It works the same everywhere. My fingers remember. Great. And other softwares that people really... Clips. Oh, Eclipse. Yes, that's a great example of a software that's headed in the universal cake direction. Runs on all kinds of platforms. Yeah. Which one? Amarok. Amarok. As in the music player? Right. Okay. All right. Google Wave. I haven't used it yet. It's one of the things I signed up for and I haven't gone around. Is it really nice? Awesome. Play more, so I'm going to say Vi. Vi? Okay. Vi and Vim and... And what is it you like about Vi? It's on all your Unix or... Okay. Did you have one? Great. So you're... Yeah, sure. You invented this concept, but it was quite cool. Fun? Yeah, I think so. I knew it wasn't like that jam.  Wow, that was a breakthrough. All right. Yes? Python. Python. That's how I found Python. It just showed up everywhere. I'm relatively new to Python. And it just was always there. And even though I used a product called Plone, which is built on Python, it was always there, but I never actually did any Plone programming. Has anybody ever worked with Plone? Has anybody ever programmed Plone? Whoa. These guys are serious. Dave? Dave? Oh, hey. All right. Sorry, I thought I'd recognize you. Yeah, so let's see. I should talk about my case. So the case is I'm in the midst of launching a new nonprofit organization. It's a nonprofit that's based on fair access, which is a bit difficult to define, but I think we can all think of ways that access could be fair or more fair. And we have three primary areas we're working in. One is fair access to technology. Fair access. Well, let me back up just a moment. As I said, it's a very new nonprofit. The three areas we work on are economic, social, and political access. And the three campaigns that we're starting with are access to technology via accessible or highly accessible websites. And by that, we mean accessible to people who are blind, but we also mean access in the bigger terms accessible to normal people. And in the past, there was another nonprofit, and we're taking over their work that provided the Plone hosting to a number of different nonprofit organizations.  And I can't think of a single one that's actually made one change to their website. So you have these tiny nonprofits running Plone. For those of you who aren't familiar with it, Plone is like the tank of content management systems. It's international. It's got multilingual support. It's fabulous if you're like Amnesty International or the CIA, I think they use it. Or Walt Disney or something like that. It's this fabulous, fabulous product. Yeah? Yeah. But it is big. I think now it's got a little smaller. I downloaded it today. It was 30 megs. And it's really quite hard to get your head around when you first start working with Plone. You're running on this thing called Zope. How many people have heard of Zope? OK, so more than half. And these are Python people. So less than half or half have not heard of, or less than half have not heard of Zope. It's kind of a done deal. This happened like 10 years ago. When Plone first came out, around 2000, it was the only content management system that was open source and made promises about being accessible. Yeah. Around 2000, just to put things in perspective, I was working at the IBM Help Center or something and for the 2000 team, and we did absolutely nothing. I don't know if you remember that, but we had a lot of free time. And so that was where you went blogging and all this kind of stuff was just taking off. And for most, there were a few products that were before that, that were commercialized, that were available, but it was totally like, oh, wow, you can edit a website on the web. Before that, it was like FTP. So FTP, make my changes, FTP. And suddenly there was this, someone was like, well, that's silly. It's a total, why not just edit on the web? So I spent like literally hours at IBM researching these different toys that people were coming up with which would allow them to do live web editing, which made a lot of sense. But my criteria were, because I was in Montreal, I said, I want it to be multilingual. Okay, and that wiped out like 95% of them. So no good. And second of all, I wanted it to have some accessibility features. And that wiped out everything but Plone. So I was not the only one doing this, or a number of nonprofit organizations that have invested heavily into Plone and the infrastructure for Plone. And it's quite big. Like I think now it's the number two open source project worldwide. And a lot of people haven't heard of it, but it's quite big. So back to our case study. We have 48, 47. Okay, no problem. So back to our case study. We have an older defunct nonprofit. They have a bunch of customers that need taken care of. The customers are running Plone, which is, I don't know, about this big. And what you really need to do a website where you basically don't change anything is probably microscopic in comparison. And that's actually not true. I think some of the places tried to make changes, but Plone has gotten quite complex. It has user administration and so on and so forth. It's got metadata and all the wonderful things that you would want in a killer content management system for a very large organization. But for your average nonprofit organization, which is relatively small, it's severe overkill. And not to mention that it uses a lot of memory. Plone is extremely memory intensive. You have this thing called the data FS, which is where all your data is stored. It's also kind of mysterious because it's running on Zope. Does anybody understand how Zope works? Okay, we have... No, okay, he's rescinding. He's like, maybe... Okay, but how about MySQL? Does anybody understand how that works? Yeah, okay, no problem. But Zope is like this big mysterious thing and we have this huge content management system built on top of Zope. It's actually like a product. I think under there there's another content management system that Plone has built up on top of. So it's a very large stack and it's been around for a long time. I love it. I use it all the time. It's awesome if you need to keep track of a bunch of miscellaneous technical data for an organization that's not very organized. You can use it just like your own private Google. So you just plug stuff in there, cut, paste, cut, paste, cut, paste. And then there's this nice little search box which almost nobody uses in the upper right-hand corner. But it works sort of like the Mac spotlight. So you just type in Bob's speech. It pulls it up for you just like magic. So it's awesome for that kind of stuff.  Excellent for that. And there's tons of support, very, very large community available for it. But very difficult to upgrade. I've done a few Plone upgrades and it's quite tricky if you've customized it at all. Then it becomes even more tricky. And it's surprisingly easy to do certain customizations. Like you can create, I think they're called archetypes. You can create a new sort of content type, relatively easy. But you can get into trouble with that pretty quickly if it's been a few years and the guy who did the original one and did those little tweaks is gone.  Does anyone have any comments on Plone or questions about Plone? Okay, great. So, yes, oh, let this be a lesson. If you have a MacBook, you need to bring that adapter dongle. So we talked a bit about Universal Cake, the laundry list. And I'm just going to read it really quickly because I do indeed have a laundry list. Yeah, so number one, to create a piece of Universal Cake, you want something that's accessible. So it's easy for everyone to use. It's available in the language of your choice. It's affordable, are free, culturally relevant. It needs to be compatible. So it runs on many devices. So it runs on my iPhone, it runs on my laptop, it runs on Windows, it runs on OS X. Remember, we're talking about idealism here, like what we'd like versus what we're going to get. But we have no chance of getting this unless this is somewhere in our head. So, yeah, it runs on Windows, Unix, BSD, FreeBSD, et cetera, et cetera. It's fast and lightweight, so it doesn't pick up all your CPU. There's no extra junk. It's slimware as opposed to, say, bloatware. It has longevity, so it's going to be around next week or next year, which has been around for a long time, which is pretty amazing. It's, oh, I added a new one the other day, input-output universality. So that means you can put in speech or you can put in text or whatever, and you can output speech or you can output text. So like I said, this is our dream piece of software, but if it's not up there somewhere, it will not happen. It's non-intrusive, so it protects your privacy. It doesn't leave any traces. It's easy, easily uninstalled. It's transparent in that it's an open source, or at least you can fix a bug, you know, if there's a bug. Secure, which I sort of covered with the other part, so it's safe to use. Secure updates or security updates are readily available and so on and so forth. It doesn't interfere with your, oh, I saw other software. I covered that one. It's viewable as in open source again. It's supported, so there's good community and user support, so there's support for developers, support for the community of users. We're pretty sure it's going to be around for a while, good developer support over the long term. And it builds on other products that will be around for a while. I added that one. I was thinking about Plone. I thought I'll just stick that in there. It's reliable. It's backwards compatible. That's a big one, backwards compatible. It's easy to upgrade. And finally, it's useful. So that's our laundry list we're using for comparison, which is relatively idealistic. But a lot of things on that have come true over the years. And Eclipse is a great example. You can run that on, I run it on Ubuntu and OSX. I don't really use Windows too much, so I haven't installed Eclipse on that, but I think it runs on Windows too. Yeah, so it's pretty damn awesome. And an awful lot of Python products. OK, Web to Py. The first time I went to the Web to Py site, I was like, yeah, right. It's a laundry list. It's the same kind of laundry list that I have. But what is Web to Py? Web to Py is, I think on the website, they call it an enterprise web application framework. I call it like a web application framework. So it's written in Python. And I'm sure it'd be fine for using in the enterprise, but I find that kind of scares people away. It's some IBM product that's like 10 miles wide. But it's microscopic. I think it's less than a meg. Pardon me? It cannot be enterprise. Yes, it's too small to be in the enterprise. But I believe there are some enterprises using it. But I think of it more as a web application framework. Yeah, actually I know there are some enterprises using it. So basically, here we go. So it's open source. It supports agile development. It's very easy to spill out an update. It's scalable, secure, portable, Python. The resources are a bit scattered, but they're definitely excellent. And it's the guy who started the project, Massimo. Massimo seems to be able to read everybody's mind. So one week you'll be thinking, you know, I really wish I could index my database by UUIDs. And then sure enough, next week Massimo is like on Vimo or YouTube or something like that. It's like how to convert your web to Py application to use UUIDs and export it to another database. But that kind of thing is constantly happening. It's, oh yeah, pardon me, back to our laundry list. It's backwards compatible. And he says it's going to remain that way forever. And in fact he says we pledge not to break it in the future. So he said we have not broken backwards compatibility since version 1.0 in 2007. We pledge not to break it in the future. Easy to run, requires no installation and no configuration. And you can imagine my disappointment when I went to all this work to like set up Eclipse on my older MacBook. You know, I got it all running. I got the git thing going and all this other stuff going. I was like, yeah. And not required for web to Py because it comes with its own little IDE editor. And not only that, there really is no configuration to get it up and running. So pretty cool. I was a little scared at first because it seemed just a little bit too, it met too many, the advertisements met too many of my specifications in Universal Cake and being the creator of Universal Cake, I know that Universal Cake is outrageous. It's an outrageous proposition. So I was kind of shocked with that. It includes internationalization support through the famous T, which I'm sure everybody's aware of. The famous T, no? T. Brace, no? Oh, okay. All right. You should look into the T. Sorry. The T, that's what I call it. Like I said, I'm new to Python, so I'm going to be making a lot of mistakes. So if I give you any technical information about Python, just cross it right off your list of things to remember. Right. Easy to run, so requires no installation and configuration. Secured includes SSL-enabled web server, which I believe is, what is that, Cherry Pie. Bells and whistles galore. It's like streaming capable web server, web-based integrated development environment and web-based management interface, which basically means you can access your database. It generates a web page so that you can access your tables and your database. You can actually make changes in there. It will only let you log on if you have a secure connection or if you're running on local host. So it's quite fabulous in that area. The last big web project I worked on was with another programming language. We didn't have that ability, so we had to use some slightly insecure way of some administrative tool that was slightly insecure at the time to edit our databases. Anybody know what I'm talking about? So it's very flexible. You can use multiple authentication methods and it includes role-based access controls. It's fast. It's tiny. There's a whole bunch of, it says multiple caching methods for scalability. That sounds good. Good community. It uses a jQuery library for Ajax and FX. Anybody use that? Okay. I'm learning so much. All right. Web servers, it will run under Apache, Lite, TPD, Terakie, and almost any other word. Web server including WSGI, which we saw presentation earlier tonight, ModProxy, ModPython, and so on and so forth. Database support is a little shocking too. And this is another reason why I did not believe when I visited the site. It comes with SQL Lite. So that's why you don't have to configure anything because it's already configured to use SQLite. You just type away if you know what you're doing, which takes a little while to figure out, by the way. So that works great. You can use POSGRAE if you want. Did I pronounce that right? Nobody knows. POSGRAE, POSGRAE. MySQL, MSSQL, Firebird, Oracle, IBM DB2, Inframix, Ingres, and Google App Engine. It's flexible. You can embed third-party WSGI apps and middleware, which we... It's secure, prevents the most common types of vulnerability. It protects against cross-site scripting. Injection, flaws. That's my personal favorite thing to do when I'm debugging people's websites. Supposedly debugging, but messing them up to show them where their problems are. And it also does malicious file execution. So if someone uploads a tainted JPEG and it's actually a program that says, you know, R and minus R or something, then that doesn't work for them. So that's all included. Do I need to go on? Enforces best practices. So it uses the MVC or Model View Controller design. Does server-side form validation, post-backs, speaks multiple protocols. This was another big shocker for me because the last project I worked on, was to XML-RPC, which was cool. But it was kind of hard. But it comes out of the box, it's got it. And you can write, like, I don't know, 10 lines or something and spit your database out to some other website somewhere else or do whatever you need to do. It's totally awesome. So that's their laundry list of the reasons why Web2Py is great. So I decided that needed the further investigation. No?  Oh, I cursed again. It's like three times. Plone, I love Plone. I think I said that already. Development tools, none required. If you want to develop Web2Py itself, you can, you know, of course, use Eclipse and that sort of thing. I recently stumbled upon something called Aptana Studio. Does anybody else use that? Evil commercial free wear. But it was really easy to set up. I don't know if you've ever, if it's ever taken you a while to set up Eclipse, that was really easy. And it installed JQuery and Dojo and the Yahoo user interface and all the cool bells and whistles and like one click, I believe. Okay, 10 or 15 clicks. But it was much easier than the standard Eclipse configuration. But you don't really need that. You can edit it live locally using the built-in IDE. There's also a built-in ticketing system as a person with slightly dyslexic tendencies I take full advantage of. So if you make a typo or whatever, it tells you right away. It says like, dude, you messed up. Go back and, you know, move that period or replace that comma with the period. That seems to be my favorite error. So that's pretty cool. Accessibility-wise, they make zero claims accessibility-wise. And Plone used to make some, you know, when you went to their website, one of the first things they said was, we're going to be accessible and we're going to be, you know, they kind of dropped that. Wedd-Pie says nothing about that at all. But as far as I can tell, it's very easy to implement. Once you get through all the flack around accessibility, has anybody done any research on that and gotten frustrated? No? Yeah. If you start to do some research on accessibility, it gets really boring, really fast. There are all kinds of, you know, fabulous plans and so on and so forth. But it's very hard to find like, okay, just show me the code. How do I do it? Like, what do I need to do? It's very hard, difficult to find that. That's gotten a lot better, but you have to go through all these, you know, we'll just say, I'll call it conflicting information. But now a lot of the JavaScript things I'd mentioned earlier like jQuery and Yahoo, those guys are putting that into their code so you don't even have to do the work. You don't even have to plug into their stuff. That's probably the thing I like the most about Web2Pies, I don't have to do any work. It's all done. You can, and I'm lying here, of course, right? There's absolutely, there's a lot of work to do to understand exactly what's going on. Because it's extremely concise. One of the nicest things I like about it is that the way Web2Pies is built is you can create forms from scratch using Python, and it runs with Python. It does it a little bit peculiarly in that it uses the double brace. So you put your code in a double brace. You have the controller. Who knows what the controller model view is? All right, that's good. So basically, if you want to create a database, you do your table name, field number one, blah. Field number two, blah, blah, blah, etc. Then you have your table. In the database file at the very top, you'll put something like, you know, I want to run on SQLite because I'm running locally. Well, then tomorrow you need to deploy it. So you don't have to do anything. If you want to deploy it on Google App Engine, because there's already this little if thing that somebody put in there, is well, if I'm on Google App Engine, run on Google App Engine. And then you're fine. Unless you created a database that has some complex joins or other things that aren't compatible with Google. So I'm lying when I say there's no work involved. There's definitely work involved. And if you want to check it out and use it in earnest, you'll want to buy the manual, which is $12. A great deal. Even just to check it out. It's a great deal. And there's excellent support. The best site for support, I think, is, I should say, for applications. Because the other cool thing about Web2Py is you've got Web2Py here, which is an open source application. And then you have your Web app here. And it's basically, you can export it to a single file, sort of like a zip file. And then you can email it to your buddy, because it's only going to be like, I don't know, 700K, unless you've got some pictures in there. It'll be a lot bigger. Then you can email it to your friend and he can run it, or he can load it on his server or whatever. So there's this separation, very clear separation between the Web application development platform, which is 700K, and the Web application that you're spitting out. So you can use this, you can make this closed source, which is not going to be interesting for everybody, but it is going to be interesting for some people. So, and then what you do is there's a little button here. You can choose exports or compact, or you can choose what they call the bytecode of Python. Yeah, create bytecode. So then you spit out your file, but instead of being like text, it's Python bytecode, which means at least somebody's going to have to break the law if they want to steal your web app, your precious web application. So that's, sorry, too many jokes. So that is really cool. The other cool thing is, is because it's so easy to spit out web applications, is what you're going to discover if you start exploring it, is like suddenly you're going to have like 20 different crazy web applications. I want to download Massimo's screen scraper application that scrapes the Chicago transit schedules and then tells you which bus to take at 11 o'clock, because that's pretty cool. And since it's open source, you can go in there and see exactly how Massimo did it. And then you can either, so if you're doing one for Montreal, very, very helpful, you can look at his crazy stock price prediction thing and make a fortune. And you can see how he did it. So it's very, very helpful from that point of view. The other great thing is that people kind of pass them around all the time. There's not that many that are international right now. They did the, I think you were talking about the Python website for PyCon. Was it PyCon? Django? Okay. The registration. Right. Right. So Massimo and Yarko did the registration site. If you look at that, you'll see like a first crack at a, well actually it's not really the first crack, maybe the second or third crack at a international application. So really hard job to take on. On a relatively young, I think it's like two, three years old Web to Py. But you can go, you can look at the code, see how they did the whole thing and see why sometimes, you know, Yarko is like... So it's awesome in that way. Recently I've been like complaining a lot about internationalization on the Webmail and so Massimo did another one of his famous videos which is like, you know, having a multi-lingual website in three minutes. So he does a lot of those things. Questions? All right. And I tend to get a bit monotone after a little while. I have a question. Yes. Sure. If there's one at myvishpala. What is an app spot? Let me just check the URL. I'm like, oh, actually I can show you one. It can be kind of far away. I don't know you that well. Yeah, so I have blown there for folks who haven't seen blown. It's awesome software, but it's kind of an army tank. Actually it's more like a battleship. And I'm just going to change pages on my blown there. So you saw there was like kind of a little delay there. And I'm going to go over to WebDepai. Oh, it's asking for my administrator's password. Okay. Yes. So you have a default application. For folks who have used Ruby on Rails, it works very much like, the concepts are very similar to Ruby on Rails. You have a skeleton, or a scaffolding, sorry. And the scaffolding in the case of WebDepai, I believe is the welcome application. So if you're like really kicking out the websites, you would probably want to customize the welcome application. Because every new application that you create, and I'll just create a new application. That would be exciting. So I'm going to go to a site, create new application. I'm going to call it the letter A. And I choose submit. And now I have my new application. So, yeah. The framework runs under any, not any, but most web servers. From my understanding of WSGI, it's not new, but support is kind of new. They use Mod WSGI, and I run it under Mod WSGI on Ubuntu. And it worked great. I had to change one of the configuration files that was supposed to work on Mod WSGI, but it doesn't actually work. So I just had to change the, in the virtual host file there was, I'm trying to remember the name. It was like a variable for the group that was running Mod WSGI. Wow, I'm like parched. Okay, so we have our application, and I have a whole whack of other applications. I'll just open one that looks nice. Mine are all very... Okay, I have the Web to Buy conference application. Oops, internal error. Now, it comes with ticketing, so it's issued a ticket because I have an internal error. I'm going to click on it, and it's going to tell me all my information. And this is all running on my web browser, so it tells me where the error is. It says, I've got an unexpected keyword argument, pools. Well, I haven't actually explored that particular aspect. Sure, you can... Yeah, yeah, just one after the other. You can get an application that does that Web to Buy itself. I don't believe it has a search function for the errors, but I'm just going to go here. There's an errors tab, which I never use. Click on it. It says, error logs for A, I have zero. Let me just go back to that last application where we got our error. Thank you. I really appreciate that. Okay, there we go. So we have our error. I'm going to click on errors. This will show me the errors for this application. So when I was under the new application that I created, since it's brand new, no errors. Now I'm under this application called WebConf, and I have two errors that I've generated because I loaded the page twice. We have a date and timestamp. I can delete them if I want, or I can click on them and follow up. So it's really unbelievable. I don't know how else to describe it. I did not believe the advertising at all when I went to the site, but it's pretty cool. Yeah, so you can visit Web to Buy. As I said, the resources are scattered, and there's a few abandoned support sites and that kind of stuff that you'll run into, which look kind of bad. But a great one to check out is called Web to Buy Slices. For those of you who like speed and agility and want to see all the latest bells and whistles, Web to Buy Slices is kind of where you can paste, you know, like how to install it, paste an Ubuntu installer script for Web to Buy. So if you're looking for that kind of like speedy, you know, shortcuts to development, you will go to Web to Buy Slices, and if you're running Ubuntu, you would look up the script that Massimo wrote, which basically does your standard Ubuntu app to get and installs and configures Web to Buy for you. As I wrote in a little email I sent out today for folks who saw it, like I was, did anybody else go to this Google, there was a Google guy who was giving a talk on Google application engine and how to use that? It was a while, how was that? Okay, and how long, how long was it? Ah, okay. I was just wondering how long it was because I wanted to try deploying my application on Google app engine, and it was kind of scary, right? I was like, Google app engine. And I was like, I better study before I go to this conference so I know what I'm talking about. At least I can ask an intelligent question. And so I was like, I'll just go through the steps of deploying my little test application. And so I, you know, before I knew it, it was just deployed. I was like, well, okay. That was really easy. It was really, really easy. And I had to edit the YAML file, I think. YAML file. But after that, just poof, it was up there. And then I was a little bit sad. There was some more stuff I wanted to do on my app and make it look pretty. But the great thing was, is it forced me to iterate.  That can really interfere with, you know, business processes and makes it even harder when you finally get around to like spitting out your application or whatever to do it. So I thought that was, that was actually the thing I found to be the most wonderful about it, is that because it's so easy to upgrade and update, I feel very comfortable with, you know, pushing something out that's a little funky for my test users. And so the site that I have up, MyVish, does anybody have an internet connection? Okay, it's MyVishPaula. Is it AppSpot.com, I think? Yeah, AppSpot.com. And, uh, VishPaula, oh, sorry, that's her. So it's a, first, it's like a pre, it's like an accidental Google deployment. But I really like it. And it allowed some of our users to get on there and test it right away. We had one blind user that I was especially concerned about and he was able to successfully log on and navigate, which is why the menus were a little bit, well, they're text menus, the ones that I did. But unfortunately, because it was kind of an accidental release, it didn't configure any, you know, email server or anything like that. So sure enough, he forgot his password and then when he clicked on, you know, recover password, it didn't work. But other than that, he was able to edit, make some changes. And I based the whole thing on this, how to deploy a web app on GAE in three minutes with Massimo, which of course is insane as far as the claim. And I think someone was complaining that he actually took four minutes to deploy his application. And he didn't include the, you know, clicking the deploy now part in his video. But it was a pretty great application and it's based on, I forget the name of the guy who actually first conceptualized it, but based on a concept of rather than editing content, what you do is you make a copy of your content and then you create a new page and you paste the old content in the new page so that nothing ever gets deleted. And it's a fantastic concept because, you know, space is really, really cheap these days and it gives you a big level of transparency. It's totally awesome for people who can't see because they're always hitting the wrong buttons and having problems. So they're not afraid to do content editing because they know even if they, you know, explode the entire page that they can always go back in history and pull up their old pages. It's also great for if you're doing anything in the United States where they have these incredibly... I don't know what the punishments are, but nobody talks about cheating. But you have to keep track of your history and so Plone is very good about that. Plone has a, you can go back in history of web pages that get edited and see what Bob did, you know, ten months ago that the IRS is interested in if you're American and they have very strict law now. What is it? The Sarbanes-Oxley's Act? Yeah, yeah. Yes, yes. Thank you. Ten years. And so for companies that have websites or if you're in the website making business and you want to sell old-age tazunis, it's something you really want to be away from. You want to be aware of. Sarbanes-Oxley. And so this little test app I did, I liked Massimo's implementation. It was like super lightweight and super simple. Perhaps a little too simple. Definitely need some expansion, but it also included a little wiki, wiki functionality I should say so that users can easily create a new web page. Did you ever test a web page as if? Yeah, but it's hopeless. That's a great question. And that was a huge thing that I decided not to cover because people get bummed out. I don't know. I need to think about it. Poor guy can't see. People get bummed out. But it's in a nutshell for menu items. You want nice degrading. So the secret is degrading, which means that if you're using some fancy new Java application, what happens when it's running on Windows Explorer 5, which is what all the blind people are running? Those are poor. I'm just kidding. But I'm just kidding. But that's something to keep in mind. But seriously, that's too many jokes. Because statistically, if you take a look at a population of individuals living with disabilities like blindness, the nine times out of 10, well actually maybe it's a little less than that, but they're unemployed. So they have no money. And they're going to be running all this stuff that will run. And so that's something you want to keep in mind. The other thing you want to keep in mind is that there's also a lot of flak around accessibility flak, meaning conflicting stories.  Those are the hot keys. Never use those because users of certain screen scrapers slash screen readers will be using the same keyboard combinations. And so it gets very scary really quickly. But the best thing you do is you put it out. Can you log on? Yeah. Did you have a problem? No, it works great. Fantastic. Pardon me? Links, well, links is awesome because it's light. Yeah, it's light. It's from the command line. It's a bit dated, I think. Well, there are a few exceptional blind programmers and command line users. And in fact, there's a product for Emacs called Emacs Speaks, which was recently inducted into the Smithsonian Museum because it's so awesome that allows blind users to do Emacs programming, which is actually another reason why Web2Py is much more fun to program with than I almost left it out and I only have one minute. Oh my God. There's a shell in Web2Py. So it runs over the, you can tell I'm kind of a wuss because I don't use the shell in Web2Py. But Massimo uses it all the time. So you have shell access and the other cool thing about it is unlike Clone, which uses the ZMI, which is cool, it runs right on the file system of the web server, so you can do synchronization and all this other cool stuff. Very, very easily you can swap files in and swap files out. The other great thing about it is you can export your application, as I said before, send it to a friend. You can look at your ticketing, see what work program or how it's done during the day if you're in administration, and so on and so forth. It's fabulous. Yeah. It's got a really cool world up in the scale. I've never tried to scale Web2Py. On Web2Py slices, Massimo again talks about how to scale your Web2Py server. I believe I'm out of time. And Massimo is kind of like following someone through the jungle who lives there because he's so good at using Web2Py that sometimes it's kind of hard to follow him. But yeah, he's done a slice on how to do scalability. And finally, in closing, I just wanted to say the other thing that I like the most about Web2Py is that it includes things like CRUD. Has anybody used CRUD before? CRUD is like automated. It creates an automated Web page for your database so with your fields and your data automatically. And I'm sure there are some other things that do that as well. So you can use CRUD, which works great, or you can go really low level. And most of the Web2Py is basically finished. Now what they do is they add layers, which you can choose to use or not to use. And those layers are called there's one is T2 and T3 and T4. And those are the ones that you don't, yeah, not that T and different T. So T2, T3 and T4, most Web2Py users I think never even visit that. But that's where your eyes like, whoa, I'm going to stay up all night and make this work. This is so cool. So if you want to play with Web2Py, you can work on the layers and you don't have to worry about killing everybody's applications who, you know, all these organizations that built their application on Web2Py. So it's super easy to upgrade. You can upgrade the next version. It doesn't wipe out your applications. I tried to reinstall Plone today and it said you already have Plone installed. Please erase it before you reinstall just out of fear that they might somehow like clobber my application which was really polite. But you don't need to worry about that with Web2Py because of the way it's laid out so you can do upgrades. Thank you very much. I'm sorry it was slightly disjointed. I wanted to do this a little bit later but Yannick had an opening for the main spot so I went for it. I hope everyone enjoyed it. If you have questions or whatever I'm more than happy to give you my best answers. Thank you, Riz.