php[architect] logo

Want to check out an issue? Sign up to receive a special offer.

Episode 15 – Generics and php[world]

In this Very Special Episode

Eric Van Johnson, John Congdon, Chris Holland, and Oscar Merida recorded this episode live at php[world] just last week. Share your thoughts on the topics covered and leave a comment below.

You can read Chris Holland’s The Case for Generics in PHP article online for free.

Topics

  • Eric, John, and Oscar talk about snowy weather in Virginia.
  • The value of attending conferences and user groups, both in attending talks and networking.
  • Preparing and finding writers for the magazine and selecting talks for conferences.
  • Chris Holland explains the value generics would bring to PHP.

Listen

Transcript

Welcome to the official podcast of PHP architect join us to listen to the latest news and tech talk from our conferences, the magazine and wider PHP community.

EvJ: You’re listening to PHP Podcast, and as the lady said, we are the premier podcast of PHP and PHP Architect Magazine.

I’m your host Eric van Johnson, and with me, as always, is my partner, John.

JC: Hello, hello.

EvJ: And we have a very special show today. We are recording today at PHP world, in Virginia, the 2018 PHP world, and we have some IRL people with us today.

JC: IRL?

[banter and laughter back and forth]

OM: I’m not sure our demographic knows what IRL is.

EVJ: With us today, is the editor-in-chief of PHP Architect Magazine, Oscar.

OM: Welcome to snowy Virginia.

EvJ: Snowy Virginia.

JC: Was today the first snow?

OM: So this is the earliest snow, since 1905, or something like that.

EvJ: As somebody who now lives in San Diego. I was out the moment I woke up this morning I looked out the window, saw it was snowing and was it a kid who just got out of school. I went running out in the snow, and taking pictures. We also have another very special guests with us today, the contributor of the Case for Generics and PHP, which is the feature article in this month’s PHP Architect Magazine. Chris Holland.

CH: Hi, I am Chris. Nice to meet you. I’m glad to be here in DC, I got to be a little bit of a tourist yesterday and this morning I woke up to a winter wonderland. It’s very magical so very happy, excited to be here.

EvJ: So I learned something on this trip. I, I was actually born and raised in Maryland, not too far from where we’re at here. I lived there for about 21 years, and when I moved to the West Coast, we noticed that they called the Motor Vehicle Association out there, the DMV yeah. And we always told people, I’m like, “It’s funny years called the DMV-here ’cause back home, they call it the MVA. Then I heard somebody today… Today… Yesterday, that’s maybe yesterday talking to somebody else asking them. Are you from the DMV? And I just realized, I’m like, “Oh yeah, DC-Maryland-Virginia. That’s people around here say “Are you from the DMV?” It took me a minute I’m like, “Why would they think that person working at the DMV?

OM: So it’s very confusing ’cause the DMV is also the Department of Motor Vehicles, also have Delmarva where Maryland, Delaware, and Virginia over on the eastern shore. Yeah, then DC, Maryland, Virginia.

JC: Yeah, somebody had the DMV their slide yesterday. I was lost. I was thinking “the Department of Motor Vehicles” as well.

EVJ: O that was funny.

OM: I don’t think it’s very common. I don’t hear DMV referred to the region to often.

EVJ: I had never heard it until at this conference. Even message the wife, “Hey… Have you ever thought of this?” So that was fun. How has everyone been enjoying the conference?

CH: I’ve been loving it so far. You get to have great chats with awesome people. And it’s what I like about these conferences, beyond speaking at them you get the other people. We get to talk about our shared struggles writing software and how we solve things and I’ve been doing a lot of that here since this morning, so it’s been great.

JC: And how often do you go to conferences?

CH: In 2018? I’ve gone to eight, I think, mainly speaking so I do take time off from my work to go to these. So there’s a bit of a balance there so I don’t have to worry about work during my daytime. So yeah, my Personal Time Off balance at work is very low right but, but it’s nice ’cause it’s a good opportunity to travel. Earlier this year, I was with my wife at Boston PHP back in September, and it was great. We got to visit Boston together. It was awesome.

EvJ: Yeah, to an extent the same is true with users groups user groups, but conferences are on another level of that. It’s so divided. You don’t only get good knowledge, you don’t learn new things all the time, there’s always good talks, but just the networking, alone, just like you said talking to other developers, it’s finding out what they’re working on, finding what problems they’re dealing with. You get them in a user group and that’s why we’re always encouraging people if you have a user grou ____ a local user grou ____ attended it. Or if you don’t, create one. Because that sharing of knowledge, just that networking, is so valuable.

CH: Yeah, and it’s good to know that you’re not alone, in whatever struggles you happen to deal with, right? Whatever you’re dealing with either somebody is dealing with it right now or has dealt with it and you can really share knowledge that way.

