JAMISON:
So, I’m in the airport, if you can’t tell by the announcements behind me. If it gets too annoying, let me know and then I’ll just never talk again.
JENN:
Yeah, that’d be great.
JAMISON:
[Laughs] Oh, that was [inaudible]. [Laughs]
JENN:
[Laughs] Just kidding, for now.
[This episode is sponsored by Frontend Masters. They have a terrific lineup of live courses you can attend either online or in person. They also have a terrific backlog of courses you can watch including JavaScript the Good Parts, Build Web Applications with Node.js, AngularJS In-Depth, and Advanced JavaScript. You can go check them out at FrontEndMasters.com.]
[This episode is sponsored by Hired.com. Every week on Hired, they run an auction where over a thousand tech companies in San Francisco, New York, and L.A. bid on JavaScript developers, providing them with salary and equity upfront. The average JavaScript developer gets an average of 5 to 15 introductory offers and an average salary offer of $130,000 a year. Users can either accept an offer and go right into interviewing with the company or deny them without any continuing obligations. It’s totally free for users. And when you’re hired, they also give you a $2,000 bonus as a thank you for using them. But if you use the JavaScript Jabber link, you’ll get a $4,000 bonus instead. Finally, if you’re not looking for a job and know someone who is, you can refer them to Hired and get a $1,337 bonus if they accept a job. Go sign up at Hired.com/JavaScriptJabber.]
[This episode is sponsored by Rackspace. Are you looking for a place to host your latest creation? Want terrific support, high performance all backed by the largest open source cloud? What if you could try it for free? Try out Rackspace at JavaScriptJabber.com/Rackspace and get a $300 credit over six months. That’s $50 per month at JavaScriptJabber.com/Rackspace.]
[This episode is sponsored by Wijmo 5, a brand new generation of JavaScript controls. A pretty amazing line of HTML5 and JavaScript products for enterprise application development in that Wijmo 5 leverages ECMAScript 5 and each control ships with AngularJS directives. Check out the faster, lighter, and more mobile Wijmo 5.]
CHUCK:
Hey everybody and welcome to episode 140 of the JavaScript Jabber Show. This week on our panel, we have Joe Eames.
JOE:
Hey, everybody.
CHUCK:
Jamison Dance.
JAMISON:
Hi friends.
CHUCK:
AJ O’Neal.
AJ:
Yo, yo, yo, coming at you live from the bowels of Provo.
CHUCK:
I’m Charles Max Wood from DevChat.TV. Quick reminder to go check out JS Remote Conf. It’s a remote conference about JavaScript, so go sign up. We also have a special guest this week and that is Jenn Schiffer.
JENN:
Hi. I hope you’re ready to jump the shark. [Laughter]
CHUCK:
Do you want to introduce yourself real quick, Jenn?
JENN:
Sure. My name is Jenn Schiffer. I’m an engineer at Bocoup, mostly doing JavaScript and PHP. I’m also an artist and I do a lot of art with code and talking about it and making stuff to facilitate the creation of art with code. And I also am a tech satire write, a satirist and humorist. So yeah, a bunch of things, not good at any of them.
JOE:
Now, what does Bocoup do?
JENN:
Bocoup is a consulting company. We do contract projects with various clients. That’s what I do. I just build JavaScript apps for people. We also do education. So, we’ll do on-site training or we’ll offer courses out of our office or other areas. We also have, a big component of the company is open source. We all have 25% open source time. So, all of us are heavily involved in different open source projects.
JOE:
Awesome.
CHUCK:
I was going say…
JOE:
How long have you worked for them?
JENN:
I’ve worked there since April. Before that, I was working at the National Basketball Association where I wasn’t doing any open source stuff and working on just one thing, the stats site. And I needed a change of pace and I also wanted to be able to open source the stuff that I was building. And so, I went to Bocoup and it was awesome. I love it there. I work with a lot of really brilliant, awesome people and get to meet even more just through doing all the open source stuff and speaking at conferences and whatever.
JAMISON:
So, my question is can you still dunk? I know it’s been a few months since you left the NBA, but…
JOE:
Right. [Inaudible]
JAMISON:
Do you still have the skills?
JENN:
No, they don’t let women play.
JAMISON:
Oh no.
JENN:
[Laughs]
CHUCK:
That’s not fair.
JENN:
[Laughs] No, no. Actually, the WNBA is part of the NBA which a lot of people thought that the WNBA was a protest to the NBA. WNBA is the women’s league. But it’s actually a part of it. The NBA had the regular NBA, the D-League, which is like Minor League for basketball, and WNBA. I can’t dunk. I’m only 5’10’’. But I was taller than most of the guys that I worked with. So, I feel like if you were to put your money on any of those developers, it would be me.
JOE:
[Chuckles]
JAMISON:
I’m comfortable with that. So, I want to ask you about ‘make 8-bit art!’ which is, well I’ll describe it and then you tell me how wrong I am. It’s a web app for making little 8-bit drawings in the browser.
And then you can export them and do whatever you want with them, right?
JENN:
Correct. That’s exactly it.
JAMISON:
So, how did you decide to make this? Well, first of all it’s rad. But second of all, how did you decide to make it?
JENN:
Well first of all, thank you. Second of all, years ago, I mean this project’s been around for a few years, I wanted to learn JavaScript. I was doing Java and PHP and just feeling stagnant. And I saw that JavaScript was taking off in there were really cool people that were doing JavaScript. And so, I needed a project to motivate me, because whenever I want to learn something new I can’t just do TodoMVC and hello world, stuff like that. I need something that’s art-related because it keeps me motivated. I just have such a weird mindset when trying to learn.
And at the time, I’d been making a lot of pixel art. And there wasn’t really anything in the browser that I can do. I needed something portable. I wanted something in the browser not native. The native stuff that was cool, you had to compile through XTools every time you want to run it. And that was a pain. So, I was like, “Oh, well I could probably make this in JavaScript,” because HTML5 canvas, I had just read about it. And I was like, “Oh, well canvas you draw on. So, I could probably make it that.” And so, that’s what it became. And now it’s this pretty neat, cute web app that I have open sourced. So, I’ve had other people contribute stuff to it. And once in a while I go in there and add features and stuff like that. But the most part, I use it almost every day to just create pixel art.
JOE:
So, where is a link to some of the art you’ve created?
JENN:
[Chuckles] I don’t have a specific place where I’ve been putting stuff. I was using Ello, which was pretty hilarious to post pixel art and stuff like that. And then I took a break a couple of months ago because October to December I’ve just been travelling all over and going to all these conferences. So, I had to focus on writing talks and being social, which gets me away from making art. And so, I’m just starting to get back into doing that. But if you go to Ello.co/jenn, that’s J-E-N-N, I think that’s the site where I was posting stuff.
JOE:
I’m getting flipped off over on that site.
JENN:
Oh, I think that’s me, yeah.
JAMISON:
Yeah, that’s correct.
JENN:
Yeah, that’s me. [Laughs]
JAMISON:
Yup. [Laughs]
JOE:
You have a wonderful little finger.
JENN:
Sounds about right. [Chuckles] Sounds about right.
JOE:
Those do look like basketball player’s hands. Long, delicate. Yeah, you could definitely grip a ball well with that.
JENN:
It’s soft, yeah.
[Laughter]
JENN:
So yeah, that’s it. I have a problem trying to find one place to put all of my stuff in. I’m all over. I think the one place I have concentrated one type of my artwork I guess you can say is Medium which I write my satire in. Whenever I write satire, it’s always on that Medium blog. But whenever I make anything else, it’s just all over the place, whatever’s just easy for me. I had a blog running Ghost that I wrote my serious posts on and then I tried to update it and I just completely bricked it.
So, the site exists but I can’t update it at all.
JAMISON:
[Chuckles]
JENN:
And I just haven’t had the motivation to reinstall Ghost or whatever. So, I just won’t be serious until I have the motivation to either make a new blog or I don’t know, move other stuff. I try to use everything new that comes out when it comes out. I got into Ello. And then everybody got into it and started hating on it. And Ghost, when Ghost came out I made a blog with Ghost. And it’s incredibly buggy because I hadn’t updated it in forever. I heard of this new thing called WordPress that I think I’m going to try out next.
JAMISON:
[Chuckles]
JOE:
I’ve heard of that.
JAMISON:
[Inaudible]
CHUCK:
I hear some of the cool kids are using it. You know, the early adopters.
JENN:
Yeah, trying to hop on that bandwagon.
JAMISON:
So, ‘make 8-bit art!’ is a really cool project to me because it works on multiple levels. So first of all, like you said it’s a tool to enable other people to create art. And I feel like I’ve seen lots of people who aren’t developers just make cool stuff on it. They just find out about it and then post cool things that they make, which is awesome.
JENN:
Yeah. It’s really great. I love that part.
JAMISON:
But the other thing is I think I saw the slides from a talk you did about it or something where you take this almost contrarian attitude about the technology behind it and talk about how we get so caught up in the newest framework and the sweetest tools. And you’re just like, “Whatever. I’m going to use jQuery. And it’s just going to work and that’s fine. And it doesn’t have to have React and Angular and Ember all on the same page and doing amazing stuff. It’s just a cool project for its own sake, not because of the tech behind it.” Is that accurate at all?
JENN:
Yeah. I’ve talked a bunch of times about ‘make 8-bit art!’ and different aspects of it like how to actually make something like that yourself, because it’s really easy. I gave a talk about the issues that I’ve dealt with open sourcing it, specifically people complaining about the technology that I used for it. I gave a satirical talk at JSConf in May where I released this fake algorithm. Well, it’s a real algorithm. It just doesn’t do anything, called jortSort. And I open sourced the site and I was using Grunt. And immediately people were like, “Why are you using Grunt? Why aren’t you using Gulp? Blah-blah-blah-blah.” [Laughter]
JENN:
And not talking about the project itself, which is like, “Man. F. you. I put a lot of time to make this beautiful site that has parallax on it. And you’re complaining about the tools that I used? You know who doesn’t care about the tools I used to make that site? Non-developers who are going on the site.” There are a lot of people that aren’t developers that use ‘make 8-bit art!’ Probably more nondevs use that than any other project that I’ve made. And probably most projects that a lot of us make, because I feel like a lot of us are just making tools for other developers, which is really awesome. We need those. But then we forget about the non-developer users. And so, we get caught in these arguments with what we should be using to build it. But the comic book artist or the game designers, our game designers are designing their game sprites just using this, which is insane to me. They don’t care what I used or anything.
And so, it’s important for me to think about them, because I need to make sure that the application’s accessible to them so they can get it in the browser or if they need to install it locally on their machine. I have to provide them a way to do that easily. And that’s something that I’m working on still. So yeah, that’s just something I’ve encountered by making this project, because it’s interesting. A lot of my other stuff that I open source is stuff for other developers to use. And so, of course you have to think about that. And even stuff for non-developers you have to think about, because if you want people to contribute that’s also really important. So, I can dilute my project with all these frameworks and task-builders and stuff like that. But every time you add something like that, you’re raising the wall that keeps the project between you and the people that you want to develop with it.
So yeah, that’s just one of the struggles besides building an app is figuring out what to use for it so that you’re not keeping contributors away.
CHUCK:
When you said non-developer users, I know I’m going to slip up and once of these times say nonplayer characters. [Chuckles]
CHUCK:
But anyway, it seems like as far as Grunt versus Gulp, whatever works. There are things that I use in my stack that aren’t the current hotness but they work for me. And I don’t have time to go learn the new thing yet. I’m curious though. It seemed like in your talk you were talking a little bit about bringing people into coding through your art. Can you talk a little bit about that? Do you see that happen very often?
JENN:
Yeah. So, before I was at the NBA I was working in academia. I was a graduate student. I got my Master’s in CS and then I became an administrator in the department that I got my two degrees in. And so, the department administrator’s job was basically to do everything that the chair was too busy to do, except I didn’t have a PhD. And so, I did a lot of curriculum writing and teaching and recruiting and advising students. I had about 300 students that were my responsibility which is hilarious that they allow that to happen. [Laughs] I’m shocked the world lets…
JAMISON:
Do they know that you’re famous?
JENN:
I’m not famous. I would say popular on Twitter, which is a whole bottom of the barrel version of fame, honestly. [Laughter]
JENN:
But yeah, some of the students did follow me on Twitter. But back then, my Twitter was mostly private because I had parents that were interested in my presence because I was in charge of their students. And even though I was in college I did deal with a lot of parents, which was one of the reasons why I wanted to get out of there. But one of the things I learned when I was teaching the students and also advising them through picking projects for their other courses was that art was something that was interesting to all of them. I had a lot of artwork hanging up in my office, ridiculous stuff like that Jesus scroll painting that that woman in Spain completely messed up. I had that hanging in my office.
JAMISON:
[Chuckles]
JENN:
I had a large M. C. Escher print in my office. And students were always talking about that and talking about what art they were interested in. And so, I would say, “Well, if you’re coming up with an idea for a project to learn this thing, why don’t you do something that’s art related?” And they’d be like, “Oh, I can do art. I love art. Oh, but can I do that with code?” And I’m like, “That’s what I think all the time.” And that’s how I got into doing what I’m doing.
And interesting about art is that it’s something that we’ve all been involved with in some way, because it’s very broad, creativity, since we were much younger as opposed to when we were writing code. I always say that when you’re born, when you get your first toy, it’s usually a set of blocks and you use it to build things. And little kids don’t take blocks and try to build structures that are sound. We’re just building them to make it look like something. We’re just trying to create something. We’re not given a computer and told, “Here, make a JavaScript application,” although that would be a hilarious way of parenting. I see that happening in five years…
JAMISON:
[Chuckles]
JENN:
Just giving your kid a computer and saying, “Do something with it.” But yeah, so art is an easy gateway into anything and it’s something that we’re more used to. And I feel like we feel more comfortable with. So, why not use it to teach code? And I have been for years and it works. So, art and code, yes.
JAMISON:
So, do you think there’s something unique about JavaScript that makes it, my impression is there’s more interest and art and making and consuming are in the JavaScript community than in some other technology communities. Do you think that’s true, and why do you think that is? You mentioned you wanted to learn JavaScript originally because you thought the community seemed really cool. And I guess the implication is that it seemed cool and aligned with your interest around art. Is that the case?
JENN:
It was more that I felt like it was a lot more diverse than the PHP and Java communities. I followed women developers and most of them were into JavaScript. The people that I knew were making art with code were doing mostly JavaScript stuff and Processing was getting really popular, which is Java-based but then Resig came out with Processing.js. And so, I saw people using that. And then just there are so many JavaScript developers in the New York area that are all my really good friends now. And I just felt more at home with them than I did otherwise. And I think that the reason why I got into it with art is mostly because it’s portable. Do you know what I mean?
When I was teaching workshops to kids, I used to teach workshops to middle school girls. And we were using this language Alice which is this visual click and drag object-oriented programming thing that came out of Stanford which is really awesome. It wasn’t really portable. I used to have to have the system administrator install this on all the machines and that was kind of a nightmare. But when it came to teaching more intermediate stuff, instead of worrying about the JVM being installed everywhere I was like, “Well, I could just do JavaScript in the console.” And that way, I don’t have that roadblock in front of me, waiting for people to set up the machines. And if you’ve ever worked in a university or taught in a university it is a huge pain in the butt to get what you want installed on those machines because, not even just putting in a request but usually you have to argue with somebody who’s just there for the sake of arguing to explain to them, “This is why I need this installed in this machine.” And if you…
JAMISON:
It’s like you have to pass a test, like a [inaudible]…
JENN:
Right. They’ll be like, “Well, why do you need Ruby on this machine?” “Because I said so.” But that’s not [chuckles] the acceptable argument to them. But if you say it three times, usually it’ll get done. But that was just something that I encountered. So, JavaScript was just super easy. And I
feel like a lot of people feel that way. It’s really easy to jump into a JavaScript tutorial because the first three parts of it isn’t installing stuff for it and trying to get it to work on your machine. It’s open up your browser. Here’s this keyboard shortcut or command, or click on this menu and you have dev tools open. Here’s the console. Write some premium JavaScript.
AJ:
Agreed.
JENN:
[Chuckles]
AJ:
But the real question is why are you using Grunt? [Laughter]
JENN:
Well, you know I…
JAMISON:
That’s such a final evolution of [inaudible], actually.
CHUCK:
[Chuckles]
JENN:
Yeah, well no, well actually it’s a good question. You know, why do we use anything? A really important part of technology is holding on to one type of tool and arguing about it forever and ever until we all die off. So, why choose Grunt? I don’t know. I found myself using, I use a lot of things. I try to use everything. I just got into using Ember CLI because I just started making an Ember app, like literally last week. And Ember CLI uses Broccoli and I’ve been getting into that. And I enjoy that. And so, maybe my next project I’ll use Gulp or I won’t. I don’t know.
It’s really interesting, the why use this over that, because people consider it a personal attack sometimes on other people. Like, “Oh, you use Grunt because you work with Ben Alman and you don’t like Contra.” But actually I’m good friends with Contra and this has nothing to do with personal relationships. This is about JavaScript, which is really weird. I don’t know if it’s like that in other communities. I’m sure it is. But that’s just a really interesting thing. I shouldn’t have to think about who’s going to be offended by me using one tool over another when I’m creating a project. I
should be thinking about the client or the end user.
AJ:
No, you got to move to Python because in Python there’s a benevolent dictator that says, “Hey guys. Guess what? This way works pretty well,” and everybody just says, “Cool. Let’s do that.” [Chuckles]
JAMISON:
Isn’t that why they have [inaudible] package management…
AJ:
Whereas in JavaScript you’re like, “Hey guys, this works pretty well,” and everybody else is like, “Douglas Crockford’s an idiot.”
JENN:
Well, isn’t Rails like that, too?
CHUCK:
You mean the benevolent dictator kind of thing?
JENN:
Yeah.
CHUCK:
Not as much. With Ruby the programming language, it more is the benevolent dictator kind of thing. And so what Matz puts into Ruby, some of the things we may complain about but we ultimately wind up just dealing with it. As far as Rails goes, a lot of people argue with David over what he puts in. And if we’re unhappy about what he puts in it a lot of times, there’s some way or some alternative to take it out and do something different. So yeah, it just depends. And I’ve also seen that some communities get really vocal about which tool or which library you use and which doesn’t. I have my fingers in AngularJS, iOS, Ruby on Rails, and JavaScript in general. And the different communities just tend to react differently to different things. And so, it just really depends. I think Grunt/Gulp is one of the more common arguments that I see where people get really worked up over it. Occasionally I see someone worked up over IDEs versus text editors or Emacs versus vim.
JENN:
Yeah, yeah.
CHUCK:
But eventually, I don’t know. At the end of the day for a lot of people, it really doesn’t matter what you use unless you’re making me use it, too.
JENN:
Right. You don’t want to force anybody into something. And then that plays into when you’re making something, or you allow users to contribute to it. I remember when Ghost came out and I
found something that I can fix in their editor. And I was looking at how they said they had set it up. And it was my first time really working with Vagrant. And it was just really hard for me to actually get working. And so, I just was like, “Eh, this is too much work to do it their way, so someone else will fix it I’m sure.” And that’s something that I try to avoid doing in my projects. But it’s really hard. ‘Make 8-bit art!’ is pretty crappy if you want to jump into it and contribute to it, I think. Other people said that it’s fine. It’s not that big of an application. The bigger, more complicated of course things get harder.
But I always say that if I ever go back to graduate school I would get a degree in something that lets me study how these different communities within JavaScript interact with each other, like some sort of sociological study on why people fight for something that somebody else made just because they use it. Is it because you really care that much about the tool? Or is it because it’s just something that you feel like is right and we have this unrelenting need to always be correct, even if our ideas are conflicting? That’s just something interesting that I love to observe, which is why I haven’t quit Twitter yet. There’s just so much of that going on to watch.
CHUCK:
[Chuckles]
JAMISON:
Twitter’s a great place for [certainty].
JENN:
Yeah.
JOE:
So, you do make 8-bit art but are there other pieces, art-related pieces of technology that you find accomplish the same goal of trying to get people interested, keep people interested in programming through art?
JENN:
I think that the Processing community is really awesome. A lot of generative art creation and also tutorials for getting people involved in creating art with Processing has been pretty cool. There are lots of galleries that show things that have been made. They have the Processing.js project. During the one Hour of Code where they try to promote schools to teach students one hour of code every year, Processing comes out with really good tutorials to get kids into making stuff. And it’s like, you work an hour, you write a few lines of code and you have this really cool moving shape and it’s visual and it’s fun to look at. And it’s a final product, as opposed to if you give a kid a JavaScript framework and it’s like, “See what you can make in an hour,” you know what I mean? It won’t be anything as flashy and fun that you can show everybody with just one hour. So, the instant gratification of Processing I think has really been great and is also what drew me into using JavaScript to write code.
Another art community I’m really into is Twitter bots. Twitter bots, there are lots of people who make these really cool Twitter bots that will create generative sentences and essays and art and there’s just a bunch of them out there that are really cool. And that’s a really cool medium, using a Twitter bot. And not all of them are JavaScript-based. Some are PHP. There’s a lot of bot applications out there and they usually open source all of them, and that’s pretty cool.
JOE:
That’s cool. So, I want to go back to the Hour of Code. I did a whole bunch of, I did six Hour of Code events, ran six Hour of Code events with my daughter who’s a highschooler during the computer science week. And all of the stuff that we used was, it was cool and interesting to kids. We did the Frozen, there was a Frozen game that they could play. And then there was thing called Code Combat. But I didn’t actually, I hadn’t noticed any more artistic, let them play around and create their own art type stuff. So, you’re saying that there actually is some stuff on there that has been done for the Hour of Code, right?
JENN:
Yeah, yeah. Processing.org I think is the site that usually shows that stuff.
JOE:
Interesting. So, I’m also very interested in this whole idea of art as a way to get people into or keep them into computer programming. My daughter got into computer programming because she wanted to customize her Tumblr page, right?
JENN:
I got into it for making Weezer fan sites on Geocities and then also pimping Myspace pages. [Chuckles]
CHUCK:
Oh, you’re showing your age.
JENN:
[Laughs]
CHUCK:
I remember hacking on Geocities. That means you’re as old as I am.
JENN:
[Chuckles]
CHUCK:
Which isn’t as old as Joe is, I guess. I don’t know.
JOE:
No, not as old as me. I’m ancient.
CHUCK:
Yeah, he used to code uphill, both ways.
JOE:
[Laughs] In three feet of snow. [Laughter]
JOE:
I actually coded the pyramids.
CHUCK:
Oh, there you go.
JENN:
[Laughs]
CHUCK:
That was you, huh?
JOE:
That was me.
JENN:
Back when you could only code in black and white.
JOE:
Right, yes. [Laughter]
JOE:
That actually existed. There was a time when you could only code in black and white because monochrome monitors.
AJ:
I was more of a green and white guy myself.
JOE:
Green and black. It wasn’t black and white. It was green and black, but close still, practically the same thing. So, that’s very cool. Have you been involved in the Hour of Code and seeing much in the way of kids, using art as a way to get kids into programming not just keeping adults as into it?
JENN:
So, the workshop that I did with middle school girls, there are two kinds that I did. One was programming and one was hardware. The hardware one I would teach them how to build computers by bringing two computers that I built while I was in college. And they’re ginormous old Dell machines that I tore apart and added my own parts to and spray-painted pink and covered in stickers like I do with everything I own now. And I would have them take apart these computers. And at first they’d be like, “What if we break it?” I’d be like, “It’s fine. You won’t break it.” But I would have them take out the parts and compare them to the smaller form factory machine and show them that the insides of a computer isn’t as scary. And then I’d be like, “Okay. Now we know how to build a computer. You should do this workshop and we’ll learn how to program them.”
And the hardware one we use art because I couldn’t afford to have them build their own computers. There were 15 of them. And it was geared toward middle school girls but boys were invited and they did go. And it was a really cool inclusive group. And we used to make computers out of craft items. So, I’d buy these oven-roasting pans and I would spray-paint the bottom of them with green chalkboard paint. And they would use chalk to draw circuits. And there’s a CD jewel case that acted as the CD drive. And so, we were handcrafting these computers. And their favorite part was naming the computer, because that’s the most important part of building a machine, is naming it.
JOE:
[Chuckles] Absolutely.
JENN:
Yeah. And then the software aspect, the other workshop I did was using Alice, which is like a storytelling tool that teaches object-oriented programming. So, storytelling I think is one of the greatest forms of art. I love telling stories and I love being told stories. And kids do, too. And so, they can have a character like for example a penguin. And then they can drag methods or states and behaviors to the penguin. Like penguin skates over to the princess, princess says hello. And they’re dragging and dropping and they’re creating this story, this episode. And then when they execute it, it plays the story. They watch this 3D cartoon happen in front of them. And they built it. They created it. And they visually see what the code looks like, but they didn’t have to type it. They just had to drag and drop stuff. So, you get a good understanding of very early IDEs that are more visual teaching things like Java.
When I learned Java I was using the jGRASP IDE which is mostly text-based. And then the university moved to something called BlueJ which is very visual. So, Alice is a balance between the two, but geared towards younger kids. And so, storytelling as an art is something that I got them into. And then it still ended with a cool animation and we all love animated stuff.
JOE:
Huh, that’s awesome.
CHUCK:
I want to change tactics a little bit because you’ve got this other interesting project called ‘var t;’
JENN:
Yes, vart.institute.
CHUCK:
Do you want to explain what that is?
JENN:
Sure. Vart.institute is a project, an art, writing, and code project that I started a couple of months ago where I learn and teach about art using JavaScript. So, what I do is I take an artist that I feel connected to in some sort of way on some sort of personal level because I write very personal essays about them and how they tie to me, usually through storytelling. And then one of their pieces of art or a time period of their artwork and I generate some sort of app using JavaScript that either recreates their artwork or allows you to recreate something in their style.
So, my first post was about Piet Mondrian. He’s a Dutch artist who makes these very distinct gridbased paintings with primary colors that I’m sure you might not recognize the name and put an art to the name, but you’ve seen this stuff. It’s been very well [commodified] and actually his stuff enters public domain next year, so we’re going to see even more of his stuff on junk like plates at Target have his type of artwork on it.
JAMISON:
[Laughs]
JENN:
You know what I mean?
JAMISON:
I’m going to love it.
JENN:
Just everywhere. Katy Perry had a music video and one of the scenes is very Mondrian inspired. Her dress and her hair were put in this grid-like and primary colors sort of stuff like that. And I’m just like, “Oh, there goes Mondrian.” And so, I wrote about him, how I got into the project. And then I created a Mondrian grid generator using JavaScript, which is just recursively nesting tables within one another and then randomly coloring different cells with red, yellow, or blue which is his style. And other artists I’ve done this since then are René Magritte and Henri Matisse.
Matisse I created an app that lets you create paper cutout like artwork like his, because the final years of his life he made collages with paper he cut out and had assistants cut out for him. And it’s showing at the Museum of Modern Art here in New York City until February. It actually ends I think the day before my birthday. And so, I created a post about that time period of his life and a generator so that you can make paper cutout art in the computer with JavaScript.
So yeah, it’s a really interesting project for me. It takes a lot of work. It’s really challenging because I try to, I have to find artists that I really feel a connection to in some sort of way. And it’s new to me. Fine art is new to me. And so, instead of using art to teach programming, I’m trying to turn the tables and teach art using programming, because I feel like I can learn a lot more about art. And this project forces me to do that. And it also has the readers who are mostly programmers learn about fine art as well.
JOE:
Interesting.
JAMISON:
I love that JavaScript enables that intersection. It reminds of ‘If Hemingway Wrote JavaScript’, that book that Angus Croll wrote in that it’s for programmers but it’s about famous authors. And it introduced me to a lot of literature that I wasn’t familiar with, which is cool.
JENN:
Yeah. That is one of the greatest JavaScript books written ever, ‘If Hemingway Wrote JavaScript’.
JAMISON:
Yeah, yeah.
JENN:
That was actually one of my picks, because yeah. Actually…
JAMISON:
Sorry.
JENN:
Oh no, no. No actually, because the ‘var t;’ project was greatly inspired by Angus. Him and I have had lots of talks about the intersection of creativity and code. And this was something that was frowned upon because there are a lot of developers that take themselves way too seriously. I know this because I tell lots of joke about development and get yelled at on the internet all the time for it. [Laughter]
JENN:
But also, the same thing happens with art and code. And now we see more and more people getting into it. And so, the idea of him writing a book about literature and JavaScript isn’t so outlandish anymore. And I feel like he’s doing pretty well. But yeah, ‘var t;’ was very much inspired by ‘If Hemingway Wrote JavaScript’. It’s like, “Okay, well you’re teaching JavaScript and using literature. I want to do the same thing with art.” And so, yeah.
AJ:
So, sometimes people ask me, “How can I learn to code?” And inevitably my response is something along the lines of, “Well, what’s a problem that you want to solve? Because the only way that you’ll learn to code is if you have a problem and you have to learn to code to solve it.” So, when someone doesn’t have a problem, I have a hard time helping them learn to code, because it’s like, “Well, you can go to one of these sites. But you’ll find it boring if you’re just doing this tutorial for the sake of doing a tutorial if you don’t know what problem you want to solve.” And it sounds like maybe you could pose a different question in terms of art or games or fun rather than in terms of productivity. What would you say if somebody says, “I think I want to learn to code”?
How would you direct them?
JENN:
I’d say don’t.
AJ:
Oh, okay. [Laughter]
AJ:
That’s a lot simpler. I like that answer.
JENN:
Don’t even. No, so when I was, this takes me back to my department administrator days where I would have to recruit students that I thought were really bright and try to poach them from other departments like business. And they’d be like, “Well, I want to learn to program but I don’t know where to start.” And that’s like, the same happens for me, like, “Oh, I don’t know where to start to teach you to program because there are so many different learning types.” What I usually would tell them is find something that you like online that you use and try to recreate it in your own way.
I’ve had a lot of students that I mentored over the years who have found me through some of my
art projects. I had this one early project where I made a xylophone out of CSS. And when you click the little things on the xylophone it would play a sound. And JavaScript was used to play the noise on these click events. And someone had emailed me and they’re like, “Oh. I wanted to learn JavaScript and CSS so I figured I’d make a musical instrument. And I was going to make a xylophone. So, I google searched JavaScript xylophone CSS to see if someone else did it already. And I saw that you did. What should I make?” And I was like, “Well, why don’t you just try to recreate what I made. You could probably do it better because I did this a couple of years ago.” And that’s what they ended up doing.
So, reinventing the wheel, I’m a huge proponent of that. I feel like there’s all these JavaScript frameworks that people are making, all these builders and task runners that people are creating. And everyone’s like, “Oh, everyone keeps creating another thing. Blah, blah, blah.” But that’s how we learn. We know the tools that we want. We might have an issue with them or we just want to recreate it so that we learn, because that’s how a lot of us have learned JavaScript, is by building the tools that we’ve created for other developers to use.
So, when someone comes out with another JavaScript framework I don’t really roll my eyes. I’m just like, “Oh. They probably just want to learn how to do that and that’s cool. I don’t have to use it.” That’s the thing. When a new framework comes out and everyone’s like, “Ugh. Another one I have to learn.” You don’t have to learn everything. I don’t know why people think that that’s a thing. There are lots of things besides programming that we can learn, like how to communicate with other human beings as a start.
CHUCK:
Oh, we can’t do that.
JENN:
No. That’s like [chuckles]
JOE:
Too busy programming.
JENN:
That’s way beyond our paygrade. [Chuckles]
CHUCK:
Well, what does communication have to do with code anyway?
JENN:
Right? [Chuckles]
CHUCK:
Yeah.
JAMISON:
I think if you pick the right JavaScript framework then you don’t have to communicate anymore. That’s the dream.
CHUCK:
Oh, that’s it, got it.
JENN:
Yeah.
JAMISON:
It abstracts away communication.
JENN:
Yeah.
JOE:
I could write a bot to do my communicating for me.
CHUCK:
Because writing any sufficiently complicated program isn’t a people problem, is it?
JOE:
Mm-mm.
[Chuckles]
JENN:
The Twitter bot people have something going for them. They don’t even have to create their own content. They just have bots do it.
CHUCK:
Ah. I kind of want to build one now, just for the heck of it.
JENN:
Yeah, so you should do that. And then you’ll probably learn something. And that will be cool, I guess. I don’t know.
CHUCK:
I don’t know. I’m kind of like Joe. There’s nothing left for me to learn.
JENN:
Yeah, you know what? I’m kind of over programming entirely. I feel like all these languages are really tapped out. And everything that we need to be built has been built already. So, if we’re all just recreating the wheel over and over again, then we should just stop and move onto something else.
JAMISON:
Lumberjack.
CHUCK:
Yeah, I want to write a Twitter bot whose name rhymes with fart.
JENN:
[Laughs]
CHUCK:
Anyway, Jamison did you have another question?
JAMISON:
I did. What a fantastic transition, Chuck. [Chuckles] So, I want to talk about your Medium posts or your Medium blog a little bit. You mentioned earlier that you think that sometimes programmers take themselves a little too seriously.
JENN:
All the time.
JAMISON:
My impression is that your satire is trying to shove their faces in that fact and make people realize, maybe this isn’t the most important thing in the world and it’s okay to laugh at. Is that the goal of it?
Or is it just to mess with people?
JENN:
There was no goal when I started writing satire. It was more like I just love telling jokes and I would write it to my friend, a former coworker [named] Nick. And then I started publishing it and I saw the reactions. And then I was able to throw it in their faces. And then it became like, “Okay, there’s an endgame to all of this.” So, I write satirical posts. It gets some laughs. Some people yell at me and I yell back at them and teach them that, “Hey, you shouldn’t be a jerk just because you think somebody was wrong about something.” Because nobody yells at me about writing satire. They yell at me thinking that I’m serious and that I don’t know what I’m talking about and then they’re jerks.
AJ:
That happens to me all the time. You should see the comments for this JS Jabber thing on my Twitter feed.
JENN:
Yeah. It’s really interesting. And I always say that that stuff doesn’t upset me when people call me an idiot or I don’t know what I’m talking about because they’re talking about a character. I get upset that that’s how they act towards people who are trying to be sincere. So, if people were saying that stuff about ‘var t;’ I would be very, very upset because ‘var t;’ is a very personal project. I put a lot of work into it. Medium posts usually take me 10 to 15 minutes to write. And it’s right off the cuff. Most of the time it’s following the responses and responding to those responses.
But there are people who write sincere blog posts and then get that sort of flak. Or you guys have a podcast and you put all this work into it and then people are immediately jumping on your case because they think you’re wrong about something. But there are ways to communicate with humans that is constructive, doesn’t make you look like an asshole, and that doesn’t make someone feel like garbage. Go figure. But we’re developers so we don’t need to know how to talk to other humans. We’ve already been through that.
AJ:
Agreed.
CHUCK:
Alright. Well, should we go ahead and do some picks?
JOE:
I want to ask, before we do that, just about Jenn’s speaking schedule. I know you speak a lot.
JENN:
Yeah. I spoke a lot this past year. And I was telling someone the other day. I’m like, “Oh yeah, I’m going to tone it down next year,” and then I started listing everywhere I was speaking and I was like, “Shit. I’m all over the place.” [Chuckles] I just got back from JSFest where I ran DHTMLConf which is like a satirical conference about the web in the year 2000 which was a lot of fun. I got to curate it and pick the speakers. I ended up giving the keynote because one of my speakers dropped out last minute. And that was fun.
Conf:
Oxford. I’m going to be talking about ‘var t;’. I’m scheduled to speak at LoopConf in May I think it is. That’s the first WordPress developer conference that’s in Vegas. And in October I’m speaking at JSConf: Columbia, not the university, the country. And there are a couple of other places. But my main focus this year will be creating more art. I’m going to be the artist in residency at the Ace Hotel in New York for a day in January. And so for a day, I’ll just be making art, probably not on the computer. And I’m excited about that. And I’m looking forward to doing more things that are nondigital art- related, because again, I’m going to eventually one day just decide that there’s nothing left to be programmed. I’ll just make art for the rest of my life. That’s half a joke. [Chuckles]
JOE:
So, I don’t know if you knew this, but I’m actually one of the organizers for LoopConf.
JENN:
Oh, cool.
JOE:
Yeah.
JENN:
Yeah, I’m super excited about that, because I’ve spoken at a bunch of WordCamps. I spoke at WordCamp SF back in October. And WordCamps are great because they’re super diverse. That’s also the problem with them. I was going to give a pretty technical talk and then my coworker [Adam] was going to be giving a talk about the WordPress API. And I was like, “Okay, well that’s a really technical talk. Everyone that’s technical is going to go to that talk and I’ll be left with people who maybe aren’t so technical, like the bloggers and theme designers and stuff like that.” So, I had to tone down my talk fairly last minute to accommodate that. And it worked out really well. I’m excited that at this conference I can go full technical and talk about the nitty-gritty of some cool things that involve art that I’m building with WordPress.
JOE:
Awesome. Yeah, we’re really excited for it, too. So, it was a really big deal when Ryan told us that you were going to be speaking at it. We were really excited.
JENN:
Yeah, you better make it fun for me.
JOE:
[Chuckles] We’ll do our best. Cool, well anything else that people should know about you before we move on?
JENN:
I am a figment of your imagination. And that’s it. Also, you can find me on Twitter, jennschiffer is my handle. It gets pretty weird there sometimes. Feel free to unfollow or mute me. But don’t tell me that you’re unfollowing me, because nobody cares. And then vart.institute, that’s the domain for my art blog. The next one coming out in January will be my first lady artist, Mary Cassatt, an American impressionist painter. I’m still not entirely sure what I’m going to generate, because impressionist painting is hard to generate in JavaScript. But that’s for me to figure out and hopefully you to enjoy in about a month. So, yeah.
CHUCK:
Alright, cool. Well, let’s go ahead and do some picks. AJ, do you want to start us off with picks?
AJ:
So, I’ve got a great lineup today. First and foremost, Vat19.com, home of the happy lawn gnome and das horn. And I highly recommend watching the music video for das horn because it will completely sell you. I was going to get one for Christmas but they were all sold out. And I see that they’re now back in stock. So, I expect those to be back in stock by the time people hear this.
Also, in terms of utility little useful little gadgets, so if you have a MacBook you may have discovered that every time you stick in a USB key it takes up seven of your USB ports because for some reason they have to make them 11,000 times wider than they need to be. And there are exactly two USB key brands that don’t look like cheap crap that you should get on Amazon. So, I’ll include the links for those. They have a slender one that’s easy to pull out and then a really slender one that is not as easy to pull out but is even more slender. But both of them are very slender and you could put two in at the same time on your MacBook without them touching each other and interfering.
Luigi:
Dream Team’. And for those of you that have loved the greatest RPG of all time, which many people don’t even know about, which is ‘Super Mario RPG’, if you’re a fan of the earlier Final Fantasies and you’re a fan of family-friendly RPGs, I highly recommend checking that out for the Super Nintendo or on an emulator or whatever. But ‘Mario and Luigi: Dream Team’ has that same fun feel and RPG style that ‘Super Mario RPG’ had. It’s not like Paper Mario in that it isn’t super 2D. It’s quasi-3D like ‘Super Mario RPG’ was. And I’m an hour and a half, two hours into it. And I like it so far. So, the end.
CHUCK:
Awesome. Joe, do you have some picks for us?
JOE:
You bet. Pick number one for me is going to be the TV show Gotham. I’ve been watching that recently and I really do enjoy it. I’ve had a fun time. I thought I was going to hate it because I like superhero movies, not movies that happen to be set in the same place as superheroes, or shows I mean, but not ones set in the same place that aren’t about superheroes. But I actually really like this show. It’s been very interesting. So, Gotham’s pick number one.
And pick number two is a book/website called ASmarterWayToLearn.com which is all about learning JavaScript. And it’s like Codecademy in that there are online exercises that you do. Except unlike Codecademy their online exercises actually have a lot of variety to them. And they start off from absolute zero. So, if you know nothing about programming, nothing about JavaScript, this is an awesome way to learn JavaScript. I’m having my daughter go through it to get better at JavaScript. And she’s really, she’s already done Codecademy. And so, doing this she’s found that it’s really cool and a great way to learn JavaScript. So, that’s really nice. You can pick up the eBook off Amazon and then it gives you free access to the website. So, ASmarterWayToLearn.com, that’s my second and final pick.
CHUCK:
Alright. I’ve got a pick this week. It is, and I picked this on the other shows, but I’m just really enjoying it. It’s called ‘Becoming a Key Person of Influence’. It’s a book. And I think this is especially relevant for people who either want to move up in certain areas of their field and be able to influence the conversation. And I think it’s also very relevant to freelancers in finding a niche and being the person in that niche that people go to, to get solutions. So anyway, I’m really enjoying it. I’m about 50% of the way through. I almost never read actual book books. And this one I’ve been reading on the Kindle instead of listening to on Audible because it’s not there. So, it’s so good that I’m actually reading it. Let me put it that way. So, that’s my pick. Jenn, do you have some picks for us?
JENN:
I do, yes. So, we already talked about ‘If Hemingway Wrote JavaScript’ by Angus Croll. That’s one of my favorite books that have come out recently. So, it’s out on No Starch Press which is one of my favorite publishers. So, NoStarch.com/hemingwayjs. If you like to read or if you like literature and programming or you like just either one of those, it’s just really interesting to learn the intersection of them. And it’s beautifully illustrated. The guy who wrote ‘Learn You a Haskell for Great Good!’ illustrated this book. And it’s just beautifully made. So, it’s a good gift. It’s not an O’Reilly book, which just has an illustration on the cover or whatever.
Adobe Creative Suite 3 specifically Photoshop which came out in 2007, I just had it installed on my computer today because I couldn’t get Creative Cloud to work. So, shout-out to CS3. You could probably buy that on eBay.
I mentioned before that I just started using Ember CLI for an Ember app I just started working on. I was doing some Ember stuff at the NBA but CLI wasn’t available. And I just really like this project. And I met Stefan Penner at BrooklynJS, a meetup, last week when I started. The day I started using CLI he was there. And I told him my little project and he was like, “If you have any issues, make a pull request.” It seems like they’re very open to community contributions, which is really refreshing and awesome. So yeah, Ember CLI. The only issue I have with Ember CLI is the website. Ember-cli.com has a hyphen in it. I hate hyphens in domains. But what can you do?
And my last shout-out and pick is there’s this really interesting entrepreneur up and coming named Mark Andreessen. He’s pmarca on Twitter. He likes really nuanced tweets, usually by the dozens.
So, you should follow him. And yeah, that’s it.
CHUCK:
Very cool. Well, thanks for coming. Like we said in the chat, we’ve been wanting to talk to you for a while. So, this has been a lot of fun.
JENN:
Awesome. I had fun, too.
CHUCK:
You’re a fun person to talk to. So, I really appreciate you coming on the show. And hopefully the listeners enjoy it, too.
JENN:
Yeah, they better.
CHUCK:
Yeah, no kidding. Alright well, we’ll wrap up the show then. And we’ll catch you all next week.
[Have you noticed that a lot of developers always land the job they interview for? Are you worried that someone else just landed your dream job? John Sonmez can show you how to do this with the course ‘How to Market Yourself as a Software Developer’. Go to DevCareerBoost.com and sign up using the code JJABBER to get
$100 off.]
[This episode is sponsored by MadGlory. You’ve been building software for a long time and sometimes it’s get a little overwhelming. Work piles up, hiring sucks, and it’s hard to get projects out the door. Check out MadGlory. They’re a small shop with experience shipping big products. They’re smart, dedicated, will augment your team and work as hard as you do. Find them online at MadGlory.com or on Twitter at MadGlory.]
[Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.]
[Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit CacheFly.com to learn more.]
[Do you wish you could be part of the discussion on JavaScript Jabber? Do you have a burning question for one of our guests? Now you can join the action at our membership forum. You can sign up at
JavaScriptJabber.com/jabber and there you can join discussions with the regular panelists and our guests.]