The Changelog: Software Development, Open Source - The Offline First Revolution and Speech Recognition (Interview)
Episode Date: November 21, 2015Tal Ater joined the show to talk about the offline first revolution, the use of service workers, how UpUp is helping on that front, speech recognition, and annyang....
Transcript
Discussion (0)
I'm Tal Ater and you're listening to The Change Log.
Welcome back everyone. This is The Change Log and I'm your host Adam Stachowiak.
This is episode 183 and on today's show Jared and I are joined by Tal Ater.
We talked about speech recognition and specifically his project called Anyang.
So if you heard that name before and you listen to Arrested Development or you watch that show, you know what I'm talking about.
We also talked about Offline First and his project UpUp.
And we also talked about promoting open source.
We had four awesome sponsors, CodeShip, TopTal, Braintree, and also OpBeat.
Our first sponsor for today's show is CodeShip, TopTow, Braintree, and also Opbeat. Our first sponsor for today's show is CodeShip.
If you haven't checked out the blog from CodeShip, go check it out, blog.codeship.com.
And there was a recent post I want to mention from Barry Jones titled Why Docker?
And he dives deep into why Docker became a household name, why Docker instead of VMs.
He even goes into how Docker enables consistent
environments. And even the fact that Docker isn't going away, he makes that hypothesis that
it's not going away. There's also an ebook mentioned in that article. It's free. It's
from CodeShip. Super awesome ebook. It's titled Why Containers in Docker are the Future. This book
is awesome. Go check it out. The link is in the
article and I'm going to put a link to the article in the show notes. So check out the show notes
and now onto the show. All right, we're back. We got a fun show lined up today.
I got an American accent, so I'm not going to say his name right but the american way is tal atare uh great uh open
sourcer maybe a little little mention to the end of the show but jared this show has been
uh teed up for a bit now can you talk a bit about the plans for getting talent show
yeah well uh tal i think we first met you around uh your open source library on Yong, which was a couple of years ago. Recently, you released UpUp, which made a decent splash.
And in the conversations around those two things,
you mentioned that you got married, quit your job on a six-month honeymoon
or traveling the world and working on open source.
Wow. That's the dream right there.
This guy's living the dream. Let's get him on the show.
That's right. Well, welcome to the show, there. This guy's living the dream. Let's get him on the show. That's right.
Well, welcome to the show, Tom.
Yeah, thanks, guys.
So, yeah, actually, I said the name perfectly, Talatare.
So, yeah, I've been...
So, just to start, if anyone is worried about the accent here, it's me, not you guys.
I've been practicing for two weeks how to say the name of my own library.
Like, UpUp, am I saying? Is it an application? Is it Up? Like, I don't two weeks how to say the name of my own library. Like UpUp, am I saying?
Is it an application?
Is it Up?
Like I don't even know how to say it.
So you guys are good.
Maybe give us your roots.
Where are you from and how did you get into this whole gig?
So I'm a developer from Tel Aviv, Israel, as you can hear.
Developer. Israel, as you can hear, developer, I've been a product guy, entrepreneur, maker, creator,
all those stuff.
And yeah, as you said, like the slogan I like to attach to myself is I quit my job for open
source.
So you don't hear that every day.
You can also, yeah, you can also add crazy to the list based on that.
Well, the question is you're you're newly married so does your does your wife think you're crazy yeah so i guess we're gonna have to talk about sustainability and open source at some point
a little bit of spoiler um but yeah i'm still figuring that out but uh
still took the the jump and the plunge into it.
And let's see how it plays.
So before you were doing open source, you're a developer and a product guy.
Do you have a long history of working in the industry, writing code?
What have you been up to before you quit your job for open source?
So basically, I've been doing this all my life.
I mean, at around the age of seven,
my dad got me a Sinclair Spectrum ZX,
if you guys remember that one.
It was basically just a keyboard that you connected to a tape recorder,
which connected to your screen.
And you could program basic on that little thing.
And I didn't even know the english
alphabet at that point and i was already learning how to program i would go learn at a class come
home and my dad would teach me the abc so it was a bit of a slow start um but i've been doing that
ever since i mean in high school um and the minute they finished high school, went right into it after the army, of course, during the army even.
And I've been building websites since 96.
So it's almost 20 years now.
That's the thing in Israel where you have to serve in the military, right?
Yeah.
Yeah.
I had a friend from back in in the day his name was dion
probably similar where i i pronounced his name incorrectly uh or you know with my english
american accent but he was like he lived here in the states and then he had to go back home
because he was studying here he had to go back home and serve in the military for a couple years
i was like oh that's that's crazy so they they force you what's like not it's not uh i
shouldn't say forced um you have to it's maybe that is forced i don't know what can you say
i mean you have to but anyone who wants to get out of it can um it's i mean it's like there are ways
yeah there are ways um but yeah i mean that didn't stop me from, uh, like continuing to, to, to read
up and like, I would walk around with little, I would print out programming books and little,
uh, um, pieces of paper and put them, uh, in my, you know, in my uniform and read them
whenever I could.
Like I took every minute I could.
So you, you put guard duty to, uh, to its truest form there.
You were guarding and learning.
Yeah.
So, yeah, I actually did that while on Guard Duty.
Yeah.
So, yeah, basically 20 years, which makes me sound really old.
I'm 35 now.
So basically my entire life since high school.
It's interesting to hear that perspective that you're, um, you know, that it was so
important to you that you would go to any length.
It seems like, you know, even printing out a programming book and kind of putting in
your shirt pocket, your uniform to, to, you know, find a way because of this passion.
Yeah.
I find myself to be extremely lucky to still be so passionate about what i'm
doing um and love it so much and if anything it grows with time like i still love it as much
so much fun like and there's so much happening right now in uh with web development and javascript
and and everything is changing so fast and new things are coming out. So it's just exciting all the time.
I got to ask you, just because you mentioned it,
but the programming book, can you recall what you may have been studying then?
Like what languages, what paradigms, what in particular?
So this is probably Perl or ASP Classic.
I do have an image of myself after the army
sitting on a beach in Sinai
in Egypt
sitting there, my legs in the water
reading Ruby and Rails.
Nice!
It was like 2001.
I want to see that picture.
Please share it.
I wish I had it.
Everyone around me was relaxing
and smoking and relaxing.
And I was like reading about Ruby and Rails, which was like the new hotness back then.
It's how you relax.
Yeah, exactly.
It's less stressful.
That's one thing about the software industry that I love is, you know, a lot of people spend a lot of time finding what they're passionate about, what really, you know, floats their boat, so to speak.
And oftentimes once you find it, it's contrary to, uh, making a living, you know, like I love,
uh, if you love music, like it's very difficult to make a living doing music because so many
people are trying that. Uh, if you love to paint, like it's not the easiest way to make a living,
but if you love to write software
you've fallen in love with something that you can do not just for fun but you can do
you know very lucratively um as a vocation as well so we're pretty fortunate that way
yeah exactly i mean that's what i i found like oh i love doing this so much i mean
like this is a bit embarrassing but i've literally found myself
jumping out and dancing alone in the room when i got when i had to pull requests uh accepted to
open source libraries so when you're this passionate and this excited about open source
um quitting my job and focusing full-time on open source suddenly makes sense to me if not to my
wife i think that's a case where we need pics or it didn't happen use the new ios live photos the
next time you get a pr you know there's that project that'll take a picture of you each time
you your get you know your push doesn't happen or you have a merge conflict i can't remember which
one it is but uh you should get a live shot every time you get a pull request i haven't heard that one like it sounds amazing
especially for svn whoever's still using those yeah well speaking of uh interesting and somewhat
amazing open source projects uh you have a couple of them under your belt and the first one that seemed to take everybody by surprise and um was a big hit
back in 2013 i think was when uh it first came out september time i remember uh you emailing us about
it is called on yang which is speech recognition uh that just works that's your your little tagline
there and it's allows you to control a website by your voice.
Can you give us the background on that project?
Okay, so I think the background behind this is pretty much the story behind every project I do.
There's like so many exciting new technologies coming out and browser, new things in browsers every day.
And sometimes, you know, you gotta read through long specs and understand
everything and the differences between different browsers and all those little things. So what I
like to do is I like to call it I read the specs so you don't have to. So with Anyang, what I did
was this new technology of speech recognition came out. And it's such a part of our lives by now.
I mean, I was talking just today, I spoke to my phone,
asked him a question a few times already,
but you don't really see that on the web yet.
So what I set out to do was to take that
and make it super easy for anyone to use.
So you don't have to understand like all the different settings for webkit speech recognition as it is called and
understand the difference between browsers and http and https and all those things you just say
okay anyang if the user says show me search phrase then run this function and pass it that search phrase. If it says do that,
then do that. And then you just say Anyang start and it takes care of everything. So basically,
I'm taking a technology that is very powerful and has a lot of features and build a very opinionated library that does one thing and does it well and super easy.
So that's what Onion does.
I mean, if you want to add...
You can basically change the UI of your site.
So if you're apple.com, for example, which is an awful example because it doesn't work on Safari like most things these days.
But if you're on apple.com and there's a limited number of links, if you're looking for a monitor, you have to click through a few different pages before you find it.
And if you're looking for store locations, whatever, there's a limited
amount of screen space. But if you open up, in a way, it's another dimension. If you open it
up to speech, like show me screens or show me monitors or show me
HD monitors, whatever the user thinks he wants, the site can respond to that.
So that's what I did.
And that was the use case I had in mind.
But of course, once you release something, that's the most exciting thing about open source.
Once you release it, like people go crazy with it.
If you're lucky.
It takes a life of its own.
Yeah.
Yeah.
I mean, I've seen people use Onion to create remote control cars that you can tell them to go left, go right, reverse, etc.
I've seen people in a hackathon in Bangladesh, I think it was,
that they built AR drones, those little flying drones,
and you could tell them to dance or spin or do different things.
And they built that with Anyang.
Very cool.
Yeah actually just two weeks ago I saw a developer who built a bathroom mirror that he can talk to
so he's standing in front of his bathroom mirror shaving or whatever and he can actually ask it
for stock quotes or ask him as the mirror about the weather.
And he built it with a two way mirror that has a tablet behind it that shows everything. And it
looks super polished, polished. Yeah, it looks like it's amazing. It looks like an Apple product
from 2022. Like it's, it's so polished and so amazing. So doing things like that is really exciting,
seeing what people are building,
like taking these new technologies
and making them more accessible.
That's really fun.
Yeah, so in those different use cases,
specifically the bots and whatnot,
are those all running embedded web browsers
or is Anyang able to be used in a server-side context
or in a node environment as well? how is that working uh with a with a browser um there's like yeah it's still
hard to run it on node very cool yeah I think that is one of the most exciting things about
open source is you know once you put it out there especially something like this which has
you know a specific use case in mind but then then is just generally interesting to dink around with.
People tend to start using it in ways that you couldn't imagine.
Going back to your point about the third dimension
or the additional dimension that you're adding,
one problem that I find with audio interfaces into websites, for instance,
or even on the phone is that discoverability is really an issue.
I don't know what I can and cannot say to this interface.
Have you put any thought into that with regard to Anya?
No, I guess that is a bigger problem.
And that is something that I still run into
with my Google phone.
Like just yesterday, I was telling him, okay, Google.
And he was like, please retrain voice model.
So I said, okay, Google, retrain voice model.
And like he asked me to retrain and I said it back and he didn't understand.
So it requires like machine learning.
The words I've said to Siri is crazy.
Siri upsets me on a daily basis.
And I give her a chance.
And I really want her to work better.
And I'm like, no.
I think I was looking for something the other day.
I was looking up a word in the Greek library or the Greek language.
And I was trying to Google for it.
And it just kept pulling back
the wikipedia uh page for greek what greek means or what greek is and it like omitted everything
after that there's so many times i'm like upset with voice stuff but it's a it's a new paradigm
yeah it kind of reminds me of clippy back in the day in microsoft clippy where it was
are you sure you spelled your name correctly can i I help you with that? Yeah, thanks.
Yeah, I'm sure it's probably even more difficult. You know, being from middle America,
you know, Omaha and Nebraska are kind of one of the telemarketing capitals of America, because
we're kind of famous for having no accent and kind of the most boring dialect possible. Um,
so,
so that we don't offend anybody,
I guess with our,
with how normal eyes,
our voices are,
but you know,
yourself being from Israel,
you know,
you have that accent and,
uh,
I just think of the problem domain of speech recognition and it kind of
overwhelms me from the perspective of,
of algorithms.
Um,
it's hard problem to solve especially with people
you know so many different um voices over the world so how does anyang do speech recognition
is there a library it's using did you implement yourself how's that work so onion is using a
speech recognition which is part of the w3 spec or proposition or who can keep track of those, they're so complicated.
But it uses what's available in the browser.
So right now it's in Google Chrome.
I think Firefox is working on implementing it soon.
But yeah, that's the problem with speech recognition.
I mean, most features browser vendors can implement,
but this one's,
this one requires a very sophisticated backend, something that Google obviously has, but a lot of
smaller browsers don't really have. So yeah, that is a major issue with Anyang. It's Chrome only,
but it's, yeah, I know, I know other browsers are working on that.
So the browser itself actually does the recognition, the speech to text,
and it just hands off to the browser, to your JavaScript library, the text,
and you take it from there?
Yeah, exactly.
So I take care of all those little nuances and all those, like those like for example if you have a speech recognition
running in two different windows it can actually cause uh google chrome to crash so i take care of
actually reported this to them and they fixed it since then but like it takes care of issues like
that um so it's it's an interface in a way a friendly interface. I think it would be remiss to just keep saying Anyang over and over again and not mention the namesake.
I pulled back up our emails from back in the day, Tal, and the first thing I did when you emailed me was I started criticizing the spelling of your name.
So that's just like me to just immediately start bike shedding on
something so minuscule as the
how you spell Anyang why don't you give us
for those who aren't huge Arrested Development
fans why don't you give the inspiration
for the name and maybe your
your justification
for spelling it wrong
so yeah Anyang is a is a reference to to one of the greatest shows ever made arrested development
where there was a character who i don't know if it's fair to say he was called anyang but
that's what yeah that's what everybody called him because when he came the first time he just
said anyang which means hello.
And everyone just assumed that was his name and didn't bother to find out.
So yeah, you can say it's spelled a bit differently.
You wouldn't say wrong, you'd say it differently. I like that.
Well, there's no right or wrong way to spell it because it's not English.
It's phonetic spelling, which i'm phonetically spelling it wrong but at least that way it looks less like the word annoying um which is the feedback i got initially ah so i went with that but yeah i loved her uh
back and forth when i sent this to you a few years ago you're like very very obsessed and
the more obsessed you get about it,
the better I felt about it.
Well, it's something that, you know,
Adam and I, we look at a lot of open source projects.
And so we're very cognizant of names.
You know, what catches your eye, what doesn't.
Sometimes names are offensive
and, you know, we try to help people pick a better name
or, you know, just ask where names came from.
Sometimes it'll be a project that I have no idea whether or not it has merit based on its
value proposition, but the name is so spectacular that I just think I just, you know, tweeted or
included in weekly anyways. Um, because you know, we do judge books by their covers, unfortunately,
and with how fast open source moves, you kind of have to. So on young definitely immediately caught my eye. And I thought, well, that's got to be a reference to REST development.
So I went to the REST development wiki, and I saw it spelled differently there. And that's when I
had to start giving you some jabs. But yeah, it wasn't just a mistake. It was you actually said,
well, it looks like annoying. So I'm going to change the A and that makes sense.
Yeah. And I guess that's the point. I mean, if you're, if I caused you to, to pause and look it up and check it, then, you
know, most things don't even cause you to pause.
You just glance over and continue.
And you remember it like a few years later, which, which says something.
Yeah, absolutely.
And I think, uh, I think it didn't hold it back.
The, the wrong spelling. I'll keep using the term wrong. Cause I'm going to stay on my side of that argument, but definitely didn't hold it back.
It's been a couple of years, I saw, at least on your GitHub, that Anyang 2.0 has come out. What's the state of it? Is it done? Do you have future features for it? Tell us those kind of things.
So like a lot of developers, I have a very short attention span.
You know, I get very excited about something and I can build something pretty interesting.
Like, you know, those whirlwind 48 hours after you get the idea,
you can build something that would normally take you a month.
I wouldn't say it's done, but it's pretty feature complete.
From time to time, people do ask for more things,
send pull requests.
So I add those.
Hopefully, very soon, I'll need to worry about other browsers besides Chrome.
But it's pretty feature complete and definitely stable.
I mean, if it's 2.0 and I use semantic versioning, so it's stable.
You gave me some examples.
You've already given a couple of where it's been used.
Any others that come to mind of cool places
that this library has gone that you couldn't have imagined?
So actually I'm going to answer a different thing,
a different question, because I don't know.
You know what? I don't know.
This is a real issue with open source
because you develop something and people use it and you don't really know who uses it how they are using it um and i mean they
don't tell you um there's no way for you there's no analytics for open source um so that is a real
issue that i've thought a lot about how to solve i I don't have anything yet, but it's something that has been on my mind.
Going back to your question,
there has been a lot of Jarvis's,
if you remember from Iron Man.
So a lot of people have built Jarvis's,
or Jarvi would be the plural.
I like that.
So a lot of people have,
that was the go-to project uh most people
like really the first thing that pops to most people's minds but that is definitely an interesting
problem to solve um discoverability yeah it might be interesting to have some sort of built you know
similar to how a lot of websites for nerds like
us will have uh respond to keyboard shortcuts and if you hit you know question mark it'll pop up a
heads up display type of a look it just says you know these are the kind of keyboard shorts that
we shortcuts that we we uh support thank you jared for being an idiot uh the kind of keyboard
shortcuts that we support you could
have some sort of a interface for anyang as well which when you include it you know allows you to
pop up something that says like these specific voice commands are supported even that would need
to be discoverable so you know most people don't know there are you can hit question mark and get
those things but your power users do um that might be a step
in the right direction it definitely doesn't solve the problem altogether but it would at least allow
kind of a common way of people saying you know here are the types of voice commands this website
supports yeah i mean that is something i leave to the developer who uses onion but definitely
on the onion side itself i do i mean that's how I introduce it. I mean, you land on the site, there's like barely two sentences, and then it's just telling
you, say hello.
And you say hello, and the site says Anyang back, or it says, show me cute kittens, and
it shows you kittens.
Or then it says like, ask for anything, and the site responds.
So it's like a soft intro.
And then sometimes it's just fun to discover.
Very cool.
Well, I think this is a good chance for us to step back
and hear from one of our awesome sponsors.
On the other side of the break,
we're going to move on to your newest open source project, UpUp.
So stay tuned for that.
Our friends at TopTile launched a scholarship program for female developers to support aspiring female computer scientists, developers, and software engineers to help achieve their goals through financial support and also mentorship.
Each scholarship winner will receive a $5,000 scholarship that can be used towards education and professional development goals.
You can spend this money on anything you want from coding boot camps to online programming
courses, textbooks, you name it. You also get one-on-one mentoring, an entire year of weekly
one-on-one mentoring with a TopTile senior developer. And this person is going to help
you with topics like project guidance, choosing an academic or career path,
and also preparing for interviews.
Head to top.com slash scholarships to learn more and also to apply.
All right.
We are back with all a tear talking about a few awesome open source projects.
The most recent of which is called up,
up,
and you can find that at up up dot rocks making use of
those uh awesome and or not awesome new domain names there um up up is a tiny script that makes
sure your site's always there for your users the offline first library why don't you give us the elevator pitch here? Okay. So, I mean, basically we're, the last big thing was mobile first. I mean, we're
building sites that are ready to always be there for users when you're on your phone or wherever.
But now that we're all on our phones, like we can't really rely on having a constant connection. I mean, no one's walking around with a wire connecting them. So new technologies have come out to,
to allow sites to still work, um, even while the user is losing connectivity.
Um, and that is what AppHop does. I mean, it uses the new service worker, uh, APIs,
um, to achieve that. I'll talk a little bit more about that.
But basically, I mean, this is something that happens all the time.
I mean, usually when I tell people about this problem,
and they're thinking, yeah, I mean, like, in the less developed world,
yeah, they don't have connectivity all the time.
But I've been visiting the States for the past two months.
And in downtown San Francisco, I couldn't get a service.
And this is something that happens all the time.
Like whether you're in San Francisco or going down the elevator or on a flight, you can't really rely on having that persistent connection to
the internet all the time. So basically what AppUp does is allows the site developer to decide
what experience he wants the user to see when he's not connected. So that can be as simple as
if I go to a certain site and I don't have internet, I might see a message from the site saying you don't have a connection, so you can't read your emails, come back later.
Or it can be a full single-page application experience.
I mean, you could have Gmail working even without a connection if they implement this.
And of course, this requires the user to visit the site while
he's online the first time, but once he did, every time he visits it again and he's offline,
it'll still work. So the classic example for me would be a site like booking.com.
So I know I'm flying to San Francisco. I booked a number of hotels.
I landed in San Francisco.
I still don't have a local data plan or the connection didn't work.
I sit in a cab, open up my phone, go on booking.com.
And instead of seeing that little Chrome dinosaur telling me I'm offline,
I would still be able to see my reservations,
to see the address of my hotel, the phone numbers, et cetera.
And that's the idea behind AppUp
and the technology that enables its service worker.
This is an interesting conversation around connectivity in general.
I tend to live in a little bit of a bubble
where I don't know if I'm ever not online.
Of course, airplanes is the big, you know, proof point against that.
And now they're adding in-flight Wi-Fi.
People are, you know, can get online on airplanes.
It's limited, but, you know, going to be coming.
Obviously, in third world countries, places where there's less, uh, infrastructure. We do know that cellular infrastructure is way better
than any sort of wired infrastructure has been in those places. And so, you know, maybe it's
expensive, but access is there. Maybe it's slow, but there is connectivity. Do you think this is
a problem that's going to exist five years from now, 10 years from now? Um, or is the network coming
or is it not coming? What do you think? I, I really hope so. But, um, one of my first,
as an entrepreneur, one of my first companies was called a wiser and we were one of the first
companies to, to add wifi to restaurants and cafes in Tel Aviv.
And this was in 2004.
And we tried to explain to people, to restaurant owners, why they even need to provide this service.
And this was 11 years ago, and we still have that problem.
So I think it'll be a few more years before coverage is...
I remember back then people were talking about, I think it was called a few more years before before coverage is like i remember back then people
were talking about i think it was called ymax something like that like wi-fi but like
ymax routers that would cover entire cities 11 years ago so i think it'll still be a while before
this problem is solved i'm with you though jared i only have ever been out without a connection like i always have
the internet i think we're probably just in bubbles um ymax i think is a is a bit of a dead
technology i know sprint was one of the carriers that rolled it out in mass years ago and they've
since switched technology so i'm not sure if you know the promise of ymax has never really arrived
um but yeah it's hard's hard living in the bubble.
It's difficult to empathize with people who aren't in that bubble
and see this for the real problem that it is.
And then you have people who experience connectivity problems all the time
who want to just smash their whatever podcast listening device
they're using right now because we're so dumb that we think that this isn't a real problem. Um, it just seems like depends on where you are
in life and you're in a unique perspective because you're traveling the world right now.
And so you probably have lots of experiences, you know, recently with, am I online or am I offline?
Just curious how many of those flights you've taken have had uh internet access uh well mostly domestic flights
in the u.s have uh wi-fi uh it still costs a lot um and there's no company too expensive too
right um but yeah it's the past two months i've been traveling all over the states i started in
the east coast west coast now i'm back in the East, and you see it everywhere.
I mean, the U.S. isn't covered yet by all those networks.
And with a lot of pressures on them to drop prices, that problem will still happen.
I mean, even in the U.S.
And I agree, I also live in a bubble.
I mean, in Tel Aviv, we call our in the u.s and i agree i also live in a bubble i mean in tel aviv
we call our city the bubble um really and yeah you have connectivity wherever you go and it seems
isolated in many in many ways if anything it's like silicon valley um but the issue of connectivity
is a real one for most people well i think up up's um interest and success
early on has proven that this is a problem that developers want to solve i think you're over
3 000 stars on github you were definitely uh in changelog nightly a few days in a row in the top
starred repos sections i think you were at the top of product hunt even can you speak about that experience on
product hunt yeah so that was very interesting um it was actually at my my last day on the uh
at my old company i went in to uh basically say goodbye to everyone and And suddenly I got a tweet from Product Hunt
that UpUp is there and has had over 100 votes already.
And they do this animated GIF of Oprah going crazy.
And that was so exciting.
I didn't even submit it there but um it was super exciting and i just
locked myself in a room and followed it throughout the entire day talking to people
um asking them to to share it and look at it um and yeah at the end of the day it was the the most
hunted i guess is the term the the top product on product hunt, which brought in a huge amount of traffic in the tens of thousands.
And yeah, AppHop has grown incredibly.
And I think the only metric I have to measure that is in GitHub stars.
That's our new currency, I guess.
And it has surpassed Anyang in a month or two.
What took Anyang two years to achieve.
So that was very exciting.
You think it's because of Product Hunt or you think it's because of simply the library itself?
It's a lot of things.
Product Hunt certainly helped.
It was also featured on a lot of other places.
You guys wrote about it,
which also brought in a lot of traffic.
But I think a lot of it is,
what I love to talk about later,
is simply looking at what you're building at the library, even if it's
open source, looking at it as a product, a product that even if you're not selling it for money,
you need to grab the user's attention. You need to have him understand immediately why he wants to
invest another minute of his time to understand what it is get him excited want to make
him want to try it or share it with with his friends and that is something that I
think I did a little bit better in in a pop-up than I did in onion live and
learn product hunts interesting it used to be you know it started off as simply
place where you post you know you saw new software as a to be you know it started off as simply a place where you post
you know you saw new software as a service or you know try this app and they seem to have
expanded their scope quite a bit even so much so that there's podcasts now which adam you and i
just found that out earlier this week i think when i said hey they have podcasts why aren't we on there we were on there once before
um somebody on twitter I can't recall the name but I see her all the time I know her avatar I
just can't think of the name right now but uh we were submitted a couple times so I've I've known
about it but I didn't think I guess it was brand new then it was like about three weeks ago and i never really considered
like i've never been the one to subscribe to oh i've gotta put my thing in this site and then it
will become popular and i just don't like feeding that beast i guess um but sadly product hunt has
done well enough that you have to feed the beast uh i don't want to feel like that but at least
products do you know my wife just launched a new product at her work and, you know, product hunt was a big
part of that. They were on the front page of it for a while. They were like the top five for the
day. And, uh, you know, it made a big deal for, for their, uh, their adoption.
Uh, and it's a great thing. Like I'm, I'm, I've become a huge fan of Product Hunt because I'm one of the old gizzards of the internet, I guess.
And I remember back in the days of Dig and all those stuff.
Slash dot, Dig.
Yeah, slash dot.
And today, Hacker News, Reddit, all those things.
Like those places are very communities
that make you feel excluded in a way they're full of trolls
and product hunt just feels like a great place to be I mean it started when I
when I discovered that up up was featured there I got a tweet from the
from the founder from Ryan Hoover I we started tweeting back and forth and he was super nice like
when your product they get features they send you like funny um animated gifs and you can see the
responses of the community there they're all so supportive and interested and ask asking
constructive questions and trying to understand my story and stuff like that where whereas in other places
it just seems like you're feeding the trolls in a way um so it just feels different i think some of
that's uh you can attribute to the community itself and then you can also attribute some of
it to the size and the um the relative i don't know youth of the site,
as things get bigger and as communities grow,
and as the stakes rise,
which Product Hunt's stakes are rising,
meaning it becomes more and more valuable
to be featured there prominently,
it'll be very difficult for them,
and it'll be one of their main goals, I'm sure,
is to maintain that positive community
and not have it turn into um a toxic one and so it's possible that they're still in
that stage where it's all um kumbaya style and hopefully they can maintain that i think that'll
be a challenge for them so now you're the grumpy well i mean success brings with it all sorts of trouble. I agree with you completely. I was an early, early Hacker News user
and actual commenter and stuff.
And it felt very much like that.
It felt like people were smart, they were helpful,
they were insightful.
It was generally a place where you would learn
and be uplifted and find new technologies.
And I know it's kind of a recurring thing
that happens with online communities is over time,
like the difficulties to maintain that early feeling
as more and more people and still be able to grow.
I think it's just a really hard problem to solve.
Well, let's get back to the topic at hand, UpUp.
Tal, what's behind this thing?
Honestly, it does amazing things.
Like, it's really awesome.
But this is all because of the technology that is under it,
which I didn't develop service workers.
And in my opinion, service workers are, like,
one of the biggest additions to the browser we've seen since,
I don't know, Ajax and Web.0 and it's it's amazing um just for people
who still haven't played with it uh yet um basically service workers are scripts that
sit between the the users the browser window and the server It's a script that runs in the browser,
independent of the window, independent of the DOM. And one of the things it can do,
it can act as sort of a proxy that you can program. It can sit there and intercept every
single request that comes out of the window before it reaches the server and decide whether to do something about it
change it call the server call a different asset and then return the response if it chooses
all within of course like this sounds like a very big security issue but there's like
this has been thought through and i've tried to break it and it's very, it's built very well. But what this allows is things like
AppApp, for example, but also imagine a site that asks for HTML from the server. And then
the service worker detects that it's installed and says, okay, stop, don't ask for HTML,
ask for JSON instead, calls for a JSON file and runs the templating inside
the browser before it even reaches the window and returns back HTML. So it has a lot of power
and a lot of possibilities. It can do amazing things. It can talk to the windows even when
the windows are closed. It has the ability for push notifications
basically this is like one of the things that are pushing web pages as close as
they they've ever been to to the power of applications it's really spectacular
the other guys have behind it have been doing an amazing, incredible job.
Let's dive deeper on ServiceWorker.
We're going to take a quick break here from a sponsor.
On the other side, I got some questions about it
because I agree, I think it has huge potential
and it seems like it's shrouded in mystery.
You've given a good description there,
but we'll do some Q&A on ServiceWorker when we get back.
Braintree is all about making developer lives description there, but we'll do some Q&A on Service Worker when we get back. SDK makes it easy to offer multiple payment types. Start accepting PayPal, Apple Pay, Bitcoin, Venmo,
traditional credit cards, and whatever's next,
all with a single integration.
Enjoy simple, secure payments that you can integrate in minutes,
and developers, they've got you.
Don't worry about taking days to integrate your payments.
With Braintree, it's done in minutes. And if you don't have time,
give them a call and they'll handle the integration for you and walk you through it.
Braintree supports Android, iOS, and JavaScript clients. They have SDKs in seven languages,
.NET, Node.js, Java, Perl, PHP, Python, and Ruby. And their documentation is comprehensive and it's easy to follow. To learn more and for your first $50,000 in transactions fee-free, go to braintreepayments.com slash changelog.
So we are talking about UpUp, which smooths over and adds some things to service workers.
Tal, you gave us a rundown of what service workers are.
A few questions.
Let's start with browser support.
Who's implemented this and who hasn't?
So service workers, and I'm Googling it,
so I don't mistake any of them.
But basically, they just landed in Firefox.
They've been in Chrome, Opera.
The only ones who aren't part of the party yet are Explorer, the new explorer and um and uh safari and i've actually spoken with some of the guys at
the team there and they're looking into it and it's on their roadmap um they actually wrote this
uh on their roadmap plan that service workers it looks like like everyone is requesting this and is and thinks they need it so it looks like we'll add it
um but it might take a while before it lands in safari which unfortunately means no iphone
for now but chrome op chrome opera and firefox for now And I've heard it described as allowing you to man in the middle yourself.
Do you think that's an apt description of what serverless workers do?
Yeah, it's an interesting way to think of it.
Yeah, it's kind of like a proxy server.
It's basically like it sounds like man in the middle,
and what I describe, it sounds very dangerous, but basically whatever JavaScript can do in the browser window, you're just
taking it one level up and it has the same permissions.
It can access the same kind of resources.
Only you can do it where it's a bit more powerful and you can control the experience a bit more.
Is it tied to the particular tab or window?
No, so it's attached to a certain scope.
So, for example, talaterra.com slash upup,
you can have a service worker that is attached to every window
that is under that directory in that domain or any window that is under that directory in that domain
or any window that is in that domain.
Kind of like cookies.
Some kind of cookies.
Cookies, yeah, a little bit, you can say.
So it can control any request that is within that scope.
That's how it stays secure.
So I like thinking of it like a proxy.
We're used to server-side proxies or
even browser proxies and here you have basically it's like you have a proxy inside the browser
window um that you can tell it what to do before it delivers the content to your application or
any other direction maybe we know what up upUp does. It allows you to have offline web apps.
Maybe describe to us how UpUp uses service workers
to get that done.
Yeah.
Okay, so what UpUp does is it sits above the,
it registers a service worker that sits above the window
and intercepts every request that goes,
whether the user is asking for the HTML, images, etc.
And it catches that request forward.
It doesn't touch it, let it go to the server,
but it traps it in a promise.
And if that promise is broken,
that means the server couldn't be reached,
whether no internet or even the server is down,
then that's when AppOps brings into action
and says, okay, there's a problem.
Let's see if I have something in the cache to show instead.
It looks for alternate content in the cache and returns that. So what the user
is seeing will be instantaneous. The user would go to a certain site and he would immediately get
the offline content. But in the background, it's trying to reach the server, seeing that it fails
and showing you alternate content. So the offline experience is actually faster than the online experience in that way.
Man, I guess I'm just pedantic about naming,
but, you know, service worker.
Like, what does that mean?
What does that mean to anybody?
It reminds me of web workers.
Can you tell us if there's any relation
to web workers at all with service workers?
Yeah, so I haven't played around much with web workers,
but as far as i as i
understand it's similar in a way that it is a script that runs in a background in the background
yeah in your browser so i guess that was the source of the name i see so one's for web and
one's for service um still somewhat confounding perhaps you know perhaps service worker the name is one of the
reasons why people struggle so much to you know embrace it and really know what it's used for and
maybe it's because it's just generally useful but doesn't have specific uses beyond just caching
where people can really latch on to it i like what you do with your libraries. You seem
to kind of take, you know, the cookies down to the bottom shelf, so to speak. You did that with
Anyang. You said, let's make this speech recognition available to more people. Here,
you're saying, let's make this specific feature of service workers, which is offline availability,
easier for people to implement. What were some of the challenges that you ran into
with regard to service workers, implementation-wise, with UpUp that you ran into with regard to service workers implementation-wise
with UpUp that you can share with us?
So just understanding how all of this works
and fits together is like promises.
They work differently than how we're used to doing JavaScript.
Accessing the new caching API
that is part of a service worker is difficult.
There's been a lot of things that, frankly, I'm still learning.
Or more correctly, I'm forgetting and relearning.
But it's not that easy to get into.
I mean, there's a lot of things that you can achieve immediately.
But if you're looking for a more sophisticated uh use case there
there's some reading required some learning there's a learning curve there for sure
how about the learning curve with up up um have you found people that need to
look under the covers and you know figure out how it's working underneath or has it been a pretty good abstraction layer? No, so actually the only people who commented under the covers as you say, like on the
code of it, were people who have been personally involved with the ServiceWorker spec and
other developers who have been building other service worker libraries they've
been looking under the covers and giving some awesome feedback which improved the library
but i think it targets the developer who's who just wants to build something and have it work
without having to worry about service workers and stuff
like that, there are a few problems there with the learning curve of AppApp in that you need to
realize that it can only control a certain scope. So if you're placing the AppApp JavaScript file
inside the JavaScript folder, it will only be able to control what's in there so you have to place it in the root um you have to another limitation of service workers is your server has to be secure so it only
works over https um but it's built as a progressive enhancement so if the user's browser doesn't
support it nothing will happen it'll just see a normal site it won't even load the script file so it doesn't affect this performance did you have to actually build that progressive
enhancement into up up or is that how service workers are generally maybe maybe better put
can i shoot myself in the foot with service workers or do they also just fail gracefully. No, they behave.
They've been written based on a lot of experience with other technologies that have come before that.
And the guys who've written all of this,
which I'll gladly talk about later,
they really made sure these things work.
And the first thing it does is it tries to register
a service worker and if it doesn't succeed then it doesn't do anything so it doesn't affect you
um with with uh anyang i did have to do some things to make sure um it loads the minimum
amount of code before uh because it only Chrome. So I had to make
sure I check as early as possible for support. And if the support isn't there, don't do anything.
So as not to affect users who use unsupported browsers. So you mentioned that a service worker
has to be registered. So like what is the process of actually registering a service worker has to be registered. So what is the process of actually registering a service worker back to,
I guess, does it install something to the client?
What's the process of registering?
So yeah, this is service work is what I'm talking about now in general,
not UpUp specific.
Is it different for UpUp then?
Or did you have to do some hurdles for UpUp to work?
A tiny bit.
What service workers do is when the user first
visits the site it does a register i forget the name of the command but it registers a service
worker which then runs the service worker script in the background and that um that has an
installation process which then uh then shoots an event shoots an event once it is installed.
So that means that usually when you first arrive at the site and the service worker is registering and installing,
it isn't available for the site until you refresh and then find that it's already registered.
I kind of did some hacks around that in AppUp to make sure it can communicate to the service worker
which content you want cached
and save that during the first view of the page.
This has since become a little bit easier.
This was a bit more,
it required a little bit of hacking in Chrome 42, I think,
but it's much easier now.
So there's an installation process and then it's ready and you can do things.
And that installation process is a great time to cache content, to download stuff.
That's what it's there for.
So while you're doing the installation you can you
know take the payload and also drop in some for example what would you what would you cash so
what I do with a pop-up which is one example is when you run it for the first time you tell him
I want you to cache this um and show this for the user
the next time he doesn't have a connection so you cache that html on you and you can also cache
additional assets with it like a image file css mp4 is even like anything video it can it can be
look like a full experience a full web experience even when it's offline. I guess from a user's perspective, I'm thinking of, you know,
right now users don't really know it's available.
So not so much us, like people who are geeks building technology,
but users who, you know, aren't even sure what HTTP means
or just, you know, anything in particular about how technology works.
They're not expecting these applications to not work offline.
So how does, I guess maybe this is more experiential than it is technological.
You know, what do you think is happening around educating users that offline is an opportunity
or application developers educating their users that, hey, you know, while our application
might require a lot of online interaction normally, there are some things you could application developers educating their users that, hey, you know, while our application might
require a lot of online interaction, normally there are some things you could do offline and
to take advantage of it. So, yeah, as you said, like it should be a part of the experience. I
don't want to educate. I don't want users to need to be educated what to do differently when it's
offline. It should just work. And Only when it doesn't work and you get
that little dinosaur in Chrome or a message in another browser do you realize that something
stopped working. I'm looking forward to a web where that doesn't happen. Maybe you'll get a
slightly different experience. For example, The Guardian just implemented service workers. If
you're going on
the guardian site and you don't have a connection you get a little crossword puzzle that you can do
um it's a something interesting something trivial yeah i mean you you'll notice that it's offline
it's uh but another thing they they can do is like for example, still let you read the last 10 articles, even when you're offline.
Just save the text of the articles, a template, and show that to the user.
It's all possible.
The user doesn't even have to notice he's offline to a certain limit.
Yeah, because there are certain things that, you know,
if you think that you're online and take your booking situation,
for instance, where you can look at your hotel information,
you shouldn't have to be online.
You already have that information in your phone, right?
It should be displayed when you come back to that web page.
But say you want to change it or, you know,
once you get out of read-only mode, if you're offline and, you know,
there's no indication to the user that they're offline and just acting as if
they aren't,
um,
they could create some confusion.
Are there ways in up,
up where you can,
um,
trigger certain things based on the offline online status?
Or is that just something that you can do daily with the browser?
Uh,
not yet,
but that is definitely something I'm very interested in allowing you to,
to cache certain
actions and um queue them in a way so that they can they can be done once you're offline you're
online again back online it's definitely where i want to do next with up up yeah i mean i think
that's where offline it's really tricky is like queuing up you know changes because now reliably yeah i changed
my uh booking time and now the browser can't actually you know load that up to the server
and then maybe five minutes later i get back online and that you know that api call gets
rejected for one reason or the other um you start to get into all sorts of issues i think a great
middle ground in the meantime is like what can you provide you know into all sorts of issues. I think a great middle ground in the meantime is like,
what can you provide?
You know, like start thinking of it like that.
We can put you in a read-only mode.
I don't think it's death, you know,
telling the person that they're offline and yet showing them as much information as possible.
People have that understanding.
So indicators, I think, are valuable.
I think that crossword puzzle is kind of a fun idea
where, you know know instead of dealing
with all the problems of what happens with these requests as they're queued up and you know certain
ones are dependent on others being successful and then seeing that all resolved when the user
comes online which is technically you know can be quite a uh a cesspool having this like middle ground between like your chrome dinosaur and a fully
functioning app yeah for sure um yeah it's super important um but that is something that is right
now left to to each site to implement sure um yeah what about uh you know so you're you you
basically tell up up to start on this page
and you tell it which content you want to cache when they come offline.
Like you said, you can pass it HTML or images, these kinds of things.
Are there any limitations or incompatibilities with certain CSS frameworks
or JavaScript libraries or frameworks that you found?
No, not so far because basically because it doesn't sit
within the browser window it sits in the layer above it's returned to the browser as if it's
a network uh as if it's a response from the network it just works the same um as long as of
course it doesn't call for resources, which aren't available like
JavaScript from a CDN or something like that.
So you have to, um, you have to make sure all those resources can be cached and made
available when you were offline.
You mentioned before that, uh, that you tried to break it, which made me believe that you
may also try to think about
evil ways you can use this service worker opportunity.
Is there anything that you can think of
that might be an evil possibility, so to speak,
for this to play a part?
No, I had some ideas, and I tried to do that.
I tried to see if you can return stuff to bypass the
existing security mechanisms, but it's pretty well written. And this is just something that
I like doing. I did it before in speech recognition. I've found a number of bugs, which I reported to Google and, um, and most of them,
they fixed a few of them. Uh, they didn't. Um, um, but yeah, it's fun. It's fun to break things.
I mean, people who make stuff also like to break stuff. That is true. That is true.
Well, anything up, uh, on anything up, anything else on up, up on UpUp that you want to say specifically to the technology and how it works
before we move on to talk about your product thinking and your promotion of your open source projects?
I think that is the point of the way I work with it make to make these things invisible um um but service workers are definitely
something people should be looking into people who are interested it's definitely fascinating stuff
yeah and if you are interested in service workers um seeing a real world in use application of them
such as what's inside of up up it's's probably a decent way of wetting your teeth.
Wetting your teeth.
I'm doing it every, I'm doing it left and right here, guys.
Wetting your, wetting your appetite, cutting your teeth.
It's mixing metaphors.
Let's take a break before I shoot myself in the foot again.
And here one last time from one of our awesome sponsors.
And we want to talk to you on the other side of the break about this promotion idea
how you're treating your open source projects as products and how you are getting them out there
en masse so we will talk about that on the other side of the break guess what everyone op beat is
announcing their no js beta right here right, exclusively to our listeners. Opbeat combines performance metrics,
release tracking, and error logging
into a single, simple service.
And with all of your data in the same place,
they're able to do smart things with it
and help you make wiser choices.
Opbeat integrates with your code base through Git
and makes monitoring and debugging
your production apps much faster.
It's free for an unlimited number of users,
and until now has only been available for Django and Flask.
But now they're launching a private beta for Node.js
and sharing it with our listeners first.
So go check it out and sign up for the beta.
Head to opbeat.com slash changelog.
That's O-P-B-E-A-T dot com slash changelog that's o-p-b-e-a-t dot com slash changelog all right we're back from the break
uh you know it's always been fun on young up up a lot of fun a lot of enthusiasm behind
your pursuit of software technology open source um but you have a pretty good heart for promoting
open source uh you've done a pretty good heart for promoting open source.
You've done a pretty good job with these last two releases of yours.
It seems like it's almost easier for you to have some success with your projects.
Do you have secret sauce you can share?
What are you doing well?
What are you doing that's making these projects so great? So I think, and I'm making air quotes now,
the secret is I was an entrepreneur for many years,
freelancing, working, basically building things from A to Z and having to wear all the different hats,
whether it's marketing, development,
planning, all of that.
So that is something that I think a lot of developers sometimes don't do because I know
I worked in a company and there's product people and there's marketing people and there's development.
And sometimes it's very comfortable not to do those other things.
But once you get a little bit of experience trying those other things...
I think I know what you're saying, though.
I mean, I'm thinking, like, people get comfortable with their title or their job or the one thing they do.
And, you know, because I'm a developer, I'm just a hypothetical here because I'm a developer.
I can't write marketing copy or I can't help the marketing team say what, what our product does better than they can. Cause that's their job. I can't do their job. But in the case of you, because of your past experience as an entrepreneur
and, you know, kind of wearing many hats,
it's easy for you to wear many hats and it's something you actually do well and thrive on.
Yeah, and like we do it a certain way at our work.
And once we go into open source and we're in charge of wearing all the different
hats it's a totally different issue um i find that there's like a tension between two opposing
forces when you're developing because on the one head you're it's a very private intimate experience
i mean you're developing something that you're passionate about you're
sitting probably in the dark with headphones and i'm describing myself here um and writing code
like drinking red bulls and uh like it's very very personal very intimate and you're like
so familiar with the code and then you want to release it and you
expect other people to be as excited about it as you are but that is where the other force comes
because other people didn't experience it as you have so you have to distance yourself from it a
little bit and understand how other people see it and look at it with fresh eyes and that is something that I find
is usually in my pro in the projects I've built it takes up 90% of the time so you build something
like Anyang or UpUp and then you work on creating copy and and a brand around this like it's a scary word like brand and marketing and
pr it's something we're not used to doing but it's just as important because i mean
how many times have you seen like uh people who've released a library and you go and it's like
there's a readme and sometimes it's documented or not, but there's like one star, two stars.
And there's often like amazing libraries,
but you need to go past that moment
and realize that you need to look at the whole picture
and turn it into a product and market it
and make sure people want to find out about it and want to try it.
And that is the biggest challenge for people like us, I think.
Something Jared said earlier, which was, you know,
we judge books often by their covers more often.
And I think that was more in reference to us seeing so much,
so much software and so much open source that um a name matters you know a misspelling
might matter a collision with another library in a different language matters
um what can you share about let's say like the lessons learned from anyang to up up like what
did you learn from anyang that made up up even better in terms of releasing um so all this i guess is a matter of uh time passing because
i know me personally every time i whether you write code or you design something or you do like
fast forward six months later and you hate it so maybe this will be the story of up up soon but um um i think what i did
was a better job at explaining what it does so you immediately like it clicks and you immediately get
it and also to provide a hook right uh up front that the minute you land on the website you're like intrigued and want to find out
more about it um there's a i read an article by one of the i think the head product guy at the
foursquare and swarm and he says there's a there's a phrase they use a lot there of um surprising and
delighting users so yeah that is something I'm really looking forward to.
That is the hook that catches the person who comes to a site
and has like 20 tabs open.
You need to catch him in those first 10 seconds
and make him remember the name
and want to actually read what you do before he switches to the next one.
And so that can be something
playful like the name of anyang or um that you just start playing with it and it shows you
pictures of kittens or whatever you ask it and like there's other references there like it's
showing tps reports and stuff like that. In AppUp, for example,
there was a big discussion I had in my head
about how to do this.
When you get to the homepage,
there's a video on the top of it
that doesn't look like a video.
It just looks like an IDE
where there's some code and a phone right next to it.
And it looks like an image.
And as the user scrolls down, it starts playing.
And there's no controls.
It doesn't look like a video.
It just looks like a live coding.
And I've seen people react to it, and they're trying to play.
And then when they're realizing that it's a video,
they're like, oh, they're surprised.
And that wasn't a safe choice to do there because about, I don't know,
I think 20% of people I've showed to have missed that video.
And they were like, oh, there's a video there when I told them later.
And there's, you should have a play button so we don't miss it.
But it was worth it for me to have missed a couple of people
for that reaction from the other 80 percent who were like surprised by it and they were like oh
and the reactions have been amazing like people have tweeted about it and tweeted how awesome it
is and that's how that's how you catch people like in those 10 seconds. I love it. It's like an instant demo, honestly. And it's a passive way too. Cause you, you might
think, well, yeah, I should, you know, I should go to the demo section of your website and I
should click a video button or something like that to, but that's a, you know, an explicit
way of doing it where you were sort of catching them off guard and surprising them in a way.
And maybe even delighting them that like, Hey here real time and in about you know less than 30 seconds I can take
this example website from an online to an offline version and you actually see how easy it is to
write you know the the different scripts in there and include the up up script and you know go
through the different functions and you know what not to get to this point i think it's that's really awesome to to
to do that and even to take the risk like was that totally your idea or did your wife help you
did you have some secret party say hey you should try this uh no that was my idea but it's
it's not some uh stroke of inspiration like this was a painstaking process over months.
I built something and
I've worked months to have
a website that I can feel comfortable
with releasing.
Polishing and changing and over polishing
it and showing it to a lot of people.
It's a painful process.
What drives it all?
What's your MO?
Why all the time time why all the effort
because when when you build something like that and you're so passionate about it the
the payoff the the that dance that i later do when i find someone doing something is from people actually not just glancing over it
and going to the next thing,
but actually being caught in it
and understanding what it is and getting excited.
So that is the most important part of polishing that,
to have that experience from the user
is the most important part for me
to get that payoff,
to get people to use it, to get people sharing it and building awesome stuff with it.
What are all the different parts that go into thinking about an open source project like a product?
You can use UpUp as an example.
You've obviously stated that the name of the project matters,
that the landing page, are there other aspects to it
that you put so much thought into as those things?
So a few other things are, of course, the name.
I won't say I'm 100% happy with the name UpUp.
I'm happy with Anyang because it's a bit weirder.
But yeah, you have to consider how people, once they get excited, you have to give them an action
to do next. So you have to consider how they're going to share it. And when they share it, how
that is going to translate into more people being excited about it.
You have to consider how you approach other coders or bloggers or developers, media.
You have to consider all of that.
You have to consider how people in different countries are gonna perceive what you've built for example
anyang which uses language which i which i don't understand so you need to be careful with that
um but hey it's not even a real world word yeah um so there's a lot of thinking that goes and
obsessing that goes behind this it's it's a labor of love that goes and obsessing that goes behind this. It's a labor of love.
Earlier on, we talked about, you know, you, you ending up on product hunt.
You emailed us, you know, that you have a new project.
You're fine. You're okay.
You're okay with promoting your projects and you stated why.
And, you know,
Adam and I even revealed some of our thoughts around like,
how do we feel about promoting the changeelog on these different venues and stuff um i think developers kind of have a
icky factor when it comes to self-promotion or marketing i know that's like it's considered a
bad word um do you ever feel icky with any of this the stuff that you do to get your projects
out there do you ever feel like you've crossed a line or is it all just par for the course no because i don't think the the icky
experiences i've had were with with marketers who weren't who didn't believe in the product who
didn't like when it's someone who's a developer and he truly believes in it and he talks about it with passion because he truly
loves what he does it i love it like i love watching people uh um do screencasts and talks
about their technology because you get caught up in that uh excitement it's it's not marketing
it's just talking about what you love it's not marketing it's just talking about what you love it's not marketing it's just talking about what you love i like that i like that's good
was that a marketing slogan what i just sounds like a good slogan that might have been it yeah
i'll write that down we uh we have a couple closing questions we obviously love to
ask our guests we got a super secret one we obviously love to ask our guests
we got a super secret one I think you got
something coming up that you might be able to talk
about so maybe we'll open with that
super secret one first what do you think Jared
I think so let's do it
so
Tal is there anything super secret
that you might be doing in the near future
to promote open source something
no one else knows about
okay so I'm actually right now obsessing about my latest labor of love. As you can see,
I'm super excited about these other aspects of open source that people usually don't talk enough
about. I think like you guys do on the changelog, and that's why I enjoy it a lot,
because there's a lot that goes into open source
that has nothing to do with the code,
and there's not enough places to talk about it.
So one of the things I've been working on is a new blog,
a new site called theopensourcer.com,
where I'm going to be talking about everything that has to do with open source and nothing with the code.
I was actually, yesterday I was like thinking of slogans for that
and I was like, beyond code, that's a good one.
There's an issue with that.
Like I couldn't remember why.
It took me a second.
Where did I hear that before?
It's a good name, right?
Yeah, it's a great name.
So the idea is, yeah, to talk about all those things
which are usually icky for us as developers
and turn them into something that you can approach.
And so it's issues like once you release an open source library,
what do you need to do to make sure people get it,
to make sure people instantly understand it,
how they can use it,
what can you do to build a community around this,
how can you market this,
how can you approach other bloggers or tweet about it?
So the product thinking behind open source,
all those issues which I think are underrepresented
in open source right now,
which is a shame because there's so much good stuff out there,
like so many libraries that we never even hear about.
Well, trust us, we feel the pain.
Jared and I wish that we can do daily podcasts.
Well, maybe not daily podcasts, but more often than four times a month.
I mean, I feel like every time we turn around, Jared,
we're approaching something more interesting,
something new in a new language.
And we just, you know, we're always striving to keep up ourselves.
And so any more help in the area of covering open source is always good.
Yeah.
Yeah.
There's so much awesome out there.
Yeah.
You mentioned earlier that you kind of teased when we asked you about uh i think jared said
uh something to sustainability and mentioned your wife and the travel that you've been doing
and being newly married um how how does sustainability play into anyang up up and
ultimately the open sourcer obviously if i i quit uh i quit my job i decided I wanted to open source full time.
I have to be able to support myself somehow.
So that is something I'm looking into right now.
One of the ideas is,
an inspiration for me has been actually your shows with Mike Perham from Sidekick,
who built Sidekick as an open source project
and has turned it into a business by offering,
continuing to develop the open source version
while developing software,
while developing versions for the enterprise.
And he's been thriving doing that.
And it's very inspiring to me.
Actually, I just interviewed him for the OpenSourcer.
He's a inspiring to me. Actually, I just interviewed him for The Open Sorcerer.
He's a very interesting developer. Yeah.
So one of the ideas is to create a version of AppUp that is even easier to use and is available to non-developers.
So WordPress users are my main target right now.
So if you have a WordPress site, even just including a script and adding two lines of code,
sometimes you're uncomfortable with that and there's like issues to consider and you have to move maybe your JavaScript from a CDN
and host it locally.
And so I'm building something
that will do all of that automatically.
And that is a service that I believe people
are going to be willing to pay,
a product that people are going to be willing to pay for.
If you're a hotel and you want people visiting your site
to be able to access your address, your details,
even when they don't have connections. Yeah, it's worth it. So continuing to develop
the open source projects I've been doing so far while considering other commercial aspects for them. But of course, all that gets funneled back
to developing the open source more,
just like Mike is doing with Sidekick.
And of course, hopefully one day
the open source is going to be doing well.
Maybe they'll be a part of it.
And yeah, maybe I'll also need to do some consulting in the meantime
I'm open to that
but the end goal is to build an open source empire
you heard it here first everybody
we will definitely link up the opensourcer.com
in our show notes
you can find those at changelog.com slash 183
and the last question we have for you here uh is the old saw who's your programming hero but
i'm gonna just loosen the constraints a little bit since you're a product guy and say you can
pick a programming hero or a product hero if you have somebody who has inspired you in your product thinking so um what you got
so uh my my hero um these days is jake archibald he's a developer advocate and chrome team he's
also one of the people who wrote the service worker specification actually Actually, I got the idea for AppUp
when I watched him speak at Google I.O. a year ago.
He's obviously a great developer
and has done so much great work,
but the thing that I find amazing
is his ability to use humor to explain things.
And I found myself sitting in a cafe with headphones, listening to one of his videos explaining how to use service workers and simply laughing out loud.
And people are looking at me like his ability to to coin phrases and and and to to draw comparison
between uh um between bad connections and and and a one-legged dog who is trying with all his
might to fetch something but his all his enthusiasm doesn't work.
Like, his ability to use humor to explain things is remarkable and it's inspiring.
So definitely, like, if you have some time, check out a few of his videos on YouTube.
Very cool.
Well, Talos, it's definitely been a pleasure having you on to learn
about your passion behind software development
and you're all in
on open source and the work you've done
on Unyong and UpUp and
coming on here and sharing that with
the open source community is really great.
Look forward to the work you're doing
with the open source and we'll obviously
be here to
help you however we can possibly help you
any
other closing thoughts before we close out the show
on your side?
No, I mean
thank you, thanks for all
the changelog has really been
an inspiration for a lot of this
for talking about things
that are not just code specific
I mean I listen to other podcasts which are like language specific but talking about things that are not just code-specific. I mean, I listen to other podcasts which are language-specific,
but talking about the bigger picture,
issues that affect all of us,
that is something that has inspired me to do that.
So thanks, guys.
Yeah, thank you for listening.
And to those who are actually listening to this show,
not just here on these mics talking, thank you for for listening to those members out there that support us uh we definitely
thank you we have four awesome sponsors code chip top towel brain tree and op beat uh supporting
this here particular show but uh fellas it's time to say goodbye so let's do it goodbye thanks guys
bye it's time to say goodbye so let's do it goodbye thanks guys bye