JC: We keep trying to get the members of SD PHP to come out even if they’re not interested in the talk, but that is so hard. People often look just at that and they’re only, they’re all focused on the presentation. No, there’s so much more to it.

EVJ: Oscar, you calm down. You just seem to be talking over everybody. I know, normally, you have your own little segment with your little words of wisdom. I don’t know, feel free to contribute whenever you want.

OM: I was gonna say, it’s also exciting to meet the folks who are coming to a conference for the first time or just learning PHP and web development introducing them to the nice community we have ’cause everyone’s very helpful and friendly, and we stressed that definitely.

JC: Well, there’s that one person.

OM: There’s always one.

KC: There’s always a me round.

EVJ: Yeah, the count is great. Get great food here to the… I had a little vegetarian lunch today. It was good.

JC: You did?

EvJ: I did, it was all vegetarian lunch today. Yeah, I mean there was a hamburger, but I have it on good authority the cow was a vegetarian, so I was a vegetarian by proxy is what I call it. So it was good food. Good food at this conference.  It’s always the food is always the hit or miss at conferences. It’s is either a box lunch or its like this where it’s really nice.

OM: You can never please everyone anyway, with food. There’s always one place where you go wrong, or hear complaints about later.

JC: I keep the complaints to myself, “It does it all.

EVJ: So, you know, we’ll get to you in a moment Chris. Yeah, you relax.

CH: Yeah, I’m cool.

ECJ: And you’re not going anywhere but we don’t typically have an opportunity to talk to Oscar. He phones in his little segment, and we just place it in.

CH: Oh, let’s grill him.

EVJ: So we have an opportunity here to talk to the man in charge…

CH: The legend…

EVJ: And figure out…

OM: You’re hyping this up way too much.

[laughter]

EVJ: So Oscar tell us a little bit about yourself. How long have you guys been running the php [architect] Magazine? What exactly is your role or that sort of thing?

OM: We’ve been running, and be “we” day-to-day php [architect] is just me. My full time gig is getting the magazine together, and books and publishing. Eli and Heather with One for All Events, day to day are organizing conferences. Now, they’re going to turn their attention to php [tek] coming next year. But we’ve been doing this since 2013, this is our fifth PP world. I think I counted.

EJ: Nice. And its your full-time gig so all you do all day is read submissions? And kind of how far out do you planned the magazine is like how far out do you know what the next topic is gonna be?

OM: You’re putting me on the spot here, I think you know the answer.

OM: I know about them, two to four weeks ahead of time, ’cause it depends when people turn in their submissions and real life gets in the way so… So you don’t always hit their deadlines. Which is fine. I’m pretty flexible about that. I do two big pushes during the year to get content for the magazine. I reach out to people to write about interesting talks I’ve seen at other conferences, or CfP submissions to our own. That’s 80% of where articles come from. They were good enough to be a talk that we couldn’t select because of space constraints or something like that. So, I always follow up after the pain of not getting accepted, I’ll follow up with like, “Hey, but would you like to write with magazine?” Which is how I got in touch with Chris.

EVJ: And what some people might not know who are listening, is that there’s also a way to submit through the website, right? So if you have an article…

OM: Yeah, if you have an article there are guidelines for how to submit and what we expect from an article. I keep saying we, but it’s really I.

EVJ: We makes it sound so much bigger.

OM: I’m honestly trying to get away from that impression here. That we’re this big, huge corporate behemoth price. Phparch.com/write will show you some guidlines about how we use Markdown and the mechanics of it, but there’s also a list of topics in a very old, outdated Editorial Calendar, which I decided to stop pretending was gonna guide each year because its very flexible.

CH: PHP arch dot com slash right.

OM: Yeah.

JC: There you go, Man.

CH: I got you man.

OM: You’re the best.

JC: And you actually pay for articles, right?

OM: Yeah, we pay authors, you get a subscription to the magazine for a year, you get two print copies with your articles.

EVJ: That’s nice. Yeah, I’m often asked that, I’m never sure what the answer is. Is it a set rate, or is it…

OM: Yeah, I, when I took over, I didn’t wanna do math. So we don’t pay by the word anymore. It’s 175 bucks for a feature article, which is about 3000 words. Some of the columns are shorter, about 800 words, is 75 bucks and.

EVJ: And are you the one curating all the articles. Reading through all the articles? Did you have schooling in that or is this just what you ended up doing?

OM: Well, Kara helps me review the articles a bit and she’ll clean up the copyediting and point out places where the language could be a little clearer and stuff but I just kind of fell into it, ’cause when Beth was the editor. She’s also here, she can verify this later.

EVJ: Beth Tucker?

