The Changelog: Software Development, Open Source - The original Changelog Weekly (Interview)

Episode Date: November 25, 2009

This goes WAAAAY back in the archive of The Changelog. So far back, that our audio was down-right horrible and you can tell we were nervous to even be recording. We were green and wet behind the ears ...when it came to producing a podcast (we had no clue).

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to The Change Log, episode 0.0.2. Today is November 25th, 2009. I am Adam Stachowiak. And I'm Winn Netherland. So what is at the changelog.com right now, Winn? About five stories right now. But no, we've got a nice little TumbleLog set up on Tumblr. We thought, hey, in the interest of iterating on this deal
Starting point is 00:00:37 and starting small and letting it organically grow or organically die, whatever the case may be, to kind of leverage some of the free tools out there. And we've got a TumbleLog set up that has some nifty GitHub integration. So when you post a link to a GitHub repo and tag it as GitHub, I can automatically pull in the watchers and fork statistics for that repo. That's pretty cool because I see underscore.js listed there and jam it, and they both have the watchers.
Starting point is 00:01:12 And that's real-time, right? It is real-time, and it's about four or five lines of jQuery. And I got the idea from GitHub's new version 2 of their API at develop.github.com. And they've got some advanced features that require authentication, API keys, all that good stuff. But this was pretty straightforward, the public information that you can get with just an unauthenticated call via a jQuery callback. Very simple, very cool, though.
Starting point is 00:01:42 How long did it take you? That feature, probably an hour, and that's probably most of it was fighting spelling issues. Oh, boy. So you're a bad speller? Those are always fun when you're depending on a CSS class and either CSS for markup or in jQuery for your selectors to act on a particular element,
Starting point is 00:02:05 and you're wondering why in the heck it's not coming back, and you figure out you've got a misspelling in your selector. That's the thing about jQuery, though. If you've done any JavaScript development, and I'm sure you've run into this, if you misspell that selector, it doesn't throw any sort of error or anything. It just, nothing happens. Well, it doesn't know what to target. I know, but I mean, it's gracefully just eating the error
Starting point is 00:02:26 so you're left to pull your hair out in this whole changelog changelog show setup I've probably misspelled change I've actually dropped the E off the end of change about a dozen times so far so don't feel bad
Starting point is 00:02:40 that's ok you're still learning how to spell squirrel tune in to Adam's latest episode of the Web 2.0 show for a more in-depth look at how to spell font squirrel. Yeah. It's actually not the latest because I'm quick like that. It's actually the episode previous to the latest. Uh-oh, I'm behind. You are.
Starting point is 00:02:58 I'm kind of like I'm behind on your blog. I can't keep up with your blog. Endless stream of information from Wynn's mind into the blog. Jeez. So anyways, what's our lineup? The lineup this week, let's start with a couple of projects from Document Cloud. They kind of burst on the scene a couple of weeks ago with underscore.js. I've seen this. Yeah, yeah. Pretty cool little JavaScript framework that are billing themselves as the tie to jQuery's tux. I think that's a good way of putting it.
Starting point is 00:03:31 Yeah, I like that. You know, I'm a Rubyist. I know you are too. Oh, somewhat. I work in the Ruby land. I play one on radio. Right. So, you know, if you come from Ruby
Starting point is 00:03:43 and you dive back into the client-side JavaScript, you miss a lot of those convenience functions for arrays and collections and things that you get from Ruby, like, you know, first and last and unique and flatten, those just things we take for granted that make arrays in Ruby so sweet. This project aims to add those back, you know, really kind of fills a gap. If you ever worked with Prototype.js, they have a lot of those features built into that JavaScript framework. And that was one of the things that I noticed coming to jQuery from Prototype was just kind of the lack of array support. There's some rudimentary array support in there around their wrap set for DOM elements and things. But on the array side, it's kind of lacking. And Underscore does a good job of grafting on some of those methods.
Starting point is 00:04:35 You can check it out at documentcloud.github.com slash underscore. Very nice, nicely styled documentation as well. Yeah. Comment on that when we first found this project. That's the simplicity of that document, that design for that page.
Starting point is 00:04:55 I'm noticing something, too, on their readme at the GitHub repo. They either stole it directly from Handcrafted or they're just that cool. I don't know which, but if you're looking to read me. The same ASCII art for the logo? Yep. I think it's the same exact font. I think they just had to copy. Maybe they're just, yeah, I guess when you're that good, copy it, right?
Starting point is 00:05:20 You know, one other cool feature that Underscore has is templating. Oh? I've seen this in a couple other frameworks. Never had a real use for it. I guess I've always been a – my pattern has always been to create markup on the server and then send that down to the client where I can. But, you know, there's instances when you build a lot of elements on the fly on the client that you would just like to specify a template and have JavaScript do the heavy lifting for you.
Starting point is 00:05:49 And this allows the ability to do that. And the syntax for binding variables within those templates is very familiar if you know ASP or Ruby, the ERB syntax with the less than percent equal syntax. Right. I know you're such a big ERB fan. Oh, yeah. You saw my tweets today, right? I did, about Hamill. Yeah.
Starting point is 00:06:13 It's like going back in time. I did. I really hated it because as I take a big swig of my coffee at 9 o'clock, 9.30 at night, I was really PO'd that I had to take this beautiful Hamill view. And if you don't know what Hamill is, tune into the previous episode to this. But, you know, I hated it. It was a beautiful Hamill view.
Starting point is 00:06:38 I had to go and put an ERB, and I felt like it was really, really painful. I was upset. I feel your pain. I feel your pain. So templating. Templating is a nice way to just specify a template. I guess the use case would be, let's say you had a list of elements and you needed to bind an unordered list, a set of li elements for each item in an array,
Starting point is 00:07:09 then you could just specify a template that had placeholders in there for the variables coming from your JavaScript object, and you would just call underscore dot template, pass in your data, and pass in your template, and you get a nice HTML fragment for your LI elements to put in the list. It's pretty cool. Well, that's not really that bad if you're following a certain convention. You're not really creating content. You're just frameworking your HTML markup.
Starting point is 00:07:37 That's right. That's right. Which isn't a bad thing. It's saving time. Another cool feature is chaining. So do a lot of jquery adam yeah yeah fair bit so one of the coolest things that most people like when they come to jquery is is the chaining where you can you know the wrap set is returned at the end of every method call so that
Starting point is 00:07:57 you can just keep chaining methods together like add class append append, remove, things like that, right? Right. Underscore supports that as well. So you can call underscore, pass in your object called.chain, and then you can call sort map first value. And essentially, you queue up these method calls, and then when you call.value at the end, it executes it and passes you back a value. so you can chain up multiple method calls in a row. It's really, really neat.
Starting point is 00:08:42 You know, when we discovered our second project, Jamit, I remember this past week clicking on the link and my first was kind of taken aback. It's like somebody ripped off Document Cloud's excellent documentation site. Just changed it to blue. Then I got to looking a little closer and found out this is another project from Document Cloud. We're excited. We're going to talk to these guys, I believe, next week. Yeah. Upcoming show, so be sure and tune in for that. But Jamit is, as they call it,
Starting point is 00:09:10 an industrial-strength asset packaging plug-in for Rails. And so essentially what this is, if you've used Asset Packager or other plug-ins in the Rails space, it's a way to tidy up and compress and concatenate those JavaScript plugins, all those jQuery plugins that you use in your CSS files. Yeah, I've used it, yeah. And it gives you a couple of files to download, one JavaScript file, one CSS file. This aims to do the same thing there,
Starting point is 00:09:38 but also build in a couple of new features like gzipping, which is zipping up those assets and serving them compressed over the wire, so you're actually sending less bytes over the wire. Most modern browsers support unzipping those on the fly, so it really cuts down on bandwidth. All right, so you're probably making the Yahoo YSlow people that really cling to those rule sets that Yahoo put out there really, really happy. I'm hopeful I can score an A on my website with that YSlow people that really cling to those rule sets that Yahoo put out there. Really, really happy. I'm hopeful I can score an A on my website
Starting point is 00:10:08 with that YSlow score now. That's hard. I know. It's like, hey, I'm a C plus. Sweet. So the other big feature is something that was new to me, and that's embedding your image assets
Starting point is 00:10:24 within your style sheet using either the data URI method or the MHTML image embedding method. Oh, wow. This is really space age material right here. This allows you to take all those binary assets and essentially embed them in your style sheet, which I have mixed feelings about. I guess the proof's in the pudding, but I want to play with this particular plug-in and see if there's any gotchas. Just my gut feel tells me that's a little too cool for school. How about you?
Starting point is 00:10:55 Well, when we talk to them, I'm sure that they'll give us a good reason why. Every time you do something like this, you're always solving some sort of problem. So I can only imagine they would take the time to do it either because it's just that cool to do, for one, or they really needed it. So I'm really curious to see what kind of solution,
Starting point is 00:11:11 what they were trying to solve by doing that. I look forward to speaking with those guys. In terms of mixed feelings, whatever works. I think in today's world, we've got so stuck. It's good to have conventions. It's good to have web standards. It's good to have conventions. It's good to have web standards. It's good to have these things.
Starting point is 00:11:28 But at the same time, they do put you in a box, and sometimes it's nice to break out. That's true. That's true. Alrighty. Next up, Google Go. So you've got some exciting news about this particular one. Yeah, scored an interview with them. I'm looking forward to it because I want to understand exactly what this thing is.
Starting point is 00:11:48 Yeah. Everybody's talking about it. Yeah, a lot of people are. It came out, what, a week and a half ago? Yeah, it did. And it's supposed to be kind of a cross between a dynamic programming language and a statically typed programming language. I hear they have a bias against Windows. They do.
Starting point is 00:12:04 They do. They do. From the FAQ, let me pull that up and give that a go. We understand that a significant fraction of computers in the world run Windows. It would be great if those computers could run Go programs. However, the Go team is small and we don't have the resources to do a Windows port at the moment. So, wow, significant fraction of computers in the world run Windows. Did you know about this, Adam?
Starting point is 00:12:32 Yeah, I didn't. I thought it was a fairly large fraction i need to know how uh significant it is see if i need to start doing some testing in ie yeah well you know maybe it also ties into the fact that you know chrome os is coming out and it's really hitting hard with the netbooks and it's you know i watched it where this is going to go off topic for just a second but i watched the uh the video on chrome os today and i was like why would i want to use this and what's so cool about it and really it takes everything away about the operating system that is the operating system and just trims it down to the browser and getting on the internet which is what you most want to do. Well, I watched this video, and then I installed some software, and I had to restart. And I was really, really excited to get back to work because I was just so desperate to
Starting point is 00:13:13 take that Hamill and take it and turn it into ERB. I was really racing fast to restart this computer and get back into my dev mode. And I swear, it took me forever. Ten minutes? If it's my MacBook or something, I don't know. But I felt the pain. So maybe it's something to do with the Chrome OS coming out and all that. Chrome OS does look promising as well.
Starting point is 00:13:42 It's one to keep on the radar. Gruber had, you ever read Daring Fireball? A little bit, yeah. Yeah, he, interesting comment this past week, saying that it probably is a better fit for a second machine, which I totally can see that. And I think that is the use case for a lot of these netbooks. You know, it's your travel machine.
Starting point is 00:14:00 It's not necessarily your main productivity unit. Right. I like to just have the opportunity to go get a netbook. I haven't really had a need for one. I guess if I'm traveling, netbook would be nice. I don't know that I could get used to the small screen. Everybody talks about the small form factor. And this, as I'm playing with my iPhone in my other hand,
Starting point is 00:14:25 which has an extremely small screen. But as far as a netbook, there's sometimes even when 1,400 pixels isn't wide enough for me and having something significantly less than that, I'm not sure how productive I could be with it. Yeah. I wasn't really a big fan of it.
Starting point is 00:14:44 That's why I never really buckled down and bought a regular macbook because i always thought if i'm going to spend the money on a computer i'm going to spend the money on something with at least you know at least a 15 inch screen you know why i did the original macbook the keyboard i love the flat keys on the original MacBook for some reason I just it felt more comfortable to me when I'm typing and I was so tickled when the new
Starting point is 00:15:13 MacBook Pro line came out with the same flat keys so I went and bought me one of those bad boys cool what's right cool what's uh what's right what's going on with browsers i mean we're on the on the talk of chrome os what about firefox firefox dropped beta 2 of 3.6 why should we care
Starting point is 00:15:41 but because as uh web developers it's got some cool new features oh you know you love new css features yeah why not just give me more to do more things to plug in there that uh don't work in ie right this is um your chance to thumb ie in the eye and say take that mr ie user you can't do uh sizes, and you can't do linear gradients and radial gradients. You can't do multiple background images, things of that sort. There's also new font face support for the WOFF format. Heard of this one?
Starting point is 00:16:19 Also known as WAFF. WAFF. Yeah, that same podcast you referenced earlier with FontSquirrel, me and Ethan Dunn, we talked about that stuff. Is there an L-E-T-L-D, top-level domain? I'm waiting for somebody to register waffle.com and rival FontSquirrel. There's nothing but WAF format fonts. We'll see. only time will tell
Starting point is 00:16:47 somebody's on domain or as we speak HTML5 video now supports poster frames in Firefox so that's pretty cool that you can specify what image will be the poster frame which is that little thumbnail that you see when the video's about to start
Starting point is 00:17:03 you can also do multiple file uploads with the HTML input element. So I'm not sure how they're swinging that. Normally that's something you've got to resort to Flash to do. Ever code up one of those? No, not too often. I was never much of a Flash guy. Yeah, it's usually I'm not either, was never much of a flash guy. Yeah. It's usually, uh, I'm not either, but it's usually the best way to handle that because,
Starting point is 00:17:27 um, I know you're a user experience guy and it's always, um, a pain to, um, let a user, you know, upload their,
Starting point is 00:17:36 uh, their three files just to tell them, Hey, after you sat there and watch this thing for 30 minutes that they're not the right format. I do like that. Uh, if you're talking about the flash, uh, you're talking about the upload progress?
Starting point is 00:17:48 Exactly, yeah. Yeah, I like that. I've never implemented one of those, but those are very cool. It looks like this is now baked into the browser, that type of functionality, which hopefully that'll be another thing. That's the sort of thing that you would expect should be part of the browser and not have to rely on third-party plug-ins to do something so basic. Yeah, that's silly.
Starting point is 00:18:09 I would have just imagined that it should be part of the browser, but you know it's not. Well, that is it for the changelog this week. No, actually, we should pop one more in there, shouldn't we? While we were talking about that CSS stuff, we were going to talk about something very, very cool that got lots and lots of press this past couple days. Oh, Brandon Mathis' fancy buttons.
Starting point is 00:18:31 Yeah, yeah. That is cool. Have you used it? No, I haven't made any use of it, but I've seen a demonstration of it firsthand, and I think Brandon is a very smart guy when it comes to using SAS and using Compass in the right ways. And I think it's really cool because it changes the luminosity. It has fallback support for that same blog post you referenced with Squeegee using a PNG with luminosity and whatnot.
Starting point is 00:19:11 It's really a cool thing like you just pop in one color and it sets the border color the hover color the active state color of the button it's really really got a lot of nice features so i can see why he's got a lot of traffic about it i was checking out another one of brandon's sass plugins that you had pointed me to this weekend about using CSS sprites. Oh, yeah. Implemented a CSS sprite on the changelog icons. If you go out to the changelog.com and you'll see the icons that we have for each post, that's a CSS sprite,
Starting point is 00:19:37 which is essentially one big image for all of your icons. And then you specify which icon you want to load based on background position, and that cuts down on network transfers. Brennan had a cool plug-in to do this with Compass that I'm anxious to use in my next Compass project. Too bad we didn't get a chance to use it on the changelog, but it is another promising Compass plug-in from
Starting point is 00:20:05 Mr. Mathis. Mr. Mathis. He's got lots of stuff going into Compass Core. Between that, some of his work with Colors, the Compass Colors extension, he's doing pretty well. Busy man. Busy, busy, busy.
Starting point is 00:20:22 Alright, what else we got? Is that it? Is that the show? I think that's it, a short Thanksgiving week. Well, there you go. Well, in a few days, we'll be talking to Google and talking to you, Rob, about Go. That should be an awesome conversation. We'll definitely come back and spread some good love in there, enjoy that show. And the week after that, talking to Doc in the cloud, and we'll get some of those questions we brought up earlier answered.
Starting point is 00:20:45 Absolutely. Absolutely. Absolutely. Alrighty. Happy Thanksgiving, everyone. Take care. Thank you for listening to this edition of the change log. Be sure to tune in weekly for what's fresh and new in open source.
Starting point is 00:21:05 Also visit the changelog.com to follow along, subscribe to the feed and more. Thank you for listening.

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