0:02 |
well hello hello welcome everybody this is the july the 15th |
0:08 |
2021 edition of southern fried dnn meetup i'm glad |
0:14 |
everybody's able to join us we got quite a few people coming into the meeting here and if you're watching |
0:21 |
uh live thanks for attending and if you are going to be watching this after the fact then greetings wherever |
0:28 |
you are in this fighting world um i am kind of pulling triple duty today |
0:34 |
on this one because uh ryan moore who typically emcees the the |
0:40 |
events here he is out on a scouting trip so ryan we miss you and i probably will not |
0:47 |
do justice to the way that you run these things so forgive me for that um and clint patterson he's actually |
0:55 |
involved in a client meeting right now and has a conflict uh isn't unable to join us here too so that being |
1:01 |
said a little bit of housekeeping if there are things that are questions |
1:07 |
while either i'm presenting or actually while daniel daniel's presenting later on i'll be monitoring the chat a little |
1:14 |
bit better but while i'm presenting i may or may not see your chat so feel free to just interrupt |
1:21 |
me as i'm presenting um we usually start out these meetings by thanking our sponsors and hopefully i |
1:28 |
won't forget the right ones here but we do like to thank manage.com |
1:33 |
for hosting the southern fried dnn.com website main thing that you're going to |
1:40 |
get out here at this site is every month after the meetups we do a recap ryan does a great job at writing |
1:47 |
up the recap so here's one from last month where will stroll our awareness leader i |
1:52 |
think we'll just join just as well hello will um presented on being in awareness and |
1:58 |
steve krantz been presented on ck editor magic so you can check out the recaps there |
2:05 |
and of course watch the youtube videos that are posted out on the youtube |
2:10 |
channel they're usually embedded into these articles so |
2:15 |
i think someone will be kind of re-watching this after the fact and doing a recap of this one |
2:21 |
as well but you can check out our youtube channel out there as well where all of the meetups |
2:27 |
are posted after the fact |
2:32 |
let's see um we've got also seems like i'm missing a sponsor here |
2:39 |
[Music] yep i can't think of the one that i'm missing right now |
2:44 |
but we have quite a few uh oh actually man deeps that's what it is man deeps i think we're using the his uh |
2:50 |
live blog um module out here on the website so they were kind enough to grace us with a |
2:56 |
license out there so thanks to them if you uh don't know about manage.com or mandeeps.com check them out and |
3:05 |
manage.com hosting for dnn websites and manage i'm sorry mandeeps for various |
3:12 |
extensions that work on dna platform and evoke |
3:18 |
let's get into a little bit of announcements in the community of course always be |
3:24 |
attuned to what's going on out on the dnacommunity.org website there's a lot of resources out here |
3:31 |
for you i've highlighted just a few blogs that have been posted recently |
3:39 |
out here and one from clint patterson recently that was talking about github |
3:45 |
sponsors and if you know a lot of you may not know about github sponsors but it's a great way |
3:51 |
um through github to sponsor various developers that are in the |
3:57 |
community or i mean i guess it doesn't have to be a developer any contributor of any sort |
4:02 |
uh that is contributing to projects being able to they launched a new feature that allows |
4:08 |
you to do one-time uh gifts instead of being committed to a monthly |
4:14 |
gift when they first launched that program it was you kind of had to commit to a |
4:20 |
monthly contribution so i think a lot of people didn't didn't do didn't leverage that feature because you |
4:26 |
know the the inability to do it one time and perhaps forgetting to uh cancel their monthly subscription |
4:34 |
uh there but it's great because a lot of sponsors will configure their environment to be able to do an open |
4:40 |
kind of one-time contribution but clint did a nice write-up out here explaining how it works |
4:46 |
so if you don't know about that and you're looking to get some things done on your favorite open source project |
4:51 |
including dn platform be sure to check it out most of the developers i think in our community |
4:57 |
have sponsor pages out there and you can just check that out i think |
5:02 |
you can go to github.com forward slash the username of the developer |
5:08 |
and sponsors or i may have that backward is it slash sponsors slash the username it's one of those two |
5:15 |
but if you go to their profile page usually if they have sponsorships configured you'll be able to get to it |
5:21 |
right from their main profile page as well this was another fairly big announcement |
5:27 |
recently that thanks to the efforts of a few in our community was able to work with |
5:34 |
cantaris who has now donated polydeploy |
5:39 |
uh to the community um or i should just say really the stewardship of the project has really been |
5:46 |
turned over um they launched this open source project i think |
5:51 |
maybe it was like three years ago at a dnn summit and it caught on really great but it's a |
5:59 |
solution that allows you to install multiple extensions within dnn |
6:06 |
all at one time with only one app pull recycle as a part of the process and you can do |
6:12 |
that through a user interface as well as doing that through |
6:17 |
any kind of continuous integration or continuous delivery tools like github actions or devops but the project |
6:26 |
over the years has has evolved a bit and you know it when a project's this big and and |
6:32 |
this complicated sometimes it's hard for the original company to maintain and keep up with it so |
6:37 |
they have graciously turned that over to the get-go um organization of the indian community |
6:43 |
and so the plans here mitch sellers outlines in this article that what the plan really is to |
6:51 |
get that project up to a point to where um hopefully ultimately it can be rolled into the base offering for dnn platforms |
6:58 |
so that's an exciting one there so check that one out |
7:04 |
another one recently by stefan compass about the ck editor so i thought this was a nice segue to last month's |
7:11 |
meetup about ck editor when steve krantzman presented on so much here it was a nice |
7:17 |
uh article out here about how to use the easy image upload uh in the dnn ck |
7:23 |
editor implementation one other i guess one of the other big |
7:29 |
ones to announce is the release candidate for dnm platform 9.10.0 |
7:39 |
you'll see that there is a release candidate 2 out here now and there's much to talk about really on |
7:45 |
this release is i think it's going to be a great release with a bunch of nice new things in it so |
7:50 |
be sure to check out the release notes out here as well as get involved in testing for the platform you can do |
7:58 |
that in one of many ways you can come out to github here go to the releases and |
8:04 |
download your install package or upgrade packages whatever it is that you're testing |
8:10 |
you can also do this through mb quick site to make that a quick and easy process for you to install locally and |
8:15 |
test so thanks to everybody that has contributed i think there are quite a few contributors for this month |
8:22 |
and they're listed there so thanks to all of them for their awesome contributions |
8:28 |
what have i missed have i missed anything that's worthy of highlighting in the community |
8:34 |
that anybody has that i missed testing testing testing |
8:41 |
one two three no i mean uh please do test drc |
8:46 |
and report any issues it's absolutely a very very welcome task there was one issue |
8:52 |
that i think got resolved already um the rc i think it wouldn't even install so it was kind of a build |
9:00 |
process and thanks to brian bukes i was able to get that input in so it does pay off to report |
9:07 |
these issues even if you're not 100 confident of what's causing it |
9:13 |
still report it because somebody else may know what's going on there you can come out to the issues tab here |
9:19 |
click on new issue and post that there |
9:24 |
anything else that anybody would like to point out before we jump into the presentations for today |
9:36 |
anybody working on any really cool little projects or big projects |
9:45 |
and crickets everybody's on vacation that's right man they're following suit |
9:51 |
after you brian you know going on holiday in the summer well let's jump into it um today we've |
9:58 |
got two presenters uh one of which is myself so this is a bit awkward i'm going to introduce myself |
10:03 |
hi me david poindexter yeah and then later daniel golatis will be |
10:09 |
talking about ice cream i think he likes vanilla for some reason so he's going to tell us why he likes |
10:15 |
vanilla but we'll jump right into it |
10:21 |
and if something is not coming through or making sense hopefully my audio is okay here um |
10:28 |
just let me know just chime in and if you have any questions along the way just let me know we'll have a |
10:34 |
piece at the end here to uh to kind of allow some more questions and deeper |
10:39 |
dive into some of the subject matter that that that you're interested in or want to know more about |
10:44 |
but we'll make this pretty open-ended so um for those that don't know there |
10:51 |
are uh four primary leaders i guess in the in the dna community right now |
10:56 |
and um i am one of them i'm on the strategy side of things and |
11:03 |
i my main role kind of in that is to kind of connect the dots between the |
11:08 |
various leadership groups so awareness technology and development |
11:14 |
and i think will stroll is here uh today from the awareness group so thanks for joining us will |
11:20 |
um we we meet on a regular basis uh as a leadership team and there are some also some sub leaders |
11:26 |
and other groups there and i'll go over some of that here a little bit as well but a little bit more |
11:31 |
about me i am the ceo of envisionative we are creative |
11:36 |
marketing and app development company based out of north carolina in the u.s of a um i mentioned i'm on |
11:44 |
the leadership team and on the strategy on the board of directors for dna connect |
11:50 |
and co-president of the southern fried dnn which we're in right now and you may also know me |
11:56 |
from some of the other tools that are used within the ecosystem here you'll be quick site and various envy quick |
12:02 |
uh products that are out there open source products and contact information down there below |
12:11 |
so let's take a i i i find it very difficult to talk about |
12:17 |
strategy you know without really evaluating our past and i think a few uh leaders have done |
12:24 |
this recently talking about kind of where we used to be where we come from where we've |
12:29 |
you know gone through and uh kind of where we are now so i'd like to take a little bit different approach to |
12:35 |
this and put a little bit of a pictorial journey here together for you and i'll |
12:42 |
get through this fairly quickly we'll get into the meat of things so when dnn kind of |
12:49 |
first evolved as dot net nukes we all know it at the time i think it came out of a eye |
12:55 |
by spy project that was kind of a best practices |
13:00 |
project put together by microsoft and another company and and eventually our baseball workshop |
13:06 |
devolved out of that and ultimately became net nuke um back in the days it was really kind of |
13:12 |
the great frontier right it was what is this thing called asp.net |
13:18 |
and how do we use that to build websites and portals back in time |
13:24 |
with the terminology and you know have real content management features and |
13:30 |
things like that so i mean it was like it was almost like a kid in a candy store you know it's like |
13:36 |
wow there's this great land out here that we need to explore and you know try to figure out what in |
13:42 |
the world this means for us and this technology's new and it's cool and |
13:47 |
fun and let's just kind of jump out there and really explore and so it evolved into this |
13:55 |
real exploration and establishment you know thing where there was this |
14:01 |
group of people and ultimately that kind of kind of became the core team that worked on the the solution |
14:09 |
and this was back before github obviously you know so open source back then meant something a |
14:16 |
little different than it does now it's the same concepts but the actual collaboration of coding and |
14:23 |
sharing things with each other was was a little different from a tooling standpoint back then but |
14:28 |
it was great you know but this it was this exploration of what does it mean to be a content |
14:34 |
management system and what is that what features does that involve and |
14:39 |
like any you know new products a lot of times you get go down the path of a little bit of |
14:44 |
feature this feature that we want to do this we want to do that and you start getting into a little bit of |
14:50 |
what can sometimes lead to a feature bloat and so we had all the core modules that were |
14:57 |
involved in the project you know like faqs want to be able to do an faq on the site want to be able to manage documents |
15:04 |
on the site want to be able to manage links want to be able to have announcements and |
15:10 |
you know it was really a lot of these different little features and those kind of became sub teams you know that would or |
15:16 |
individuals that would maintain those modules you know within dnn |
15:21 |
and i'm kind of sticking high level here but you know you you get it it was like let's figure out this cool new feature |
15:28 |
and let's implement it and it becomes part of the product but there was also this |
15:35 |
thing that was beyond the actual product itself it was like you know because dnn was extensible from |
15:41 |
the get-go you know it was it was built on these ideas of extensibility you know and |
15:47 |
being able to plug in your own solutions for things so there was a rich |
15:52 |
ecosystem that evolved out of this i think how many he remembers snow |
15:59 |
covered yeah i remember oh yeah having one of |
16:04 |
the first few modules that were out there on snow covered and i missed it so much in fact for me that |
16:10 |
was the i i had developed the oh i think i called it advanced html |
16:16 |
editor or something like that you know and that was my claim to fame way back in the day |
16:21 |
and you know put it out there on the store and was giving feedback to bryce snow you |
16:27 |
know and his brother egan or egan right he yeah eagan i think it was |
16:32 |
and uh great guys you know but they built this whole platform you know for selling extensions |
16:39 |
and there was one kind of competitor in in that space but they kind of fizzled out and snow cover |
16:45 |
kind of won the game right um but that really was a catalyst for |
16:51 |
a great deal of e-commerce you know and and being able to start up companies |
16:58 |
i mean some some of these vendors that are here today they got their start way back then you |
17:04 |
know man deeps and um easy dnn solutions and uh dnn sharp and |
17:12 |
you know some of these that we all know the names that's kind of when it all started was way back then they started |
17:17 |
building their suite of modules and selling them so it was great it was |
17:23 |
the the sky was the limit you could you know if you could dream it up and build it you know you could sell it and make a |
17:30 |
good business out of it you know whether it's document management or a |
17:35 |
blog module or whatever you know there was opportunity galore so |
17:40 |
it was a fun time in exploring that you know in establishing new businesses is establishing the |
17:47 |
platform itself and you know along the on the road though |
17:53 |
when things start to grow to a certain point it begins to get a little bit more crazy |
17:59 |
right you know especially for those that are behind the scenes on the project and |
18:05 |
really kind of managing the project or stewarding projects i can only imagine some of the conversations sean walker must have had |
18:11 |
back in the day is you know of well what do we do with this beast that's been you know created |
18:16 |
and it's not like you have complete control but you kind of kind of do you know it was open source |
18:23 |
but it was still there had been talks about where do we go you know from here as the core |
18:31 |
team and you know eventually there were other people involved you know that were the |
18:38 |
key players you know when it comes into the the platform itself and um they come to this point in the |
18:46 |
river where they they got to make a decision who are we going to be where are we going to be when we grow up |
18:52 |
you know and the choice is not always clear that left side of the river |
18:59 |
looks pretty good over there but i mean the right side doesn't look too bad either it's got a few more rocks but |
19:05 |
you know they both look pretty appealing and guess what you can't really see what's beyond the bend up there you know |
19:12 |
you can only see so far on this and so decisions were made |
19:18 |
and the project as a whole you know there's a decision to form a corporation.net new corporation |
19:26 |
and we even have people here that were employees of done a new corporation back |
19:33 |
in the day could probably tell us some incredible stories of all that but |
19:38 |
there was decisions made you know to figure out how to build a business around this but yet still stay true to |
19:46 |
the you know the whole philosophy of the open source there so what happens in the universe stays |
19:54 |
indiana in court ah come on that's not true that's not true will you can share some stories with us |
19:59 |
um so you know those choices were made right and um some of the choices were |
20:07 |
where are we going to be purely open source are we going to go to more of a closed |
20:13 |
source but make it freely available are we going to become i think i've heard the term |
20:20 |
freemium kind of model you know where there's this free aspect of the product but there's also this |
20:29 |
paid for aspect of the product and that's ultimately you know the decision that was |
20:34 |
made and evolved into i think the first days was like dnn |
20:39 |
professional right you know came out and uh eventually became |
20:44 |
evoque when it was rebranded you know but a suite of modules that sit on top of |
20:51 |
dnm platform and modifies it to a certain degree as well and kind of becomes a new |
20:57 |
product offering but still has the same underlying you know base uh |
21:03 |
code base as being in so it's really just kind of both you know it sounds like a win-win |
21:10 |
for everybody right um that that hey we could build a business off of this and offer some |
21:15 |
professional services or enterprise level kind of services but still maintain this project that we |
21:21 |
love and people use to build their own businesses and you know provide services to others so |
21:29 |
you know be that right or wrong that's the choices that were made so then there becomes you know |
21:35 |
the whole funding and all that kind of thing and what all that dynamic brings to the to the table uh |
21:42 |
for that so eventually things grew and grew and grew right |
21:47 |
but at some point the open source aspect of it or the |
21:55 |
free aspects of it starts kind of getting ignored because there's business |
22:01 |
objectives and there's money that's driving the you know the things that are keeping people's salaries paid and and |
22:09 |
you know a future for the for the company so it's very hard to maintain you know a |
22:16 |
interest in all of those aspects right because at the end of the day it's about keeping the lights on and so forth so |
22:23 |
you know some very i'm sure there's some very tough conversations but it kind of started becoming a ghost town |
22:28 |
when it came to the actual part of it that was you know the open source aspect of it |
22:35 |
you know and and i think back to the days you know it was out on complex right and you know it was very different than |
22:42 |
uh github in the sense that it wasn't quite as easy you know to contribute or be a part |
22:49 |
it was really kind of like well here's the source you can get it but there's no easy way for you to contribute to it so it was this kind of |
22:56 |
this model if you weren't a part of the inner circle or having the connections to those it was very |
23:01 |
difficult to be a part of the actual code base and really contribute to it so |
23:06 |
you know many of you probably remember there were there were quite a few years where we were like um what's the future you know |
23:15 |
of being in uh is it dying you know do we need to switch and |
23:22 |
and go somewhere else do we need to look at other solutions and i'm sure many of you had |
23:27 |
those kind of questions too you know and it's like well what's going on you know i mean |
23:32 |
what is an mvp right what what does that mean anymore um what does what does it mean to be |
23:40 |
opensort you know there were so many questions right well it eventually evolved into being it you know i'm not trying to paint a |
23:46 |
gloomy picture but it's it's part of our past right this is something that it's |
23:52 |
hard to talk about strategy of the future without recognizing some of the pain in the past we want to learn from |
23:57 |
mistakes and things that you know decision points that you know we weren't even involved in but |
24:03 |
you know we we need to watch out for those kind of things right so what happened next |
24:08 |
well this is my perspective you know um but i'd love to hear your perspective |
24:14 |
as well but you know to me community happened well |
24:20 |
community was always there you know there was always this real camaraderie you know between the |
24:26 |
people in the ecosystem and we had the events you know that came together i've got a |
24:32 |
banner behind me from dnn world what was it dot net nuke world in |
24:37 |
orlando 2011. i remember 2011 and i think it was 2012 that was |
24:43 |
the big kind of corp ran events that were there and they were fantastic but i mean that was like |
24:50 |
that was kind of the pinnacle of you know events for us back then you know it was it was |
24:56 |
they were different right but it was the |
25:01 |
community and the connections that we all have with each other you know the friendships that were built over the |
25:07 |
years the the care about our own products our you know our own offerings our open |
25:13 |
source projects our things that we do for our clients our projects and things like that you really |
25:20 |
kind of connected us all plus we kind of genuinely just like each other and like to hang out right |
25:26 |
real diverse group of people but you know there's a there's quite a few that kind of had |
25:32 |
this mentality of well y'all can talk about dna and dying all you want to but yeah not on my watch |
25:39 |
you know it's just not going to happen so you know there was still this undergirding activity in this |
25:47 |
care for this this aspect that's so so differentiating i think with our |
25:54 |
world with dnn from other platforms and communities is just there really is a sense of |
26:00 |
community there is that deeper connection beyond just a code base and a tool that we use |
26:08 |
so that's really kind of what happened you know in in my perspective is the community just didn't let it die |
26:16 |
you know so ultimately you know the ending corp gets acquired um |
26:23 |
by ews and you know that brings in even more uncertainty ultimately it became |
26:31 |
the best thing that could have happened really uh for our community and for |
26:38 |
the platform itself and it was it was a bit uncertain even for a couple |
26:44 |
of years after that happened i mean this was will i don't know if you're on still or not |
26:50 |
but what was it three years ago maybe when the acquisition happened and |
26:55 |
the leadership team was uh i think we're moving on to four or four and a half at this point wow that's crazy so like i remember for |
27:04 |
the first two years is like yeah okay we've established some community ownership you know of |
27:11 |
things and kind of becoming the driving force behind things but |
27:16 |
there was still a lot of uncertainty for this first couple of years but then i think it just started the light bulb |
27:22 |
just it wasn't a an instant click on you know that happened over the over time |
27:28 |
but ultimately it evolved to you know what we we really are in control of things you |
27:34 |
know not from an egotistical standpoint but just from a just from a hey we we we do control the |
27:40 |
destiny in the future of this great platform the code base i |
27:45 |
mean we weren't sure right if we really could control it in the sense of not |
27:54 |
you know really evolving it and taking it somewhere and doing really whatever the community |
27:59 |
sees fit for things but i think you know over the last i guess year and |
28:04 |
a half or so now it's become very obvious that that is happening and |
28:10 |
there is no dictation happening from the corps side anymore i mean they're |
28:17 |
hardly even involved you know and that's due to many reasons |
28:22 |
but it's ultimately they really meant what they said you know andy triba who's not with them |
28:29 |
anymore i mean he said listen you guys are in control of this do what you see fit he actually meant it |
28:38 |
you know i think we all just were in such shock it sounded like lip service but it just |
28:44 |
wasn't you actually meant it so um we've been enabled you know to to go forward so you know |
28:52 |
that brings us kind of to now we have this oops in the wrong window |
28:58 |
we have this canvas now that's it's a great starting point and it's |
29:05 |
great to look at it from a starting point perspective because it's like well okay if we really are in control |
29:12 |
as a community of this project well where do we go from here what do we do with it and i think some |
29:19 |
really great things have already been happening uh for it and that will |
29:25 |
continue to happen um for it but i say all this to really kind of set |
29:31 |
the stage for strategy it's like well we can't really talk strategy |
29:37 |
without understanding all of this and i it kind of amazes me i guess it's |
29:43 |
because maybe i'm in whatever inner circle or whatever you want to look at it as where i know a lot that i guess a lot of |
29:50 |
people just don't know but it still kind of amazes me that there are people that don't understand there is no |
29:59 |
corp there is no seeking approval you know for changes and stuff that we |
30:05 |
want to do with the platform it's really driven by the community you know and |
30:10 |
through the leadership team kind of helps guide that and steward that but it's ultimately what the greater good |
30:17 |
you know needs for things and that's so it's almost a blank canvas i mean we |
30:23 |
have some baggage obviously with code that was written or so you |
30:28 |
know that was architected in a certain way that had we were to do it from scratch we |
30:33 |
wouldn't done that way but you know we don't have the resources either you know to do crazy stuff either i mean you know we would if more and more |
30:39 |
people got involved but really kind of comes down to to us you know as a community |
30:46 |
to you um and how how can you impact it you know maybe you're not a code |
30:51 |
slinger maybe you're a designer or a ux person or something you know just there's so many different ways to get |
30:57 |
involved in the project and to impact the both the product |
31:03 |
as well as the ecosystem at large so you know as mentioned in snow covered |
31:09 |
earlier there's a great opportunity for someone or some group of people out there to |
31:15 |
re-establish that to rethink that to reimagine what the commerce might would look like |
31:22 |
or distribution of things might look like in the community because i mean yeah we |
31:27 |
have the dnn store but we don't have it we don't control that and there's nobody at corp controlling |
31:34 |
that either there's some management of it that's happening but that has become you know a kind of a |
31:43 |
dying proposition you know and i'm not sure of any vendors that are really kind of |
31:48 |
publishing new things out there um maybe there are i don't know i'm not aware of them if they are |
31:54 |
there's great opportunity there you know so it may not be directly with the platform itself it may just be |
32:00 |
you know something something like that that might strike your interest there as a business opportunity |
32:06 |
so let me get into just some of the specifics of where things have |
32:12 |
been going and and all that i won't spend a whole lot more time but i'll go to high level some of the areas that |
32:18 |
have been being worked on and that are being looked at and considered um they're kind of two main |
32:24 |
areas that are under my purview i guess uh and in the strategy side of things |
32:31 |
and one of those big areas is kind of issue management and how things flow through |
32:36 |
um the github or repo out there for dn platform and associated |
32:42 |
projects and there's been um quite a bit that's gone on over the past couple years there |
32:50 |
one of the first things that got um done on on that was kind of reworking |
32:57 |
the whole label system and how issues are kind of managed and it's it's |
33:04 |
really still a work in progress i don't know that we have it perfect but i think the labeling system is kind |
33:09 |
of working pretty well when we use it it helps us to kind of identify what area of the code an issue might |
33:17 |
pertain to or areas that it might pertain to what the kind of high level |
33:22 |
of effort that that might be involved um you know what the priority of that |
33:28 |
may be but there's quite a few labels that are used for those purposes whenever we're able to |
33:34 |
kind of manage issues as they're coming through we try our best to assign what we know |
33:39 |
um makes sense to some of those um the other areas we we set up an issue |
33:46 |
triage project out there and it's funny because like i it makes a lot of sense from a |
33:53 |
from a high level in reality it's hard to manage it you know when it goes through and for those that haven't seen it i'll |
34:01 |
kind of switch over to github here for just a second and and show you but |
34:06 |
if you go out to the github project and you go to projects there's an issue triage project and some |
34:13 |
of this is automated um through here and you can see that it's kind of working at a high level |
34:18 |
it's just that we're missing a few key automation pieces and and we want to fix some of those through github actions |
34:25 |
uh in the coming months but um when an issue gets posted on here it's supposed to be |
34:31 |
automatically added to the awaiting triage panel and or board or layout whatever |
34:37 |
you know these are kind of like kanban boards if you're familiar with agile methodologies but it kind of takes them |
34:43 |
through statuses and when an issue is |
34:48 |
needing more clarity it gets put into the awaiting either compliance like it's not really |
34:54 |
enough information to be actionable or it needs some confirmation from |
34:59 |
others that that is indeed an issue or not an issue it kind of goes into here |
35:05 |
when it ultimately gets recognized as a viable issue that's |
35:12 |
actionable it'll go into bugs and enhancements or features a column and then once |
35:17 |
a pr or pull request is is submitted for it and closes the issue then it goes into |
35:23 |
close so you can see from the numbers here i mean it's working at a high level we don't do a whole lot of manual |
35:28 |
management of this most of it's automated through here but it's nice way to come out here and at least see |
35:35 |
what's available to work on so like if you're a developer looking for a few things to to work on you can use the label system |
35:41 |
to kind of find the right areas that are your areas of expertise or you |
35:49 |
go through what was i saying oh yeah or you know kind of just look and say |
35:56 |
okay i want to squash some bugs today or i want to do some enhancements you can kind of browse through these right now there's |
36:01 |
40 bugs in here 14 enhancements and eight feature kind of things features are probably bigger |
36:06 |
kind of more epics that are being worked on for that but yeah it's a great way to at least view things |
36:13 |
and so jump back over here but the other thing is well now let me go |
36:19 |
back over here another thing is milestones that was a recent change that we made because there was a bit of |
36:26 |
misperception that was happening with milestones a lot of times we would assign it to the next |
36:32 |
patch release or minor release and it was being perceived that that was |
36:39 |
a commitment that it was going to be in that release and we switched things up a little bit because that was never |
36:46 |
really the intent you know it was like okay if somebody submits uh you know a fix for that or an |
36:53 |
enhancement for that then it would get there but it wasn't a commitment from this you |
37:00 |
know corporate team you know that was committing to actually doing it for that release so if it didn't get |
37:06 |
done then it did the rock just kind of got kicked down the road a bit uh on that and |
37:12 |
was you know just pushed forward a thing so it was kind of frustrating for some people that were thinking it were coming |
37:17 |
in that particular release and ended up not uh getting there |
37:24 |
so we switched it over to use this kind of naming convention here where we've got a future |
37:30 |
patch future minor and future major so it puts it in these buckets you know |
37:36 |
and this is another great way to come out here and see what's see what's you know available uh to be |
37:42 |
worked on you know out here so there's you can look in the patch ones say okay well and what this means is like |
37:48 |
there's some explanations on these but it's like well if a pull request came in for this we would |
37:53 |
allow that in a patch release because it's not a breaking change so it's kind of looking at semantic |
37:58 |
versioning a bit and really following those rules a bit and putting these issues into |
38:04 |
buckets that we believe makes sense for pull requests to come in for those |
38:09 |
so it's a great way to look at things that also doesn't commit to that particular release |
38:16 |
for that so it's it definitely has helped with the perception because i haven't heard as many complaints you |
38:21 |
know about things there so that's one area that things have improved a bit on the issue side of |
38:28 |
things there's lots that can be done but as you can see our number of issues have actually gone |
38:34 |
down significantly i think when we first started this process daniel you might be able to correct me if i'm wrong here but there were close |
38:41 |
to 350 issues in the backlog when we first kind of started this process |
38:46 |
and i think some of the organization has attributed to it being able to be |
38:52 |
flowed a little bit better through here and really kind of squash those down but thanks to all the the get approvers that |
39:00 |
go through here and manage these things and daniel i know you do a lot of work to kind of help organize things and validate things |
39:07 |
and have conversations with people and and so forth and just appreciate everybody's effort |
39:12 |
on that i think it's working but we definitely have areas for improvement here |
39:19 |
moving on in there's a few github beta features that we're looking at uh one of which i'm i'm excited about |
39:24 |
this this coming up and i think brian had pointed this one out to the team here but that there's a way to to now once they |
39:32 |
approve us for the beta we should be able to break issues |
39:38 |
into individual tasks so some issues come in that are a little bit bigger than a single |
39:43 |
actionable item and this is always kind of been a kind of a complaint you know for for us |
39:49 |
because it's like people are reporting the issue which is great but it's like what do we do about |
39:54 |
it it's not one thing that needs to be fixed there it may be five things that need to be fixed related to that |
40:00 |
issue so theoretically this is going to allow us to break some of the issues down into individual |
40:06 |
tasks but still associated with the issue and really kind of track the relationships |
40:11 |
as i go through there as well as the ability to add custom fields for various things i'm really excited |
40:18 |
about that one because that could really be very beneficial for some automation and so forth that we could potentially |
40:25 |
use with these so that's one area that's kind of excited to look into and |
40:32 |
help a little bit more with automation can't automate everything obviously but the more we can automate that |
40:37 |
is you know more manual menial kind of tasks would be great so that's kind of the |
40:43 |
focus there so the other of the two areas that uh that kind of falls under my purview of |
40:50 |
some special projects and this has a quite a bit of work that needs to be done in this |
40:56 |
area too to be a little bit more intentional about this sometimes |
41:02 |
special projects are a bit rogue in nature and individual driven which is is fine |
41:08 |
um but sometimes that leads to a little bit of frustration too if somebody spends a lot of time working |
41:13 |
on something that they think is going to be great but yet the greater you know community or the team doesn't |
41:20 |
really feel that that's the right direction or the right way to do something it can lead to some frustration so |
41:26 |
what i want to kind of do is put a little bit more structure around |
41:31 |
this a little more intent in this and try to help people to think through their projects a bit |
41:38 |
better you know and to really kind of think about the greater aspect of things sometimes than |
41:43 |
than just be you know working in a rogue fashion so um a few that i just put in here just |
41:49 |
to point out some more recent kind of special projects one is peter donker recently |
41:55 |
um did some pull requests related to bringing back the whole update feature |
42:01 |
um in the dna platform so that's was nice to see that come in so |
42:06 |
now if you um starting with 9.10.0 you should be able to see when there's an update available in the |
42:13 |
platform you can be able to access that so that's really good stuff um daniel vladis and i worked on uh |
42:20 |
some new concepts that are kind of like precursors to some of the future stuff for dnn 10 but is actu |
42:27 |
this stuff is actually going to be available in 9.10.0 that gives you some extendability from a |
42:34 |
theming perspective and styling perspective as it relates to the persona bar and edit bar so now they have the |
42:41 |
concept of theming so i'll be doing a few videos here about that but they leverage css variables |
42:47 |
and it's kind of cool because you can just sit there in the browser and kind of play around with the colors and it |
42:53 |
automatically changes right away and you can see oh okay so if i put this special file in |
42:58 |
a certain place or one of these two files in a special place it'll just automatically update the theme |
43:03 |
um the persona bar theme i'm sorry in the edit bar theme |
43:08 |
and these are kind of in a separate world right from the site itself so this opens up possibilities |
43:15 |
for let's just say you're an agency and you kind of want to put a a stamp of your own kind of look and feel |
43:20 |
for your all your instances for clients you could do your color |
43:26 |
scheme uh for the persona bar and edit bar as well as you can actually even replace the dnn logo |
43:32 |
using this theme theming so you could in essence you know kind of brand it |
43:37 |
as your your tool is there so that's a great possibility that's coming here in 9.10.0 |
43:46 |
another area i think daniel could speak for hours on this but is working a lot on some web components |
43:53 |
capabilities that are potentially coming in to version 10. he has a project out there on github called |
44:00 |
dnn elements as well as another fort that's kind of integration within dnn and how that's perceived so |
44:07 |
that's really nice to to see coming in and web components bring out |
44:12 |
a more standards-based approach to to components within dn rather than being tied to like |
44:18 |
telrick and some of the react components or other types of components that would be |
44:24 |
in there so that's really nice to see some talk has been happening on granular |
44:30 |
permissions more granular permissions in dnn this gives a bit more flexibility for |
44:36 |
those that are you know potentially looking at whether or not they want some of the |
44:42 |
more advanced features like that are currently in evoke so this might bring some possibilities in that area |
44:49 |
i'm just kind of more at a upfront kind of talking about it stage on this this is not meant to be |
44:56 |
perceived as a commitment for these things but just some of the stuff that's been in conversation |
45:04 |
structured content is another one just kind of keeps coming up and the need for some basic structure content capabilities within |
45:11 |
dnn not sure if this one will really become you know fruition or not bring to fruition or not but |
45:17 |
we'll see kind of where it goes but there's definitely some interest in that and i'm just realizing what time |
45:24 |
it is i'm going to kind of roll things along a little bit here quicker |
45:29 |
another special project it's really outside of the platform itself but i wanted to talk about it a little |
45:36 |
bit being in docs because some changes have happened there recently under new leadership |
45:43 |
for that team just due to some personal things that are going on and everything for for kelly he's still involved at some |
45:52 |
level on everything but um leadership is has been shifted over to me and a |
45:57 |
forming a new team for that so we're kind of at the beginning stages of the team |
46:03 |
um jeremy ferentz i think is on here as well he's going to be joining a bit on this |
46:09 |
and trying to help us move that project forward and daniel vladis i think you're going to help a little bit on this too we'll be |
46:15 |
expanding the team out a little bit more as we get further along but some of the initial things that we're doing is really |
46:21 |
getting some of the infrastructure changed on this one of which is the hosting it's |
46:27 |
currently hosted on aws and that's in a personal or business account |
46:34 |
over there so we really need to get that into more of an open kind of area so we'll be shifting |
46:40 |
dna docs to be over on github pages it just kind of makes sense it's free and it's available it's easy to |
46:45 |
integrate with github actions as our ci cd |
46:51 |
process build process that is currently being managed in jenkins so we got to |
46:56 |
kind of transmit transition that over to github actions which should be fairly straightforward but that's kind of the |
47:02 |
work that's being done right now to try to transition us over to github pages and |
47:07 |
then there's also will this is just a reminder that you and i need to talk about the domain |
47:13 |
but we're thinking about switching this over to a sub-domain of dnacommunity.org |
47:19 |
we just have to kind of talk through some of the seo ramifications of that and making sure we're doing that in a |
47:25 |
way that makes makes the most sense and beyond that that's when we'll kind |
47:31 |
of look at some of the things that people really care about you know and the organization of the content out there |
47:37 |
there's been a lot of ideas that have been thrown out over time but let's try to move it a little bit into a |
47:43 |
better structure moving forward and getting some improvements made there |
47:54 |
the um there's some things about the um dna community org |
48:01 |
on github some of the projects that are in there that been kind of thinking about for a |
48:07 |
while but just started implementing some of it one on some of the projects |
48:13 |
want to to implement a more consistent branching strategy across them |
48:18 |
to kind of follow the way that things are done with platform not quite as complicated as that but |
48:26 |
you know kind of basic stuff a lot of them still have the default branch out there as master |
48:31 |
but they may have a development branch or a developed branch and it's not the default and it's confusing |
48:38 |
as to what is the released version and all that so kind of want to get all that a little bit more cleaned up and |
48:45 |
start implementing some of the documentation stuff that we gosh that was a long time ago daniel |
48:51 |
that you know i worked on that jekyll theme for it but that's a great solution still |
48:56 |
for any of those projects that want to have documentation on github pages that leverages a theme |
49:04 |
that was built that is nice and branded for the dna community |
49:09 |
and then also just recently did a graphic for the newsletter module |
49:16 |
and i want to kind of do the same thing to give a little bit more branded look to all the other core modules is kind of the first step |
49:23 |
on that one but may include some of the other ones as well |
49:28 |
the community website there's um some things to be done there um a lot of this is i'll |
49:35 |
cover in just a minute so i figured i'd break it up a little bit with a nice little |
49:41 |
uh cartoon here of dilbert uh talking about kind of you know |
49:48 |
change and how things are done but you can take a look at that |
49:59 |
in the dna community a lot of times uh things will happen your conversation |
50:06 |
will spawn and there's there's these cyclical conversations that we have every so often you know either whether it's |
50:12 |
reminiscent about old programming languages or if it's about some hot spot feature like structured content or |
50:19 |
something in dnn and it very quickly heads into this |
50:25 |
chaotic state you know of oh my gosh could we ever be on the same page uh with any of this |
50:32 |
you know it's fun when we're reminiscing about old programming languages but when it gets into |
50:38 |
the actual functionality of something that's a hot spot in the in the platform it can become a debate |
50:43 |
you know whether it's talking about frameworks versus no frameworks or structure content or you know just |
50:49 |
one of these bigger areas i guess that are more philosophical |
50:54 |
in nature you know or ux driven and everybody has their own opinions and |
50:59 |
those opinions are valued but how in the world do we you know take all of that and |
51:08 |
produce something that's this good out of that you know because a lot of times those conversations will |
51:14 |
happen and there's some good debate there but in the end well what do we do about it |
51:19 |
you know nothing really gets done so part of what i see my role in here is |
51:26 |
to kind of organize the chaos a little bit find the little nuggets of things that could be |
51:33 |
grasped onto and we could actually do something with that wouldn't upset the world you know but would move |
51:39 |
us forward as a as a project so there's been a a project that's been |
51:45 |
on the back burner for quite some time but a lot of planning has happened for it and |
51:50 |
i have just started working on the actual code for this but it's the concept of |
51:57 |
having most of you are familiar with user voice websites kind of a way to share |
52:05 |
ideas out there about things that you would like enhancements or |
52:10 |
new features or something and then people can vote on them you can talk about those things |
52:16 |
and move them through some kind of cycle that ultimately could go into you know something that's |
52:23 |
actionable you know or get to a point where something is able to be actually worked on um so looking forward to |
52:31 |
working on that a little bit just to give you a glimpse of the wireframe for this this is early stages so it's going to probably |
52:38 |
evolve into something much better moving forward but if anybody would like to be involved in |
52:44 |
this project let me know this project is being built using one of daniel's |
52:49 |
templates out there for module development and it's using web components so you know from a technical standpoint it |
52:55 |
would be kind of fun to have some people learn a little bit more about web components you know either during the |
53:01 |
project or even after the project once it kind of gets off the ground and running but you can really see how something like this could |
53:07 |
be built in a pure standards-based way instead of being reliant on various frameworks and so |
53:14 |
forth so make sure neil a vanilla what was that daniel vanilla i like |
53:22 |
vanilla my my ears heard something completely different like really |
53:28 |
that's what we're using yeah so that that would be a kind of a fun one um you know the the kind of the takeaway |
53:35 |
messages that i would like to have here for all of this is that you're kind of wrapping it up here is that many hands |
53:41 |
do make light work i've used this slide quite a bit um on my presentations but i |
53:46 |
really mean it a lot like if if if there's some way that you can either report issues |
53:52 |
or share ideas or help talk through or validate someone |
53:57 |
else's issues or try to put somebody in their place if they're |
54:02 |
acting stupid in the community or whatever you know that you can help with get involved out |
54:08 |
there it's not just for coders but if you are a coder please consider |
54:13 |
contributing code here and there for little areas that you can really make a big impact sometimes a |
54:20 |
slight style tweak or something like that can really make a big difference from the perception |
54:26 |
of something that's been broken for ages you know and then also do check out the github |
54:32 |
sponsors program it's it's it's great and yep slash sponsors i think if you put slash somebody's |
54:38 |
username on the end of it if they do have sponsors set up on theirs then that'll that'll |
54:43 |
give them so if you want to you know motivate someone to |
54:48 |
work on a feature in dnn or on some other open source project that's in the community |
54:54 |
you know just this is a great way to kind of motivate people sometimes buying a coffee or something or |
54:59 |
or five coffees will get a lot of output from that because it's really kind of |
55:04 |
the principle of the matter that that motivates a lot of us on this not really about the money but it's kind of |
55:10 |
neat to when somebody does something like this you know and and send you 25 bucks you know to to |
55:17 |
encourage you you know and say thanks or to help with something that they really want so it's a great way to do it so i'll |
55:25 |
wrap up here and just opened up for any questions anything that kind of popped out i really wasn't able to keep up with the |
55:31 |
chats so if i missed something in there please please do point it out now |
55:42 |
well that must have been really really boring hear that or i did a fantastic job right |
55:50 |
being in diva you did a fantastic job fantastic job |
55:58 |
well i've been i've been paid to say that |
56:05 |
oh crap you are oh i just expect a drink on the next you |
56:12 |
know event that we might eventually meet each other |
56:20 |
well if there are any questions or i mean i will uh close this out know that |
56:29 |
there's no real bad ideas um so really i mean there can be i know |
56:35 |
daniel i see the look on your face there can be really bad ideas but it's all opinionated right it's the thing is if if an idea comes to |
56:44 |
mind it shouldn't be shot down just because it's a bad idea we'll put it that way |
56:49 |
let's throw out the idea because even a bad idea could promote a good idea of someone |
56:57 |
else so you know it's it's how we how we work together and yeah let's get all the bad ideas |
57:02 |
first you know so to rule them out yeah i guess the point is is that you know |
57:09 |
it's it's an open door policy uh this is not um you know a leader sitting up here |
57:16 |
dictating everything that's going on it this is really about the community so any help that you can provide |
57:22 |
in in the area of strategy i am always open to having conversations about it and you |
57:28 |
know learning ways that i could even be better at doing some of this stuff or if i'm just |
57:33 |
really missing the mark in a certain area please do let me know because i'd love to be doing what really does serve the |
57:40 |
greater good in this community i'll ask a question that could be a |
57:47 |
discussion about a bad idea is um is there any if the dnn store doesn't |
57:53 |
seem like it's moving forward anymore is there any talk of someone doing |
57:59 |
something instead of it that's a great question jeremy i i there's been a lot of people that have |
58:05 |
stated interest in it i think it ultimately comes down to the perceived economics |
58:12 |
of it and whether or not it makes sense you know to invest what it would take to |
58:19 |
have feature parity i guess with the existing store because you know i mean it as bad as we may |
58:26 |
perceive the store it does have a lot of features in it that have grown you know that would kind of be what would be expected out of the gate |
58:33 |
unless somebody just rethought the whole thing right you know and just took a completely different approach |
58:39 |
which may be the smart way to do it um yeah and that's that's kind of what stymied me as i've been |
58:45 |
given the impression that there's a lot that's been built and customized |
58:50 |
that would be a lot of effort to reproduce that's not normally in other e-commerce systems yeah and you |
58:56 |
know and just because something is a certain way doesn't mean that that's the way it should be um you know that's that's my perspective |
59:02 |
on it you know that just because we have feature x doesn't mean that it has to be there um so like you know i guess one of the |
59:10 |
main you know things is the notification feature i think they call it ion or instant |
59:15 |
uh order notification that's in there that a lot of vendors in the past used |
59:21 |
to help trigger licensing to be issued from their own systems for for |
59:28 |
extensions so that's probably one of the hot ones there's probably a ton of others that i'm just not thinking of right now |
59:34 |
you know but um i think the opportunity right away |
59:42 |
you can you can immediately realize that me and aaron both think that that would be easy to build and too sexy |
59:48 |
well there you go then there's a huge opportunity uh for you guys and i look forward to |
59:54 |
the announcement of the let me see the merriment |
1:00:01 |
[Laughter] |
1:00:13 |
and hope that that corp will launch this you know mysterious new store uh that's |
1:00:19 |
been in the works for several years but i just coming next quarter i mean next quarter |
1:00:24 |
yeah exactly i mean in situations like this it's like yeah |
1:00:30 |
you want to think the best you know but i just don't see it happening right you know it may i may be proven wrong i hope i am |
1:00:37 |
proven wrong but um my guess is it won't evolve into anything |
1:00:42 |
uh there because there's just not the resources to to implement that |
1:00:47 |
but there's a great opportunity for someone so yeah for dnn it would be great because i feel |
1:00:53 |
other cms platforms you know that's what entices people to to adopt them |
1:00:58 |
to see what's available i feel like yeah ours has been stagnating a while yeah it really has uh alex because like |
1:01:06 |
i i know i still have conversations with some clients and they're they're like hey we found this cool you know |
1:01:12 |
uh module that we want to pull on the site you know and i go and look at them like oh that module no you can't install that you know on |
1:01:19 |
your site um that's not gonna work you know uh either because of security issues or because it's so old it won't |
1:01:26 |
even function you know or it has some old dependency you know it's that's a common |
1:01:32 |
frequent conversation that i have with some of them and it's sad because there needs to be a |
1:01:38 |
purging that goes on you know for a lot of those and really to help promote the platform as well and |
1:01:44 |
upgrades and people being on the latest and greatest because you just should and |
1:01:51 |
i think the store plays a key role in that unfortunately in prohibiting people or giving them the |
1:01:57 |
perception that they don't have to upgrade yeah sorry i digress that i could easily |
1:02:03 |
go off onto a tangent there i started it my fault well i mean it's a |
1:02:10 |
big area it's a it's an area of opportunity but it's not trivial right so i think anybody that would be willing |
1:02:18 |
to roll up their sleeves and do something on that would be great you know as a community there is no organization that could |
1:02:24 |
really own that and funnel money through so it's just not it would have to probably be a business venture by someone you know to to be |
1:02:30 |
able to to do that and be able to collect money and be able to manage all of that and |
1:02:36 |
not yeah it gets complicated i can put all my clients on hold for a |
1:02:42 |
year and be guaranteed to make money i would consider it there you go the guarantee is the par |
1:02:47 |
hard part right it's like it's almost like a net new even though there's a store out there |
1:02:52 |
you'd have to somehow get vendors that now sell on their own sites and probably will never |
1:02:58 |
go to another platform like that i mean you know how do you attract enough to make making that really hard |
1:03:04 |
no there's times where i wish the store would just be shut down you know so that |
1:03:11 |
we could just move forward without it for a while and everybody could do their own thing |
1:03:20 |
well thanks everybody i really appreciate it um i'll go ahead and stop my well no i'll switch back over to |
1:03:27 |
this and introduce our next uh speaker for today and daniel i'm sorry if i spoke too long |
1:03:33 |
here and didn't give you enough time but uh ah now you gave me some ideas actually |
1:03:39 |
so gave me time to prepare my presentation |
1:03:45 |
well next we have uh daniel vladis who's alright talk a little bit about ice cream so uh daniel i'm not going to go into uh a |
1:03:53 |
crazy introduction here i'm just going to pass it over to you and let you rock and roll perfect |
1:03:59 |
um um you guys see my screen |
1:04:05 |
we do the right one i see get her profile okay perfect i don't have the green |
1:04:12 |
border i usually get so my name is uh daniel valadis i'm in canada um i've been doing dnn |
1:04:20 |
development i started more as an integrator you know building a couple websites and i needed |
1:04:27 |
some sort of content management system and um one of the sites i had to build was |
1:04:33 |
e-commerce with a very special requirement for taxes |
1:04:38 |
and um localization and back in the day the the the |
1:04:44 |
only solution i found that worked was catalog and because of catalog i needed dnn that's how i got into dnn |
1:04:53 |
and i was more of an integrator than anything else back then although i was doing |
1:04:58 |
development but not for web and with the years i started doing more uh |
1:05:04 |
web development and i i fell in love with dnn and i've been doing this since uh i think dnn4 |
1:05:11 |
or something and i've been loving the platform um within dnn i'm part of the technology |
1:05:18 |
advisory group my responsibilities include the release |
1:05:24 |
management uh code review when people submit code um i help review that and other little |
1:05:32 |
things here and there but mainly i've been known for the guy who publishes the releases |
1:05:38 |
um i was always very active in dnn but like david said |
1:05:44 |
we have some history where at some point it was very hard to contribute |
1:05:49 |
and i was very active but you wouldn't see my name that much i became more known uh when i picked up on |
1:05:55 |
the core modules project so those modules used to be part of the |
1:06:00 |
platform and at some point they were uh severed right they're not dead |
1:06:08 |
they're just not part of the platform out of the box so you need to install them separately |
1:06:13 |
and um when dnn92 came up there was a |
1:06:19 |
lot of braking changes and most of those models stopped working and would actually prevent |
1:06:25 |
people from upgrading in a day and age where everybody wanted to upgrade because of |
1:06:31 |
multiple security issues and because of multiple news events about security |
1:06:39 |
people are more sensitive to maintaining software in general and a lot of people were |
1:06:44 |
blocked because they had a lot of content relying on those core modules |
1:06:50 |
so i became a bit more known in the community picking up those modules and just |
1:06:56 |
revamping them enough so people can upgrade to help keep the n alive |
1:07:01 |
because i was not seeing a bright future for dnn and since then i do see a very bright |
1:07:07 |
future uh contributions have been coming in from people we never saw |
1:07:12 |
um the community is growing i'm very happy where we're heading |
1:07:19 |
so that's my introduction now today's talk and david has been talking |
1:07:25 |
about ice cream but i don't have any ice cream i'm also known for those who know me a |
1:07:32 |
bit more on a day-to-day basis the guy that hates frameworks |
1:07:37 |
and it's not i hate frameworks it is i try to not use frameworks unless i |
1:07:44 |
really need to so i'm trying to do plain javascript playing css i'm always trying to go |
1:07:52 |
the w3c standard way of doing things before i get a framework and i will use |
1:07:58 |
jquery if i need to i will use react if i need to but i don't start there right i'm going to try to go |
1:08:06 |
vanilla and when i get to the point where i need a framework i'll get it |
1:08:11 |
the reason for that is that i have some experience and i know how upgrades go i know |
1:08:19 |
how dependencies don't age well so you rely on a project that becomes |
1:08:25 |
unmaintained or on a project that has breaking changes in it and you need |
1:08:32 |
to upgrade your stuff but you're going to break everything so it's very very easy no matter what |
1:08:37 |
we're talking we're talking javascript or csharp.net or even css frameworks it's very easy to adopt |
1:08:45 |
something that you didn't write to get your work done quick and to learn |
1:08:51 |
that framework and multiple years in the future all your content |
1:08:56 |
was built for this and there's some breaking change and you just have to restart everything |
1:09:01 |
right so that that's why i'm i frown up on frameworks i will use |
1:09:07 |
bootstrap sometimes when it makes sense and when the the client is a bit more knowledgeable |
1:09:13 |
or integrator familiar with bootstrap well okay you twist my arm i'll put it but |
1:09:19 |
if i'm the one making the decisions i try to go as plain as i can for those reasons |
1:09:26 |
so that's why the talk is called i like vanilla |
1:09:31 |
so i'm gonna be talking about a new template so what you see here is my github page by the way what david was |
1:09:39 |
saying it's a sponsor slash the username if you want to sponsor anything dnn related i am set up for sponsorships |
1:09:46 |
either monthly or one time and it's very appreciated i would like to thank all my |
1:09:52 |
current sponsors um if you go to my page you're gonna see |
1:09:57 |
another organization repo called airware and in here well the most recent is |
1:10:05 |
the minimal theme so the goals of this theme is to be minimal just what you need |
1:10:12 |
you have all the search language picker everything you need |
1:10:17 |
but it's minimal so you have your frames you have your colors you don't have like a ton of |
1:10:24 |
um helpers and stuff like you would find in most of the commercial skins out there |
1:10:30 |
those things are great but the team and dnn is very often the |
1:10:36 |
biggest culprit for bad performance so i want to start with a clean team the |
1:10:41 |
best performance possible still having all the dnn features in it and you build up on that if you need |
1:10:48 |
more than that same philosophy as i go with frameworks so you have something that works it's |
1:10:53 |
clean it's fine you want more you add to it |
1:10:59 |
and this is by the way a template repository so if you come here and i'll put the link |
1:11:05 |
in the chat boom just in case so it's a template |
1:11:11 |
repository so if you want to build your own team for your own client it's a mit license |
1:11:17 |
you're free to use it you wouldn't fork it right you would fork it if you would want |
1:11:23 |
to submit a code change to this repository and it's explained a little bit here uh |
1:11:29 |
if you want to use it for your own things well you will create your own repository for that so |
1:11:35 |
you would click the use this template and then you give it the name you want so in this case i'm going to call it |
1:11:43 |
sf demo for south and flight demos sf demo team |
1:11:51 |
and you can even take this and make it a private repository if it's |
1:11:57 |
for like commercial work or something you don't want to expose publicly and i really think you should use the |
1:12:04 |
recommended name for the repo there psychic rotary phone |
1:12:09 |
[Laughter] it's it's great though i love this new feature but i'm gonna go with this |
1:12:18 |
so this will create your repository with the navy you gave it it's gonna the show that was was |
1:12:23 |
generated from here but it's totally free from the original where it came from so it's different a little bit than a fork |
1:12:30 |
and the first thing you'll notice this theme is already set up to build in the cloud so if you have a |
1:12:36 |
github account even a free account you will see this yellow dot here and if you click on details it is |
1:12:43 |
building the team right now on github so you have nothing to set up it's ready to go |
1:12:49 |
and it will give you an artifact with your team build zip that you can install directly |
1:12:55 |
in dnn so out of the box you could use the team as is |
1:13:00 |
but it's not the goal the goal is to make your own thing so i will grab this |
1:13:07 |
and i'll open up |
1:13:15 |
powershell or your tool of choice and i'll just go to my websites |
1:13:25 |
sf demo that i installed uh |
1:13:32 |
sf demo okay uh website that i installed with nv quick team a tool i highly |
1:13:38 |
recommend you but to save time i did it before and this is running on 9 10. um |
1:13:46 |
and if time providing i'll show the persona bar customizations also that david mentioned so the theme is built |
1:13:54 |
it's in the documentation there but it's built to go in the portal's default folder so i need to cd into |
1:14:00 |
portals and default and i will do a get clone to my repository here |
1:14:11 |
and i will open this and vs code or your tooling of choice |
1:14:24 |
of course you want to say that you trust me i hope so that's new in the latest release of vs |
1:14:30 |
code and i already opened the wrong one i need to cd |
1:14:35 |
into cd |
1:14:40 |
uh sf demo code dot so the folder we have here in |
1:14:47 |
portal default this is the folder where we're gonna build the build system will automatically distribute the files in |
1:14:53 |
the wrong place that's why it's relying on living in that place there are settings |
1:14:59 |
you can change here if you have a different workflow of where you want to locate your files but |
1:15:04 |
out of the box that's what it's assuming and you'll see a lot of config files |
1:15:10 |
here and stuff that's all to configure the build and stuff like this most of what you're going to be |
1:15:15 |
editing is going to be in the source folder right here and it's also in the documentation |
1:15:23 |
right here but you will need a tool called yarn for now i plan to remove yarn but |
1:15:31 |
basically if you don't have yarn you need to go to the yarn website |
1:15:36 |
which i mentioned somewhere you need to go to the yarn website and install yarn once you have that |
1:15:43 |
you could run yarn install and that will install all the dependencies now i just mentioned |
1:15:50 |
that i'm like the no dependencies guy but you're gonna see that right now it's |
1:15:55 |
downloading bootstrap and it's huge that's because it's an |
1:16:00 |
option of the team so even though it's downloading it you have the option to take or not take |
1:16:05 |
bootstrap it's just that i often have clients or integrator that hire me to build a team |
1:16:11 |
and they do want bootstrap so it's still part of the template but you have a setup option to use it or not |
1:16:19 |
and the same thing for font awesome which is really popular i have an option to get it or not so |
1:16:25 |
it's pretty easy to get started with or without these things |
1:16:31 |
and in the package json you will see the different |
1:16:37 |
yarn scripts that you can run one of them is build one of them is start and one of them is settings |
1:16:43 |
so as it says in the documentations the very next thing you want to do is yarn settings |
1:16:49 |
and this will fire up a little wizard to ask you |
1:16:55 |
uh what do you want to do with this theme right so here it's going to be your package name |
1:17:01 |
it needs to be unique because this uniquely identifies the package within dnn so i recommend like |
1:17:07 |
your company name in it and something like this you can use dots just no spaces |
1:17:14 |
so i'm going to use a soutern southern fried dnn |
1:17:21 |
demo team theme for it and then it's the team name this |
1:17:28 |
is what will show two admins in the dnn ui i'll call it |
1:17:34 |
demo team or sf demo team and then in the manifest you also have |
1:17:41 |
the owner of that product and the company and email so i'm just going to keep these things here |
1:17:49 |
and then you get to the part where it asks you about bootstrap so right now it's bootstrap 4. i don't plan |
1:17:57 |
yet to upgrade it to bootstrap 5 if any contribution comes in and people are familiar with it it's a welcome contribution but |
1:18:04 |
i'm not going to invest time and that unless someone |
1:18:10 |
pays me to get to bootstrap 5 because i prefer not to use it |
1:18:15 |
right now with bootstrap 4 with the team you have the option of not using bootstrap at all you have the option to use part of |
1:18:22 |
bootstrap which are just the grid utilities the grid and responsive utilities |
1:18:28 |
so you have the css to make your columns you have the css to size your images to your borders and stuff |
1:18:35 |
but you don't have any components that have um behaviors that have javascript with |
1:18:41 |
them so if you decide to go that route you have part of bootstrap and it adds 44k to your team right |
1:18:50 |
if you want all of bootstrap it adds 221k plus it also means you need popper js |
1:18:57 |
plus it also needs you need jquery so it's a huge dependency so |
1:19:03 |
in this case i want nothing i want to save those 200ks same goes for font awesome i don't want |
1:19:10 |
to add it so you you could add it or not but i don't want it |
1:19:16 |
and now the theme will build with these settings |
1:19:23 |
daniel you are so brave doing stuff like this on a live demo i am well you know how it goes nothing |
1:19:30 |
you know nothing ever feels right it's fine um |
1:19:37 |
so up until yesterday i had automatic versioning set up and i removed it |
1:19:42 |
yesterday because one of the very small dependencies which is a package called get tag version |
1:19:48 |
stopped working and i don't know what spend one day fixing that for today's |
1:19:53 |
presentation so i removed that uh i might add something better but |
1:19:58 |
right now what drives the version for the team is the version you have set in the package json here so i'm going to |
1:20:06 |
bring that to 1 0 0 and save it next time i build it's going to be version 1. |
1:20:13 |
in the install folder you're going to have the zip file that you would install in dnn but if you have a local site you don't |
1:20:19 |
even have to because it's already distributing the files in the right place so i'm gonna go sf demo local test me |
1:20:28 |
which is the url for the local site i set up for this demo and it's going to take a little bit to |
1:20:35 |
load oh you're running 910 there of course |
1:20:42 |
you always do demos with a beta nice so |
1:20:48 |
that's another thing about me i'm always going to use rcs and betas and stuff during |
1:20:54 |
development to help test to try to figure out issues before it becomes a real product |
1:21:00 |
so yeah here you have what 910 will look like notice the persona bar colors are |
1:21:07 |
different everything is the same in the persona bar it's just the styling and this is the out of the box |
1:21:15 |
team but you can customize it time providing i will show you how um |
1:21:22 |
but basically right now what we need to do is to go to uh teams |
1:21:30 |
and pick the theme we just created |
1:21:36 |
and your mileage may vary but sometimes you have to go to the home page because the home page has a |
1:21:42 |
specific one set so you need to go here and also change it for the home page the rest of the site should be fine but |
1:21:49 |
with the dnn templates the homepage come with the set okay |
1:21:55 |
so notice the content no is no longer placed right that's because |
1:22:01 |
this content relies on bootstrap and i decided to not take bootstrap right so that's what i mean when a |
1:22:07 |
dependency changes and your content relied under those dependencies well you have to rewrite |
1:22:12 |
everything so that's why it's usable but it's not it's using bootstrap classes to place |
1:22:20 |
the things so now that part stopped working um i will just set up a couple of pages here |
1:22:27 |
um add multiple pages let's do |
1:22:34 |
let's do let's do i don't know uh products and under products will have commercial |
1:22:42 |
products and we'll have resi residential |
1:22:49 |
products what else services |
1:22:56 |
and under that will have support |
1:23:01 |
[Music] repairs parts |
1:23:07 |
let's say and contact why not |
1:23:12 |
add pages so out of the box you have a menu system |
1:23:19 |
that is driven by pure javascript there's no menu library there's no bootstrap |
1:23:24 |
involved it is responsive i did some changes yesterday i hope everything is still |
1:23:29 |
fine it is so it's not super fancy menu but it's responsive |
1:23:36 |
well just found a bug it's responsive and it's very very very minimal |
1:23:42 |
dependencies cool now next step uh |
1:23:48 |
you want to do changes to this thing right that's the out-of-box experience but that's not the colors i want very |
1:23:56 |
often um low-budget clients they will they will want something |
1:24:02 |
simple you know i want a menu i want my logo i want something in my footer and here's |
1:24:08 |
the colors and my logo right they rarely have like very fancy requirements |
1:24:14 |
so one of the things i want to make really really easy and it's part of how the idea came in for this |
1:24:19 |
theme i had a client he has i think six portals they all need to use the |
1:24:26 |
same logo but in different colors and he wants a very simple theme |
1:24:32 |
just different um brand colors on each of the portals so the idea i got for this client is |
1:24:40 |
i'll make you one team and for each site you'll customize just the colors |
1:24:45 |
and the way i'm getting there is with css variables so each site will have an override for |
1:24:51 |
css variables for your primary color secondary color light and dark versions of this and this |
1:24:59 |
connects with the plans for dnn 10 to make css variables a first class citizen |
1:25:05 |
um anybody here show of hands well there's not many people showing their |
1:25:10 |
faces here but that attended the styles uh what was the name david the |
1:25:18 |
presentation we did together harmonizing styles everywhere constant |
1:25:24 |
web components styling everywhere or something yeah something something so it boils down to |
1:25:30 |
that kind of idea so let's get to the theme one thing i want to do as a |
1:25:38 |
developer is to see my changes live so i'm going to minimize this |
1:25:44 |
to about about wee big |
1:25:49 |
and another command that you have in the terminal here would be yarn start i'm gonna |
1:25:57 |
close this window i don't need this anymore and here |
1:26:04 |
you're gonna put the url where you would see the site so in my case it's going to be http |
1:26:11 |
sfdemo dot local destiny |
1:26:17 |
and that automatically opens up a browser window which i'll try to snap here |
1:26:24 |
come on nah that was not it but i will try to snap here there we go |
1:26:33 |
this fires up a proxy server that under the hood serves your dnn instance under it |
1:26:41 |
just found another bug working progress |
1:26:47 |
so notice the login screen and the colors of it |
1:26:52 |
and we'll get that slightly different so one thing with the proxy this way is |
1:26:58 |
that you don't get the persona bar i just logged in so we have the menu because these pages were visible only to |
1:27:03 |
admins and you can also visit your site normally |
1:27:12 |
on all my sites i usually disable pop-ups site settings |
1:27:19 |
like behavior more uh this is new i don't know if it's in 910 or it was |
1:27:25 |
already in 99 but you have a ui now to disable pop-ups which we didn't have until |
1:27:30 |
recently okay just so i can show the login without the iframe issue |
1:27:39 |
let's close this and now this will watch for file changes and |
1:27:47 |
it will reload this page after about a second so i can go on and make changes so |
1:27:53 |
first thing i want to change my brand colors so i'll go into styles and it's a |
1:28:01 |
scss file so sas files the main file will load dnn things and skin things |
1:28:10 |
one of the thing that's done here we're telling dnn do not load your default css i will |
1:28:15 |
provide it to you and the dnn folder is basically a repeat |
1:28:22 |
of dnn default css but a little bit cleaned up and |
1:28:30 |
a lot of things that i've i judged deprecated like they're not using the |
1:28:35 |
platform i didn't see those classes anywhere and they're not used by any of the core modules i move them into that file |
1:28:42 |
so you have the choice to include it or not uh and in this case i'm not including it so |
1:28:49 |
that reduces my default css by a lot and there is more coming to the platform |
1:28:56 |
one of my plans for dnn 10 is to move a lot of things here that are not global |
1:29:01 |
they they don't load on the default page while they should go into the module where they they belong if it's something |
1:29:07 |
about login they should be part of the login module if it's something about um social features they could go should |
1:29:14 |
go on the social model right so there's a big cleanup still to make here but it's going to be part of |
1:29:19 |
platform not the theme but here you have a good cleanup and it removes a lot of unused stuff and the default css makes |
1:29:26 |
it really really shorter and then it also imports dnn variables so that's the |
1:29:32 |
part where the fun begins in my dnn css i have set |
1:29:39 |
css variables consumed by everything here so if you change dnn color primary |
1:29:47 |
that's going to change the button colors on all the web forms modules everything that was |
1:29:53 |
styled by default css as blue now uses this so i have one place to go change it |
1:29:59 |
and it's going to affect everything that was using the dnn blue so in my case let's say the client |
1:30:05 |
wanted for his primarily primary color |
1:30:11 |
delete this boom boom and i'm just copying from a real client |
1:30:18 |
style guide which is kind of the green yellow nature color palette |
1:30:27 |
and you just copy a couple of things here and then you have your secondary color and then you have |
1:30:36 |
your secondary light color and you have your secondary dark color |
1:30:42 |
and the ones that end with the word contrast well they need to be a color that contrasts |
1:30:48 |
well over these three right um |
1:30:53 |
also this one and the normal text |
1:31:00 |
color right here is your text color for your paragraphs and stuff so |
1:31:06 |
that's the color they wanted these css variables note that they are |
1:31:12 |
all prefixed with dnn that's no coincidence these are the plans for dnn 10. |
1:31:18 |
so a team developer putting those values here would affect |
1:31:25 |
all of dnn controls also which is really cool so you now you can style your theme and also the login and also all the |
1:31:33 |
little pop-ups from dnn and stuff to have a consistent styling |
1:31:39 |
module developers they could also consume those and it's an opt-in if you decide to |
1:31:45 |
consume that well i want my module ok button to use the site primary color well just consume |
1:31:52 |
this and you have it so that's the plans for the nn10 to harmonize |
1:31:57 |
the css fight between teams and modules and the dnn ui |
1:32:04 |
is the way to solve them so if i just save this i probably need to open up dev tools |
1:32:12 |
to avoid caching issues and just move it out of the way |
1:32:18 |
but this should have reloaded there we go so i just changed those css variables and my team is already |
1:32:24 |
in the client requirements for brand colors right now if i decide to log out |
1:32:33 |
cpl equals log off and we log in |
1:32:40 |
my login controls are set my active element here border is in my brand |
1:32:47 |
colors i have highlights for when the the items are hovered or |
1:32:54 |
accessed through keyboard same thing right so just with this i already have something |
1:32:59 |
that doesn't look like the dnn colors out of the box |
1:33:05 |
well that's the general idea with the css variables |
1:33:13 |
this is done this is done [Music] okay next thing a team developer will do |
1:33:21 |
very often is style |
1:33:26 |
multiple things so as part of the theme template so that was styles uh scripts i'm not |
1:33:33 |
gonna go through this right now in details but basically bootstrap is only |
1:33:38 |
imported if you picked it in the settings if not it's just hanging there it doesn't get distributed |
1:33:45 |
uh there's various utilities here that's kind of cool okay i'm going to go a little bit through the javascript |
1:33:52 |
i have a little function called replace classes where you can pass it classes that you want to replace |
1:33:58 |
with something else and that also was a requirement by a specific client |
1:34:04 |
and basically they had font awesome for everywhere and they needed to upgrade to font |
1:34:10 |
awesome five but all their content was using phantasm for so basically what i've done here is a |
1:34:18 |
little method that will get |
1:34:25 |
those are the old classes and those are the new classes for the equivalent icon between font |
1:34:32 |
awesome four and four thousand five so this is not uh generated unless you import it but it's available there so if |
1:34:39 |
you have that situation where you need to upgrade a theme and the content relies on 4004 uh |
1:34:46 |
well it's there available for you another one that i did as a utility was |
1:34:52 |
no that's the only one i did never mind the same logic could be done for bootstrap |
1:34:57 |
let's say three to four you could just copy the idea but use the different class names |
1:35:04 |
for instance img responsive versus img fluid or |
1:35:11 |
something there was some breaking changes on a couple of class names so that's one way to kind of |
1:35:18 |
avoid the um breaking change still have something that works |
1:35:25 |
with the old content and one thing interesting about that method is |
1:35:30 |
it will show up in the console log disregard that red thing that's a chrome |
1:35:37 |
plugin but it will show for each class it had to replace it will show which element and you can |
1:35:43 |
hover and it's going to highlight it on the page so a content editor would see that and say oh hold on i need to go change that |
1:35:50 |
one hold on i need to go change that one so it's pretty cool feature for team upgrades |
1:35:56 |
um that was the script and the other menu ps here so it's a typescript |
1:36:03 |
by the way for those who might not know typescript is a superscript of javascript |
1:36:11 |
a super language super whatever it's compatible with javascript |
1:36:17 |
but it's better than javascript because it has typings that's the quick 30 seconds description of typescript but basically |
1:36:24 |
my whole menu system is 113 line 114 lines right |
1:36:29 |
pretty basic simple menu you can use it with mouse with keyboard and it's responsive |
1:36:34 |
could be improved but it's uh what did i call my team basic not |
1:36:40 |
basic minimal so it's minimal then in the html folder you actually |
1:36:46 |
have your um your your different views for the theme right |
1:36:51 |
so i only have one default ascx that's how i go usually unless there's more requirements than this |
1:36:58 |
but you're going to see one here tests ascx dot resources it's rename that resources on purpose so |
1:37:04 |
dnn doesn't grab it and know that and think that it's a theme view but if i just go and remove the dot |
1:37:12 |
resources notice that it rebuild and if i go back |
1:37:18 |
to dnn i should keep both opens here uh what was it sf demo |
1:37:24 |
so that i have my menu so now that i remove the dot resources |
1:37:29 |
i can go in my oops let's go directly here appearance |
1:37:37 |
so now i have tests here and this is just for the skin developer |
1:37:43 |
save little x it's reload boom you have a |
1:37:50 |
bunch of things here so you're going to say well that doesn't look right |
1:37:55 |
and the reason is these are bootstrap examples and i decided to not |
1:38:01 |
get bootstrapped so i'll go in my testcs ascx |
1:38:07 |
and this loads up includes partials uh |
1:38:14 |
no sorry sorry not here i should have tests somewhere test ascx partials tests partials |
1:38:22 |
tests so the all of these under the test folder are examples of |
1:38:29 |
elements in dnn that that would be styled by default css and the likes so |
1:38:35 |
bootstrap ascx is there just for bootstrap i don't want this one so i just want to change uh |
1:38:43 |
tests dnn tests dnn and i'm gonna remove this line because i |
1:38:49 |
don't use bootstrap save reload well it should reload okay so now i |
1:38:57 |
don't have the bootstrap stuff anymore so for a team developer this is really really cool because you |
1:39:03 |
see how the jquery resizable plug-in how it's styled so if you want to change |
1:39:09 |
how this thing looks or feels you could do it you want to style your login well you |
1:39:14 |
have a nice place to test it you don't have to log in log off login log off you have a little thing here you have |
1:39:20 |
any older modules that use the dnn ux ui guide |
1:39:26 |
which was by the way an idea to get everybody on the same page which never |
1:39:31 |
worked but you're going to see a lot of modules that do implement this and i have a little bug with this one |
1:39:37 |
for some reason well disregard the bug but this is where you could style these |
1:39:43 |
things you know using your team if you want something different plain forms |
1:39:48 |
that's how you would test it the primary secondary tertiary buttons you would see a preview right here how |
1:39:54 |
the um the dnn table you want to style that special way |
1:40:00 |
they go here the info and error messages those are driven |
1:40:07 |
by these css variables here with a transparency |
1:40:12 |
so that's how you would customize them and so on and so forth um this is a bad example because it has |
1:40:20 |
a menu here but it's totally unstyled so disregard the example here but everything else pretty quick there's |
1:40:27 |
stuff that you do very often you want to add it to your tests well you can add them here so it's easy to |
1:40:34 |
quickly develop and when you're done you just rename back the test cscx |
1:40:41 |
do not distribute it to that resources and if you do a bootstrap theme |
1:40:49 |
then you don't remove the line i removed and boom you get all your bootstrap components examples by the way part of the build |
1:40:56 |
system will apply these variables into the the bootstrap |
1:41:04 |
colors also which is pretty cool um and this view |
1:41:12 |
cool so it's a minimal theme the goal was performance let's see how we do on performance |
1:41:26 |
so let's uh change back to our default here and save |
1:41:31 |
right i don't need us code in the front anymore so let's go that way and let's just reload |
1:41:39 |
so that we have this cool now performance don't do performance test with the proxy |
1:41:45 |
because the proxy adds stuff so it's not a real good test |
1:41:51 |
on your real site you're gonna do your performance another thing to be aware of is if you |
1:41:57 |
have chrome plugins well those are counted in the performance so if you want to do a real performance |
1:42:04 |
test you would have an incognito window let me copy the url first you would do |
1:42:10 |
it in an incognito window right and not logged in we don't want to |
1:42:18 |
count the persona bar and all these things right that's we're doing this for visitors and this is where you would run your tests so now |
1:42:24 |
i'm going to open this let me bring that over here |
1:42:29 |
and in chrome as an edge i think is it an edge well in chrome you |
1:42:36 |
have one of the tabs it's called lighthouse it's the same engine that drives a lot of |
1:42:41 |
clients go by google pagespeed it's the same engine it's just a little |
1:42:48 |
tiny bit better because it doesn't give you the same what's a nice word for stupid |
1:42:55 |
well stupid advice opinionated advice as google would give you for |
1:43:02 |
instance complaining about their own scripts performance so it's a little better i find so let's |
1:43:08 |
try and desktop first |
1:43:15 |
and by the way i didn't minify anything so without magnification we're getting 99 |
1:43:21 |
performance which is pretty nice on desktop on a mobile without compression without |
1:43:29 |
minification without merging the files we're getting 96 |
1:43:34 |
right that's the worst case scenario not not even a single consideration for |
1:43:40 |
performance right now now if we go into the network panel |
1:43:45 |
and we go look at our largest resources here uh this way so the biggest one is jquery |
1:43:52 |
right followed by asp.net scripts and followed by the logo so we don't |
1:43:58 |
have a huge dependency the big one is jquery now i've said i'm |
1:44:04 |
the no dependency guy and i didn't do anything on my team to request jquery |
1:44:09 |
what's wrong well that's another thing i'd like to improve for dnn 10. as soon as you include the search scan |
1:44:16 |
object it has to load jquery that's the same reason why i disabled pop-ups by default |
1:44:22 |
the pop-ups require jquery before the pop-up loads so it's a 20-something k |
1:44:29 |
compressed just for jquery but then jquery ui ah that's huge i don't want jquery ui |
1:44:38 |
we're not even using it so in order to solve that temporarily just |
1:44:44 |
for the sake of the performance test here i'm going to go and just remove the |
1:44:49 |
search skin object but it's something i plan to do for the n10 that the search skin object and |
1:44:54 |
login don't rely on jquery because i find that jquery belongs in some places |
1:45:00 |
but stuff like this that that are part of the theme loads on every single request i don't |
1:45:07 |
want jquery there it's a huge dependency for no reason i don't need jquery to make a dialogue |
1:45:13 |
i don't need jquery for the search |
1:45:18 |
so in order to disable that i'm going to go in my html partials not tests |
1:45:27 |
header and somewhere somewhere search i'm just i'm just going to kill |
1:45:33 |
it for now we'll do something better obviously if you would |
1:45:38 |
be doing a real theme um you might want to consider different |
1:45:45 |
things but right now i just want this and uh registers i don't want to register |
1:45:51 |
[Music] search kill this |
1:45:57 |
boom and now let's do a hard refresh i i |
1:46:02 |
didn't use the live thing but if i reload now my largest |
1:46:09 |
resource is script resource which is the well i'm sorry no |
1:46:16 |
this is the asp.net javascript and then my second biggest thing is the logo |
1:46:21 |
and then i have my team so my team css is 15k 15.1 k this includes |
1:46:29 |
the dnn the replacement for dnn default css plus everything i have on my team just |
1:46:34 |
15k and my team javascript |
1:46:42 |
my team javascript is 1.8 k |
1:46:48 |
all the javascript for the menu is included there well i don't have a lot of javascript on |
1:46:53 |
my team so it's kind of nice but if if you load jquery |
1:46:59 |
just to query elements and stuff you're loading like 10 times of a dependency than the |
1:47:06 |
code you're writing it that just doesn't make sense you know just learn vanilla so there's that lighthouse oh |
1:47:15 |
okay so another thing that we should do |
1:47:20 |
for a production site would be to go to servers and server settings and performance and |
1:47:27 |
you would well adjust the cache and this and that but i'm more interested in composite files and magnification |
1:47:37 |
and just increment the version here to be on the safe side say boom |
1:47:45 |
boom and now my skin and javascript and oh i'm still |
1:47:52 |
logged in log out this |
1:47:58 |
oh now my skin javascript is now included in this script resource they're |
1:48:04 |
all bundled together so with compression it barely grew |
1:48:09 |
0.8 k because a lot of these things got compressed together with the rest so |
1:48:14 |
it's really really really minimal and my second largest resource is this local png so |
1:48:21 |
pink replay and the css right all of the css is now 12.4k all the css |
1:48:28 |
and my biggest thing now is the logo that i could reduce and let's choose just that |
1:48:39 |
ah let me switch my notes here do this |
1:48:46 |
[Music] and let's go um site settings |
1:48:52 |
and i have a logo here [Music] |
1:48:59 |
uh um grab some logo here and |
1:49:07 |
let's grab i had a five icon somewhere here no not this it's gonna be here |
1:49:16 |
and this one |
1:49:27 |
and now if i go to sources network well my logo went way down there because |
1:49:34 |
now my logo is well is it that big ah there's text and |
1:49:39 |
everything there's a lot of svg logos that are going to be way smaller than this |
1:49:44 |
so bad example but yeah now obviously this logo is kind of larger |
1:49:51 |
and less a lot of text so you would adjust the theme to have this a bit bigger and stuff |
1:49:56 |
um i'm gonna quickly do it from notes because i want to show another thing |
1:50:02 |
that's new in the n10 how are we on time david |
1:50:07 |
oh we're good you go about nine minutes i have nine minutes yeah if you can't work feel free to have |
1:50:14 |
a little bit more and if people need to drop they can drop we'll keep it recording okay cool um |
1:50:21 |
so the logo and the styles uh in the |
1:50:27 |
skin styles if anyone is really new here uh themes used to be |
1:50:35 |
called skins in dnn so that's why all the developer oriented |
1:50:41 |
stuff it's named skin and it was re branded renamed team |
1:50:48 |
in the ui so if you see scanner theme it's pretty much the same thing so my logo is in the header and i have |
1:50:56 |
some styles here so i could make it the minimum width 300 pixels which will help that |
1:51:06 |
uh let me bring this out and bring this side by side |
1:51:13 |
and if i reload and notice i'm i'm manually reloading because i have to keep going back and forth on the persona |
1:51:20 |
bar here but usually i would use the live reload performance |
1:51:26 |
let's disable this during development well i did all this to show you lighthouse but basically you get a |
1:51:32 |
hundred hundred with the logo replaced and um using minification |
1:51:38 |
and not having to load jquery it was the thing i wanted to show but |
1:51:45 |
you you know what a green 100 looks like so i'm not gonna go back there okay that makes my logo a little bigger |
1:51:52 |
now the example i gave you earlier that i had a client who needed multiple portals |
1:51:57 |
and just the logo needed to be different colors right so i can do this here however |
1:52:04 |
right now the logo is loaded as an image and i don't want |
1:52:10 |
that i want my actual svg to be right here and that's a new feature in nine |
1:52:18 |
nine i believe or nine ten nine nine i guess but you can pass something in your |
1:52:24 |
logo uh html partials header |
1:52:31 |
in your logo skin object right here let's get this a little bit more |
1:52:37 |
visibility um you can add inject svg |
1:52:44 |
inject svg equals true and what will this will do is instead of |
1:52:51 |
loading it as an image tag it's actually going to read the content of the svg and split it on the page |
1:52:56 |
so if i save this let it finish building and do a hard refresh here |
1:53:02 |
and bring my dev tools here well c we don't see the logo anymore for one |
1:53:10 |
and two um well it's gonna be easier to fix this |
1:53:16 |
first or faster should i say uh let's go with |
1:53:21 |
with with with the css of the header so because it's no |
1:53:26 |
longer an image i need to style it differently so i know that my |
1:53:32 |
um oh i forgot a little something which is to embed this in a |
1:53:37 |
div called logo so i can target it with css |
1:53:44 |
save let's go back here to header css okay so i have my |
1:53:51 |
logo div right |
1:53:56 |
and then for my logo i have uh let me give it let's use flexbox and |
1:54:03 |
give it a flex basis of 400 pixels so that means it will try |
1:54:09 |
to be 400 pixels if it can so if you get on a smaller device it's gonna squish by itself |
1:54:15 |
right so it's gonna try and be 400. um then i'm just going to |
1:54:22 |
copy css here just in the spirit of saving some time why can't i get here |
1:54:30 |
um [Music] do i have anything huh |
1:54:36 |
my mouse is locked i can't get to that why okay now it's going hey |
1:54:44 |
okay i'm just going to copy a piece of css that i have already done yesterday because my so now what i'm doing |
1:54:52 |
is i'm getting i know that my svg code right my svg element |
1:54:58 |
has an id of logo and in there i have class one for some reason i just grabbed the svg from somewhere so |
1:55:05 |
i didn't write it but i know that the thing i want to color as class one |
1:55:10 |
and the text part as text and class four and when we hover and this is a |
1:55:17 |
very very bad example it should be on hover or um active |
1:55:25 |
always not active focus sorry because if you go by keyboard to |
1:55:31 |
navigate to this thing it's going to be focused if you go by mouse it's going to be hovered |
1:55:36 |
so people who always think on hover try to think together hover and focus it's |
1:55:41 |
if you're using the keyboard you're focused you're not hovering and same goes for mobile devices there's |
1:55:46 |
no hover on mobile so if i reload here i should see a logo with colors |
1:55:55 |
i said loading browsers uh |
1:56:00 |
hey finally the demo gods showed up |
1:56:06 |
line two main css |
1:56:14 |
since those are expected oh i have some invalid css copy paste will get you there |
1:56:22 |
this is here this is there this is there and focus um |
1:56:31 |
i am missing i think this |
1:56:41 |
there we go boom so now i have my brand colors here right pretty cool so now you know how |
1:56:49 |
each site has a custom css right so i could just |
1:56:57 |
redefine my brand colors per site and be using the same theme for all my sites |
1:57:02 |
which is pretty cool for a multi-site single client that needs different |
1:57:08 |
styles for sales and support they have different sub domains or stuff like this |
1:57:15 |
or for clients that they just want a site running they don't have crazy needs for a team so you put a |
1:57:22 |
logo you style it with the brand colors boom you have a team working as future comes |
1:57:27 |
they want to invest on the team well you expand upon it but you have something nice with high performance |
1:57:32 |
out of the box and this talked about this talked about this |
1:57:43 |
i am done with my talk now questions or demo of the persona bar |
1:57:50 |
the questions is x minutes then move the persona bars five minutes because i have it ready |
1:58:01 |
yeah for the ready one okay so persona bar what was done |
1:58:09 |
by uh mr david poindexter here was a restyle of this thing and then we |
1:58:16 |
came out with the idea of it's cool but why not make it customizable |
1:58:22 |
and maybe even white labelable see i can invent words too |
1:58:30 |
white labelable so let me get um on the site |
1:58:36 |
and show you how it's done it's part of the pr and i think it's part of the nn docs is it |
1:58:45 |
no not yet not yet okay it will be okay cool um so it's |
1:58:51 |
sf demo now right now word of advice this is |
1:58:57 |
for hosts so if you change it it's changed for all the sites |
1:59:05 |
now in your dnn instance you need to go to portals |
1:59:12 |
and because it's not for any specific portal but it's for the the host or the super user or the |
1:59:19 |
instance then it's in portal default i prepared the files in advance here but basically |
1:59:24 |
you would copy uh from the desktop modules admin persona bar and edit bar |
1:59:31 |
you would copy the team css and put them here as edit bar team css or personabar |
1:59:39 |
theme.css i named that resources so they don't apply now if i just |
1:59:47 |
rename the css |
1:59:55 |
and reload the site and boom i have a totally new um |
2:00:02 |
color scheme and i still have like all my main is working fine and the edit bar is that theme also |
2:00:08 |
and you can even change the logo now i did this very quickly as david was doing his |
2:00:14 |
presentation when he mentioned this so i didn't take the time to find a nice |
2:00:19 |
logo and everything and it's black so it's kind of strange but that's the overall idea so you can |
2:00:24 |
even replace your logo right now what i have here is like really really |
2:00:30 |
basic and i'm just redefining the colors however it's not limited to that if you |
2:00:35 |
want to totally change everything you have access it's a css file that loads with the persona bar so you could go and change and make |
2:00:43 |
everything totally different but right now i'm just like redefining the colors to match the |
2:00:48 |
branding guidelines that client x provided me right |
2:00:55 |
and maybe in dnn then i'm providing well the modules here |
2:01:01 |
those components and those buttons will match with also the um the brand guide |
2:01:09 |
that's plans for um the consistent ah that was the name |
2:01:15 |
of our talk consistent styling everywhere so eventually this will consume the css |
2:01:22 |
variables we we just defined and that's pretty much it any questions |
2:01:31 |
yeah daniel you could probably just do an inspect there and show them where they can grab that the |
2:01:36 |
the css so that it's not on oh totally um it's under webs |
2:01:43 |
oops you can copy uh website um i've just been in the in the |
2:01:49 |
browser inspection oh yeah sure you can see where the css variables are |
2:01:55 |
injected uh for the persona bar and then if you open the edit bar you can see that as well so |
2:02:03 |
and you can really just copy it from here and place it into a file that's named like he named them |
2:02:08 |
and exactly uh not this one no that one not me not me not me not mean all the |
2:02:15 |
way down at the bottom really yeah right there |
2:02:21 |
oh there we go so if you don't have that file it's going to show the one |
2:02:27 |
that comes out of the box in the in the desktop modules folder but if you put the file that's what the |
2:02:32 |
things you're going to need to define are these colors and that's kind of a great way to |
2:02:37 |
test your theme as well yeah so that way you can just change those values right and totally play with it right here yep |
2:02:44 |
um and let's go and i'll work this on your whole design there and then place it into a |
2:02:50 |
custom file and then the same is true for the edit |
2:02:55 |
bar whenever it's shown it'll inject those there as well so oh this is perfect |
2:03:00 |
purple and green that's a nice |
2:03:05 |
that's purdy yep so other than that |
2:03:14 |
everybody fell asleep that's a really good uh presentation there daniel i'd love to see how you |
2:03:21 |
get things in such a vanilla way yeah cool stuff and it's open source you have ideas you |
2:03:28 |
know as long as they go with the philosophy of the team you know like don't start sending all kind of |
2:03:34 |
dependencies and you find a way to improve something that benefits the greater good |
2:03:39 |
while contributing contributions are welcome uh one of the things |
2:03:48 |
there's a couple of open issues if anybody feels like tackling this anybody has experience |
2:03:54 |
with bootstrap 5 and wants to grab a bite at this thing and just needs |
2:04:00 |
help with you know how should i do this and stuff like pick me up |
2:04:05 |
still looking for a better way to manage automatic versioning to replace that failing thing and |
2:04:11 |
um i want to remove yarn in favor of npm because really we don't need yarn here and npm |
2:04:18 |
comes out of the box with node.js so that's things i have in my backlog but |
2:04:24 |
if you find any issues like i found the little dialogue things were misaligned or you |
2:04:30 |
know you use this team and you do some fix for your own work and you want to contribute back to fix |
2:04:36 |
contributions are welcome excellent well thanks daniel for for |
2:04:41 |
doing this i think that's very helpful for you these tools it's great to have options out there |
2:04:46 |
on how to approach this stuff and this is a really good standards way of approaching this whole thing so thanks |
2:04:52 |
for presenting well uh we'll wrap up the recording piece of this thanks for everybody for |
2:04:58 |
joining and feel free to hang out after the recording if you want if you have uh things that don't need to be said on |
2:05:04 |
air but we'll go ahead and stop recording thanks for joining us and next month um i think we have on the |
2:05:11 |
docket mitch sellers uh presenting on uh the technology |
2:05:17 |
uh group and things that are going on there and i'm looking to see who is joining |
2:05:22 |
him uh that will be i could get to the right page here chris |
2:05:29 |
hammond is actually going to join us we don't know what he's speaking about yet but uh be nice to hear from chris hammond |
2:05:35 |
chris talk as many of you know him will be joining us so that'll be on thursday |
2:05:40 |
october the 19th and we will go back to our evening schedule here on the east coast |
2:05:46 |
which is a 6 30 p.m eastern daylight time so looking forward to that be sure to register out on the |
2:05:53 |
meetup site if you haven't already and get that on your calendar i'll go ahead and end the recording and |
2:05:59 |
thanks for joining everybody |