OM: Beth Tucker Long, the previous editor. When she was reviewing articles when it got to the point where it was ready to be published, I would do one final review and she noticed I would catch a lot of typos, and other areas that could use clarification, or just were the PHP code was kind of off and had errors. So I kinda like fell into it because I had a good eye for it catching some of that stuff and then took over when she left.

CH: But you’re also a software engineer, right?

OM: Yeah, so by training before I did this, I did a lot of PHP programming. A lot of drupal work. I still do some consulting.

CH: Yeah, the reason I mentioned that I was because when you were reviewing my article, you were asking some very, very relevant questions right. Which really kinda helped me clarify all the topics. Things I may just overlook or just kind of go over. He really helped me flesh out a lot of segments in it.

OM: When I review an article I try to make sure that someone who’s never heard of a concept has more background info if it’s a more advanced talk or article, but also to have at the end, the other thing I look for is a place for follow-up. So someone’s read your article, what should they do next? Can you go practice somewhere? What’s the follow-up article for implementing this? Sometimes that becomes “Can you write a second article?” Which is great.

JC: That’s a good idea.

OM: And so I’ve noticed that two of the, not counting myself, two to three people in the room have written for the magazine, so…

EVJ: Actually three of the four people not counting yourself to say… Yeah, I, I guess I’m the lone person that has not. I have a good one to write and time later on. I was talking to John about it yesterday, I’m like, “Oh we… We should make them and…

JC: Except his version of talking to me was like “You should write that article.”

EVJ: Again, through proxy. I do everything through proxy. I don’t directly get my hands dirty. Less prison time that way.

OM: John writes it and we share the byline and you can check it off your bucket list.

CH: Join us, Eric. Join us.

EVJ: So that seems like a good segue, Chris. You have one of the future articles, this month. Is this your first time writing for php[architect]?

CH: Yes, that’s actually my first time to get printed anywhere on paper that was… It is A… So it is a, it’s a… Yeah, and it looks really nice. I’m kind of only, okay go, and.

JC: Yeah, Eric and I were actually talking about how high quality the print magazine actually is.

EVJ: Yeah I, if you are a subscriber to php[architect] and you don’t have the print magazine…

CH: It’s beautiful.

EVJ: You should treat yourself every now and then. The quality of the paper, the quality of the print, the color is fantastic.

JC: Every now and then? Every month. You should treat yourself as a professional to get professional.

EVJ: And what’s great about it is I throw mine in my backpack back and I’ll have one month of magazine in my backpack for a couple of months and then I find myself in the place where I don’t feel like breaking out an iPad, I don’t have wifi… Or in the airplane or something that I go old school, with the print.

JC: So your article, “The Case for Generics and PHP.” I was floored by because the last couple of conferences I’ve attended a lot of people have been talking about wanting generics. I didn’t understand the term. I mean, I quite understand what they’re talking about and going through here. A lot of it was reminding me of Java, and I’m not a Java developer. I’m a Java hacker. I was able to put together, an android up and I kept seeing these angle brackets everywhere. It’s like, “what does it mean?

JC: It is kinda understand what’s going on. I know enough to be dangerous, but you laid it out very well. So why don’t you give a brief description of what generics are.

CH: Sure, yeah, and I was fortunate enough throughout my career to work in different technology stacks, and I did spend a good amount of time working with Java. So that Java was my first introduction to generics. And the basic gist of it is right now, if you look at PHP, we have return types on method, so you could say that a method returns a user object. Okay, now what if you wanted to signal that your method should return an array of user objects. Right? And have that enforced at the static analysis level and that’s kinda what generics allow you to do. The very first use case for generics is you want to define a collection of homogenous objects. Objects are the same thing. So if you have a collection of users, you don’t wanna add a duck to it. If you try to add a duck to a collection of users, you want the system to fail early, and tell you what you’re doing is not helpful. Things are gonna blow up in your face.

CH: If you look at Doctrine’s array collection class, Doctrine PHP’s array collection class is kind of a nice object-oriented abstraction to deal with arrays. Right now if I wanted to use this class and make an array collection of just users I would have to make my own UserArrayCollection class and only allow have an add method that takes a user object and its method signature right? And if I want to, to do the same with the dock that would have to make a DuckArrayCollection class. There’s a lot of repetition, right now, that we would have to do to kinda enforce behavior on these composite objects, right? Generics allow you to do these things, you can create an array of users and enforce that only users can go in to this array and then you can signal that the method can return this array of users and nothing else, right? So if I call your method, I know that it’s going to be an array of users in this.

JC: Gotcha, so you’re basically enforcing that and it’s not necessarily an array like you said, it’s an array collection object that iterable right?

CH: Right. What we’re doing here is kind of composite objects. Right? An array collection is one object and then a user is another object. So now you’re defining an array collection that is bound to a user.

