Author: Manuel Lemos
Posted on: 2011-11-30
Listen to the podcast or read to the audio transcript now to know more about these topics of discussion.
Download Size: 24MB Listeners: 1668
Introduction music: Riviera by Ernani Joppert, São Paulo, Brazil
RSS 2.0 feed compliant with iTunes:
Occupy Flash manifesto site
- Adobe handing over Flex development to Apache Foundation
Googlebot now has the ability to execute AJAX/JS to index some dynamic comments
- Timeline.js - Animation library with a GUI timeline for fast editing
Interview with Dino Gambone (0:55)
Animation Timeline Editing with Timeline.js (39:48)
Latest Objects Published in the JSClasses site (47:24)
Articles in the latest issue of JSMag magazine (54:55)
Michael Kimsal: (Howls) Good morning.
Manuel Lemos: New special effects.
Michael Kimsal: That was my sound board. Good morning.
Manuel Lemos: How are you doing? I suppose you are quite fine.
Michael Kimsal: I'm doing excellent.
Interview with Dino Gambone (0:55)
Manuel Lemos: That's what I can see. Well, today we have a guest on the show, Dino Gambone, and he also is a contributor of the JS Classes site as well as JSMag magazine, hello Dino, how are you doing?
Dino Gambone: Hello, everyone, a pleasure to be with you guys today.
Michael Kimsal: So, Dino, where are you coming in from, where are you based?
Dino Gambone: I am located outside of Philadelphia, Pennsylvania, in a nice little suburb area north of Philadelphia.
Michael Kimsal: And what are you wearing?
Dino Gambone: A work outfit, so I'm wearing a dress shirt and pants.
Michael Kimsal: Okay, there you go, you got it right from the horse's mouth. So, Manuel, it's your turn to ask a question.
Manuel Lemos: Yeah, that was a quite relevant question.
Michael Kimsal: It's all in how you say it because I could have said, hey Dino, what are you wearing, (purring).
Manuel Lemos: I'm glad you didn't.
Michael Kimsal: Okay, so back to you, Manuel.
Manuel Lemos: Well, Dino, you have been as I mentioned a contributor, actually you just started being a contributor of the JS Classes site and wrote some articles to the JSMag magazine.
Michael Kimsal: Awesome.
Basically we moved to a model that put as much work on the client, distribute as much of the workload to the client as possible using AJAX just to get the data back and forth.
As far as what drives me to do what I do with Michael and actually started writing a blog, it's my passion, I love writing code, I've been doing web development for over 15 years, that means I've written websites for Netscape4 and IE3 when I first started out and that's what we're dealing with.
And unfortunately back then we didn't really have as much compatibility between the browsers as we do now which is a little scared when you think about it, so it's always something I've really just loved doing.
Michael Kimsal: That certainly has changed. I think those of us who have been in the web world have always liked web apps, you'd like to say well the Web is always the best choice because it's distributed, because of centralized security, whatever it may be, but there's always been a lot of things that you couldn't easily do, even things like drag and drop file upload.
Dino Gambone: That's the one thing that always, you know, I always ask them up front, do you need to do anything with files, if you don't we're doing that as a web app.
Michael Kimsal: Yeah. But I think as you mentioned HTML5, as we get more progress with future standards, as we get more capable browsers, things like offline storage, local databases, the last few years we've seen a lot of work earlier with Google Gears and then offline storage, local storage, local query ability, all those sorts of things that seemed you had to use a desktop app for those things ten years ago and you don't have to now.
There may still be legitimate reasons whether it's security or distribution, there are certainly still some reasons to write traditional desktop client apps, but the technology of the Web, the browser, and what you can do locally has in some ways it doesn't feel that radical, but you go back 15 years, I go back to the mid-90's as well, if you think about what we can do now, what we take for granted as commonplace now it has been pretty radical, I don't think it's really felt like it year-to-year so much.
AJAX, people don't realize, one, AJAX is a Microsoft invention, so Microsoft did contribute stuff to it until, you know, it really wasn't used heavily until more recently when people are really incorporating into all the browsers, and now you have the whole, alright, we have WebSockets because Ajax is great for getting realtime information sending it to the server and getting a response, but you don't always want to ping the server, you want to get that push back to the client, WebSockets fills that void. There's workarounds in the past, but nothing beats a true native implementation.
Michael Kimsal: Well, now that you're brining up push, I have visions of the three -inch large Netscape push book with the green spine from 1996, what goes around comes around, what is old again is new again.
Long polling, I'm thinking PointCast, that's the other thing I was thinking of, oh, it's push technology, no, it's really just long pole. But that's a whole other kettle of fish which I think some of us, Manuel and I, have kind of beat that to death in the past a bit.
You're welcome to beat the corpse a little more, but in some ways those of us that have been doing this, I know Manuel's been doing this for what, 12, 15 years or so, web stuff, you've been around for a long time, it does feel like we're seeing a resurgence of ideas that were popular 10, 15 years ago.
You never expected it, it was never written for that, it just happened to be there, just come out of nowhere.
Anyway, I've just ranted there a little too much but I think, as you're saying, these things weren't necessarily designed in, but like many good languages they can be flexible enough to have good practices applied to them and they fit. There you go.
Manuel Lemos: Well, I had actually a question related with an object that Dino sent to the site. We will get back to that object later, but my question is related with what you do.
Dino Gambone: I do. If anyone's read the article that I've written for JsMag they will see that all my articles are very heavy game background. Game development is something I've done on the side since I've been in college when I first started playing with muds which are basically tech-based games that ran on a giant UNIX system, you know, just type space, and it's more kind of like those Zork games where you say go east, go west, go up things like that.
Michael Kimsal: Go old Zork, yeah.
Dino Gambone: Yep. So that really has always been a passion of mine was game development and building just.. I'm not looking to build the next World of Warcraft, the next Modern Warfare, I just want to build something that people enjoy and you know what, if it gets great reviews fine, it's just something I love doing personally.
Manuel Lemos: So that's a hobby, right, or something related with your actual work?
Dino Gambone: Unfortunately you can't make. unless you're in the right position you can't really make a great career out of game development right now, so my professional job is actually more of the pharma-medical fields.
Manuel Lemos: Oh, I see.
Dino Gambone: Yeah, and data analytics, that's where I'm currently employed right now. I've been doing game development for quite some time, but it's never been an official production release of any game at this point.
I've helped contribute to the community in that whole isometric field, isometric is that -- I don't know if anyone played Diablo back in the mid to late 90's, that kind of 45 degree down onto the character, that's isometrics.
So before 3D graphics was really prominent people wanted to have 3D-like feel so they did isometric with basically 2D tiles just kind of arranged slightly differently.
Did you guys see this site and also follow the news about the Adobe initiative? What did you think?
Michael Kimsal: Dino, you can go first.
Dino Gambone: Alright, I'll go first. Steve Jobs had it right I guess when he released the iPhone he was like no Flash because it's big, it's bloated, buggy, it slow. The Web is going to evolve to the point where you don't need Flash anymore.
So it's about time, thanks to Flash for all they've done, but like every technology that we've worked on in the past eventually grows old and needs to be replaced with something else new, it's about time to happen.
Michael Kimsal: But how do you really feel?
Dino Gambone: I'm going to miss it. I'm going to cry. No. I mean in all reality I mean was this really a shock to anyone?
Michael Kimsal: I'll say it was a shock to me not that it happened but maybe at the time, the timing that it did happen. I always expect things to happen, the things like that that larger companies will hold on a bit longer.
Dino Gambone: Well, I will give Adobe credit for seeing the writing on the wall and not really trying to keep it on life support because there is no way Flash could win in this battle between HTML 5 and Flash, it's just impossible, too many people are gung ho about getting HTML5 and removing Flash.
Michael Kimsal: All this stuff can't, it's not 100% replaceable at this point.
Manuel Lemos: Yeah. So I sort of agree with Michael it's probably not yet the right time to do that, on the other hand it's also worth noticing that this news from Adobe that they are ceasing the development of the mobile plugin, I mean plugin for mobile browsers.
Dino Gambone: They're ceasing the development of the mobile player correct, it's not just Flash completely, it's the player.
Manuel Lemos: No, it's just for mobile browsers, they'll continue on the desktop. Actually I just received a new version of this for Linux, it appeared in the updates and, well, that's as much as we would like to make Flash obsolete the question is it really totally obsolete already?
Dino Gambone: Let me ask you this question. You mentioned recording the audios and videos in Flash. Do you use Flash to record your audio and video?
Manuel Lemos: I don't work in that area but people that do they complain about that.
Michael Kimsal: Well, yeah, things like Justin.tv there's some others, there's a podcast service that lets people call in and do stuff, it's over the phone but I believe you can also have people contribute over Flash, but the streaming cams, hey, all the sex cams out there, what are they gonna do? I didn't actually bring that up, did I?
Manuel Lemos: Those probably don't use the mobile for recording because playback can be done with other means.
Dino Gambone: You think about the recording piece, if I were someone who needs to record audio/video, you know Flash is one of the last of my choices. Now I've seen I think UStream, no, Livestream has like a studio that, or no, Procaster, that's who it is, Procaster has a studio that it is Flash based and you can kind of do a little bit of video streaming, management, tools, things like that, and that is Flash based, but they also have a native desktop app that does it.
Michael Kimsal: Yeah, if you can install the native app, but if you want to distribute your recording ability or your streaming ability, anybody on these devices, anybody just install this plugin.
I did streaming stuff a few years ago and we ended up using Windows Media for everything because the Flash stuff, while I could build a Flash thing the native encoder, video encoder, was just not good.
Now, On2 had an awesome Flash based video encoder, a separate codec, but they charged you something like 50 cents a minute to encode or per encoded minute, so we went back to Windows media which is good enough, but that was still you're going to have these Windows controls downloaded through your browser and then you can stream up.
So every six months or a year there's fewer requirements that this is the only way you can do this is in Flash, but until we see good audio support and good video support for creating, not just consuming but for being a content creator, until we see that from the browsers, Flash and probably Silverlight to some extent will be around for a while.
What I am afraid may happen is that we'll end up with the same level of support for audio and video content creation in the browser as we ended up with with Java on the client which was a completely sorry state of just abandoned crap, and I hope we don't see that, but in some cases I wonder what the incentive for...
In some sense nobody can tell me that between Mozilla, Apple, Google, Opera, whoever, they never understood that anybody has any need to record audio and stream audio up to a server, or video, that just never crossed their mind, the combined engineering power of those companies and the pockets of those companies is massive, massively outweigh Adobe.
And yet none of them have... I won't even say they haven't made it a priority, they haven't even made it anything that they've even talked about as far as I can tell. So as much as Adobe's been the whipping boy for everybody for a long time they still are providing things that no one else even seems ready to touch, there I go, I've said it.
Dino Gambone: Complex animation how, though, I mean DOM script already...
Manuel Lemos: For instance those advertising animations that once you know how you see a lot of graphics going around just to grab the attention of the user, and all that is consuming resources because you have to animate all those graphics that are in there.
So what I think is that people are trying to blame Flash for all these problems, but in the end the fault is on the people that create those Flash based movies.
Michael Kimsal: And I think we'll probably go through at least a period where it's harder to get rid of some of those things because right now people can do ad block and say let me just block any Flash, I want a Flash block, I don't want any Flash because I'm just going to see crap.
Michael Kimsal: But now we're putting that into somebody else's hands instead of giving the end user control and saying I want this, I don't want this, now you're ceding control of your browsing experience, hey, to Google.
Manuel Lemos: Well, I was talking about ad blocking not exactly the production of those content.
Manuel Lemos: Yeah.
Manuel Lemos: Right.
But anybody that's chosen Flex in the past six months or a year and probably still developing stuff, they've tied themselves to a long term loser unfortunately.
Dino Gambone: Is Adobe still supporting Air?
Manuel Lemos: Yes.
Michael Kimsal: Right, but untangling that somebody starting with an Adobe stack six months from now and they have some HTML tool and it's all great it's going to be fine for them, but anybody that has current stuff that wants to transition it or keep maintaining it, it's going to get ugly I think, very, very painful.
Dino Gambone: Well, good thing they have Photoshop
Michael Kimsal: Oh, yeah, yes, except for Photoshop.
Michael Kimsal: Yeah, can I mention the next one on the list?
Manuel Lemos: Okay.
Michael Kimsal: Hmm-mm.
Michael Kimsal: Discuss, and so on, yeah.
And, well, I develop most of my stuff in PHP, and even in PHP I have not used anything related code coverage despite I reckon its value. Have you guys been using any code coverage tools for any language?
And you know the one thing I have to do with the client side stuff with my company is you know you're going to be hitting, what's the rule, it's like 9% of the time you're running 10% of your code, if you can really optimize that 10%, and this tool seems like it will help narrow down where that 10% is, then you can really develop very responsive and rich front ends.
Michael Kimsal: Yeah. I'm looking forward to doing a bit more with it probably December some time. We have an interview, I'm not sure how extensive the interview will be, but we have an interview with the ScriptCover team such as they are, coming up in next month's JsMag.
So I haven't seen the final thing yet but I'm hoping that there's something interesting in there beyond just what they put in their blog posts so far, because the last blog post I saw for them was the end of October and I don't know how much more progress they've done so far.
Manuel Lemos: Yeah, this is a Google project, right?
Michael Kimsal: Yeah.
Manuel Lemos: Yeah. Well, we'll keep an eye on this because it's certainly very interesting, especially those that are more focused on test driven development.
Michael Kimsal: Sure.
Animation Timeline Editing with Timeline.js (39:48)
This sort of reminds me of the way that web designers use the Flash tools for putting together their animations, and just to give a good idea of how it is going to appear and makes the process of editing animations quite fast to do and very easy to see what you are doing.
Have you guys checked out this library? What do you think about it?
Dino Gambone: I was playing around with the... actually I still am playing around with the demo that they have on the web site, it's very Premiere-like, if anyone's ever done any video management it's got that same kind of feel, and I really love when people put together demos that are just this rich UI.
I've been playing around with it for the past hour, you know, adding new break points, and it looks interesting, I'm not sure exactly where I would use it, but I'm sure there are plenty of people who would look at this and this would fit a specific need, even the author said he had a specific need.
Where the way he put this together is it's basically all stored on a local storage and you do it all kind of right then and there, it kind of cycles, it loops through the animations and you can see your changes without actually having to go and refresh and going back to an editor and refresh, very, very cool app.
Manuel Lemos: I think this editor, this GUI based editor, is not meant to be used in production animations, just for editing.
Manuel Lemos: Probably just for the editing.
Dino Gambone: Anyone listening to the podcast probably doesn't use IE8.
Michael Kimsal: Yeah, it's a concern but it's probably a somewhat short-lived one, certainly this would be something to use for internal or Internet sort of apps, being able to write something like this and use this, or this is something I'm sure will be improved over time, I'm sure there will be more features at some point, more compatibility, a year from now more people using IE9 and that concern goes away or is lessened, but certainly you can never be 100% compatible, but hopefully we'll start seeing more rapid iteration from the IE team as well too.
Manuel Lemos: But probably it's not that much of a concern because, I didn't check the library, but I assume there's probably a part that is for editing and a part for runtime, I mean to execute the actual animations.
And that part probably does not need Canvas because unless there is some animation effect that relies on the use of a Canvas object I don't know, but that's a reasonable assumption I suppose.
Anyway, moving on with our podcast now we are reaching the end, it's time to comment on the latest objects that have published in JS Classes site, but first I would like to comment briefly about a development that was done in JS Classes site and also in PHP Classes site because both sites share the same code base.
And what was just released is the support for importing packages from Git repositories, so this concerns mainly the authors of packages, classes, libraries that are published in these sites. And this year I start adding support for this because some authors have very large packages and using the traditional method of uploading each file one at a time would be quite painful.
I can talk about it myself because I have submitted a lot of packages, I have the patience to submit them one file at a time. And this year it was introduced as a support to import packages from version control repositories. It started with CVS and then Subversion and now Git.
Git and also Subversion are quite popular these days, Git is growing a lot in popularity, I think mainly due to the popularity of GitHub that made it very easy and people, developers, liked it a lot to keep their development in there because it is easy to share and for others to fork thanks to the version control capabilities of Git.
And now with this support to be able to import packages from Git repositories, not just GitHub, any other, they're just a few types of repositories that need some work to make it be able to import from them, but any Git repository will be fully supported.
Anyway, the message I want to give with this is just if you are a developer that has been willing to submit your packages to get greater exposure to your work in JS Classes site and as well PHP Classes site, now you can import your packages if you have them hosted in Git repositories.
Michael Kimsal: Cool.
Latest Objects Published in the JSClasses site (47:24)
Manuel Lemos: And now actually we'll be talking about the latest classes that we've been seeing on the JS Classes site. What would you guys like to comment about? Oh, I remember, Dino has his own class that he actually mentioned.
Michael Kimsal: Sure. Well, there's two kind of quick that I want to give a shout out to, one is Michele Andreoli from Italy, and he put together a Corners Detector class which will... it's a jQuery plugin so you need jQuery, it just works on top of that, or yeah I guess I'd say on top of that, and this gives you the ability to return coordinates from... or to detect if one element is inside of another, it will tell if the coordinates are inside the boundary of another one or not, also like to move stuff around.
And then also funnily enough Timer which I think... I don't know if we talked about it last month or not, but I'm in the market for a timer class for a particular project and was searching around and came on this one and though I'd mention it, this is Jeff Martin from the United States, always got to give a shout out to people from the U.S., so, carry on.
Manuel Lemos: Well, now it's time for you, Dino, to comment a bit about your class.
Dino Gambone: Very well. This class is from, let me see if I pronounce his name right, Dino Gambone, yep, that's it.
Michael Kimsal: Yep.
Dino Gambone: And from the United States, look at that.
Manuel Lemos: Oh, that's great.
Dino Gambone: But what this Spatial Hash is in typical 2D games you have objects flying around everywhere, thousands of them, and basically when you need to figure out, you know, am I colliding, I the flyer colliding with any other object, you need a quick way of basically iterating through the multitude of objects in the world and figure out, okay, these are the guys I'm actually colliding with if any.
The idea of the Spatial Hash you can basically create these buckets, you know, and the bucket can be a certain size, you pick the size. So let's just per se you have a 1000 x 1000 pixel world and you create buckets of 100 pixels, now basically when an object moves it gets placed into a bucket, if it happens to cross boundaries of one bucket it just gets placed in two buckets.
The idea is that I only now need to worry about buckets that I'm in and not have to check every object in the world. Now a couple people asked for a demo, Michael Shultz and Carl Bailey both asked for demos, I will provide demo, it's actually being used in the next article for JsMag that I'm writing which is a part two, but I'll leave that up to Michael to introduce.
Michael Kimsal: Oh.
Manuel Lemos: A mention to your magazine, right. Well, I think we'll talk ahead a bit about it. On my part I would just like to comment on a few other classes very briefly. As always we keep having great contributions from Arturs Sosins from Latvia.
This time he sent several of them but I would like to highlight in particular this Light source class, actually it was published right at the end of last month but I think we did not comment on it then, but basically what this does is emulate a sort of light that is applied on the elements of a page, so when there is a light on solid elements there is some shadow. So this object uses some CSS properties to make the shadow be projected to a certain distance depending on the position of the light.
And this provides a quite awesome effect that is very impressive to see, and I strongly recommend everybody to take a look, specifically at this object.
We had other objects, there is also Tmatrix also from Arturs Sosins that is basically meant to manipulate transformation matrices of a web page element that basically define how elements in the page can be rotated or skewed or scaled, and this also concerns CSS3 I think, the latest properties that were introduced with that CSS version.
Other than that we also had another object from Arturs Sosins, Texpand, which basically is a very simple way to obtain that effect of automatically expanding the area of text area input while the user is typing stuff inside of it.
Dino Gambone: A very neat feature indeed. If you ever do web, I mean form development and you have a text area you definitely need that kind of functionality.
Manuel Lemos: Well, for those that are used to frequent Facebook, every time you enter a comment, not just Facebook, other social networks and other types of sites, that's the effect that you can see when you type stuff on your comment, and as your comment grow it starts expanding.
And in this case this object that Arturs developed also is able to shrink back when for some reason you delete stuff and your text becomes smaller.
There are also other interesting objects, for instance, we do not have much time to comment about them, but I'll just mention them. There is the Cookie object from Marko Schulz, I hope I'm pronouncing his name right, which is basically to set and get cookie values, and I'm not sure if we have covered all of them.
Michael Kimsal: Emran Ahmed, jQuery on the Fly Form Validator, thank you, Emran.
Manuel Lemos: Yes, I was checking the submission date because there are other form validation components, I was afraid to be confusing them, but that's true Emran also submitted this component this month. And Emran is from Bangladesh, and I think we have covered, at least mentioned, most of the components that were submitted very recently.
Articles in the latest issue of JSMag magazine (54:55)
Manuel Lemos: Now practically at the end of the podcast, Michael can you please comment a bit about your articles of your JsMag Magazine for the upcoming month.
Also Trevor Burnham who actually wrote the book on CoffeeScript has contributed a piece on CoffeeScript and testing for us. David Calhoun should have our standard news roundup, and potentially Dino Gambone his part two of his offline web app series. Dino, can I get you to commit on air?
Dino Gambone: Yes, I will have something available for you for December 2011.
Michael Kimsal: Sweet. Kelly will be happy to hear that too.
Dino Gambone: Kelly just loved it when I decided at the last minute, too.
Manuel Lemos: Well, I think you'll have time because the world is only supposed to end in December 2012.
Michael Kimsal: 2012, we got time, yeah, plenty of time.
Manuel Lemos: So you still have time for a dozen issues I suppose.
Michael Kimsal: Thank you so much.
Dino Gambone: Thank you very much.
Michael Kimsal: Yes.
Manuel Lemos: And on my part thank you for listening and keep sending your comments to the podcast, and for me that's all for now.
Michael Kimsal: Adios.
Dino Gambone: Good night.
Michael Kimsal: Good night.
Manuel Lemos: Okay, bye.
You need to be a registered user or login to post a comment
Login Immediately with your account on: