|JS Classes blog||Shall we always use s...||Post a comment||See comments (0)||Trackbacks (0)|
Download Size: 23MB Listeners: 1197
Introduction music: Riviera by Ernani Joppert, São Paulo, Brazil
RSS 2.0 feed compliant with iTunes:
Note that the timestamps below in the transcript may not match the same positions in the video because they were based on the audio timestamps and the audio was compacted to truncate silence periods.
Michael Kimsal: Yeah. I get that a lot.
Manuel Lemos: Yeah, I can imagine.
Michael Kimsal: Oh, yeah.
Manuel Lemos: This is Episode 18, and as I was saying, this is something experimental. We are starting to use this Google Hangouts thing.
Actually, this is a bit different than the regular Google Hangouts because it allows the recording to be transmitted live and also be recorded on the server side, so I do not have to take care of the actual recording. Just prey that it will work and later the video will be available for minor editing and be published later in the JS Classes site podcast.
Moving on to the actual podcast, I did not say the usual "Hello, Michael! How are you doing?"
Michael Kimsal: Hello! I am too legit to quit.
Manuel Lemos: Oh. That was cool.
Michael Kimsal: People of a certain age will fervently deny that they have any idea what that's referencing, but I know that they know.
Manuel Lemos: It looks cool. That's what matters.
Michael Kimsal: Oh, yeah! What can I say?
Manuel Lemos: Nothing. You already said it.
Michael Kimsal: I did.
Manuel Lemos: Anyway, let's move on. I have here two computers, one to see the timeline and the other to do the actual recording. As I can see in the timeline, we're going to start talking a bit about this Google Hangouts thing. Not only can we record the video and people can watch it live, eventually whoever is interested can participate.
Actually, I sent some invitations, but then I realized that Google is not sending the invitations out to anybody, so I don't know if they see the invitations by email or in their notifications.
Michael Kimsal: I'm going to try to send out something right now, just trying out the...
Manuel Lemos: Yeah. Your millions of fans will pop up in a moment.
Michael Kimsal: I've not tried it yet. The whole thing is kind of neat; it just feels a bit rough, and frankly I've got too much on my plate to mess around with beta APIs. I'm assuming they're beta because there's 'Google' in the name. So it's neat, and I'm going to let somebody else be the early adopter for the most part.
That said, I'm on a public hangout right now, which is, we're not the first people to do this certainly, but it's still a little early, a little rougher on the edges. I do talk about hands a lot sometimes, so you'll notice.Manuel Lemos: We did a test yesterday and somehow it worked, but there are several things that I wanted to do that I was not able to.
Anyway, I just wanted to bring up the fact that they provide an API, because an API allows you to probably do things more sophisticated and well-integrated in your sites. I did not look into it with great detail, but that's what it looks like it can be used to do.
Anyway, we will publish the link to the actual hangout's API page, so whoever is interested, you may want to take a look. I think those are the most important things about this API that I can think about and say now.Michael Kimsal: Sure.
Manuel Lemos: Moving on with our podcast, the next topic that we'll be talking about is this Node Natural, which is basically a framework for natural language processing. At first, it looked sophisticated, or at least it actually could be some sophisticated thing.
Michael Kimsal: Let's do a timeout here, because when you say 'natural language processing' my initial thought, though I'm familiar with the term, but my initial thought went to actual sound processing. Like, my dog has fleas and it would parse out, 'My dog has fleas!' and sing it. No. This is a text-processing library, correct? This hasn't anything to do with sound specifically.
Manuel Lemos: Yeah. We stopped because we have our first guest.
Michael Kimsal: No, goodness.
Manuel Lemos: Hello?
Michael Kimsal: I just see a black square there right now.
Manuel Lemos: Oh! It seems to be somebody from a well-known family with probably... Is your microphone on mute?
Mark Kimsal: It was. Is it on now?
Michael Kimsal: Oh, my goodness. That's my brother. Oh, my gosh! Thanks for interrupting, in the dark.
Manuel Lemos: You would not recognize him, Mike.
Michael Kimsal: Yeah. He looks better with the lights off most of the time.
Manuel Lemos: Yeah.
[For whoever is going to do this transcription, just note that we stopped talking because a guest entered into the chat room. I'm not sure if they followed the audio or the video when they did this transcription.]
But I think it worked, Michael. You sent out some invitations to some guests and they are arriving.
Michael Kimsal: Yes, yes. I have that effect. Notice it's all men coming in, there's no women. Whoever has their, Mark, that maybe if you have audio going live, please maybe turn that down or use headphones or something.
So moving back to the natural node language. Wow, that's bad.
Manuel Lemos: It is showing me a link to deactivate the audio.
Michael Kimsal: I just muted a couple of people. Or I just muted some. Oh, and Jose I think left. Jose, if you're watching later, sorry, you just had a lot of background noise.
Manuel Lemos: OK, back to the topic.
Michael Kimsal: I was mentioning before, it doesn't deal with sound. It's just for natural language text processing.
And I'm assuming it's primarily English. Most of the libraries that I've seen have to do with... Yeah, it even says here most of these algorithms are English-specific right now.
Manuel Lemos: Yeah. It looked to me it just does the very basic things. It did not seem to do any actual grammar recognition or something like that, just splitting text in words, probably find similar-sounding words and that was it.
But anyway, probably this is just one of the first releases and it will probably evolve into something more sophisticated. Or I hope, because that's what it originally suggested to me to be something, not exactly to recognize words in audio but at least process some written text and maybe reckon some phrase structure or something like that.
Michael Kimsal: Sure. But it does look like there are... I'm trying to see the time element on this, the network graph. It surely didn't show that right away, but there's 46 forks of this and there's 700-something people watching. It looks like this has been going on for at least a year, so definitely a moderately active project. It's had spurts of activity.Manuel Lemos: But does fork mean actually the people changing the code or they're just checking it out and thought about changing it but they did not necessarily do it?
Michael Kimsal: Well, the hard fork is somebody did an actual hard fork instead of just checking it out. I can check it out without doing a fork. So 46 other people made forks of it, and I'm assuming they did that because they were going to make some changes at some point.
And a lot people do forks. I occasionally fork things and maybe just push one thing back or I don't push anything back. But something that has generated 46 forks on GitHub, to me, it's a moderately large project.
Manuel Lemos: Well, we'll see. If we get more news about any interesting progress about this library, I'm sure we will get back to it.
Michael Kimsal: And I'm watching it, so I should get something in my stream if anything happens.
Manuel Lemos: Yeah.
Michael, did you check this?
Michael Kimsal: I read about it, but I'm not a C or C++ person, so the practical implications of it for me aren't all that much.
Manuel Lemos: But probably it would be more useful to people that do not want to deal or even learn C. They can take advantage of the existing C libraries and convert them to...
And this is less about this particular project and more about just the idea of code reuse so often in 20-something, 30-something years, code reuse, code reuse, code reuse, and people still write something from scratch because, even though there are libraries out there, people still write things from scratch because they don't understand the other stuff or they don't have time to learn it.
Most of the excuses are not valid, but they still do that. So I guess I'm still thinking about what the practical implications of this are.
I'm not sure now how it did work. I confess I did not try it. But it seemed an interesting idea.
Michael Kimsal: Yes, these are interesting, as are a lot of things, and I don't get to play with it as much as I'd like, but if this is the testing ground for the next generation of cool stuff, great, I'm really happy that we'll have people do those sorts of things and be those pioneers, because I'm not good enough to do it.Manuel Lemos: Well, maybe...
Michael Kimsal: No, thank you. I'm not.
Manuel Lemos: ...you do not have the time or feel the need right now, but at least you can know that there is this process now and it's viable.
Michael Kimsal: You could translate it. If that's the intermediate step, then you can go one step further and convert it over.
And if you go back to that original article you pointed to, someone pointed out that, yes, this works, but loading all of this stuff into the browser, in his words, "brought Firebug to its knees," and it was apparently not a huge library.
So as with anything, native or something written specifically for your platform versus something converted, you'd have to waive that benefit of, can I convert this?
That's great that you can do it. I can do this in proof of concept and I can deal with the heaviness or the bulkiness, whatever it may be, if there are cases where that is happening. If you're aware of the tradeoff and you intentionally make it, that's great. If you're not really aware of that tradeoff that's going on and you just do this blindly, you will end up with really slow, bloated stuff.
Michael Kimsal: But we all know that the first version never gets rewritten, roughly speaking.
Manuel Lemos: Well, it depends. This is basically just one idea that other people may be interested to investigate.
Michael Kimsal: Yeah.
Michael Kimsal: Yeah. I think, ultimately, it is a really interesting way of getting the functionality of some of those C libraries without having to compile them into browser extensions and try to distribute things that way, or to write native code and try to distribute it that way.
Manuel Lemos: Well, it's a tool whoever finds it interesting will figure it out, maybe some very much more interesting purpose than those that we mentioned of these projects, this xmllint and the other one which is SQLite port. We'll see.
Manuel Lemos: Now moving on with our podcast, we were talking about actually bringing back one subject.
Michael Kimsal: Oh, yeah.
Manuel Lemos: You, Michael, have shown some concern in the past, and it seems somebody found, well, I'm not sure if this is a solution or just a solidarity article saying, 'I feel your pain', which is dealing with the dates and the different ways different browsers format and then paste them to the server.
Michael Kimsal: Dates in JSON. This was what you're going to post, I guess, with the notes here is a blog post from Scott Hanselman of Hanselminutes in Microsoft. He posted some blog article. I'm not sure what the date was; I saw it probably two months ago when I was looking for date stuff. He'd basically outlined some of the same problems that I talked to you about several months ago, probably January, I think.
So in your JSON, you get a key that says, 'created time' and the value is an expression. The value is 'new Date', open parentheses, and then a Unix timestamp, which gets interpreted by the browser. As soon as the browser gets it and creates a native object from it, it says, 'I'm going to make a date with this timestamp there,' but it's looking at that timestamp and then converting it to the time zone.
So we had something that was a value that was going up at midnight in one time zone, and then when someone else was looking at it, they would get the JSON and it would actually be 10 o'clock the day before. And when we would just say, 'Give us the date for this,' one date would be January 5th and one date would be January 4th.
We came up, and I say "we," I did a lot of this and some of the other guys in the team I was working on, just beat our heads against this, and partially we were learning the code base and we were learning where all the dead bodies were hidden, so to speak.
We, well, I say "we," a guy named John had, actually I'm trying to give some props here without, because I don't know if they want me to say their names or not, but Jason and John both had some ideas and John's was actually more broadly applicable.
It's not perfect because we're still not dealing with time zones in our application, but what he did was very high in the stack chain. He actually overwrote part of the JSON serializer that was in our Java stack. I think basically he's overwriting some of either the Grails or the Java JSON writer.
So he takes and he creates a string, creates the actual date string, like 2012-04-07, and then a time, 15:00:00, makes that a string, and sends that down, basically rewriting the JSON expression to say 'new Date' and then give a string.
And all the browsers that we tested on, which are the ones that we say we support, all would interpret that with their own time zone. So if I gave you a string that said 'April 15th, 3pm,' it wouldn't matter what time zone your computer or your browser was in. It would say, 'This is not 3pm in my time zone,' and it would treat it appropriately, more or less.
Yes, it's a hack, but it was a very clever hack, I would say. I actually mean that positively. Sometimes I say "clever" and I'm trying to be rude, but probably it was the fastest way to get around that.
Now, I don't remember Hanselman's post in terms of how he got around or what his patch was for dealing with his problem. Do you remember offhand? Maybe I should look this up.
If we were limited to the Web API, that might work, or Web interface I should say, but we also have a moderate amount of data and a growing amount of data that's coming in through rest API calls. To force clients that are paying money to post data in and say, 'You have to give us a time zone now,' it's impossible to do that because some of these people are using old systems they don't have the time zones themselves.So it's a matter of we can't ever say that we're going to have 100% of these. We need to be able to deal with data that doesn't have time zone associated with it. It's an ugly problem, but it's one that we can't solve on our own because it's bigger than just our software. It's the software that we integrate with and we take data from. So it's a rather humbling experience.
Technically, I know what the answer is. Practically, there is no good, clean answer. Even after all these years of doing this kind of stuff.
Manuel Lemos: Well, you had to deal with many cases.
Somehow I had to deal with a similar situation recently, I'm still dealing with it, but it's in a completely different domain, which is the implementations of OAuth 2.0.Currently I am adding support for users of the JS Classes site to authenticate using their Facebook account or Google account or GitHub account, whatever, and I started adding first OAuth 2.0 support.
I developed a single class that somehow abstracts that and internally defines some parameters that say, 'In this case, I would have to change it to pass the parameters this way,' and then the responses may come in the form URL-encoded or JSON.
Since I'm dealing with one OAuth server at a time and I do not intend to support all OAuth servers there are out there in the world, my problem is sort of limited, but I had to figure this and, OK, I see what you mean. I had to deal with it like a pirate, I suppose.
Michael Kimsal: Arr! Yes.
Manuel Lemos: It's somewhat small, but I think it's a smaller problem than you have with the dates.
Anyway, for those that wanted to investigate how this was solved, there is this article by Scott Hanselman on Microsoft and you can check it out and study. I'm not sure if they provide the definite solution for all cases, but probably it's a solution that covers many cases.Michael Kimsal: His solution, I think, does work in some cases. It wasn't going to work for our case because we really couldn't deal with time zones at all. But it's still a good read. There's a lot of good stuff in the comments, too.
Manuel Lemos: I think the worst case is you find an unexpected date format that you treat it as something else and then you insert incorrect data in your application on the server.
Michael Kimsal: Oh, yeah.
Manuel Lemos: In that case, maybe it's better to somehow throw an exception when finding some format you do not recognize instead of taking it as some apparently known format.
Michael Kimsal: That was me throwing an exception, by the way. Because when you said it, I was kind of acting out. You said, "throw an exception."Manuel Lemos: OK.
Michael Kimsal: I don't know if you could see it very well.
Manuel Lemos: It will not appear in the transcription.
Michael Kimsal: It won't, yeah.
Manuel Lemos: Well, people will figure that they have to watch the video because it's more interesting.
Michael Kimsal: They've got to watch it. Earlier, that was my Sarah Palin impersonation, which would only make sense to people of a certain age, again.
Manuel Lemos: Or maybe people that are following American politics.
Michael Kimsal: Who isn't?
Manuel Lemos: Probably not in my case.
Michael Kimsal: Oh, yeah. We won't transcribe... Don't transcribe that. Don't transcribe the 'L'.
Manuel Lemos: Oh, that's the go to, 'L'.
Michael Kimsal: Hey, hey. I say that sometimes when I get in an elevator. I'll tell the other person, I'll say 'the L', and they get a little offended until I point out I'm meaning the 'L' on the button. They don't really get it. They take umbrage.
Manuel Lemos: In reality, you mean they should go to a place they do not win.Michael Kimsal: They should go to the lobby. I should just say, 'Go to the lobby,' but I say, "Go to L."
Michael Kimsal: That damn semi-colon!
Manuel Lemos: Michael, do you want to describe what you have followed? Because I was following some comments on Twitter and everybody's complaining about having or not having semi-colons, so I needed to go back and figure where this came from. But I think you followed it more closely.
Michael Kimsal: Well, it all starts when a nucleoid gets together with a protozoid.
Manuel Lemos: That's clever.
Michael Kimsal: Oh, the semi-colons. The semi-colons, there we go.
On the link that you'll post, on Brendan Eich's page, there is one particular section or one particular type of expression or a compound expression that you could put together, which is legal syntax with or without the semi-colon, and it creates this confusion. If the parser reads it and puts the semi-colon in, then the expression reads one way. If you have it out, it reads another way.
So in some ways it's kind of a 'much ado about nothing.' I would not write code the way that these structures in question could be interpreted.It is not quite the same, but you could say, if I write this code and if you have a multiple compound expression that just relies on the order of operators to work a certain way, and then you took that algorithm and put it on the different system that had the order of operations, had your operators evaluate in a somewhat different order, it's not the same but it's similar.
I like Groovy as a language, there's no secret about that, and semi-colons are optional. I tend not to use semi-colons there. But there are some times where I will put in just to make sure that I am very explicit that this really is the end of the statement. But I don't use them all the time because I get lazy, but if there is a Groovy minifier and this was ever a potential problem, I would probably start doing it more often. Anyhow, that's the real issue.
Manuel Lemos: So basically, who exactly is complaining, those that do not want to use semi-colons or those that want to make them mandatory or something?
I would just say, if your code might be minified, just write it in a way that it can be minified or not. And just add the semi-colon. That's just me, but I'm getting old.
Manuel Lemos: Personally, I always use semi-colons at the end of statements, although if you have a line break, I suppose you are not required.
Michael Kimsal: I don't know enough about the syntax to tell you for sure.
Manuel Lemos: Is it something that he can fix or is it complicated and there are reasons to not do it? Other than arguing with people?
Michael Kimsal: You can argue that when you write code that can be parsed one of two ways, telling somebody, 'Fix this because my intention was for this code to operate this way,' is not a really good answer. You've written code that happens to parse one way, but when you read it, it could realistically be read one of two ways.
So how do you resolve that? Do you change to match the whims or the demands of a small portion of people that seem to be interested in writing code that isn't very obvious to read in the first place? Or do you say, 'Hey, this tool's been on here for a long time. This is how it works. I'm not changing to accommodate these arguably somewhat fringe/edge cases?'
Manuel Lemos: Yeah. I think this whole discussion has been overblown because you want things to work while you make them unreliable just because you do not want to use semi-colons. What does it get you to not use semi-colons? You are going to save terabytes of memory when you use the semi-colon.Michael Kimsal: Honestly, the parsing question here, the minification issue, is not the same as what I'm going to say, but I have this argument with people sometimes about parentheses in PHP, or really to some degree other languages as well, but just put the parentheses in. Quit being clever to say, 'Oh, if some bizarre turnery,' and then on the next line just have something indented for one thing, stop it.
I don't want to maintain your crap when you do that. I always and having to go put parentheses in because I have to do something else in that as well. Whether I just need to put some logging-in so I can test your crap because it's not working because you've moved on, not that I harbor any resentment against anybody in particular, because I don't.
This isn't any one thing. This is just, I've seen this for going on 15 years, actually more than that, and it just boggles my mind that anybody would ever do that.And I think in some cases it's almost a religious argument, the tab versus spaces, except that, and some of this, I think, comes from people, and the maybe younger people, and I'm getting old so this is maybe my perspective, but seriously, because there are people that have made a career out of just writing code and then moving on, they're writing a project, they're writing the first iteration, and then they move on and then they go someplace else and they write another first iteration of something, another Greenfield project in their new popular language or framework of choice, and they generally don't do maintenance work.
And I'm not saying I do maintenance work because I love it. It's work that I get and I do it. But there is a perspective that you get on how to write maintainable code when you've dealt with disaster after disaster after disaster from other people's code that is not only not maintainable, really, it's not testable, it's not anything.
And the parentheses are in some ways kind of a minor thing, but when they're there, it's just one more thing I have to go do because I have to go put some logging-in in your condition block.
Manuel Lemos: Yeah. It's not right, an ambiguous code.
Michael Kimsal: Yeah. It's a code block. Just put parentheses in. But that's my little rant.
Manuel Lemos: It surprised me that the topic was sort of overblown because for several days I saw people commenting on Twitter, and I think it did not end already. They're still talking about it.
For me, maybe because I develop most coding in PHP, semi-colons are not optional. You should put them in most places. So I got used to it. And it doesn't bother me. I'm not going to save the world, it will not make a difference in global warming to use more semi-colons here and there, but, OK, it's just so I have something else to comment on in the podcast.
Michael Kimsal: Just real quick here, I think the reason that you were seeing so much in Twitter and Hacker News and Reddit and some other places is because of the names that were involved.
Manuel Lemos: Oh, I see.
Michael Kimsal: You have Brendan Eich and you have Douglas Crockford both making their case about something, which I find utterly trivial but it has an effect on how some people write, and neither side, neither camp seems to be backing down or seemed to be backing down. I'm not sure of the status of things now.
Manuel Lemos: So the final lesson is, use semi-colons and shut up.
Michael Kimsal: I would say so, but that's just me.
Manuel Lemos: Yeah. OK.
Michael Kimsal: So on that bombshell...
Manuel Lemos: It just seemed something of stubborn people. Life is short, we need to move on. Also this podcast needs to move on.
Michael Kimsal: Carry on.
Manuel Lemos: We are basically at the end of this podcast and we're practically at the moment on which we will comment on the latest classes that were published in the JS Classes site.
If you have some components that you're probably reluctant to publish or to announce, or maybe you've published somewhere, in GitHub or some other code repository you are not getting much exposure, if you publish them in the JS Classes site, you will also get additional exposure that may be helpful to get more users, more people getting you feedback and eventually making bug reports or features suggestions and making your project even more useful also to yourself and not just to your users.
On that note, let's just comment on the two classes that were published recently. Basically, there is one, actually it was written by me because I was addressing the need of a friend, but it's also a need that I have once in a while, which is the ability to show progress bars in a way that they appear smoothly.
The problem that it's trying to solve is the case that sometimes you need to show a progress bar and it updates its lengths in chunks. I think that does not look very nice, and sometimes the user does not notice because he blinked the eye when the bar updated.
Using this smooth progress bar object when the length of the bar is updated, it is not instantaneous. You will go through all the steps between the current position and the next position that it shows and gives a nicer effect, and I think it will be useful.
People probably want to present progress of tasks that are going on on their sites in a way that it's smooth and more pleasant to see and the users notice more what they are showing.
Michael Kimsal: Well, that's the difference. You write code that takes time to execute. If you were like me and you just wrote code that's just gotten done, you wouldn't even need a progress bar. Just, it's done. It's done. I use indexes on my databases, like that. I use the SSD drive, I'm done.
But for some of you that need progress bars, I guess... I remember those days.
Manuel Lemos: Unfortunately, not all tasks are instantaneous if you are dealing, for instance, with file uploads.
Michael Kimsal: If you're going to be all negative about it, yeah.
Manuel Lemos: If you do not have unlimited bandwidth and things take time to upload, it is always good to give progress information to the user.
But to please you better on that note, one feature that I was about to add is the ability to delay the appearance of the initial progress bar. If the task is too short and if after, let's say, one second the task is already done, it won't even start showing the progress bar.
Michael Kimsal: There you go.
Manuel Lemos: So it won't be necessary. But that's just one of the features that I was adding on. I just did not have the time yet because it's quite recent.
But there are other suggestions, which is something that's nice about publishing in a site like this that once you publish it and many people get to see your work, some people say, 'Oh, this can be useful to me, but maybe it would be useful if it did something else besides this.'
Michael Kimsal: If it was transparent, maybe.
This is the progress lid. Notice we started the podcast here, and I got it up to here, so we're about here. I'm demonstrating the idea of a progress indicator. Even in this podcast, we've got it.
Manuel Lemos: Oh, you are so visual.
Michael Kimsal: Folks, when you're good-looking.
Manuel Lemos: Yeah. And humble.
Michael Kimsal: I should've been born rich instead of good-looking. My life would've been a lot different.
Manuel Lemos: Yeah. You can't have it all.
Michael Kimsal: So we're here in the podcast, we're nearly done.
Manuel Lemos: Yeah. We have probably not more than five minutes.
Michael Kimsal: Oh, goodness.
Manuel Lemos: Just enough time to comment on yet another class, which is basically a more generic class. It's basically a wrapper around the different ways to implement AJAX in the different browsers.
Michael Kimsal: Oh, the xhr one. Yes.
Manuel Lemos: Yeah, which is an object published by...I'm trying to spell his name.
Michael Kimsal: I'll say it. I saw it. I'm going to say it.
Manuel Lemos: You are the expert in foreign names.
Michael Kimsal: Archzilon or Arczilon Eshun-Davies. From Ghana. Hello. Hopefully I didn't say your name too poorly. Sometimes people would say that last part is 'Day-vees' and sometimes it's 'Davis'. Let's pretend that the 'e' isn't there altogether. But I'm not sure how you pronounce it.
Oh, whoops, my progress lid has gone away. OK, carry on.
Manuel Lemos: Anyway, just a side note, this is actually interesting to see. We don't see many authors from Africa contributing to this site, so it's good to see this object by Archzilon. He has also contributed to the PHP Classes site and he also sent some classes, some of them, I think at least one, was nominated to the PHP Program Innovation Award.
Anyway, thanks to Archzilon. I think that's the way it's spelled. I'm not sure. I hope you can keep contributing with more components.
But unfortunately for this month, that's all of the components that we have to comment about. In the past months, there were times that we had too many components to talk about, so I think this month it's in a valley. I hope we get back to the mountains again...Michael Kimsal: We'll get back to the mountains. Yes.
Manuel Lemos: ...and comment on more interesting components.
Manuel Lemos: But moving on now, our final section is one that Michael has the privilege to announce the upcoming articles on the JsMag magazine.
Michael Kimsal: We've got one, two, three, four, five, six, seven, six or seven things potentially lined up, and we've always got somebody who can't do something and last minute we push some things off, but a couple of things I'm pretty sure we're going to have.
Arturs Sosins, he's doing a, it's probably an ongoing, we talked about this before but I think we're going to get three or four articles out of him about this, he's doing what I had asked someone to help me with and then I ran into too much work, but the Gorodki game that I played when I was in Russia last year, he's doing a mobile version of that using Titanium. That should be in the May issue coming out next week, at least Phase 1 of that.
So I'm looking forward to some of these, actually I'm looking forward to all of them, but getting some more JsMag out to you next month.And as always, if you're interested in writing, Arturs and some of the other authors that we have, Dino Gambone, who actually just did a podcast with us recently, has written for JsMag a lot. He was listening, too, to the JS Classes podcast and became an author for us.
Michael Kimsal: Yeah, I'll look at that. I've rolled the thing a little bit more. We're really at it.Manuel Lemos: Yeah. We're almost at the end!
Michael Kimsal: Oh, we're at the end. I don't know if we're the end, but we'll probably get some.
Michael Kimsal: We'll see.
Manuel Lemos: ...if it came out well. But so far, it did go well.
On that note, I would like to thank you everybody that is watching and will be commenting on the podcast.
I hope this Google Hangout On-Air will work better in terms of notification to call people to participate because we've sent invitations to tens of users that joined in the circles of the PHP Classes site, which is the account on Google that is handling this recording. This is a feature that is restricted to some Google accounts, and that's why I'm mentioning that.
So if you want to participate in the next shows, just go on Google+ and add yourself as friend of the PHP Classes site account, which appears or fixed with my name because there cannot be accounts of names of sites, just names of people, so you will see 'Manuel Lemos (PHP Classes)'. Add yourself as friend and you will hopefully be notified next month when Google Hangout On-Air.Michael Kimsal: You're running out of Pringles lid. We're nearly done.
Manuel Lemos: That's Pringles? Oh, that's cool.
Michael Kimsal: Yeah. You don't get a physique like this not eating Pringles.
Real quick, my wife will probably never watch this because it's nerdy, but I have to say, I had a birthday last week, woo, and my wife got me a couple of really nice things, but I don't have it yet.
Manuel Lemos: Happy birthday.
Michael Kimsal: She's buying me a guitar, which I've been wanting for several years, so I'm getting that, and at Sunday, I'm going to the Beach Boys concert in Raleigh, North Carolina. Woo woo!
Manuel Lemos: Oh, was that your birthday present?
Michael Kimsal: Oh, yeah! Beach Boys, baby. They don't go and come around all the time.
Manuel Lemos: You are a very happy boy.
Michael Kimsal: Oh, yeah. Who wouldn't be happy at a Beach Boys concert?
Manuel Lemos: I can tell.
Michael Kimsal: Oh, yeah. I could sing some of it right here, right now.
Manuel Lemos: I'm quite far to go there, so I'm not happy.
Michael Kimsal: Maybe they'll come to Brazil. I'll tell them to go to Brazil.
Manuel Lemos: Well, probably, while they could.
OK, that's all for now on this podcast. Let me just see if I can try to put the animation to end this podcast.
Michael Kimsal: Take us off-air.
Manuel Lemos: Bye!
Michael Kimsal: Bye-bye.
No comments were submitted yet.
|JS Classes blog||Shall we always use s...||Post a comment||See comments (0)||Trackbacks (0)|