JC: Instead of the way we would do it now is extend array collection and force the the object type. Now, we have all these extra objects that are unnecessary.

CH: Exactly right, so it allow you to write less code while enforcing stricter behavior.

JC: Is it limited to just collections or array or… Or you can, can it be extended other things.

CH: Great question. You can do that with anything, really. I was chatting with Daniel Labarge. I mention in the article. He’s got a gaming system, and he wanted to use generics for a weapons cache right. So you have a weapon cache of rifles. Okay, so things like that, any kind of composite objects that you can think of where you wanna enforce the right blend of object types. Some of the examples that I mentioned the article are caching layers, right? If you create a caching layer, you wanna make sure that when you put into the cash and what you get back out of the cash our objects are very specific, specific type, or things like that.

JC: Yeah, I think there was the while thing I’m finding it. So you’re making a very generic class assume its generic, and then you’re binding a specific ttype to it.

CH: Exactly, so… Yeah, the way it works is I could write a class called GenericArrayCollection, so I would go new GenericArrayCollection angle brackets user and I put the parenthesis after that, right? That is the process that allows me to bing a generic class to a specific type.

JC: Is this available already. Or is it upcoming?

CH: No, it’s not. Really, it’s just an RFC. Ben Scholzen and Rasmus Schultz co-wrote this RFC back in 2016. So it’s been around for a while. It’s just that it hasn’t had a lot of traction. So all I’m doing with this article is I’m trying to promote this RFC and from what I’ve heard there’s some work being done with implementation, it’s just that nothing has yet been announced. This RFC has to be voted on. Right now, the only work that’s going on right now, I think it’s prototyping work and research work but I am hoping that with this article, people will get a chance to look at Ben and Rasmus’ RFC to look at it and to make an informed vote on it at some point.

JC: So the RFC has not been put up for a vote yet?

CH: As far as I know it has not yet been put for a vote.

EVJ: What’s nice about this article and I can say, and I feel I can see this every month, but what’s nice about articles in general and php [architect] magazine is you still have a bunch of code samples in here. So are you working with… How did you work the code samples?

CH: I just literally made up. I know what the specs. The syntax that’s advocated by the spec, right, and I… And which is consistent, which with what I’ve seen in other languages like Java, and C-sharp. So I just did it in a text editor or I did not try to compile the code. It does not work right now?

EVJ: I know for me, as a reader, I almost always go right to the code first. It’s so much easier for me to start to take in the information I’m reading if I’m looking at the code and I’m reading the article, I’m like “Oh, yeah, I swee what he’s saying over here now.”

CH: And so, if you wanna tinker with it. I didn’t link to Daniel Lebarges’ project which it’s like fake generics but it’s pretty cool. Now, Daniel would warn me that it’s like “look and not use this in production.” But if you play with it, it kinda helps you get a feel for it. So you should be able to adapt my examples in the article to using his framework and would kind of allow you to tinker with it.

EVJ: So this brings up an interesting topic I’m hearing talked about more and more, I’ve been curious about everybody’s opinion here. How do you feel about the statement that people feel like PHP is getting to be too much like Java?

CH: I have a lot of opinions on this, and I think there has always been great pollination of knowledge across many technologies stacks. If you look at what’s been done in the Java well, ago when the Hibernate ORM in came out which started out with the Active Record pattern and then it did data mapper pattern. Then Marco Pivetta and his team, they built a PHP version of it and that became Doctine ORM. If you look to this day at the Doctrine query language and you compare it to the Hibernate query language, they’re pretty much the same. And it’s great because it makes developers portable, right? I wanna know that what I’m doing is relevant to some other languages. I wanna be able to attract software engineers from other languages. And that doesn’t mean that you have to adopt everything that other languages do but it’s always healthy to kinda look at what’s useful on some other languages and ask ourselves, “Would this be useful to us?

CH: Yeah, and that was kind of my angle behind his article was to really just look at it from what are our needs today, and how could we answer to those needs? And generics seem to make sense, and if you look at a concept like generic programming, as I mentioned in the article, it’s been around for a long time, in predates Java by decades, right? And many other languages beyond Java support generics or templates. In the end, there’s a lot of value that different ecosystems can get from other ecosystems, and I think it’s healthy. I don’t know what you guys think.

JC: I agree with that. I want to go back to the RFC portion. We hear a lot at conferences about internals. Can just anybody go to the RFC and make comments or push it forward in any way?

OM: The way I understand it is anyone can make an RFC. It’s actually not that difficult. Typically, if you’re not a C coder, you might want someone who’s familiar with the PHP implementation behind the scenes to help you write a patch or implement the actual behavior. Ben Ramsey, I think has given a talk in the past about how he went through this process. When it comes time to vote on an RFC, the vote is limited to people who have voting karma. Which are contributors to core: Zeev, Rasmus, a bunch of other people. So they’re the ones that get to decide if they’ll actually re-implement it or not but anyone can pitch an idea via an RFC.

