« All Episodes

Hampton Catlin, Part Two: Speedy Sass with libsass, Wordset.org and Open-Sourcing Our Words

Published 4/29/2015

In today's episode, I talk with Hampton Catlin about fast Sass compilation with libsass, and then we discuss his latest project, Wordset, and why we need a truly open source dictionary.

Links for the whole interview:

This episode is sponsored by Intuit. Check out the developer sandbox and API explorer at http://intuit.me/DevTea

Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea name is Jonathan Cutrell and today I am interviewing Hampton Catlin. Hampton is the creator of SASS and Hamill and he's also the creator of wordset.org go check it out we're gonna be talking about it in this episode. I actually interviewed Hampton a few weeks ago at Ancient City Ruby which is why you're gonna hear a little bit of background noise we're sitting right by a cafe and there was just no way to get away from the noise so I tried to edit it as much as I could to get the background noise out but unfortunately editing just isn't quite perfect yet so hopefully you'll be able to hear things as well as I was able to hear them while I was there. I hope you enjoy the interview with Hampton if you do make sure you reach out and let him know on Twitter his Twitter handle is at H Catlin that's H-C-A-T-L-I-N. We're gonna be talking about Libsass we're gonna talk about wordset and a bunch of other things really interesting discussion really awesome guide thank you so much for being on the show Hampton and let's get to the interview with Hampton Catlin. I was working on a project and I used Susie to build a grid it's relatively large and in terms of how many lines of code it was because I wanted to do some vertical stuff and etc and it was you know I had the responsive like nested responsive grids and all that and I was using Ruby the Ruby version of SAS and it was taking like you know a significant amount of time to compile and understandably so and at the time Libsass didn't have support for maps yet and so I waited and I remember thinking like man this is how long is it gonna be before this specific build is fast enough to use in production and I had no idea how fast Libsass was gonna be so then I switched to Libsass and when it whenever the maps came in and oh my gosh man it was like less than a tenth of a second or something it was like maybe even faster than that actually and I had to like go and check the CSS file to make sure that I didn't write my gulp file wrong or something because it was so fast and so Libsass if anybody doesn't know what Libsass is is basically the C implementation rather than Ruby implementation of SAS compiling right yeah so you know as I said we know the the beginning of SAS was me spec it out and then Natalie running off and writing a lot of Ruby code and we never thought people write this much code like that it would be a job somebody has like there's a lot I mean there's thousands of people now so weird it's their job and you know part of I knew why we were as a couple years ago why we were still that had to eat with less is that less work did JavaScript it was faster than SAS and you know people who let's say you're writing in Java or go you could drop in your JavaScript onto the page and write less go programmers and not one I've to include Ruby or run a whole Ruby stack just to get SAS working so for us it was a disadvantage like oh sure it's more mature with slower so you know I'd got off and worked at Wikipedia and done a bunch of other stuff and you know wasn't doing as much day to day work on SAS so I decided to come back with a player and so I was like you know what like let's write this thing in C++ well it's actually it's C interface with C++ in the backend okay yeah and the cool part about writing it is a library is that you can drop it into any other language so for instance node there's Ruby dash or sorry node dash SAS it's called it's the package that is it compiles inside of it lips as there's a job of package that's you know there's a Python package that's you know there's a go packet there's a bunch of go package actually well there's rust so you can write a rust framework and you can just use she rust isn't as good at it so you can actually transcompile from lip SAS into JavaScript and run it themselves it's not recommended but yeah you know I figured like you know what what the community really needed if we want to make this project go for this we needed another implementation that might be a little behind on features but where we would start this time knowing we were building something 4,000 of people who needed it where the some of the builds sorry this is built to take hours yeah so big companies with large large teams like there's teams of hundreds of people like big companies and when they do a deploy it can be I mean they're writing millions of lines of SAS yeah so you know for the first year so I it was me convincing a couple other people move out of the company I was at at the time I'll sponsor it starting doing that project rolling I'm really happy to report that once again that community the developers are like there's some point where I start projects I'm a creator like I'm not a good maintainer right like I try to bootstrap projects kind of over two or three years to be how long it takes you have to find the right contributors you've to build a community you have to make some things working and finally lip SAS has two or three people who are awesome C++ C developers and they are just like nailing through right now that's awesome and they've been over the past year too so it's amazing I get to be kind of hands-off like yeah and just kind of watch yeah I mean I'm a good programmer but I'm not a like I could build a make file right I'm not gonna work on make-while flags for like six hours I just I'm not that guy that's not created I'll get a piece I'll get a building yeah the first time but you know auto-conf tools there's all this crazy stuff you have to do but you know it I knew that we had to do it though it's the hard project like and it took yeah two years at least to get really off the ground I think today is now very much in this and we'll stay in actually sorry the the big deal we announced it SAS C++ this year is that we're not gonna release a new version of SAS until LibS SAS is a whole parody oh nice we're synchronizing the two projects which yeah Natalie is and Chris are not really involved in LibS SAS at all so the fact that they agreed to let's wait to wait was really really a big deal especially for me because this was my little crazy side project yeah where I'm like just listen listen I promise people want this yeah and Chris thought I was crazy and Natalie thought it wasn't needed but now I think it's by far the most popular interpreter which is pretty pretty good for two years yeah yeah so I mean if you're using SAS and you're using some other language and you're just installing SAS it's probably using LibS SAS I think a lot of you learn aware of they're using it and it was meant to be the shy kind of guts that can be wrapped by any other language right if you're using it and pipe on you're probably using LibS SAS yeah with the one exception right now I think being Brails right so Brails is still using the Ruby version is still using the Ruby version which is a difficult problem that solved what admittedly so there's a repo called Ruby- SAS I think which I started working on and I was just gonna write a wrapper for Ruby and have it pretend to be so it was like a drop-in replace and I have a pretend to be the regular SAS line great and it's one of those it's so funny that I know people think open source people who are working on successful projects or I don't know like like I don't know there's there's there's some magic going on in professionalism it's basically I got that project half working and I kept getting the random Seq fault from the Rapp for the Sea Rapper and like every two months I'll go back in and like mess with it see if I can get it and it just keeps happening and I'm like I don't feel like dealing with a Seq fault it's just like it's random right so it will pass and you're ready to get it it'll Seq fault and I'm just like I done I'm I yeah I'll spend like a couple hours on it and then I'm like yep you know I'm gonna work on something else interesting I wonder if if if you could get like a call to yeah people I think the one of these that slash Ruby sass is now surprisingly though I mean it well I say surprisingly it's the asset pipeline has been relatively you know it's fast enough for me to work like make changes and immediately refresh on most and so I'm not seeing like the same kind of compile issues that I was saw in agreement and saw it previously and I'm not I'm not sure exactly why that is to be honest well I mean it's a lot it's it's how much crazy you're doing right that's true so you know I mean when I when I'm writing a standard grails up I just use the stock yeah like because I'm not writing a ton of yeah typically Michael and I will work on a project he's writing all the sass I mean we're iterating pretty quick it's not like I think you really started problems in using either really clever extension libraries that are doing lots and lots of internal work or it's a big team so if you have a team of more than two and it's a it's your product kind of long term you're going to end up with a lot of sass like yeah yeah that's how it works yeah it's the natural of your things right right yeah so we're you know you just working on your own grails up or like even a small and medium team has worked together a bunch you know like your sass won't be that huge sure so you know I think in any human side of sass project is just fine Ruby sass right stop Ruby sass yeah like no no these things is really difficult now really dash sass yeah yeah yeah we're gonna take a quick sponsor break and then we're gonna come back and talk about Hampton's branding project wordset.org you've probably heard of QuickBooks and you might even use QuickBooks every day in your small business but did you know that QuickBooks has an API into it has built the API with developers in mind using standards like open ID OAuth and rest API calls and with millions of businesses already using QuickBooks you've got a customer base that's ready to use your app and you can even publish your app on apps calm into its application marketplace built specifically for QuickBooks users and here's the best part of the QuickBooks API and apps calm it's all free and to it doesn't take a royalty share from the applications that you publish you can get up and running in just a few minutes using the developer sandbox and the API Explorer just go to developer dot into it dot calm today to get started there will also be a link in the show notes to let into it know the year developer to you listener which is a huge help to the show check it out in the show notes on Developer Teadot calm interesting so all right so it's time for shameless plugs tell me about word set word set dot org yeah so it's my open source project slash company that I'm working on that is open and live and it's a it's a collaborative dictionary which is kind of a weird thing to build why and you know the simple answer is that they're really not any good open source dictionaries right now or structured ones so wixionaries the wikipedia project it's their number two project cannot buy usage but it's unstructured it works like wikipedia the pages are just text so you can't do any analytics on it you can't search the language in a sort of way or or you can't use it in a word game if you want to write a word game or whatever sure so we that's just stupid yeah yeah you can't go download wick wick scenario any sort of a score mat or API so yeah I mean this is just this is my passion project because for years I have a kind of popular iPhone dictionary that wrote years ago I have a weird resume yeah so we had like we had like 15 million downloads of that oh wow yeah I was using this crappy free dictionary that's from years ago it's not very good it's much worse than wick cherry but it was the only one that you can use structured and it's free that you can actually put it out and it bothered me that nobody is fixed that's sure and the intervening six years so Michael and I my husband who I'm too finding us with we're fixing it so that that's awesome I mean nobody else is gonna fix it yeah yeah yeah because you know it's if anything should be open source it should be our words yeah exactly all the other dictionaries out there are owned by major corporations like the kind of corporations with blabias and big market like that are like trying to get Congress to pass laws about copyright and all the way and it is a subdivision of those companies that actually says what the meaning of the words that we use are and we use those things very officially like sure you're in school and you try to use a word a certain way and your teacher will say no that's wrong and point to the dictionary of what the meaning is yeah and you know I'm not that crazy that I think like there's kind of active manipulation or something it just seems like this is something we can do isn't that hard to have an open source dictionary like two people can build it and we need collaborators people to help out but like it's this isn't like some business that only like building oil pipelines is done by large businesses right right like and they can do that we can't do that from our living room working on desks like that's not a thing but dictionary is very much an achievable sure task and you know it's definitely we I think we have this feeling like well it's up to us so we're gonna make this happen that's cool yeah right you know we want to right now it's open source both the dictionary and the code so if you get a GitHub dot comp slash words that it's building in-bure and rails oh look at your people help building new features we want extended multiple languages it's it's pretty cool it's been going really well actually but you know it's still like getting the project started sure getting attention out there well the net effect so I think there's something interesting here the net effect of even the ordering of the definitions for a given word yeah it's like the number one definition of something is kind of the canonical that is the definition of that word and so you can imagine like even though it may not have a direct effect for one person when you have an entire population who sees a word a particular way you're basically creating like I don't want to get to too off subject here but the meta narrative that everybody kind of like all of all of us kind of agree on a sort of particular definition yeah somebody decided this one is number one so the way we're gonna we're doing that is we're building in there's not everything there's click edit to end in a meeting that's definitely a thing that exists in the site you have to have that sure you know and people vote on it there's a everybody has to vote on yeah so it's it's very democratic and sorry the way we're sorting them or right now it's by IDs no but we're because it's fast we build word games where you're given an anagram and a definition and the speed at which people can solve those definitions or say the pairing of the two we're getting like the difficulty basically we could figure out and so the ones that people can answer by reach we definitely wanted this by region also because in different regions words have different names sure but where it'll the ones that are kind of easiest quote unquote moved at the top so the ones that everyone kind of agrees on or can quickly understand what it is are the ones that should be first and so we're just like native speakers in the way that they actually sit there in the brain works is how that should be ordered yeah so if a new meeting comes in for a word you know let's say B.A.E. Bay right yeah relatively recent addition to the language sure that that actually exists in the dictionary but it stands for various companies and acronyms and stuff so given those words what happens happened in the last years that that would have gone from a very obscure meeting to just flipping completely right it's called common now the culture and we really want to be able to express that kind of live so that as the language changes it's expressed on this site that's cool yeah really especially the regionality dialects slaying different spellings these are things we're trying to slowly expand out but it's it's a complicated problem I actually had a one of my listeners quite nicely pointed out that I often say might could be which I realize is wrong but it is a sudden thing right so and about half the audience of the show listens outside of the United States and so they they pointed it out and I was like I don't even know that I say that first of all but secondly nobody else around me has ever pointed out that that's like improper and so it was just a moment of like our language is it's not improper in the right context right so we're trying to do like yeah so it's so we would probably put that as informal and regional sure at least the way we've been talking about it we're we know obviously this is really complicated to pull off right you know we want to include things like slaying which is different than informal which is you know different than alternate spellings words alternate meanings by region all these things kind of ships so sure you know definitely like we would definitely want to make it in there it is definitely part of the English language it is regional and it is typically informal it's not something that you would want to write in a newspaper article oh sure yeah no that's just where it's informal it doesn't mean it's wrong right right right and you know there's and then there's certain phrases that we would say are formal yeah there's words that aren't used anymore perhaps like yeah perhaps to be formal right absolutely the formal version of my good is perhaps yeah like because and actually that's for people learning English I think that kind of thing is really important because when you say if somebody says perhaps we should yeah typically they're making a joke sure so you're trying to say look how formal this word is that I'm using it I'm pointing out that I'm being fancy and that's something that you know when you look at a dictionary entry right now you know not having those kind of tags and kind of yeah meditator's cold yeah it's you know I think we're a dictionary to add a real note about something for them they don't do very often and it's a big deal and I think we want to give those usage guidelines in a much more natural yeah natural way so yeah it's like a historical event when I when a word is added to the dictionary you know it's like in 2005 the word blah was added to the dictionary yeah and I think that's I think it's a shame because words are created every day and their meaning is shifting it's not you know there shouldn't be a static definition of words yeah that doesn't that can't change it's kind of silly you know we're definitely we're focusing on you know urban dictionaries what everyone kind of says when they see our site not that it doesn't have content like every dictionary at all right but the idea of any sort of collaborative linguistic thing but what we're doing is you have to prove that a word is in some level of common usage or like actual usage sure by sourcing so yeah okay you can't say my my friend Jon right this is lying for something you have to actually show and you know we're still figuring the details exactly but it'll probably be there'll be a set of sources that you can use so right all sorts of different cultural magazines and and maybe some blogs and once where we think if it's used here it's very clearly you know maybe it's not formal doesn't have to be you know what an English professor wrote sure but you know it can be wired magazine can be right but like in that somebody looked and said I'm gonna use that word this is used yeah like yeah yeah boy boy I would any word use on boring boy even in kind of slainy whatever usage you know and we definitely want to make sure it's I just can't do nerdy examples because nerdy and we also want to try to avoid you know cultural like we'll do a Ebony magazine we'll do gun and what's the weird Southern gun in game or something there's like a weird I have it read a magazine and probably too long I will do the games I think there's a magazine ganky ganky something we'll add that in British we want the BBC like you know just try to be as non culturally biased as impossible to try of course yeah but also there's it's funny you have to get some level of opinion opinion and some level of making sure words are used yeah like like legitimacy right and right and trying to do that in such a way as it's not culturally imperialistic is very difficult exactly that's kind of what I mean my opinion is what is legitimate right like what I think you used in any sort of semi-serious context yeah semi when your tent is to communicate to a broad audience sure when that's the intent and it looks like that was the intent even if it's slaying or a regional term it's fine if your intent was to communicate and you assume somebody might know this word then it's language then it's like it's not gibberish and that's I guess that's the defining factor is a gibberish or not anything that's not gibberish is it a mean of joke right right right you know or neologism that was attempted but not actually used anywhere uh-huh yeah so right as a little attempt the alleges and if nobody else is using it sure it right right good yeah but that sounds like a really cool I haven't gone to George Tech and getting my masters in digital media that sounds like a project that people are gonna latch on to in the especially academic context and just like use it use the API like crazy for that kind of stuff but you know we're we're promoting it but not super-protein mostly the stuff on Twitter but we're not like going to Wikipedia people or it's yeah mostly because they're just project septic grow kind of naturally like you know I don't know if we're ready for a wider than magazine article right I'm hoping it happens yeah but like you just let it grow like right I think people don't talk about this enough with products and stuff you have to just let things build yeah you you have to farm them you have to let them react to things update it think about it work through it let people notice it for some promotion but it takes time yeah there's a fine line between you know marketing pushing something really hard you know because some of that is necessary like for instance this podcast I teams has an algorithm that lasts for about eight weeks when you first launched so for me to get this podcast to the to a number of years that matter right like of course if there was just five people listening it'd be awesome but if I want more than five if I want five thousand that eight week algorithm is super important for me right so I have to do some kind of push there but then I also know that this organic growth is the most sustainable way of doing it so well awesome so where's that door or dot or yeah get hub dot com slash where it's at the other go look at that that's the important one right all these will be in the show notes as well so you can just click on that at DeveloperTea.com so I like to ask guests one question at the end of every interview and that is if you're speaking to a developer either if they're a beginner or if they're more experienced and you only had about 30 seconds to give them advice to move forward with and everybody I interview has the same response of what do I do with 30 seconds almost everybody at least what would you say to them I would say people are the most important part of the development process and I think that's a thing that a lot of developers forget it's the people you're building at for whether not those other developers or humans you're building it for some of your cell I guess and there's people you work with and those people come after you and this is not a job where you're solving math problems all day you know your algorithms course if you're a science school is pretty useless but what is important is focusing on being empathetic to other people and understanding them even though I think it's hard being the kind of people who like to talk to machines that get a struggle for us but I would say really like always ask yourself and like people focused right now and I know it's a wish you watched the answer but I really think it can transform the work you're doing from something that is a job and something that can change things sure yeah that's great advice awesome thank you so much Hampton thank you thank you so much for listening to this episode of Developer Tea interview with Hampton Catlin make sure you follow Hampton on Twitter at at H Catlin that's H C A T L I N at H Catlin my Twitter handle is at JCutrell you can follow Developer Teaat at Developer Teaor you can email me at Developer Teaat gmail dot com make sure you go check out wordset dot org and all of the things that you've heard about in this show are in the show notes on DeveloperTea.com if you'd like to help out Developer Teathe easiest way you can do that is to leave a review and a rating in iTunes now that's because other developers will read those reviews and they'll take your word for it and they'll start listening to the show as well thank you so much for listening to Developer Tea and until next time enjoy your tea