Contents
Listen or download the podcast, RSS feed
Read the podcast transcript
Download Size: 24MB Listeners: 951
Introduction music: Riviera by Ernani Joppert, São Paulo, Brazil
RSS 2.0 feed compliant with iTunes:
http://www.jsclasses.org/blog/category/podcast/post/latest.rss
Show notes
JSClasses 1st Anniversary blog post
Blog post about a Better Package Browsing system
- Sprite 3D JavaScript Animation library
Codecademy JavaScript learning site
Boxed 2D JavaScript 2D Physics Animation Library
Twitter BootStrap Web Application Toolkit
- IndieConf 2011 - Independent Developers Conference
Contents
Introduction (00:20)
JSClasses 1st Anniversary (1:41)
Better Package Navigation (6:54)
Sprite 3D JavaScript Animation library (14:44)
Codecademy JavaScript learning site (19:13)
Boxed 2D JavaScript 2D Physics Animation Library (25:01)
Latest JavaScript Objects published in the JSClasses site (31:37)
Articles of the upcoming JSMag Magazine issues (39:01)
Twitter Bootstrap Toolkit (47:23)
Meet Michael Kimsal in Russia (49:48)
IndieConf 2011 (53:16)
Conclusion (56:28)
Introduction (00:20)
Manuel Lemos: Hello, welcome to the Lately in JavaScript Podcast. I am Manuel Lemos and as always I have here with me Michael Kimsal, hello Michael.
Michael Kimsal: My name is Johnny Cash. Oh! Or Michael Kimsal, either one, good morning.
Manuel Lemos: Hello Michael, it seems you survived a big storm over there in Raleigh.
Michael Kimsal: Oh, yes, yes. Hurricane Irene has come and gone, and as I was telling you before, I think some of my friends out on the coast, Wilmington and areas like that, I think they had it a lot worse than we did, we had some rain, we had some wind, we lost power for a few hours, but nothing like some of the damage out there, so we were relatively fortunate.
Manuel Lemos: Yeah, well I'm glad that you survived and could make it to record this podcast.
Michael Kimsal: Yes! Not like last Saturday when we should have done this.
Manuel Lemos: Yes, that's why we are a bit late and this will probably be going out later than usual. I always try to push it until the end of the month, but this time it will not be possible, but better later than never.
Michael Kimsal: Sure.
JSClasses 1st Anniversary (1:41)
Manuel Lemos: On the happy side I would like to comment a bit about the JS Classes first anniversary which happened last August 25.
Michael Kimsal: Happy birthday to you, squashed tomatoes and stew (singing), no more, anymore and we'll have to pay royalties so we'll stop now.
Manuel Lemos: That's all we get for free from your artistic skills.
Michael Kimsal: You got to pay me money if you want to hear more, so.
Manuel Lemos: Yeah, okay, I'll try to gather some next time. And, well, about the site itself, it is great that we have gone through a lot. Many authors submitted their packages over one year, 82 to be accurate. 82 packages were contributed by 39 authors, but as always we hope to have more authors contributing to the site.
And I have posted an article on which I have commented a bit about what has happened in this year that passed. Other than the usual stuff that we had when the site launched, later we had a jobs board that was launched just like there was in the PHP Classes site, and that helped to make the site more interesting.
But right now it would be even more interesting if authors could submit more of their JavaScript packages that provide interesting features because despite the PHP Classes site and JS Classes site share the same code base there are some features that JS Classes site does not yet have enabled.
One of such features is the Innovation Award which is a sort of contest that goes on every year, I mean every month since 2004 in the PHP Classes site and on which I basically nominate all packages during a month that introduced something innovative. And those that are nominated go through a vote process and when the process ends, which is in the following month, the winners have the right to pick interesting prizes provided by sponsors.
And this has helped a lot the PHP Classes site to provide interesting components. But in the JS Classes site that award is not yet launched because if I launched it now basically all packages in the site will be considered innovative because the criteria of innovation is in comparison to what already exists in the site.
Michael Kimsal: Yeah.
Manuel Lemos: So once there is a significant volume of packages in the site I will be able to launch this initiative and everybody can benefit. The site users can benefit of great innovative packages. The contributing authors can get interesting prizes and recognition. And the whole site will gain more in terms of audience because it will be more interesting.
So basically what I'm saying is that I would like to encourage every author if you have packages innovative or not, submit them to the JS Classes site so it can grow quickly in volume, so I can start the Innovation Award here and it becomes even more interesting than it is now.
But that is just one aspect that I wanted to mention related with the first anniversary.
Michael Kimsal: Can I start singing again?
Manuel Lemos: Regarding the anniversary?
Michael Kimsal: Yeah. Cumpleaņos feliz, cumpleaņos feliz, okay, that was for our Spanish friends, amigos and amigas.
Better Package Navigation (6:54)
Manuel Lemos: Okay, but back to the podcast, I was going to comment about another interesting feature that was released both in the JS Classes site and PHP Classes site which is regarding the navigation of the packages, and that can get to be complex as authors add many files into the packages, files and directories and subdirectories.
So now there is an improved user interface that users can use to take a nicer, a more user friendly look into the contents of the packages by means of tab based user interface, on which the users click on links that enter directories and subdirectories, and it shows the contents of those directories isolated instead of the old cluttered method of displaying all packages files and directories.
So I hope this will make the user experience more user friendly, and just to mention that this was basically a consequence of another feature introduced not a very long time ago which is the possibility to import packages from version control repositories.
Michael Kimsal: Yeah.
Manuel Lemos: Initially CVS and Subversion, and at least in the PHP Classes site there are now very, very large packages with many, many files and subdirectories, and that is why this feature of better package browsing user interface was introduced.
And for now in JS Classes site the packages are not yet very large, but I hope they can become as large as the authors that want to contribute them need to share packages with many files.
Michael Kimsal: How quickly was the uptake when you introduced that on PHP Classes? Did you have people that started using it in the first week or in the first couple days?
Manuel Lemos: Do you mean the version control?
Michael Kimsal: Yes, on the version control.
Manuel Lemos: Actually this is a feature that was planned a long time ago, so over time I gathered a list of beta testers, authors that have packages in those version control repositories, they sort of filled a survey in which they told me which version control system they prefer, and they have packages to import from those repositories in remote sites like SourceForge or Google Code and others.
For now it's just CVS and Subversion, but Git is on the to-do list of version control systems to be supported. So once I enable the Git support I'm sure even more authors will come, there are quite a few in the beta testers list and we'll see how it goes.
Git has become quite popular I think mainly due to GitHub which made Git even more visible and interesting to use. But we'll have to wait and see because at least for the PHP Classes site the number of authors that have shown interest to share their packages importing them from version control repositories, the majority was using Subversion, but there are quite a few that also like to use Git, so let's wait and see.
Each protocol that I add support for it's not a trivial effort because I have to develop an enough capable client of the protocol for communicating with the repository.
Michael Kimsal: Sure. And the concepts are a little different for each one, branching in Git means something sort of different than branching in Subversion, I'm sure the mechanics are different from a client protocol standpoint.
I just did some work with someone using Mercurial last month, maybe six weeks ago, and I thought Mercurial was I really thought it was mostly just another Git, it's distributed version control like Git, how different can it be?
It was pretty different and it was different enough that it caused me a lot more problems than I thought, I can only imagine the idea of trying to integrate. What you're trying to do is come up with one interface that shows and let's people bring in stuff from all these different repository types, it can't be easy.
Manuel Lemos: Yeah. Well, I don't know, but in the case of Subversion it was quite difficult because the protocol is very complicated. I mean the actual implantation is on top of WebDAV, and if you just want to retrieve a file you have to do a lot of requests, it's amazing, it's very inefficient.
And on top of that there are extensions specific to Subversion which made me study a lot and sometimes browse over under-documented features. But, well, I don't know, I hope at least for Git it won't be that hard.
Michael Kimsal: It will be interesting.
Manuel Lemos: Yeah. It was okay because it also helped me to test certain concepts that were not as well implemented as I thought initially when I added support to CVS.
But that's something that I will have to spend more time to see how compatible or incompatible are the concepts that are necessary to be supported to import files from each type of repository because I do not need to support all sorts of features. For instance, branches, I do not necessarily need to support branches because usually people just import the files that are in the head or whatever its called, the main branch of the repository.
Michael Kimsal: Head.
Manuel Lemos: Yeah, at least in CVS it's head, but in Subversion I think it's trunk.
Michael Kimsal: Yeah, trunk, I still call it head in Subversion, Master in Git usually.
Manuel Lemos: Everybody wants to have a different name.
Sprite 3D JavaScript Animation library (14:44)
Manuel Lemos: Okay, but moving on now talking a bit more about specific stuff to JavaScript, what has been happening in the JavaScript world, I have been taking a look at certain packages in the initiatives, and one of those packages, libraries, that I would like to talk about is Sprite 3D which is basically a library that can animate page elements using CSS Transforms that alter sort of 3D properties.
It is an interesting package that can provide nice 3D effects to regular pages, at least in browsers that support those 3D CSS style properties. And I think it would be worth mentioning just in case you would like to take a look and eventually adopt this to add a nice touch to your web site pages. Michael, did you have a chance to take a look at this Sprite 3D library?
Michael Kimsal: I thought I did but I was confusing it with something else, and that something else I was trying to find the name of that, I'll see if I can get it for next podcast because the one I was thinking of it was almost like realtime ray tracing in a browser. You could rotate around it, it was a water tank with moving water and shadows, but it only worked in Chrome 13, maybe Firefox 6, it was pretty CPU intensive as well too, but I'll have to find that.
But the Sprite 3D I'm actually looking at it right now and it's kind of neat. One of the demos that I'm looking at is the Harrier, they call it Sprite Harrier which is like, it's kind of like a reproduction of the Space Harrier game from 1985, maybe 1986.
And it's funny to me to see, I mean it's interesting, I'm just looking at the recreation here, it's pretty smooth, but also in a way that game technology that was so groundbreaking 25 years ago is now this is the domain of people that just... they're just trying to throw something out and they're just doing this almost, I don't want to say in their sleep, but this is just throwaway play stuff now, and 20-something years ago it took entire teams of people months to put these things together, and now this is just a demo.
Manuel Lemos: Right.
Michael Kimsal: But, yeah, it's neat. Now I don't think I'm every actually going to make a 3D game like that, but it's still interesting to see what can actually be done with these.
Manuel Lemos: Right. Actually I remember that game, it was Space Harrier I think.
Michael Kimsal: Yep.
Manuel Lemos: I remember that game, it was in the time we used to insert the coin to play.
Michael Kimsal: Oh, yes, I inserted many, many coins. And I actually remember we went to, I think it was '86, my family went to Disney World which was a big deal for us, and I remember feeling really grown up because I left my room at about 11:00 o'clock at night and went down to the arcade and Space Harrier was there and I played it, and I thought it was a great deal because it was only a quarter instead of fifty cents like it was back at home, and all that meant is I ended up playing it twice, that's all, twice as much. I still spent the same amount of money, I didn't save any money. Oh, damn you Sega! You have all of my quarters.
Manuel Lemos: Yeah, those were the days.
Michael Kimsal: Yes.
Codecademy JavaScript learning site (19:13)
Manuel Lemos: Okay, well, moving on and now talking about an interesting site, Codecademy, I'm not sure if I'm pronouncing it right because I think the name is almost obvious except for a letter that is missing.
Michael Kimsal: Yes, Codecademy.com, yes, Codecademy.
Manuel Lemos: And it is interesting, I have heard a lot of people talking about it and decided to take a look. It's basically a sort of site that will guide you through a sort of course to learn in JavaScript interactively.
And it is interesting because now everybody has this fever about using game logic for everything you do on the Web. And so now once you progress in your JavaScript course you earn badges and stuff like that, and it is interesting.
Michael Kimsal: I'll tell you what's really strange about this because I saw an announcement about this about a week ago and went and played with it, I'm here looking at Codecademy.com. "Codecademy is the easiest way to learn how to code, it's interactive fun and you can do it with your friends, get started, it's free," they have an interactive thing there.
I'm looking at the bottom, "Program websites, learning with Codecademy puts you on the path to build great web sites, learn with friends, keep track and share your progress, you get badges," all that stuff. Nothing on this page says the word JavaScript.
Manuel Lemos: Oh, really?
Michael Kimsal: I mean if you look at it there's nothing there that says you're going to learn JavaScript, it says "learn to code," but it doesn't say what language.
Manuel Lemos: Good point. I have not noticed that detail.
Michael Kimsal: I have to say as hip as it looks when I was first doing it I thought this was Ruby because the very first lesson... and it reminded me of I guess what's that the IRB, Interactive Ruby whatever the B stands for, or Interactive Ruby, I think it stands for something else, I thought this was a hipster way of learning Ruby to get you into Rails.
And looking now at one of the sample codes below its got the word Var in it, so that would indicate in print, so it's going to indicate that this is likely JavaScript. But it's strange to me that it's just "learn to code," this is how to program but nothing's mentioning JavaScript specifically.
And understand it's running in the browser so that's probably what it would be, but it's interesting to me that the language is almost secondary to just getting you into here's how to program or here's how to code.
Manuel Lemos: Yeah. Well, that's one question that I had because the site is called Codecademy I was wondering if they would be having courses to learn other languages, but now that you noticed that it doesn't mention JavaScript anywhere I wonder what is the point of that because do they want to convey that JavaScript is everything now in terms of programming?
Michael Kimsal: My guess is that it's probably just easier to start with that, it's something that can be built in the browser, it's all there, it's okay, it would probably not be too hard for them to migrate into some other languages at some point, but you may as well start with the thing that is most broadly used.
Manuel Lemos: Yeah, because the way it is now we don't know if the code that you are trying is running on the browser or on the server side using some AJAX.
Michael Kimsal: It looks to me like it's running in the server, I mean sorry in the browser, it does not look like it's doing anything on the server.
Manuel Lemos: Yeah. Well, I wonder what is the point, this is a very new project, I think it is funded by Y Combinator, and anything that Y Combinator funds gets a lot of attention.
Michael Kimsal: Yeah.
Manuel Lemos: It appears in Hacker News and everybody gets to talk about it, but I wonder what is the point because since it's a funded project I wonder if there is a business model behind this because so far it's just having fun learning how to code.
Michael Kimsal: It seems to me that they're trying to get you to sign up to subscribe and they'll probably figure out what other lessons people want and then my guess is that it will be a mix of free and paid for training course sort of material, it's just a hunch, I don't know anything about it, but that seems to be the easiest path towards some monetization firstly.
Manuel Lemos: Yeah. The premium bait, first you get free, I mean the freemium bait, first you get free until you get premium. But, well, we have to wait and see where this is going, but I think it was interesting because of the fact JavaScript is used as a language to be learned by anybody the easy way.
Michael Kimsal: Hmm-mm.
Boxed 2D JavaScript 2D Physics Animation Library (25:01)
Manuel Lemos: Okay, but moving on, I am also going to mention about another JavaScript library that I found interesting. Its name is Box2D and there is a web suffix in the name, although I think I'm not sure if this project was originally developed for Flash Actionscript.
Well, basically it is a library that makes it easy for you to build application, eventually games, that will have some animated objects in two dimensions, and those objects can obey the laws of physics which makes it interesting probably to develop the next Angry Birds-like game.
Michael Kimsal: Yeah. I'm thinking maybe Happy Birds and you just point the birds around and they bounce around and they be happy.
Manuel Lemos: Instead of being angry at pigs.
Michael Kimsal: Yeah, they're happy and you just have them fly around and then they eventually land, I think that would be a pretty good game, a very kid-friendly sort of game, there's no violence at all.
Manuel Lemos: Yeah, we don't know.
Michael Kimsal: I remember playing with this maybe a few days ago or a week ago, this Boxed 2D library, I'm clicking it right now, I'm just grabbing a box, grabbing a circle flailing it around and it hits the screen, hits the edges and it bounces around, it's pretty slick.
And, again, thinking about going back 20 years, but really even going back five years, to think that we would have the realtime computing power to do this in consumer level devices, I feel like an old man sometimes when I talk like this, but really, wow, this is really exciting, and yet it is...
I really need to get my head around this, this is commodity, this is I can run this on a $300.00 computer, I can run this on a $100.00 tablet and it's going to run okay, and that's 2011, 2011, and five years this is going to be even more commonplace, this with touch interfaces, this with maybe haptic interfaces, it will all... the pace of change keeps really accelerating.
Manuel Lemos: Yeah, we are already living in the future.
Michael Kimsal: We are. Well, I'm still kind of living in the 80's for the most part.
Manuel Lemos: Remember when you say, "Oh, wow, 2010, and when you get there, there will be computers that talk."
Michael Kimsal: Yeah, flying cars. Yeah, and most of the computers don't talk very well, but we can talk over them quite easily with Skype. It's always interesting to look back at what the predictions were as to how close people got.
Even a few years ago who would have predicted that JavaScript would have been as popular as it is now, thinking back to 2001, 2002, I think a lot of people were predicting the death of JavaScript and everything would be Flash or Java applets or something, and for all its warts JavaScript is still with us and I think it's gotten far, far better, far more useful.
And all these sorts of the game libraries and all that stuff really in some ways kind of blow my mind, and in another way I look at it and I flick a box around and I flick a sphere around and I say okay that's neat.
For me personally I don't develop physics type things, but if I ever needed to I would say I can go grab these libraries and start putting them together, it's so great.
Manuel Lemos: Right, Happy Birds game.
Michael Kimsal: Yeah, I'm going to write Happy Birds. I'll do the theme song for it, I'll write the theme tune and I'll sing the theme tune.
Manuel Lemos: And the foreign translations.
Michael Kimsal: Sure, I can do the Spanish, I can do the Texas, I can do the Tennessee, yeah, I can do them all, I can do the Russian (speaks Russian).
Manuel Lemos: Okay.
Michael Kimsal: I was reminded... what was I reminded of, I'll come back to that because I lost half of what I was reminded of, but yes I'm an old man living in the future, that's really what all that boils down to.
Manuel Lemos: I guess I am as old as you are because I also played Space Harrier using coins.
Michael Kimsal: Not in history class but you actually lived it when it first came out.
Manuel Lemos: Yeah. Now you don't have the time but you go on Google Plus and it keeps teasing you to play games, and for free, you don't have to put coins and it still insists that you play so that you can get some silly badges, but okay.
Michael Kimsal: It's still better putting a coin in, it's still better taking a quarter and putting it in and having Joust come up and my pterodactyl and my ostrich can flap around, it's still better playing on a real machine.
Manuel Lemos: I have some friends that have assembled their own arcade machines, I think with a MAME emulator, that emulator software.
Michael Kimsal: Yeah, I need to get one of those, I'm too poor, don't have one yet.
Manuel Lemos: I think you just have to have the time because it's not that expensive to assemble an arcade box.
Michael Kimsal: I'm time poor let's put it that way.
Manuel Lemos: Yeah, so am I. Well, talking about time we need to move on with our podcast.
Michael Kimsal: That was an excellent migration, that was an excellent segue, folks he didn't even edit that, that was not edited that was just off the cuff, that was pure Manuel.
Manuel Lemos: Pure inspiration, many, many years doing podcasts.
Latest JavaScript Objects published in the JSClasses site (31:37)
Manuel Lemos: But back to the topic, now we're going to move on to that regular section on which we comment about the latest objects published in the JS Classes site, and the interesting fact is that I noticed a slight increase in the number of contributions in the last month, and I think it would be interesting to comment about a couple of those. Michael, would you like to start?
Michael Kimsal: I would love to start, I don't even want to like it, I'm loving it like McDonalds. First, from our pal Arturs Sosins of sunny Latvia, he's contributed an object, or class I should say, that does charting.
This is something that I don't think there's any real shortage of charting libraries out there, but interestingly enough I just had a project, I'm in the middle of a project this month where the need for a charting library has come up, and we're actually investigating a bunch and may, depending on what our needs are, may throw this one in the mix and say hey guys would this work for what our needs are and if you look at it you can download the code.
One of the things I like about this one is that, well, from my standpoint the code was easy enough to read, it's kind of a mix, you always have this mix, I looked at some of the Yahoo charting stuff, YUI has revamped, I think YUI 3.4 was released recently, they've got a lot of charting stuff in there, and it's comprehensive but from a learning standpoint if I actually want to learn how this stuff is put together it's insanely complex I think, dozens of files, a lot of math involved.
Whereas a lot of these homegrown ones like Arturs', not saying that they're trivial, there's a lot in there, but if you want to learn how to do some of the stuff yourself or if you want to investigate it's often easier to take a class like this and get in there and play around with it and feel like you can learn from it more.
So to me that's certainly it does some of the charting that somebody might need, it's fairly lightweight compared to some of the ones out there, but the learning benefit I think from this class and other classes like this can't be overstated if you're looking to learn how to write these yourself.
Manuel Lemos: Right. The fact that it's a standalone class, I mean it does not depend on other classes or object, it makes it easier to understand because you won't get lost in the calls to the dependencies, other libraries that you may need to use this class, and that makes it really easier to understand, as you said. But other than that, any others that you would like to mention.
Michael Kimsal: Well, I was going to mention another Arturs Sosins', he's doing quite a lot, and he's actually written a couple of pieces for JsMag of all things, he has another piece coming up in next month's September issue. But I'm wondering last month did we mention the Canvas text object from Pere Monfort from Spain?
Manuel Lemos: No, not really.
Michael Kimsal: Okay, I couldn't remember if we'd mentioned that one or not because it's another one of these, obviously these are standalone classes, but renders text for you on HTML 5 Canvas.
Again, it's not something that I think somebody would say gosh I have no concept of how to do this at all, but again from a learning standpoint it's a very interesting approach to not just "let me grab Canvas and throw something on," but it is written to be a standalone class so there's a reusability aspect to it too, and it's tough, it's something that was a little different than some of the things we talked about before.
Manuel Lemos: Yeah, and actually just to make clear it's not just text, it can have tags inside of it, actually it can have custom tags, not necessarily tags that you used to have in HTML, and basically are tags that can define styles that you can apply to different sections.
Michael Kimsal: Alignment and so on, yeah, and looking at how that's done and what sort of computation is done to figure that out, interesting.
Manuel Lemos: Yeah. And I think this, despite it's quite simple in what it does, it actually solves a common problem which is how do you render text in a Canvas and format it with traditional attributes that you may have in regular HTML pages.
Michael Kimsal: Yep.
Manuel Lemos: Because once you are rendering in the Canvas it's a different graphic target domain, it's not that you have the full DOM tree inside of a text or formatted document that you can render in a Canvas. And despite it's simple it addresses an interesting problem.
And other than that I would also like to comment about one other object, actually it's a jQuery plugin named Multi-Rotation from Michel Andreoli, who is also a regular contributor of the PHP Classes for many years.
And this time he sent an object, a plugin to the JS Classes site that can apply simple rotation effects to elements in the page, not only static rotation but also rotation that can update the angle regularly giving the sense of animation of the page elements to each rotation that's being applied.
And, again, this is a quite simple concept but it can give you a nice kind of effect that you can apply to your pages very easily.
Well, I think regarding objects we have already covered several of the more interesting objects that have been published recently in the JS Classes.
Articles of the upcoming JSMag Magazine issues (39:01)
Manuel Lemos: Michael, I think you were going to comment about the Canvas events because is it related with an article with your upcoming magazine?
Michael Kimsal: Well, I mentioned that I believe, and I don't have the information in front of me, Arturs Sosins was contributing a piece to JsMag for our September issue and I believe the article was on that Canvas events class that he contributed to JS Classes, I think the article is a companion piece to that.
So if you've taken a look at Arturs' contributions to JS Classes and want a little bit more information on that, he'll have some information in the next JsMag which I believe probably by the time this podcast comes out should be out, it should be out I think September 2nd this month, or this Friday.
Manuel Lemos: Yeah, and while you are at it, what are the more interesting articles, topics that are upcoming?
Michael Kimsal: Well, it's thin this month.
Manuel Lemos: Very thin.
Michael Kimsal: We've had actually a few cancellations, and this happens a little bit more in the summer time unfortunately, people travel and they kind of don't get their stuff in on time, but we also try to hit... sometimes publications will, especially if they're user driven, they'll just take an extra few days and put stuff out and we try to hit the first of the month as often as possible.
We do have, actually let me pull this up, because Michael Schwartz, Mike Schwartz is putting out yet another piece. He's been doing a very interesting ongoing series on server side JavaScript, and he's actually gone into some kind of interesting territory I think with... it's JavaScript but it's really low-level stuff, he's actually got a piece on extending the V8 engine from Google and doing MySQL database work directly with V8, writing a custom C++ module extending V8 to be able to talk with MySQL database.
So it's probably a lot more low-level than some people are expecting, but it's interesting nonetheless. We also had kind of a last minute contribution from actually a local guy, local to Raleigh, Zach Tomkoski, I hope I'm saying that right, and he was telling me a little bit ago about a technique that he started to use to dynamically turn all fields onto a web page to make them editable.
So he defines a bunch of fields and click a button if he's logged in, to click a button he turns them all editable, turns them into text areas or input areas, lets him edit those fields and then saves it, and he saves all that information locally to a SQLite database.
So every page is sort of running from a local database, kind of a mix between dynamic publishing, not really dynamic publishing from a CMS so much or a PHP thing, but keeping all that locally. I'm not going to try to bore people too much with the idea here, he's referring to it as instant editables, now I haven't looked enough to see if that's a phrase that other people are using or not yet, but it was an interesting idea I thought.
And actually on Hacker News there was an article today by somebody saying hey now that we've got people looking at NoSQL, like Mongo and so on, can we get people to look at no database, let's take database out of dynamic publishing altogether.
But the technique he was describing was... it's not really getting rid of a database, it may be getting rid of a relational database, but wants to put data in files. Well, the file system could be considered a database of sorts too, so it's really your perception of what a database is and what your reliance on it is, but anyway, I'm kind of getting off topic there.
Manuel Lemos: Yeah, going back to the old days, the flat file databases.
Michael Kimsal: Yeah. But even that is a database, people can say let's just use the file system, let's just use Berkeley flat file or something, but it's all a database, and your performance is going to be more what you reliance on that database is I think in most cases, so that's that.
Manuel Lemos: Getting back, I think I remember the word you want to comment which is edit in place, right?
Michael Kimsal: Yes. Yes, that's probably a better phrase for it.
Manuel Lemos: I remember somebody else submitted actually a PHP class to generate HTML and JavaScript to generate those types of pages that you click and then the fields that are used to present information they become editable, and that is interesting and while not new it's also not so uncommon, but the name that I remember was edit in place.
Michael Kimsal: Yeah. It's actually a technique that I'm going to be reviewing his stuff a little bit more, and there's been a couple of times for really small projects that that approach probably makes more sense than putting up a WordPress or a Drupal or something like that.
Certainly you can extend and build on those things a lot more, but sometimes the real answer is I need a really small thing to let somebody do three things here and that's it.
Manuel Lemos: Well, I think the way it is implemented is basically enabling the contenteditable property, but I don't know if that is so standard. I once tried to develop a visual HTML editor, actually I not only tried but I actually published it in the JS Classes site, and despite there are other common solutions for that problem I tried to do it myself, and that is basically the approach that is done except that there are differences in the way you should do it with different browsers.
Michael Kimsal: Yeah. And that's another one of those aspects of trying to choose the right tool for the right job, and a lot of times while I guess thinking about some of the projects I've been involved in, especially for administrative type areas or management areas of a site, you can pretty much say hey this person is only going to use Firefox, they're only going to use IE7, whatever the case may be.
And if you have the freedom of limiting or controlling the user environment for those sorts of pages it becomes a lot easier.
Manuel Lemos: Yeah. Usually I try to develop solutions that will work independently of the browser, but sometimes it's quite hard because there are features totally missing in certain browsers.
Michael Kimsal: Yeah, or somebody will come back with your best intention and say this doesn't work in Firefox 3 or IE6.
Manuel Lemos: Yeah, IE6 will come back to haunt you.
Michael Kimsal: Yeah! Sorry, and at some point I basically a while ago have just given up caring about IE6, 7 I'm okay, I can cope with mostly.
Twitter Bootstrap Toolkit (47:23)
Michael Kimsal: Actually there's one thing I did want to plug here for a moment, and there's a little JavaScript here. Have you heard of Twitter Bootstrap?
Manuel Lemos: Not really.
Michael Kimsal: One of the engineers at Twitter put up on GitHub a starter kit for what Twitter uses, this is what I understand, what Twitter uses for a lot of their internal apps. And it is a compiled style sheet and some JavaScript behaviors all kind of compressed into just a very lightweight starter kit, here's a CSS file, here's a couple of JavaScript files.
But it gives you a very nice looking way of doing grids and styling on forms and styling on buttons, and it ends up looking a lot like some Twitter stuff, but it's also a little bit more comprehensive, like I've looked at 960gs and it gives you the grids but it doesn't really give you much of anything else.
Some of the YUI style sheet stuff, some of their widgets give you a little bit but not... it's hard to say, but I thought the Twitter Bootstrap project looked pretty nice. And when it first was announced a couple weeks ago it did not support IE, they now support IE7 and IE8, they don't support 6 but it does work well in IE7 and IE8 and Firefox 3.6 and modern Chrome and modern Safari, and Opera, I think Opera 11 as well too.
Manuel Lemos: Yeah, I was not familiar with that. Is it similar to, what is it called, I think it's Less - Leaner CSS.
Michael Kimsal: It uses the less CSS compiler and some of the less CSS stuff. I'm a little out of my depth talking about CSS and design stuff too much, but just go look up the Twitter Bootstrap Project and take a look.
I actually downloaded it from GitHub and used it on a demo project for somebody, and I'd say in about 15 minutes from reading about it to actually having it in this site and having my site look decent was all it took.
Manuel Lemos: Yeah, it's interesting. I think it's worth it to take a closer look into that.
Meet Michael Kimsal in Russia (49:48)
Manuel Lemos: Well, basically now we are at the end of this podcast. Michael, I think you are heading to somewhere?
Michael Kimsal: Yes, I am heading to sunny Russia, sunny Moscow. And I'm looking to meetup with some JavaScript and some PHP, any web people that are listening to this. I'm going to be in town in Moscow, I know it's probably a pretty big city, but I'm going to be there staying with my brother from September 17th, actually the whole week of September 17th.
So I don't have any major plans for most of the week and if you'd like to meet for coffee, for lunch, for breakfast, for dinner, whatever. I was trying to look to see if there were any JavaScript meetups or maybe some PHP or some Java or .NET, if there's any interesting user groups in the area and anybody listening would like to meetup I'd love to meetup, I'll buy you a beer or a vodka or whatever you drink in Russia, and it would just be great to meetup with some fellow web people.
So shoot me an email, mgkimsal at gmail.com or Michael at kimsal.com, look me up you'll be able to find me.
Manuel Lemos: So you are going on a vacation or work?
Michael Kimsal: Well, it's kind of vacation. If somebody actually wants to talk work when we're there, or if somebody would like for me to present, if there's a user group that would like me to come in I'd love to talk about Groovy, I can talk about JavaScript, talk about PHP, I could actually make into a bit of a marketing sort of a quasi-business trip. If anybody has any PHP they need to me to fix over there it's a business expense, that'd be great, I'm joking.
Manuel Lemos: Okay.
Michael Kimsal: But, yeah, it's primarily a little bit of relaxation, as I say my brother works there so I'm going to visit him, I'm probably the only family that's going to visit him, so we shall see.
Manuel Lemos: So that will be in Moscow?
Michael Kimsal: Yes. Again, it's a big city but I will have most of the week so I'm assuming it'd be like saying I'm in New York, it's probably subways and it's probably huge, but I'll find my way around, just give me an address or give me a place to meet and we'll meet up.
Manuel Lemos: So you have been training a lot...
Michael Kimsal: (Russian)
Manuel Lemos: ...those Cyrillic characters?
Michael Kimsal: No, my brother will yell at me, I was supposed to be taking a language course and I haven't done much yet, I've still got two weeks, but I've been trying to get some client deadline work done before that, so yeah, so I can say (Russian) that's it.
Manuel Lemos: I hope that means a good thing.
Michael Kimsal: I think it means excuse me or pardon me. So if I can say "excuse me, pardon me" when I bump into people I think I'll be alright.
Manuel Lemos: Okay, that's interesting to know. If you happen to be in the neighborhood of Moscow, no matter how large is that neighborhood, you can always... if you listen to somebody singing in a foreign language that's Michael.
Michael Kimsal: Awesome.
IndieConf 2011 (53:16)
Manuel Lemos: Okay, other than that I suppose that your event in the IndieConf is also coming?
Michael Kimsal: Yes, we've actually got a new web site up, indieconf.com, got some more speakers that were announced, we've got about half our speakers confirmed and announced, the other half will be put up probably this weekend, we're also looking at expanding the rooms, like last year we had 18 sessions, we might have another room this year to have 24 sessions.
So November 19th, it's in the Raleigh area but anybody listening use code JSCLASSES and take a discount off, we'd love to have you come. I think we actually had somebody from Brazil come last year, I know he's from South America but I could swear we had somebody from Brazil show up. Now I'd love to say he came just for the conference, I think he was in town for something else but he came for the conference nonetheless.
Manuel Lemos: Okay, maybe this year we will have somebody from Russia.
Michael Kimsal: Maybe, or I'll just bring back some vodka for the conference, that will probably be it.
Manuel Lemos: But talking about those confirmed speakers, anybody related with the JavaScript world?
Michael Kimsal: Possibly. I'm actually looking right now. The focus is not so much on technology, the focus is a little bit more on...
Manuel Lemos: Soft skills.
Michael Kimsal: ...the soft skills, the business skills, the legal skills. We are going to have at least one I know, I don't have her name up here yet, but Zoe Gillenwater presented last year, she's going to present this year again on a lot of CSS3 stuff, and we had a couple submissions on Node.js, now I haven't, we haven't' actually made a final decision as to how much technical stuff, but we may have a Node.js session as well, we'll probably announce that in mid-September.
Manuel Lemos: That sounds interesting.
Michael Kimsal: It's not a hatred against JavaScript it's just we're trying to probably not focus too much on the technology because if you choose... most people on the front end do use JavaScript, but anything on the backend like if you choose PHP you're neglecting the .net people, if you choose Java you piss off the ColdFusion people and so on.
Manuel Lemos: Okay, anyway I hope it will be an interesting event as usual, and whoever is interested to attend can always run into indieconf.com and signup there.
Michael Kimsal: Well, thank you once again, you've certainly you let me come on and sing and ramble and talk about JavaScript stuff.
Manuel Lemos: Yeah, and push your event and your adventures in Russia.
Michael Kimsal: Yes, yes. I will hopefully have an interesting Russian story to tell you next month.
Manuel Lemos: That will be great.
Conclusion (56:28)
Manuel Lemos: Well, basically we have covered a lot of subjects, but we have reached the end of this podcast and I hope you can come back again next month and have some more JavaScript to talk about.
Michael Kimsal: I will be here.
Manuel Lemos: Okay, I think that's all for now, bye.
Michael Kimsal: Adios.