ECJ: Can anybody comment on it? Add their opinions.

OM: Comments seem to happen mainly on the mailing list and not on the RFC wiki.

CH: The generics RFC, they link to their GitHub repository and there’s a lot of comment activity going on on there. There is a link to the GitHub repo in the article for the genenerics RFC.

JC: I was asking more should we ask people to go comment and say, “Yeah we think this is a great idea, but let’s all move it forward.” Or is that just putting comment spam in the GitHub repo? How do you get their attention to say, “We need to put this to a vote” or “we really need to get work done on this.”

OM: I should look again ’cause when I looked at his at Chris’s article and the generics RFC. The reason that it hasn’t moved forward, I don’t think his technical… I don’t think anyone like raised a stink and said “We don’t need this. This is too much like Java.” I think in the current iteration of the Zend engine, it was gonna be really hard to implement. So I think they’re waiting on changes coming, up down the pipe in core that will make it easier to implement these without—and I may be wrong about this—without performance impacts. That would be pain to push out.

JC: Gotcha. It’s okay to be wrong.

EVJ: Yeah, I make a career out of being wrong. Trust me.

OM: I’m no stranger to being wrong.

EVJ: So cool, Chris. I suppose this won’t be your last article I see in php[architect]?

CH: No, I’m hoping I’ve…

EVJ: You like a man with ideas.

OM: Pitch me now.

CH: So sure, yeah, I will get up at that.

EVJ: I’m here for you, Oscar. This is for you to make your life easier.

CH: It’s been a fun process to go through with Oscar and I, definitely, would be honored to do it again. So yeah.

OM: I have the say, Chris has been one of the most excited people to work with. Because, as soon as I gave him feedback he’s like “I addressed all your comments, let me know what else you need.” I’m like, Okay, so quick. And then when it was ready to be published he was like “it’s been published, this is awesome.”

JC: So put you on the spot, did you hit your deadline or did you miss it?

CH: No, I was not a head of it by a couple of weeks.

EVJ: Wow.

JC: Yeah, I don’t think I ever hit one of my deadlines.

OM: That’s okay, I work with all kinds of people. Some more frequently than others.

CH: I’m pretty OCD when it comes to deadlines. I could give myself up out.

OM: I wont through anyone under the bus, but I’ve had people miss a deadline by a year.

EVJ: A year?

JC: It wasn’t me was it?

OM: No.

CH: One of the interesting things is like when you work in software and it’s always hard to know what you’re gonna get done and when, you’re gonna get done. There’s always stuff that comes upm technical debt that messes with you, and it’s very difficult in software to hit a deadline. Whereas writing an article, I know I can do that and I’m excited to make that one confidently. So yeah, that makes sense.

EVJ: There are other great articles in this month’s issue. Oscar, I never get an opportunity to ask you. Do any jump out at you? I’m sure you enjoy them all because you put them in there.

OM: It’s funny, by the time the print issue comes out or releases, I’ve reviewed each article like three or four times. So I don’t actually sit down and read the magazine. I’m not a typical reader.

EVJ: Another speaker here a PHP world, [Jason McCreary]. If you’re a Laravel developer, he has a really, really good article in here about some of the things that he’s seen, over the years with his Laravel shift product in upgrading Laravel and some of the problems that you see in developing in Laravel. He gave this talk at Laracon this year and he’s in such a unique position to see such a wide range of codebases and to have developed a tool that is meant to help those codebases upgrade through different versions. I found that the article he posted in here, as well as the talk he gives on the topic as well, to be extremely informative as a Laravel developer.

JC: He’s such a modest down to earth guy. His is a Laravel Shift. If you have a Laravel app, and you need to update between Laravel versions, go check it out.

EVJ: He will never sell you on the product.

JC: In his talk, in the magazine. He steps back from the.

ECJ: Yeah, but the data he gives you is just dynamite. So again, Laravel developers, if you don’t have a subscription to php [architect] magazine, this is one of the issues you wanna go pick up.

OM: Yeah, that article was really cool ’cause it’s not just his opinion on how to write maintainable a maintainble Laravel app. He looked through the log files of failed upgrades for Shift. ’cause what Shift does, the way I understand it, you point it at git repo for your Laravel app and he’ll give you a pull request it to update your app to the latest version. So he knows what what causes pull request to fail or the upgrades to fail, and he can point to say 10% of projects couldn’t upgrade because of X, Y or Z. And while the recommendations for writing maintainable code was specific top Laravel in the code samples they’re pretty true for any project. If you’re working with Drupal or WordPress if you do things against the grain of a framework, you’re gonna have a hard time later upgrading ’cause you’re going outside it’s expectations and assumptions.

