The Changelog: Software Development, Open Source - Semantic UI Returns (Interview)

Episode Date: July 11, 2015

Jack Lukic is back again to talk about what's new with Semantic UI, the progress he, 104 contributors, and hundreds of translators have made towards a front-end standard only rivaled by Twitter's Boot...strap numbers. We discuss the why and the how of him dedicating everything he has to Semantic UI and the potential it brings.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome back everyone this is the changelog and I'm your host Adam Stachowiak this is episode 164 and on today's show we're joined by Jack Lucek. Jack is back talking about Semantic UI again we had him back on episode 106 almost a year and a half ago, and that was before Semantic UI was at 1.0. So that's pre 1.0. Well, now Semantic UI is at 2.0. So a lot of new changes, a lot of new additions, and we dove deep into a lot of the details about Semantic UI, but we also talked quite a bit with Jack about why and how, because Jack is doing semantic UI full-time. It's crazy. Gotta listen to this show. We have three awesome sponsors, CodeShip, CodeSchool, and HipChat. Our first sponsor is CodeShip, a hosted continuous
Starting point is 00:01:01 delivery service focusing on speed, security, and customizability. You can set up continuous integration in your app today in a matter of seconds and automatically deploy your code when your tests have passed. CodeShip supports your GitHub and Bitbucket projects, and you can get started today with CodeShip's free plan. Should you decide to go with a premium plan, you can save 20% off any plan you choose for three months by using our special code. That code is TheChangeLogPodcast. Again, TheChangeLogPodcast. Save 20% off any plan you choose for three months. Head to CodeShip.com slash TheChangeLog to get started.
Starting point is 00:01:39 And now, on to the show. All right, everyone, we're back. We got a returning guest, Jack Lukic, the maker of Semantic UI. Back in episode 106, it was not me and Jared, right, Jared? That's a bummer, right? It was me and Andrew. It's a good show. I listened to it today.
Starting point is 00:02:02 It was an excellent show. But, yes, bummer that I wasn't on there. Yeah, but say hello to Andrew. We miss you, buddy. But that was a good show i listened to it uh today it was excellent show but uh yes bummer that i wasn't on there yeah but uh c'est la vie de andrew we miss you buddy but that was a good show as well 106 that was october 5th 2013 almost a year and a half ago just give or take a few days or something like that seconds or whatever but uh jack you're back um was, when you were here at 1.06, that was pre-1.0, and you've gone through 1.0. You got in touch with us on our ping repo on GitHub. We didn't end up syncing up, and now you're at 2.0. So, I mean, we missed 1.0, and now we're at 2.0.
Starting point is 00:02:37 Semantic UI, welcome back to the show. Thanks. It's great to be here. Talk to you guys. And just to summarize a bit from the last show, Jared, feel free to step in and help me as well. But Jack, you're a language guy, right? You began more in the languages, and that's why you're really into the semantics of the web, and that computer languages have been different than natural languages and trying to sort of understand what a program language would what we can do today to sort of change programming languages to sort of look at these features of future programming. Zeldman at least once or twice on the show before, right? So web standards, that was a big deal. Obviously, semantics matter. But as we start getting into the days today when people are sort of targeting the DOM, and it's a little less concern, not complete no concern, but a little less concern about semantics. I'm wondering if we can bring that up at some point during the show. But
Starting point is 00:04:02 maybe some more interesting things might be, Jack, what your situation is making this project. Sure. So I think when you talked to me last, I've tried to replay in my head what I was doing in 2013. I was working at a startup previously called Quirky. If you don't know about Quirky, Quirky is a social invention company.
Starting point is 00:04:25 People submit ideas for consumer products on their website, and then they convert them into real products and then share the proceeds with the inventor. So I left there a couple years ago. Symantec at the time was actually the code name of an internal redesign at Quirky, which sort of involved, like we're scaling the team from, you know, the company was 50 people at the time. And by the end of the year, it was 150 people. So it was like it was becoming a very different company overnight. And so for me, you know, I was the lead front end developer at the time.
Starting point is 00:04:58 I was trying to sort of work out the idea of how you get a bunch of developers to code on a platform together without having to deal with, you know, the idiosyncrasies of individual developer preference, naming conventions, and that kind of stuff. And so for me, what was really exciting was, you know, going back to all the source material, which fascinated me when I was younger, about just sort of how people construct meaning. And so semantic UI is sort of a byproduct of that. It's a kind of a new understanding.
Starting point is 00:05:39 Not that new, I guess, but it's a unique understanding of how people should construct meaning through programming languages. And so it's a UI framework. You know, the nuts and bolts is a bunch of things you can plug into your website that has drop downs and modals and all that kind of stuff but the language behind it is based off of natural language it uses relationships like plurality, now modifier relationships tense, things that are sort of constructs
Starting point is 00:06:01 from natural languages which sort of help people write non-prescriptive front-end code. So, you know, everyone has their own way of calling something something. And working with semantic UI sort of gives you a single language, which is maybe not objective, but more objective than, you know, deciding at the spur of the moment, what you want to call something. So yeah, so I was working at Quirky when I left. Ben, the CEO there was really wonderful. Also Nathan Smith, the head CTO there. Both, you know, were great. And they let me open source the project. I continued to work on it
Starting point is 00:06:47 afterwards. And it was kind of one of those things where if you just finish a very grueling startup and I kind of, I took it easy. I traveled for a while. I went through Southeast Asia and all that kind of stuff. And I came out of it and I was just sort of like, I still don't want to work on this. Like this is still really important to me. Um, and so I sort of went from there. Um, yeah. So it sounds like this is a solo project. You may have some contributors, which I haven't even gone to the tab on GitHub yet, but I'm going to do that here right now. So I don't put my foot in my mouth but it sounds a bit like like it's basically a solo project with 106 other people i just looked at the contributors tab yeah well so it's technically 104 so yeah we have 800 translators um we have 100 contributors um lots of issues open every day
Starting point is 00:07:43 it's great it's one of those things where I realized the more you make something accessible, the broader the scope of people that will be helping you out. So every time that it becomes less like a programming language and more like something that people can understand, then you get these first-time GitHub contributors with no avatar, just leaving their first issue which is actually like literally my favorite thing is because all the first time contributors are like probably the best like they have the most insight they're like they come from a perspective where they're from you know some other industry they're from finance or they're from something else and they you know they want to make a website um so yeah so it's it's been really great. I think for me at least, the way I think about the project, I'm afraid of what it means to have too many cooks in the kitchen in terms of naming and language and conventions.
Starting point is 00:08:35 So obviously hundreds of pull requests, lots of contributors, but generally, I'm sure everyone has their own take on open source, but generally for me, I feel like the people who contribute are solving very particular issues. Yeah. Whereas like roadmapping and like planning the scope of a project, it's very much like the work of a few individuals. And so,
Starting point is 00:08:59 so yeah, it's, it's been great too with integrations. Like the whole ecosystem has changed since we last talked, it's like Meteor, React, all these new, you know, technologies. Yeah. And people who know those things back, you know, very well and sort of, you know, like having Angular integrations and having Meteor packages. It's been wonderful having the community help with that.
Starting point is 00:09:21 So we'll definitely dive a bit deeper into those two nuances there that you brought up. But for those who haven't listened to episode 106, which is at changelog.com slash 106, for those who haven't listened to that, can you give the one-liner about what Semantic UI is before we kind of dive deep into the what's, the why's, and the how's? Yeah, sure. So naming is arbitrary. Semantic UI tries to give conventions based around natural language for parts of the website. So these aren't things that are part of the W3 spec. These are things that are part of
Starting point is 00:10:00 what the user community has, you know, begin to call things. So the idea of a sidebar, which is like an off-canvas navigation that appears, that concept didn't exist 10 years ago. The W3C can't really adapt to create a standard around that. And so my goal is to sort of create working standards for people who want to use these kind of components but don't really want to create their own from scratch. Yeah, so this is a lot – and maybe we'll get more into the details here as we go on, but I'm kind of going back. Jared, you said you went back and listened to 106, and I kind of purposefully didn't. Either that or I'm lazy, one of the two, to go back and listen to it, because I was there, and you weren't, so there you go.
Starting point is 00:10:48 But nonetheless, it seemed to me like semantic UI was a bit more focused on being an implemented standard versus a framework itself. Is that easy? Is that somewhat the idea? So just, I'll go back into the linguistic roots of it here. This is what's personally interesting to me and sort of why I'm obsessed with this idea is I think there's a fundamental difference
Starting point is 00:11:19 between programming languages and natural languages. And I've been trying to sort of figure out in what aspects are programming languages better at constructing meanings and what aspects are they worse at constructing meaning than natural languages. And so I think there's sort of a schism between meaning as constructed for computers, which involves databases, you know, memory, different constructs for computers, and then there's meaning for people. And so the way I see it currently is that things that have to do with presentation, markup languages, are in a very unique position because they benefit most from these features of natural language. So humans are cognitive misers.
Starting point is 00:12:05 We've spent between 50,000 and 100,000 years evolving language to use the least amount of sounds to construct the most meaning. And so I'm fascinated by that. You imagine if we had 100,000 years of computer science history, what that would mean. And so for me, it's trying to sort of work through what those features of natural language are that are useful and how they apply to programming languages. So in terms of presentation, websites are kind of like virtual scenes. They're things on a page.
Starting point is 00:12:42 HTML is unique in the sense that it fits very well into this natural language system for describing things. It's like you might have three buttons on a page, there might be three large buttons. You have this concept of noun-modifier relationship. The largeness is shared between three buttons. um plurality like you you don't need to say there's a button and a large button and a large button you understand um very clearly um and in in programming we have this idea of classical inheritance classes of things but we don't necessarily break it down into the same nuance that natural language does where um words are classes of things like to me the idea of a word and a class is the same thing um but in English and basically every natural language, there's an this is a bad example. If I say, in terms of a website, a right-aligned, left-floated column, you understand that right refers to the alignment and left refers to
Starting point is 00:13:52 where the column sits on the page. Whereas when we look at classes in HTML, everyone's used to just saying, well, left means this and right means this. Well, in English, it doesn't actually have a meaning. It only has meaning in context of other classes. And so this is what I'm really fascinated with, is sort of trying to reverse engineer this amazing system for constructing meaning, which we have in natural language. So things that are interesting in the library, it's like that exact example actually plays out
Starting point is 00:14:24 where certain class names have meaning only in relation to its position in terms of word order. So, for instance, you could have in the grid system a right aligned left floated column. And it understands because you put right before the word aligned, you didn't mean right floated or you didn't mean, you know, right something else. You meant, you know, this particular concept. So, so, yes, it's kind of obviously this is a very nascent field. Like this is something that people will be expanding on for, you know, decades to come. But I'm really excited to sort of explore it more and try to really reverse engineer language. So you've had roughly a year and a half since the previous show.
Starting point is 00:15:13 I think you were at like 0.3 at the time to watch it evolve a little bit. And so could you take us from then to now, the evolution of semantic UI, and then kind of prognosticate a bit. Where do you see an end goal or a future end of the road looks like for a project like this? Sure. So yeah, so when we talked last, the project was a pure CSS library.
Starting point is 00:15:41 There was no preprocessing. When I launched 1.0, one of the things I realized is that all these concepts, you know, largeness, redness, are represented by variables. There's things that, you know, a user wants to find
Starting point is 00:15:57 what largeness means to me or what redness means to me in the context of, you know, certain elements. And so I built this library out and you know internally it ended up being i don't know 3 000 plus css variables so very very large amount of of things are um uh arbitrary in in sort of definitions um so right so i sort of definitions. So I sort of worked back from that. I created an inheritance system where I was really fascinated with sublime
Starting point is 00:16:31 text at the time. And it was one of those things that sort of came out of the ether. Like, I don't know if you remember when sublime text was coming out, but it was like, what the F is this? Like, this is insane. Who is this genius? And why does he have no Twitter followers? I was fascinated by this
Starting point is 00:16:46 concept and he still doesn't he just exists as this like mad genius that like doesn't want to be in the limelight and i was and it's obviously the best thing for uh you know text i mean there's other choices adam and so on but it was so so good that it was it was insane at the time. And for me, like, in terms of all types of art and literature, I'm into these people who sort of create without a concept of ego. They just do it because they have some idea. And he was, like, he was one of my idols. And so I was looking at Sublime Text, and they have a very, you know, simple package system that just perfectly makes sense.
Starting point is 00:17:28 There's three levels of inheritance. There's a user settings file. There's the package defaults. And then there's just the defaults for Sublime Text. And it seems ridiculous, but I was just like, this is so easy. Why doesn't everything work off of this? And so I've looked at lots of different inheritance models for CSS. And, you know, SAS and LEST, everything is just like floating in this global namespace where it's like, if you define red later in the file, it actually like changes the, you know, the red variable, you know, anywhere else in that compilation.
Starting point is 00:18:04 So it was a very basic sense of inheritance. And so I tried to sort of reverse engineer this Sublime Text inheritance model. And I came up with this system that works off of a default theme, a package theme, and then a site theme. And so, you know, you have browser default, or sorry, library defaults, which are very neutral, just sort of how the UI components look.
Starting point is 00:18:27 Then you have this concept of a package theme, which is like the hypothetical, as you're saying, you know, the future of the library. If there's a package manager, then you can download, you know, the GitHub button, let's say. It looks like a GitHub button. But then you have this third level, which is like, well, great, I downloaded that package, but I still have some things I want to customize. And so there's a third level, which is like a site theme. So it's basically like a user override. You know, I've downloaded this theme, I've overrided the default theme, but I also want to add my own, you know, my own colors or, you know, other other variables. So So, yeah, so I, I have launched 1.0 was built off of these, you know, massive amount of, of, of theming variables.
Starting point is 00:19:12 And this three level inheritance system. And it was, I was happy with it, but it was also one of those things that feels like that Pyrrhic victory where you like, you finish it and then you're like, Oh, I did it. And you're like, you do like your little dance in your room. And then you launch it out in the world and you just wait. And it's hard because like, you know, these open source is one of those things where I feel like people don't
Starting point is 00:19:37 discover it until they have a new project. They have like, you know, they lift their heads up there. They have the thing they're used to and then you have to convince them of something they've never heard of. And it's like, it's a difficult proposition. And so, yeah, so one point I was really happy with. Around that time, I actually went back to working on Semantic UI full time. So previous to that, I had a...
Starting point is 00:20:05 And this is going back into the personal life, but I was working as a consultant for this magazine, The New Republic. So it was a great place to test out the ideas of what a framework like this would look like and sort of, you know, help devolve the standard for 1.0. But then sort of when 1.0 launched, I kind of went full tilt into the doing it for doing
Starting point is 00:20:31 it aspect. And yeah, I sort of gave up the day job. And since then, I've sort of been working on it full time, you know, without pay and just sort of enjoying it for, you know, the ideas. And so, yeah, that's kind of leads me where I am now. In our pre-call, when Jared and I sort of prepare ourselves for the guests, he was telling me he went back and listened to that episode, and one thing that you did say was that you started working on it full-time in that episode, and that Andrew and I just sort of, like,
Starting point is 00:21:02 just glazed over the idea that you just said that you were working on this open source project full time and we just didn't dig in so let's let's dig into that so you've I mean it astounds me let's preface this section I guess a bit with the fact that there's so much open source out there that you don't often understand as a user or someone who's just sort of determining what's out there at their fingertips available to use what kind of sacrifice goes into making something happen or the passion like you've talked about jack that you've got for language and simplicity and all these different things and how it's played into making semantic ui what it is and i feel like you know there's a part of this show that can help foster
Starting point is 00:21:48 and help explain some of the behind the scenes there on the motivations from you, the way that you've done it in the past year and a half. And it's at your leisure to share whatever personal details you want. But I think it's an interesting topic to figure out why you're doing it and how you're doing it without, you know, a job. Yeah. No, yeah. This is something for me, it's very philosophical. I mean, we live in a Western country.
Starting point is 00:22:17 We have a very unique concept of what, you know, being subsisting is. And for me, you know, I'm a programmer. Um, I've been doing this, you know, since college. Um, and I just realized, you know, what I actually need is much less than what I think I need. And the thing that really matters to me is ideas. Um, and so I've sort of given up the idea of, of, of pursuing the most profitable you know direction and i've gone just towards trying to uh cultivate the ideas that mean mean most to me and i know that sounds like i really hate even saying that out loud because it sounds terrible but for me it's just you know i've my last paycheck was last july so i'm going on about a year now. It's one of those things where I just imagine myself later in life and thinking there was this period of my life where I had the most potential to do something. And the idea of using that potential to start to are wonderful startups are wonderful and, you know, they add much value to
Starting point is 00:23:26 the world. But for me to use that potential to, you know, help optimize the profit margins of a startup is not necessarily the best way to use your best years. And I mean, this is obviously a very personal decision, but for me, I was just really excited about going down that rabbit hole. And I think a lot of people, this is actually for me really interesting my my girlfriend's a librarian and i see there's a whole other type of world where people just make decisions all the time not based on money they just make decisions based on um morals or values or other things and i think programmers they're like they they're so good at what they do that they're able actually to cover this up really well. But I think that generally programmers are making decisions based on optimizing utility and optimizing for value.
Starting point is 00:24:15 And I've tried not to do that. And it's brought me in this sort of weird place where it's a year down the road and i'm like you know i had whatever savings there is and it's been eaten through um but i could not imagine wanting to do it any other way you know the i think also it's when you think about how many open source projects there are in the world and you know people approaching it from different directions it's the thing that i'm really wary of is, I mean, there are startups that use open source as part of a marketing campaign and sort of part of hiring developers or like evangelizing a platform. And I think it has value when the ideas are so good that they can't be disputed, like react. Everyone's like, this is too damn good. Like this could have come from like any company and we would still be using this but um but it's i i find it kind of disparaging when open source is not necessarily used to you know
Starting point is 00:25:17 promote uh independent ideas but more to you know promote uh agendas of of uh of startups or software companies um and i'm obviously this is a very polemic issue i mean i have i have lots of opinions here but i'm sure there's there's lots of different opinions here but for me it's i i really enjoy like i i have different maintainers that i'm like i i really like who i know have a certain following or, you know, but they just do it in perpetuity without like any sort of like pat on the back. And I've like I've always been fascinated by that. And also like looking back at literature and looking back at the things that really I enjoyed in my life in terms of other people's creations. I think it's those people who create without expectation that they will immediately be understood. And I don't necessarily think that, obviously, all these things are very loaded terms
Starting point is 00:26:14 because I'm talking in the context of being interviewed on a program, but just in terms of inspiration, just talking about other people, those are the people who most inspired me. And so I've been trying to sort of pursue that idea of programming. And, you know, whether I succeed or fail is kind of in our arc to the code, I guess. Yeah, I mean, I think I see, I definitely see some of your points. I think that, you know, innovation can come from many different areas. And it's a spectrum and people do open source for different reasons, some purer than others. can all see and inspect and use and contribute to is that, and maybe this is a romantic thought, but at the end of the day, it does, it does speak for itself. Like the, the, the product, right.
Starting point is 00:27:14 Regardless of if you're a Facebook, you know, and you're working with react or you're, you know, Jack Lukic, who's, who's working on semantic for free, for free, without any income at all, your project is going to succeed or fail to a large extent on its value proposition. And so there's this of other factors but yeah there is kind of that romantic utilitarian you know meritocracy aspect of open source and um you're taking definitely a different angle than many people take at it um so just to borrow a startup term, what's, what's your runway look like? You got to be kidding me, Jared. He wasn't expecting that one.
Starting point is 00:28:13 I actually was not expecting that one. The runway is, you know, there, there's when a startup would fold and then there's, you know, when a person would fold. And for me, it's, you know, I don don't i don't know if there is a runway it's i'll be doing this for the rest of my life because the idea is important to me whether or not it succeeds as a project will probably be decided soon um but but you know it's it's uh it's about ideas and like for even like the ideas that are kind of like unpolished and unrefined will eventually come around in terms of new projects and sort of different endeavors. And that's how I see semantic UIs. And I mean,
Starting point is 00:28:52 I know I'm saying this at the same time, I'm like top 20 JavaScript project, top 35 overall of any language and get up. It's, it's, it's succeeding. All right. And I'm,
Starting point is 00:29:00 I'm very happy with the community and the community is amazing. Um, but other than that, um, you know, it's, that, if for some reason it needs to be evolved in a new way, then it will evolve. For me, the thing that's important, though, is just the underlying ideas and just sort of new way of thinking about programming and kind of relating programming back to natural language and i think also it's hard too because like once you have a name to something and you like call it like this set of ideas that i've been talking about programs now called semantic ui like it'd be much easier for me to talk about it if it was just a set of ideas but as soon as it's like this is now a project that people can choose to like or not like star or not star follow or not follow
Starting point is 00:29:45 it like adds this whole sense of like uh attachment and uh you know it puts you in the realm of uh of all these things which are harder to deal with this which is like you know self-concept and and you know fitting into a marketplace and well since you mentioned the the stars and stuff could we mention the stars that you got there? You got 18,473, as of right now at least, 18,473 stars and 2,013 forks and 967 people watching this thing. So it's, like you said, it's in the top 25.
Starting point is 00:30:21 I didn't go and look at the indexes, but it sounded like CSS and JavaScript in the top 25 on GitHub for those. So it's in the top 25 i didn't go and look at the indexes but it sounded like css and javascript and the top 25 on github for those so it's it's fairly popular yeah i mean it's nice to see like i don't remember the exact rankings but i remember there's like there's some libraries that i really respected when i was getting in the range of you know and also it's interesting to think about there's there's lots of funded open source libraries now. You look at Meteor's last round they raised from injuries in Horowitz. Or you look at Ionic or other frameworks, which are wonderful projects, which I love. But the caveat being that they have a bankroll now.
Starting point is 00:30:56 And they can make decisions, understand they can bankroll developers. And those people, that's almost what it takes to get into that ballpark. Once you get into the top 20s, you look around, it's people who are bankrolled at Facebook, people who are bankrolled at Google, and vested startups. And so doing the old model of just doing open source development and GitHub issues and this kind of stuff, it's really hard to make traction once you get to that point without having some sort of... Juice, so to speak. Yeah, juice, so to speak. Exactly.
Starting point is 00:31:31 Let's talk about that for a second because something that stood out to me that you just said was you said the fate of this project will be determined soon. When Jared asked you about Runway, you sort of chuckled about your own personal Runway, and it was mixed. It was like there was a little bit of your own personal runway and and that was indefinite because you said that this is really passionate to you and and you're gonna keep doing it but then there was another
Starting point is 00:31:52 side of it that you said the fate of this project will be determined soon can you talk a little bit about like what that what you meant by that but there's was there some background meaning behind that? Yeah, sure. So, yeah, it's 2.0. You know, I was really excited about 1.0. It was one of those things where I launched into the world and, you know, had no concept of money at the time. I was just sort of, you know, eating through savings and being okay with it. And, yeah, 2.0 is out out and it's six months of work. I mean, I know it's really hard to like explain what that means, but like literally just me going to an office for six months and working full time. And it's getting to a point where, you know, just to have the project continue on,
Starting point is 00:32:40 there needs to be some sort of way to make to make it sustainable um and you know i tossed around the idea of a kickstarter and i just sort of felt really awkward about that concept of like because we already have a product it's not like i'd have to you know get people to bankroll a future product um and so yeah i'm just i'm trying to figure out a more sustainable way to do it i've asked people for donations in the past and by the, I want to call out how amazing the community is. Like I've at launch, I had like a $250 donation, like last few months, I've had, you know, between 500 and 750 bucks in donations per month. People have been really amazing about that. And I think also that's part of like, when people understand when you have a community that understands kind of what you're doing in terms of not having any money coming in
Starting point is 00:33:28 and working on a project like this, they're really eager to help. I think that's the part that's been really sobering about all this. Even if you don't charge for anything, people understand that there's some sort of social responsibility to open source. Things don't just exist in ether. And I think when we talked last time, like GetTip was just coming out. And I think, yeah, it's been really nice to see that. But yeah, I guess in terms of what you specifically asked, I think I'm going to have to find a new financial model for the project if it's going to continue with the development that it has had previously.
Starting point is 00:34:07 Because you can't just not work for multiple years living in a city like New York. No, no, absolutely not. And I kind of wish we got a bit more of the how you've done that and why you've done that out of there. I don't want – I'm not sure. We've got some of the topics we want to hit up, um and we got a sponsor break to do here in a second i'm almost tempted just to dive a little bit deeper into the into the the money situation because jared you referenced 145 with david we talked about financing open source and he's very against getting paid to open source and so jack is the exact anti dh8 so to speak in terms of getting paid to open source and so jack is the exact anti dh8 so to speak in terms of getting
Starting point is 00:34:46 paid to open source and it's this full-time thing so you know there's patreon get it was there what is it called now jared there's a new version that's a new name for gratify i mean have you been using that i saw flatter on on the readme yeah so is that the primary way that people have been helping you finance this so that you don't have a full-time job and you can work on the full time i i wish i i feel like i'm one of the more well-funded product or projects like in terms of of the community giving back but you know five hundred dollars a month is is wonderful like it really helps but in terms of like being able to you know live long term yeah my rent is
Starting point is 00:35:27 double that right you know my i have to eat food too so i'm like a bit you have to eat what yeah there was like a repo you can fork and eat that or something like that all right well this may sound uh tongue-in-cheek but seriously have you considered moving ah i the traveling aspect really helped with with that like uh you know cost of living in thailand or something it's so so cheap but the girlfriend sort of makes it hard now yeah there's the road yeah all right well let's let's go ahead and use that as a chance to go ahead and pause and listen to what the sponsor – when we get back, we're going to talk more about adoption. We'll begin with how you adopt or how you begin to use semantic UI, and then we're curious to know who out there is using semantic UI. You mentioned possibility of users.
Starting point is 00:36:25 So sometimes someone adopts it and starts to use it and then they actually give back financially to it. But let's go ahead and break and we'll come back and we'll talk about that. All right, put them away, put them back, put the books back on the shelf if you don't need them and learn to code by doing with CodeSchool. CodeSchool offers a variety of courses, JavaScript, HTML, CSS, Ruby, iOS,
Starting point is 00:36:50 Git, and many, many more to help you expand your skills and learn new technologies. CodeSchool knows that learning to code can be a daunting task and they've combined experienced instructors with proven learning techniques to make coding educational and memorable. It gives you the confidence you need to continue past those rough, tough hurdles that you will definitely face learning the code. CodeSkool also knows that languages are a moving target. They're always updating their content to give you the latest and the greatest learning resources.
Starting point is 00:37:21 You can even try before you buy. Roughly one out of every five courses on CodeSchool is absolutely and totally free. This includes instructor classes on Git, Ruby, jQuery, and much more, which allow free members to play full courses with coding challenges all included. You can also pay as you go. One monthly fee gives you access to every CodeSchool course, and if you ever need a breather, take a break gives you access to every CodeSchool course. And if you ever need a breather, take a break. You can suspend your account at any time.
Starting point is 00:37:50 Don't worry. Your account history, your points, your badges, they'll all be there when you're ready to pick things up again. Get started on sharpening your skills today at CodeSchool.com. Once again, that is CodeSchool.com. All right, we're back. And now it is time with Jack to dive a little bit deeper to figure out two things here. One, how do you use, or the other word we can use is adopt. How do you adopt semantic UI? How can you begin to use it? And the question Jared's got here is, is it all in or is it toe in the water?
Starting point is 00:38:23 How does it work? Right. So going back to the analogy of Sublime Text, I'm sure like everyone has their first Sublime Text experience. So you download this new editor, you're like, what the hell is this? So for Symantec, you know, it's npm install Symantec-UI. The npm is sort of, I don't know how you feel about this, but me bauer and other package managers are kind of on the way out in terms of uh managing dependencies npm is uh is sort of the go-to point um one of the things that's wonderful about using npm is that we have an interactive installer which kind of feels like installing one of those like adventure games when you're like 12 years old
Starting point is 00:39:02 yeah yeah so it asks you questions it's like you know are you a right to left user you know do you need to choose which components you want to use um and so on um one of the things i'm actually really excited about adding in in 2.1 is have you guys are you familiar with purify css just by name but not the details sure so the thing that like the first feedback i always get on having a monolithic ui framework is everyone's like that's great but like what if i just need one button what do i do and uh my answer previously was just like well just choose from the interactive installer button but but my new answer is in 2.1 i'm'm going to be including Purify, which basically what it does is it
Starting point is 00:39:45 goes to your HTML and your JavaScript and looks at what you actually use and then changes the CSS to only include CSS that is used in your HTML. So, you know, if you want to use semantic, you don't have to like worry about this, you know, 700 kilobyte download. You can just, you know, specify your output you know your html folder and then it'll go great well whenever you start using a new class name in html then we'll just add that class name to the css how does that work across dynamic pages just yeah i thought the same thing until i went to the repo and i was like wow it works yeah it just works it's magic it's like
Starting point is 00:40:23 it's some special magic that some of the open source community they actually describe it as voodoo magic on their readme so yeah that's better than auto magical which i was never a fan of that term but voodoo magic sounds pretty rad yeah um so back to the sort of the overview so you install it on npm um it asks you questions what components to use um and then it goes into a folder with a, you know, it has basically two folders, a circ folder, like a source folder, and a dist folder, which is the CSS you actually include in your page. And so the way it works is kind of like Sublime Text, where, you know, you download a package and you're like, well, I like two spaces for indents instead of four. And so you open up a file that's a user file. In terms of semantic, it's, you know, circ slash site slash global slash site variables.
Starting point is 00:41:20 And so you open that up and you say, well, I want, you know, red to be this color. And then the build tools that are built into the project compile any change that happens and then, you know, changes the output CSS to sort of match your changes. So it's, if you're familiar with Bootstrap or Foundation, it's like that, but instead of it being, you know, I just import this library and just start writing like override variables. It's a more structured system, which I think actually benefits projects because it means that, you know, if you want to start a new project and you have, you know, all these defaults already set, then you don't have to worry about like cutting and pasting parts of a CSS file that have to do with, you know, a menu or a button. You actually have a dedicated file to that. And so I think this is, for me, this is a huge thing for front-end developers, is to start thinking in terms of UI.
Starting point is 00:42:15 Like, when you're customizing a menu or a button, like, put that in a special file called button, you know, and then realize that when you're going to a new project that you need to, you know, and then realize that when you're going to a new project, um, that you need to, you know, take those particular changes. And if you want to reuse a button, then, you know, it's there. So yeah, it's, it's a new, it's kind of a more fragmented approach, which I think people have a hard time getting used to at first because they want everything to be in there, like monolithic, you know, uh, index dot CSS file or whatever. But, uh, but once you get used to separating it, I think it really helps you in the long run. And it sort of makes it very easy to create new projects. So it does sound like it is an all-in thing,
Starting point is 00:42:58 but it's going to strip out the stuff that you're not using, so it's not like you get all the weight of all the components that you don't necessarily use and there's individual repos for each component so if you're just like i just need a drop down and i'd rather use your select drop down than you know um another one then you can just you know npm install semantic dash ui dash drop down and you got that so so yeah it's basically here's one of the things that i've had actually a really huge issue with it which i would be interested in you know talking more about
Starting point is 00:43:29 is that as open source developers it's like you have this idea of you have an opinion idea of how people should use a project which for me is this like inheritance system but then you just have how people actually use the product um and so you have people who use Angular, people who use Ember, people who use Meteor. All of them have their own package managers. You have people who just want to use Browserify, and you're like, whoa, everything is compiled from NPM dependencies. And all of those are different packages
Starting point is 00:43:58 with different metadata, different things to manage. And what's really fascinating to me is trying to be a developer who has, this is how i think you should use it but at the same time i'm just one dumb idiot in a room and if you want to use it like in you know another way then here's another way to use it so yeah it's been really interesting the community's been really you know wonderful with that where like i've I personally have never used Ember. But the guys who manage the Ember integrations are amazing and like have a faster response time than me sometimes with issues, which is kind of embarrassing. But but at the same time, I'm like, wow, that's thank you for caring about an ecosystem which I have yet to, you know, dig into.
Starting point is 00:44:41 So basically, is your policy on integrations like those are all third-party open source deals or do you have any first party like integrations with any of the popular frameworks or backends you guys are you guys gamers at all uh casual gamer my former life in the nintendo 64 days there was a game called banjo kazooie oh now you're right in the wheelhouse yeah exactly all right so that was that was what i think it was like a second party game In the Nintendo 64 days, there was a game called Banjo-Kazooie. Oh, now you're right in the wheelhouse. Yeah, exactly. All right. So that was what I think of as a second-party game, which is like you're not necessarily a third party
Starting point is 00:45:12 because the organization that's in charge is like, all right, Rare, you're great. We're going to release and really promote you. And that's how I feel with the integrations. I'm like, it's really hard for open-source developers who have a repo hosted on their own username on GitHub feel with with the integrations i'm like it's really hard it's for open source developers who like have a repo hosted on their own like username on github and like they're trying to like promote it so i'm like anyone who i find who's doing a good work with you know an integration i try to
Starting point is 00:45:35 you know get a semantic org repo and sort of you know promote it in the main repo with the readme and like integrations docs and so on just so that like they understand they're part of a community and they're like everything that you do has you know has purpose and value in terms of you know contributing to a larger good um and so i think that's for me also like that's a hard part to deal with is trying to remember your context in terms of community i think like in the pre-show we talked about this like um everything you do in open source is like it's just a commit going into the ether and so you have to understand like where that commit fits into like the people who are using that library like the you know the
Starting point is 00:46:16 other people who have dependencies on your project who you know add on to it um and so for me i really want to like make sure that people understand that when they like take the time to make you know a wordpress integration or something like that that may not get you know a massive amount of stars on github that they're still doing really good work and that like they need to you know feel some praise and like yeah some like pat on the backs from that so on that note the the examples i think i've found paging back through the org here's like semantic ui css semantic ui less uh and then keeping that same prefix you got meteor meteor data beta docs amber angular is that is that what you mean when
Starting point is 00:46:58 you talk about the integration oh yeah yeah completely and i think it's this is one thing that i'm since we last talked i've started to understand more is that like once you just like put that team jersey on someone, you're like, all right, you're part of the team now. And like, here's this official repo. Like suddenly they understand that like, you know, their work is valued. Like there's this community that will appreciate everything they do. And I think like, like that's, that's such a wonderful transformation for me. It's like just watching people like go from like, this is my first time, you know, contributing and integration to like, I'm in the maintainer of this official integration. That's like other people are depending on. And that's like, that's really powerful. What, uh, on that note, what overhead is it for you?
Starting point is 00:47:44 Cause it seems like you're giving a lot of the onus on to whomever really cares about it. What friction is it back onto you and the rest of the contributors to the main repo? And how does it kind of tie into the main repo and the build process and whatnot? Yeah, I mean, it's hard to like channel the right issues back to the right place. Like Meteor is really popular integration now, and Meteor is taking off like crazy. But there's a whole new pipeline for how people build with Meteor. They have to have a special JSON file that defines which components to use, and the maintainer of that project decided for that.
Starting point is 00:48:23 And when that's not working, it's hard for people to differentiate between what's a semantic UI problem and what's an integration problem. But for me, it's gravy because any of this is a whole new community of people who wouldn't have used the product who are now
Starting point is 00:48:40 getting excited about it. Yeah, it's the same with Rails or Ember. It's just one of those things where as a developer, you choose the communities you are involved in, and there's other communities that you know are wonderful communities that you just don't have the depth of knowledge to be able to help out. And just having people have your back with that has been wonderful.
Starting point is 00:49:03 I'm here on the Semantic UI Meteor repo, and I'm seeing custom.semantic.json, and this looks a lot like your affinity for Sublime Text and its inheritance that you talked about. Is that part of the layered, I guess, variables that you can, settings you can use for Semantic UI? Is that part or is that not part of it that's actually i would have to say hey does it not not part of it but it was the guy um uh i know him only by his github username so his actual name was giving flamme who's maintaining yeah
Starting point is 00:49:39 thank you um he's been great he has some some of the very popular projects on Atmosphere, which is the package manager for Meteor. It's a system that he picked up from the Bootstrap project on Atmosphere, which I think is specifically with the way that the files are set on Meteor. It's much easier for them to just have a JSON file on the top level that they can set that then triggers the LEST pipeline to recompile the files correctly. You'd have to ask him. It seems like a good idea. That's why I asked.
Starting point is 00:50:19 It seems like it's keying off of what you were talking about earlier, which is why I thought it was something that was part of the official way of doing things. No, no, you're right. I'm being actually a bit of a pedant because the actual project has a semantic.json file, which is basically the exact same thing. It has a different structure and that's sort of how people decide what components
Starting point is 00:50:40 include, what the input and output directories are. Yeah, so everything works out of configuration file yeah in terms of theming there's a central config file that's like a theme dot config file so basically I was sort of describing this three tiered system before when you download the project all the theme config has every component set to default theme. Anytime after you download it, you can open that file, change the theme to, you know,
Starting point is 00:51:11 you can change button to GitHub or something or site to material. And theming is done sort of per component in the library. So you may choose to have a GitHub button, but a material, you know, site theme. So it would have all of, you know, Android fonts, but then have buttons that look like GitHub. And I think this is one of the things that for me is really differentiating is that I think theming is really nuanced. Like everything is in terms of UI. And when people are like, well, I just need to make my site, you know,
Starting point is 00:51:40 look like a material design. Well, I'm like, well, a site is a lot of different things. Like a site is, you know look like a material design well i'm like well a site is a lot of different things like a site is uh you know several dozen ui components each with their own you know custom look and feel um and i think that once people start to like think about things that way and like distinguish and you know in terms of their branding um between you know how maybe they want you know a card system that looks like Instagram, but they want their buttons to look like material. And just sort of like being able to differentiate that way, I think is really important. And I guess that's like the difference between bootstrap or
Starting point is 00:52:17 foundation is like people are in those contexts are just used to loading like one master theme file it's like everything across my website is like this um and i think also like for the open source you know component componentized web like you have to start thinking in terms of like little tiny things that fit together um and although the library is a big library of little tiny things fitting together really it's like it's a bunch of small components when it comes down to it. And every time I add to the library, it's another thing that you can just say that you don't want in your semantic.json file.
Starting point is 00:52:52 I really hope that it doesn't turn into this thing that people are afraid of because they think it's too big. I want to make sure that they make the decisions really early on to make it small and limited. Yeah, just looking at the homepage, your theming looks really really nice um one thought i had coming into this is like who's using semantic ui because you know like i know bootstraps out there and you know uh in crazy mass and we see foundation and and these other
Starting point is 00:53:21 those are the two big ones and i was thinking i don't really know any sites using it but you know as a as a user of a front end yeah nice not knowing um you know yeah as developers we get to a point where i can spot a bootstrap uh site a mile away even if it's customized and that's fine most users don't have a clue about these things. But maybe it just speaks to the quality of the theming and the way you can personalize it that I don't actually know any sites that are semantic UI users. You think that's true, A?
Starting point is 00:53:56 And B, could you give us a couple examples to look at? Yeah. I mean, in terms of public examples, it's a bit dicey, but it's being it's kind of new technology. Like I have to kind of explain, like I get personal emails from people and it's lots of like, you know, we have a startup that has gotten, you know, Series A or C funding and we're using semantic UI and we don't have any public facing links yet, but we just want to know, you know, good job. And we're hoping to, and we don't have any public facing links yet but we just want to know good job and we're hoping to make the library grow. Today for instance
Starting point is 00:54:29 I guess I can say this publicly I got an email from someone who has Garmin Auto saying that they're using it and their internal tools and just sort of like we can't put this on the GitHub but thanks I probably should say this in the podcast actually but it was one of those nice things
Starting point is 00:54:45 where you're like, we'll end that right now. Okay. But, you know, it's hard because I worry about these things too, and I think part of the way Bootstrap works is that they're first to I hate to say market, they're first to market with UI frameworks, and they just sort of have
Starting point is 00:55:01 a level of adoption that's kind of unririvaled like they're the most popular uh project on on github like in terms of stars like and i understand that and part of me understands that that's because ui is a huge problem that people like are really concerned with solving um and so that's kind of gives me ample you know ample fodder for wanting to grow up Semantic UI into a really wonderful alternative for people who... Oh, and by the way, I don't know how I didn't mention this the entire time. Semantic UI 2.0 is all Flexbox. So if you're tired of Bootstrap with its old floats for grids, it's Flexbox grid.
Starting point is 00:55:44 It's Flex floats for grids. It's a Flexbox grid. It's Flexbox components. It's based on EM, like very modern new things, which I think people who are making websites for IE 10 and up and sort of modern browsers are really excited about using. On the note of Bootstrap, and I guess, you know, it's the same idea, I guess, where you think about an ecosystem where there's some need and there's so many fractures. So bootstrap foundation and, you know, all the other ones that sort of fall in line there. You know, I'm kind of curious to your motivations of why. continue to be why you've chosen the route you've gone versus folding your your brain space your
Starting point is 00:56:27 knowledge space into one of these other projects and just kind of going off the stars just just simply for the numbers sake you know 18,000 ish 18,500 for semantic UI and then whenever you go to something like bootstrap you've got 82,000000, 83,000, and they've got way more followers than the changelog, I think, will ever have. 346,000, almost half a million followers on Twitter. So curiosity as to why you go this route versus folding some of your knowledge space into that since you compared yourself to Bootstrap
Starting point is 00:57:04 when it came to Flexbox. I just have an anecdote, actually, to explain. I read the news every once in a while, and I'm not wonderful with it, but I saw that North Korea announced that they had a cure for most diseases. They had a cure for cancer, they had a cure for balding, all this kind of stuff. I forget the name of the medicine. But I went to the website that was in the press
Starting point is 00:57:32 release for North Korea. And it's like, this is a BBC article. And it's like this miracle product. And I'm like, I'm looking at the source code. I'm like, holy crap, this is bootstrap. North Korea uses bootstrap. And I had this moment where I'm like, this is it in a nutshell. It's like there is just entropy in the world. There's things that just exist because the world is chaotic and just selects for things
Starting point is 00:57:56 and you can't really change it. And I feel like there's better things. And I want to take the things which I think in my life or the ideas that I think are better and just really try to, you know, be an advocate for them and sort of support them and push them. And for me, it's I think there's a we didn't talk about it much in this episode, but for me, I think there's a fundamental issue with programming languages that look like what programming languages looked like in the 1950s and 60s, which think of things in terms of of like baking a cake. Like, here's a sequence of things I need to do for a computer to understand.
Starting point is 00:58:34 And we're we're missing out on this entire different way of seeing language, which is, you know, how we construct meaning on a day to day,day which is natural language uh systems of of uh grammatical relationships um and so for me that's that idea is just so fascinating and so like multifaceted even if i wasn't a programmer even if i was like for some reason i was an artist or a writer or something else i would just be very excited about exploring that idea of the difference between machine learning and and human learning and understanding. And so I guess that's why I do it. But yeah, I mean, in terms of the practicals, I think I'm such an ideologue. I come back to the practicals very late in the game. Like I'm always the last one. I'm like, oh yeah, I forgot. I was too busy, like getting really
Starting point is 00:59:20 excited about this new, you know, was coding and then you know i think i think it'll get really serious when i like i can't pay my rent or like i have you know some other issue but for now it's like it's just trying to chase those things well i have two quick thoughts about the bootstrap thing and then we'll go to sponsor break the first one is you know 18 000 stars ain't nothing to balk at so you're just fine there secondly you know that band that you found before anybody else and you loved it and it was your band and then everybody else you know they blew up and then everybody else knew about and you're like oh now it's not my band anymore semantic you i could be that band for you it's still in the phase where you know some people
Starting point is 01:00:02 know about it but you can still impress your boss they're not gonna recognize it's in that perfect phase where it's time to go out and give it a shot is that is that stretching that analogy too far i think that's great it's that i wish i was that few people have heard all right 18 000 people yeah well at least that's those the the ones who are at least motivated enough to go and star it that's right well okay but it's still still pretty can i have a little plug just a really tiny plug sure um we're having a launch party in new york um on the 14th um there's a event right on the home page If you're in New York and you've heard this podcast
Starting point is 01:00:46 and you're excited about talking more, I'm going to be there in person. It's going to be in the Lurie side. I was just talking to the venue owner today. It's still TBD, but I'm really excited about it. And it's nice to just celebrate open source. That's true. So that's the 14th and that would be the Monday. This show comes out on a Friday, which is July 10th. So it'll be really close to the 14th, which is a Tuesday. But nonetheless, if you're listening to this, go to Semantic-UI.com and scroll down just a tiny little bit. If you've got a big motor, don't scroll at all.
Starting point is 01:01:18 And it says right there, RSVP to attend. And click that button, you'll go to an Eventbrite page, and you can use Eventbrite as Eventbrite works. Nice. Sounds like a blast. Let's pause here for a quick sponsor break and when we come back we'll ask our awesome closing questions. We'll be right back.
Starting point is 01:01:34 HipChat is a game changer for team communication. It helps you and your team get the information you need faster than email and reduces meaningless meetings. Teams that use HipChat are able to make faster decisions and get more work done with group chat, video chat, and file sharing. HipChat is a great solution for distributed teams by letting you take the office with you no matter where you go. iPhone, Android, macOS, it's all there. HipChat is easy to use and gets everyone working in real time. And right now, HipChat is offering listeners of the ChangeLog 90 days of HipChat Plus totally free. Get premium features like unlimited file storage, unlimited message history, and guaranteed support totally for free for 90 days.
Starting point is 01:02:24 Visit hipchat.com slash changelog. Again, that's hipchat.com slash changelog. Get your team started using HipChat Plus today. Go and check them out. All right, we are back with Jack Lukic. Ready to wrap up here, but first we have to ask our awesome closing questions that we ask at the end of each show.
Starting point is 01:02:42 First one for you is, what is a call to arms for semantic UI? If you have the ear of the open source community, what are you asking of them in regards to your project? Are you passionate about UI and you want to work on an open standard for people who work with UI frameworks? Come join us. We're not a new us. We're not a
Starting point is 01:03:06 new framework. We're not an old framework. We're the upcoming framework. So somewhere in between. This is really terrible. To use Jared's analogy, the banger about the heroes. That's right. Let's just jam that one into the ground. Yeah.
Starting point is 01:03:23 I liked it. I think it was pretty pretty good it seemed like jack was just like i like it though i like it i like it it's it's kind of a shame that you invite you know you did the party call out before the sponsor break because here would be a perfect call to arms and in addition is go to the party july 14th you'll have a blast. Throw that one in there for you. Absolutely. Adam, you want to take the next one? Yeah, yeah, yeah. So are we going to ask about the hero? What is the next question?
Starting point is 01:03:54 Have we determined what it's going to be? I don't know, man. You got me all mixed up here. We asked several questions. I would think that what's on the horizon? This is a question from a different show that we don't ask too often on this show. And we got one other question we'll ask you too. But what's on the horizon for Semantic UI? You just went to 2.0. You're about to have this party next Tuesday if you're listening to this in the real time. In fact, it's actually a couple
Starting point is 01:04:22 Tuesdays from now because we're recording this on July 6th, so it's a week and a day away. So what's on the horizon? What's something that no one knows about? Only you, Jack, that you know where Semantic is going, Semantic UI is going. Paint the picture for us. Sure. So theming right now requires some technical sophistication. You have to be able to get into the build tools and open up files. Aspiration has always been and should be achieved in the next version, which is going onto a website, being able to customize and save your UI, and then have it in the cloud.
Starting point is 01:05:02 Sync it between projects. Preview it with all of the different variations and styles. And then every time you download semantic UI, you have your UI guide that is built with it. I think a lot of companies are... Heck yeah. Yeah, it's like... There's like dedicated projects just for that yeah my goal is that everyone can have their own google.com slash material but with their own style that's really interesting so
Starting point is 01:05:33 going back to the levels of of inheritance with the classes and or not the classes but the different that would all tie into it you would have you know the pattern level you would have the user level and you would have like semantic ui level oh yeah all play into it. You would have, you know, the pattern level, you would have the user level and you would have like semantic UI level. It all play into this style guide that's, that someone would actually get built on the fly for them with no extra effort. Yeah, completely.
Starting point is 01:05:54 Very interesting. Register for an account, change some variables, maybe choose a preset or two. And then it generates some sort of a UI guide for your company, which then can be used, you know, with microsites with new employees, like as a brand guide. That's the sort of UI guide for your company, which then can be used with microsites,
Starting point is 01:06:05 with new employees, like as a brand guide. That's the sort of goal. That's so helpful for bringing on new people to front ends because, I mean, it's helpful on both sides, the front end bringing on new team members, but also for developers who are building what the front enders have defined as blessed. Oh, yeah.
Starting point is 01:06:24 Because once you get the buy-in, you don't want it to change. And not that developers have a habit of changing it, but they want to just be able to implement front-end as best as they can, you know, and not have to, like, trip over wires or whatever. And if you could provide that guide rail for them, then that's perfect. Yeah, and none of that BTN-primary.
Starting point is 01:06:42 It's literally be, be like red button. I know for me talking to backend developers, the thing that really works with semantic UI for people is it just clicks. They just look and they're like, my God, I can read this like a sentence. And there's no actual learning required. It's basically the language I use to describe you know, describe a website to my friends. So that's what I'm hoping for people is that they start seeing websites, not having to use a separate arbitrary language decided by developers.
Starting point is 01:07:12 And that it could just sort of use, you know, a more objective, reasonable language. Awesome. That does sound awesome. So next question for you. And the last question is we know you've been a little bit heads down. You said you were in a vacuum a little bit working on it. Yeah. I'm sure you've peaked up a little bit because you knew about React and you know about some other things. So what's on your open source radar? If you had a free weekend and you weren't working on semantic UI, you want to hack on something, what's caught your eye? What's interesting to you? I'm interested in all the React-like frameworks that aren't React.
Starting point is 01:07:52 Like the idea of virtual DOM diffing has this like magicness to it that I think React solved in a very particular way. Actually, I don't have the name of any frameworks at hand right now, but there's a lot of people working in this space. And I'm more excited about not necessarily like what react feature is but what virtual dom future is like what that means is the concept and how it fits into the browser um but i mean in terms of if i had a free weekend and what i'd be doing um i would be embarrassingly getting back on my meteor chops because right now it's like my most uh popular uh integration but i i am am really a layman
Starting point is 01:08:26 when it comes to understanding the pipeline. So yeah, that's what I'll be doing on a weekend. Well, you mentioned virtual DOM diffing. I went ahead and plugged that into the Google, and the Google said that there is a repo on GitHub called Virtual DOM. It's by Matt Esch, and it's got over four thousand stars so it's definitely something that's up and coming if you if you haven't heard of that that may be a neat
Starting point is 01:08:52 place to start it's a javascript dom model supporting element creation diff computation and patch operations for efficient re-rendering and it's got quite the support level. It's all green from what I can tell based on this image here. Android, Firefox, Chrome, IE, iPad, iPhone, Opera, and Safari. So that's pretty exhausting in terms of support. IE6 is gray. Oh, yes, of course. Sure is. That is the gray one. But hey, that's a good place to start, though.
Starting point is 01:09:22 When's that free weekend coming? Oh, man. At the end of the runway. At the end of to start, though. When's that free weekend coming? Oh, man. At the end of the runway. At the end of the runway, exactly. Just got to land the plane, and then we'll... So before we tail off the show, then, let's plug some ways that those who've listened to the show have some interest in UI. Maybe they can contribute. Maybe they can interest in UI. Maybe they can contribute.
Starting point is 01:09:46 Maybe they can't contribute code. Maybe they can help with docs. Maybe they can't do anything whatsoever besides donate their finances if that's something that we should do. What's the best way to support financially your endeavors? And if there's someone out there that is a VC or is someone who would support this financially on a bigger scale, what's the best way for those types of people to get in touch and get involved? Yeah.
Starting point is 01:10:15 So I'll start off on the micro and we'll go to the macro. But basically, if you're not a developer and you're just interested in some of these ideas, we have a big localization team, like 800 people, 30 languages, but even with that many people, many languages are still less than 50% complete. So if you just go to the repo, semantic.org.slash semanticui, there's a link to join our translation community, and that would sort of help make semanticui available abroad. One of the things that I'm really actually frustrated with that I really need help with, so there's no SAS port yet. I noticed that repo was empty. I was going to call it out.
Starting point is 01:11:05 Yeah. So in the readme, actually, I have a link to the required pull request. There's one pull request that's required for SAS to work with semantic UI. It's allowing variables inside of at import statements. So the theming works off of dynamic import statements. If you like SAS, it's pull request 739. It's in the readme. Please help us make SaaS support dynamic imports. Another wonderful way to contribute, our Angular bindings are still coming together. If you're into Angular, there's a link in the repo. And then lastly, as you said, if you're a VC or if you're an angel investor,
Starting point is 01:11:41 there is, if you reach out to me directly, jack at semantic-ui.com. There is also a tiny microsite, investor.semantic-ui.com that just sort of gives an overview of the project and sort of its future. Can you repeat that last URL again? Yeah, sure.
Starting point is 01:12:00 So the email is jack at semantic-ui and then the URL is investor.semantic.ui. Okay, gotcha. So it's a subdomain off of your main. Yeah, it's not mobile-friendly, so don't try that, but it was a weekend project a couple months ago. Gotcha. What about Flatter? We mentioned that a little bit earlier in the show. that is that a common way is that the way um there's a paypal donate link in the footer of semantic.ui.com um that's i feel it's a little bit easier to deal with than um flatter which is working off the euro okay gotcha and so when you go to that you do have the option to make it a monthly donation uh you're not putting a dollar in there so it could be a buck it could be 50 So it could be a buck, it could be 50 cents, it could be $5, it could be whatever
Starting point is 01:12:46 the generous folks out there decide to put in that donation amount box. Is that correct? Yeah, completely. And as somebody who's worked on this a long time, I would just love to have other developers help. So if you're more financially interested, I would love to be
Starting point is 01:13:05 able to have more, as you say, runway for this. But also, if you're a developer, please help us with our integrations and that kind of stuff. And something else I want to point out too here at the end is you guys use Gitter. So gitter.im slash semantic hyphen org. There's also a link in the main website's footeritter which we'll also put in the show notes but that seems like a good way if you just want to hop in and say hi to jack and the rest of the community then you can easily hop in and just say hello and and uh and just sort of step in and just kind of get to know people first before you commit to to anything financially or even your actual work so you can sort of get a heartbeat of the community by stepping in and just saying hello yes it was wonderful plug and also you know uh i love getter by the way i want
Starting point is 01:13:51 to i want to plug them because they're amazing and what they've done um you know how do slack have like sort of closed chat rooms and then all of a sudden getter came along and it's like my god people can organize around open source much easier thank you guys for doing it there's definitely some interesting things happening there because you can see how, for example, your user has labeled something or some other user, Avalanche1, not sure who that is,
Starting point is 01:14:13 opened issue 2530 at certain times. So you can sort of not only catch up with people, but also see the activity of the project, which is pretty neat for that. And I'm sure anybody else out there listening to this has played with Gitter, but I haven't much yet. I've only been a Slack guy, so this is pretty interesting to see. Yeah, I love Gitter.
Starting point is 01:14:34 Yeah, if you want to keep track of an open source project, the first thing you should do is open up Gitter. Everything's in one view. Cool. All right, well, Jack, hey, thank you so much for coming back. I know it's been a year and a half. We said 1.0, but we got you at 2.0. Nonetheless, great show today. Hopefully your runway is long to keep stretching out Jared's analogies.
Starting point is 01:14:56 I hope your band becomes the American Idol or something like that. Maybe you get on The Voice. That's a bad joke, Jerry. Why do you let me make that joke, man? Oh, man. You wouldn't bail me out earlier, so I'm not bailing you out now. All right.
Starting point is 01:15:13 At the tail end of this show, I do want to plug some things. We have some awesome sponsors making this show possible. But we are going to be at GopherCon. As a matter of fact, if you're listening to this, we're at GopherCon right now.
Starting point is 01:15:24 And if you're listening to this, you're probably at GopherCon. Well, maybe you're not at GopherCon. As a matter of fact, if you're listening to this, we're at GopherCon right now. And if you're listening to this, you're probably at GopherCon. Well, maybe you're not at GopherCon, but if you are listening to this and you're at GopherCon, come and say hi if you haven't already yet. We definitely love hanging out with all the Gophers there in Denver. The Mile High City
Starting point is 01:15:40 as they call it. And Jared, how excited are you about the temperature there, man? I guess you're not how excited are you about the temperature there man i guess you're not that excited because you don't live in texas but what's it gonna be gonna be nice 60s 70s it's like 90s okay right now outside it's uh 91 degrees that's not cool what's cool is 70 degrees that's cool cool. Have you considered moving? I'm pulling a jack here, okay? In this case, it's a wife, not a girlfriend.
Starting point is 01:16:12 We can't quite move. But we have discussed that Denver is the city. If we moved to any other state than Texas, because it's Texas forever. But if we did move, it would probably be Colorado and in particular Denver. Omaha, did you say? I'm sorry, I coughed. Oh, okay. Gotcha.
Starting point is 01:16:33 Jared's from Omaha. Nebraska. Nebraska. I can't even cough that. I've heard that's pretty cool. Anyways, so thanks to our sponsors. Thanks to Jack. Thanks to all the listeners for listening to this awesome show. And Jack, we hope your runway is long, my friend. And thank you so listeners for listening to this awesome show. And Jack, we hope your runway
Starting point is 01:16:45 is long, my friend. And thank you so much for coming on this show. Let's say goodbye. Thanks, guys. We'll see you next time.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.