EVJ: That’s a gooo point.

OM: So it wasn’t just… If you’re not a Laravel developer, don’t skip that article. It’s got a lot of good list of it.

JC: It’s almost like when you have library running through Composer, you don’t go in the vendor directory to change files, you shouldn’t change the the files that come with the framework as much as possible.

OM: In Drupal they have a similar convention, and probably WordPress too. “You don’t hack core” Magento has the same thing with the Ben Mark’s meme. “You don’t hack core.” If you need to extend or change the behavior, there are hooks and interfaces that you can implement to do what you need without like you’re saying going into the vendor director, your core directory or whatever, and patching things just because you have this weird edge case or don’t understand how a framework works. That’s something that I see a lot.

EVJ: I found the article “How to knock downprojects in ten0 steps” very confusing.

OM: It wasn’t prescriptive either, right? It’s not a advocating going to knock down any project, it’s more about how to manage a project successfully, by knowing the practices to avoid.

EVJ: Yeah, and it was actually very insightful. As I read through it, I could apply past experiences to just about every step he was going through. And it does do a really good job at calling out to somebody on what they should be looking for and understanding more aspects of just when somebody pretty a project to you and it’s all nice and shiny, it’s a great idea and you just wanna get on it. Let’s do that, do that. It’s difficult to kind of think through a lot of the kind of scenarios that you really are gonna have to manage as the project gets going and this article does a really good job at kind of calling them out and taking a look and think about these things. These things are really important.

JC: And why do you say it was confusing? ’cause I’m confused ’cause you said it was confusing.

EVJ: If you read the article it almost reads as, “Okay, here’s how to get out of doing a project.” It depends on what you wanna take away from it is say, if your manager comes to you with a project, here are the ten ways to convince them not to do the project.

OM: Did we all read the same article? Okay.

JC: That’s Eric for you, he reads what he wants to.

EVJ: I assume that we’re all at a different level than most people. So you’re welcome to that…

JC: What else did we read in there?

OM: You had the long flight. Surely you read it cover-to-cover.

EVJ: There’s one I wanna call out just because our podcast is in it. I forget the name of the article, though.

EVJ: Edward Barnard. If you’re a more seasoned tech person or if you’ve been on the internet for a while or even if you haven’t. Read Edward Barnard’s article “The day the Internet died.” He does a recap of the Morris worm which was one of the first really devastating viruses out there that brought down a lot of the internet. Literally brought it down to a screeching halt. It wasn’t that big of a deal back then, because the internet wasn’t what it is today, but it’s still a great read, and just amazing to think of and all that happened and kind of a scary to be honest with you.

OM: You called it a virus, but technically, it’s a warm, right? I think the distinctions are critical.

EVJ: Okay, alright, let’s bring this up then. What’s the big distinction between a virus and a worm? They’re both very bad.

OM: I don’t think worms… Well, now you you put me on the spot and I could be wrong.

EVJ: No, you put me on the spot.

OM: Worms just replicate… Well viruses do that too. I thought a virus tends to be more malicious and maybe not necessarily infect others. Well, no.

JC: Worms are I know all bout boring in.

OM: Are worms more automated?

JC: Boring into other systems.

OM: Do you know Chris?

JC: Levling up…

EVJ: We’re professional. He was a little, I he’s just bailed on the conference on together. It’s okay to agree with me. And technically, I could call a worm and I said it was before viruses were a very big deal.

OM: Worms are similar viruses in that they replicate so they both replicate viruses require the spreading of an infected host file worms or stand alone software and don’t require a host program.

EVJ: So it’s a matter of the way they replicate.

OM: Yeah, so a virus needs you to give me a copy of a USB stick or something like it. Whereas the worm can use the network to go from one machine…

CH: Yeah, it’s a pretty an important distinction. Yeah, if it can not spread unless a file has been given to you or you download a file. And then, you get infected versus if you remember worms like CodeRed and Nimda back in the day could infect XP systems, you literally put your computer on a broadband connection and then you get infected. And that’s more like a worm.

OM: Worms are more active in spreading. The thing from that article that stood out to me is thinking about like it was in 1994 when the waom spread.

EVJ: That sounds about right.

OM: The whole mindset of people on the internet was really innocent. : Ike the internet was so small, you could probably know most of the hosts on it. And most of the people who are managing the important bits and pieces of it so no one really took security serious. “Oh yeah, theoretically someone could write a worm that takes us all down. But who would do that? We’re all educators and researchers.

JC: We were all windows at the time.

EVJ: That’s actually one of the ways they were able to resolve it because it was so small, MIT is talking to… I forget who it was on the west coast. But those admins are talking to each other, saying, “Okay this is what we’re seeing, this is how we’re having it. And you couldn’t really do that. I mean you could do it on a much more Stack Overflow sort of level of net today, but it wouldn’t be them calling up other admins of the other core part of the internet.

OM: Were you guys on the internet back then? Do you remember?

JC: Yes.

ECJ: I don’t know if I was actually on the internet. I remember when it happened, ’cause I was into computers and all that, and I remember when it happened, but I don’t know, I can’t recall actually being on. I might have had a Compuserve account at the time but I don’t really recall. What gets mean is, and I hear the story started the same way every time, but it’s never explained to me. How he accidentally released it. It’s like, What does that mean? How did he accidentally realease? Nobody ever tells me how he accidentally released it.

OM: I actually looked for that too, and I couldn’t figure it out. I don’t know if that was just a defense.

EVJ: It must be some legal thing. He’s not admitting to releasing it, but…

OM: He did spend time in jail, and I got that date wrong. It was 1988. So that was kind of pre-internet-ish, it was before Mosaic and browsers.

EVJ: I’m still to this day, I’m very curious how it got released.

OM: The scary part about that article is that a lot of those practices and thoughts are still kind of with us like, “Oh when am I gonna get hacked? I don’t need to put up defenses or worry about X or Y or SQL injections.

CH: Yes, and that is a good time to plug your friendly OWASP chapter in your local community if you have not done so yeah, go to OWASP.org and look for their top ten publication.

JC: I think we had them in the magazine a couple of months ago.

OM: Eric [Mann] references them every now and then. That…

JC: Eric was talking earlier about leveling up by James Titcumb and he mentions the php [architect] podcast, PHPUgly, the now defunct dev/hell.

EVJ: Is it defunct?

OM: Yeah, I think its officially defunct.

EVJ: That was one of the first podcast I listened to.

OM: You never know when it might come back to…

EVJ: It’s a little more marketing money for us.

OM: All that podcast money.

JC: It just keeps flowing it. We keep trying to kick it back out.

EVJ: He does talk about attending local user groups, conferences, things like that. Training.

JC: Speaking of local user groups. We didn’t ask you, while we’re talking earlier, Chris, di you participate.

CH: Sure, yeah. So I live in Austin, Texas. Wonderful town, a great people and love the community. I’ve only been there for two and a half years and it’s been wonderful. My local PHP community is Austin PHP.

JC: They’re strong, aren’ they? They have a lot of members.

CH: Yeah, yeah, so look for Austin PHP. We just hang out on the Slack channel, so there’s a link on the site, I forgot what the URL is but Google “Austin PHP” you’ll see a link for their Slack, you can just join the Slack. And then also, they are the organizers of Longhorn PHP. Happening not in April, it’s like early May, I think May second. So, yeah, go to LonghornPHP.com and the CfP is going on. So if you are a prospective speaker and you’re interested in speaking at conferences to cfp.longhornphp.com and submit a proposal.

OM: Well, pro tip, submit more than one. Submit multiple proposals.

CH: I submitted eight.

OM: That’s on the verge of a little too many, but its better than just one.

CHL It’s kind of terrible at the… That I keep. Yeah, so we…

JC: It depends if you have a group-wide range of topics ranging from beginner to advanced. Having that many is good.

EVJ: We see it all the time and I don’t think we give, believe us, but speaking is almost as good as attending. You learn so much as you’re putting together your talks, as you’re giving your presentation and talking to other people. You learn so much, but even if it’s just speaking at a local user group, and that’s a great way to start, maybe.

JC: Cut your teeth on public speaking in a local user group, but when you choose a topic I often choose topics I don’t know anything about. And then during preparation I learn about it. We tell the users all the time: You don’t have to be an expert in the subjectmatter because obviously I don’t know the subject matter when I start sometimes. It’s just wanting to learn and wanting to share.

EVJ: And then leveling up to local conferences and then eventually get to the big conferences. If that’s what makes you comfortable. There are people that the big conferences are their first speaking engagement. So that was your first speaking engagement right?

JC: Local user group and then tek.

ECJ: Thats true, yeah, but you did tek one year and then they got wise to you.

JC: And they were like, “Oh we made a mistake.”

OM: And keep at it too. Don’t get discouraged by being rejected.

JC: There’s so many submissions.

OM: There’s a lot. There’s so many submissions and even I’ve been submitting for the last three or four years. This is the first year, I got picked to speak at Wave and then Madison.

CH: I get rejected a lot. But I got accepted a few so it’s all good too.

JC: The odds are not in your favor to be picked, but yeah, you can’t be picked if you don’t submit.

EVJ: And a lot of times it’s not even, it’s not even it’s nothing, personal. It’s just the topic you’re talking about, may not be something that interested the reviewew. It’s not like they’re looking at you and saying, “No. We don’t wanna have this person speaking”

CH: I always take it like the hate me, man.

JC: Oscar, do you do a blind his review first, where you just look at the topics, not the people associated with it?

OM: Yeah.

JC: And then that’s what we did. We went through, we had five different people go through all the submissions and you give it a thumbs up or thumbs down. And then we sorted by that and then started looking not necessarily just on a number of thumbs up, but then trying to make the conference better by having not necessarily all unit testing talks or all framework talks. You have to have a good mix.

OM: Yeah, the ratings are a small aspect of what gets picked. It’s much more comes down to like, we wanna have a good mix of topics like you’re saying. And we don’t wanna have three days of awesome testing talks unless you’re doing a testing conference, but the most PHP conferences, aren’t so focused.

JC: A little more well-rounded.

OM: Yeah, that’s why you should submit more than two, maybe up to around eight. That’s about it, yeah. Honestly, the does come a point when I’m reviewing ’cause we do blind and then we see who submitted it. But even if you’re doing blind you start to recognize the familiar people, the style of how people write. By the of 10th or 11th one its “Not this guy again”

CH: Dammit Chris stop it.

OM: I just wanna finish rating talks.

JC: It takes a lot of work.

EVJ: Are you ever involved with the actual organization of the conferences, Oscar?

OM: I help out with rating submissions, and then I help Eli balance the schedule. And because I have that weird editor eye, I also point out places to him were he has people doing talks back to back or two beginner talks in one time slot. That kind of logistical stuff.

JC: Yeah, that was one thing we learned at Wave. We had two rooms, and we made a mistake on a couple of spots where we put the the more popular talk in the small room at like… Yeah, that is we should have thought about that ahead of time.

OM: It’s so hard to gauge what’s gonna be popular thoug.

EVJ: It is… Yeah.

OM: We’ve put talks in a ball room, or like This is gonna be awesome! Everyone, I wanna go to this talk. Any pop in there like 20 people are there, and you feel bad for the speaker. And then over in a smaller room that seats 30, there’s people lined up around the wall, because it’s a great speaker or unexpectedly popular talk there. You can try to anticipate, but it’s hard.

EVJ: Yeah, it was such a… So, John, I put on way Wave PHP this year. It was such a roller coaster ride of emotions as far as just getting it organized getting everything in line and executing on it. Yeah, we went from “I never wanna do this again” to, I think the day it started, going “Okay, what are we doing next year.”

OM: It is very much a roller coaster. I love the do conferences. That’s when I get re-energized. I see all the speakers and also new attendees and stuff.

EVJ: I’m the same way.

JC: New attendees and also seeing familiar faces. Just reconnecting with people that you probably still talk to on twiiter or Facebook or somewhere and “good seeing you again.”

CH: Yeah, yeah, as a recently new speaker, I definitely have mad respect for all the conference organizers. Just we’re able to kinda get in there and everything is all set up and everything, is all lined up and it all flows very nicely. But when we stop and think the amount of organization that has to go around this, my little head blows up. So I have a mad respect for are you folks who organize conferences for sure.

EVJ: Alright, well I guess that’s as good a place as one to stop this episode. Again if you’re listening to this and you don’t have a subscription to php [architect] magazine, you really think about doing it. It comes in digital and print format, if you can. I mean, I would go in and splurge on the print format. It’s definitely a nice little perk to have. You get the digital version with it, so you get both.

OM: The real hack, is get your company to pay for you. It’s training. It’s continuing education.

EVJ: I go into my profile and I see how long I’ve been subscribing to php [architect] magazine, and I see how long I’ve been subscribing and I see these litte gaps I’m like, “Oh yeah, that’s when I got that company to pay for it. For two years.”

EVJ: Okay, final words anybody? Oscar, you never get to say the final words.

OM: Final words? Oh gosh, put me on the spot.

JC: It won’t be the final. We’ll say some afterwards. So I’m just trying to take the pressure off.

OM: It’s been cool to see you guys in person, again and do this live. Maybe something we do, again real soon.

EVJ: That’s the story we didn’t get into. How we get started doing this, how I approached you in Atlanta.

OM: We’re promoting conferences. But yeah, the only reason we know each other is from tek in Atlanta otherwise I don’t think we would have met and gotten to collaborate.

JC: Thank you very much Chris for being here.

EVJ: We will be taking next month off there won’t be a PHP podcast for December so we will see you guys in 2019. Bye.

This has been php podcast, the official podcast of php[architect], the industry’s leading tech magazine and publisher focused on PHP and web development. Subscribe today at phparch.com to see what the leaders in the community and industry are talking about.

Air date November 20, 2018
Hosted by Eric Van Johnson and John Congdon
Guest(s) Chris Holland and Oscar Merida

Leave a comment

Use the form below to leave a comment: