In this episode, I explore a number of topics with Daniel Hinojosa. We talk about skills that should spread beyond developers, look back on our careers and talk about our techniques for making important information stick as we’re learning and teaching.
Music by Roxton Fone
Michael : You’re listening to the 2017 No Fluff Just Stuff podcast and I’m joined this week with Daniel Hinojosa, regular speaker and coder extraordinaire. Welcome Daniel.
Daniel Hinojosa: Howdy.
Michael : Just tell us a little bit about yourself before we dive too deep.
Daniel Hinojosa: I’ve actually been independent since before the millennium. I like saying it that way, but it was really just 1999. But it’s better to say it that way because it sounds awesome.
Michael : It sounds like-
Daniel Hinojosa: Long before the millennium. I ventured out onto my own.
Michael : You could say before the turn of the century.
Daniel Hinojosa: Before the turn of the century. I used to get off my wagon.
Michael : Up hill in the snow both ways-
Daniel Hinojosa: Up hill in the snow and program in visual basic.
Michael : Nobody admits to that by the way. I don’t know what you’re doing there.
Daniel Hinojosa: Oh visual basic for applications. Oh.
Michael : Are we going to go down that road? The worst code I ever wrote was in VBA, it was, I actually built an entire DBMS in Excel.
Daniel Hinojosa: Come on.
Michael : It, reports, queries, everything. Yeah, I worked for a company-
Daniel Hinojosa: Why is this getting slow?
Michael : Oh my goodness it was slow. No, I worked for a company and they hired as an office assistant, like an office admin temp.
Daniel Hinojosa: Yeah.
Michael : And I realized very quickly that I could automate almost all of my work.
Daniel Hinojosa: And still get your paycheck, yeah.
Michael : I would take about the same amount of time to write a macro to do my job because I just did a lot of really tedious menial office admin kind of stuff, formatting spreadsheets and things like that. I realized that I could write a macro to do the work for me, it would take about the same amount of time and it would be a lot more interesting and after about six weeks I got to a point where I’d have a library of scripts that would do my entire job, like I could do my entire job in about 15 minutes, my week’s work.
Now, my boss hated me and I remember every now and again she’d call me into her office because she was having a bad day and I was the lowest person on the totem pole, so I was the one who got yelled at and she would try so hard to find something, because I was never working. I was clearly never working. I was just goofing off, I was taking walks, I was talking to everybody all the time.
Daniel Hinojosa: Yeah, but you got your stuff done.
Michael : Exactly, but she didn’t know how I was doing that. I remember she called me in her office one day and she’s saying, “Michael, get in here. Look I just heard you yap, yap, yap all day, what have you actually done today?” I’m like-
Daniel Hinojosa: I got 10 reports done, the ones you needed.
Michael : Yeah. I didn’t even want to say that because I had lost track of what was due on any particular day, so I just said, “What should have been done today?” Which just incensed her more and finally she said, “Well, you need to have these reports.” I’m like, “Oh yeah, those are done.” “Show me.” And I showed her and she ran out of like today things and she was on to tomorrow and on to Friday, she was into things that were due next week and everything was done and she like wanted to be mad at me, but couldn’t. Eventually, like the whole-
Daniel Hinojosa: I think that’s the whole world, everyone just wants to be mad at you but, we just can’t.
Michael : I feel like that sometimes but I think they succeed, but that’s another story for a different day, but the VBA. They eventually discovered what I was doing and it was kind of one of those things where they wanted to be mad at me again, but I’d actually saved a contract because they were doing an audit and I was able to produce five years of reports in five minutes. So, they were like, “Okay, how did you do that?” And I showed them. I wanted to just say magic but I knew that wasn’t going to fly.
Daniel Hinojosa: Yeah, especially if you’re a magician.
Michael : Well, I did do this, I did make this big gesture, I’m like, “Magic.” And she says, “No, seriously, where the hell did you get these?” I said, “Well, a good magician never reveals his secrets.” And she looks at me and she says, “You’re not a good magician. Where did you get this?”
Daniel Hinojosa: Come on, why berate you? That’s horrible.
Michael : Well, she was that kind of leader. She was a [inaudible 00:03:48].
Daniel Hinojosa: She needs to stomp you down to feel better about herself.
Michael : I’ve worked with people like that from time-to-time, very few though, which is good.
Daniel Hinojosa: But there’s a good segway there about Excel sheets, you’re a master of your word processor, you’re a master of your Excel sheets. I think there’s a good number of people, not to berate other people, here I am berating other people. But I think a lot of people’s jobs are the just take care of these five Excel sheets and you’ll get a paycheck. I think even more so, I think there are those that I look at their jobs and again, don’t berate them or anything but as a programmer, I’m just like, oh my gosh, I could really just make your eight hour job into 10 minutes.
One of those things that I like to talk about is, regular expressions. Regular expressions should not be a programmer thing. From the administrative assistant, to the accountant, to the medical analyst, just about any occupation, you should be able to use regular expressions and use it strongly and it’ll change your life and change your job and you’ll be able to do things fairly quickly because how many times do you have to just go through a large, large, large document and do just a quick find and replace? But, not just a regular find and replace but a find and replace and a pattern, like, hey all of sudden, can you go through this sheet and convert everything to three decimal points? Or whatever, or make sure that all the names have MD at the end of it. There’s so many different kinds of even small applications like that, that if one person has mastered and a non-programmer has mastered the regular expression, man, all of sudden, their job is just going to be done very quickly and easily.
Michael : Regular expressions are definitely like magic. Speaking of berating people, I have at different points of my career, actually looked down on colleagues who didn’t use regular expressions. Like, any time you saw somebody reformatting some, large block of code, one line at a time and was just looking, I was just like, what are you doing?
Daniel Hinojosa: Oh yeah, it’s painful. What are you doing?
Michael : Because, you hear that tapping, as they’re going through and changing commas to semicolons or something like that, I’m just like, “Oh my gosh. How many lines are in that file?” “Only 400.”
Daniel Hinojosa: Oh my gosh, yeah. One of my pet peeves with code is, I teach, in my career, I like doing a three-prong thing and that is, programming, doing presentations and training. I’ll do training and again not to berate people, I keep saying that, not to berate people but you’re going to love this one. But, when I say, “Okay, go ahead and save the file for me.” And what do most people do? Again, not to berate any … not to berate anybody, but what do most people do? They take that mouse and they like, “All right, I’ve got to go all the way up over here to the top left hand corner and I’m going to click file.”
Michael : And they’re going to hold it down, too.
Daniel Hinojosa: They’re going to hold it down, and like, “Where the hell’s that save?” And then they scroll all the way down and they click save and I’m like, I’m looking at my watch, I’m like, “Wow, that was, you just, you owe me like five seconds back of my life. I’m not sure I’ll get those back again.” You know that Control S and Command S, how many people don’t know that and how much is time is wasted with that. It’s just amazing, what we do in our lives and who gets paid a good salary for slowing things down and not knowing the regular expressions and not knowing file save and this is just for every human. You know what? That would be just a good training, just like-
Michael : General computer skills, but not like …
Daniel Hinojosa: General awesome computer skills. I’m not going to tell you how to open up Word or whatever, but I’m like, dude you got to, or dude and dudette, you got to hit Control save, or Control S because-
Michael : Do you think it’s a problem, the way that we teach technology to non-technical people?
Daniel Hinojosa: Yeah and I think we’re using that berate or talk down to. Yeah, I think there’s a little bit of that. I’ll only help you so far but you’re hopeless and I’m not going to help you much further. I think there’s a lot of value in giving people credit and going a little bit further and giving them those techniques and a regular expression, to anyone, like I said for a minamist, or [assistant 00:08:26] constructor or whatever, it’s going to be extremely valuable. That’s a good idea. Wow, I love getting ideas on podcasts like this.
Michael : Do you ever think that we make the regular expressions too complex, though? That the syntax for regular expressions was clearly created by engineers who kind of worship at the altar of complexity.
Daniel Hinojosa: I’m going to say no, on that one because of URLs. Ask anybody, from a six year old, to a retiree and they know that http: whack, whack, like the back of their hand. Most people know what a hashtag is on Twitter. There’s these things that if given the chance, they’re going to know what these mean. People know what yellow means, of course it’s not a tech thing, but there are some things in our Zeitgeist that we definitely know. I think there’s room for us to make regular expressions a part of it, it’s really not too bad. There’s some things like back references that are just going to be extremely difficult, but …
Michael : And zero width look-arounds.
Daniel Hinojosa: /w as a word character. I think we can get that /s as a space and things like that, it’s not too bad and it just takes practice over time, but I think we can just save a lot of efficiency for Americans, just regular expressions.
Michael : I agree. Maybe part of it is getting away from this notion of teaching technology skills by rote, that this is how you do this, step one, step twos, step three and instead teaching people actually how to think. Here are general concepts and if you understand these, you can extrapolate everything from that. Is that a generation gap thing and I know that I’m kind of reaching this magic threshold in my age that the general consensus is, there’s a certain age and anything that was invented before you were born, it’s like air, it’s always been there. Anything that’s invented between six and 35 is, oh cool new stuff, and there’s a point where everything becomes incomprehensible.
Daniel Hinojosa: Yeah. I hope I never get to that point, I mean I just really, I like learning, just everything that people come up with. I do find that newer generations of programmers are reinventing the wheel and lauding themselves for certain things they come up with, but again, I don’t want to berate them. Maybe you’re going to come up with something new, but so far, it looks like we’re doing EJBs again. Hey, whatever. Go with your flow buddy.
Michael : When everybody got really excited about reactive programming and I was like, “Oh, the observer pattern.”
Daniel Hinojosa: Interesting, yeah.
Michael : But, anyway.
Daniel Hinojosa: Yeah.
Michael : You brought up a really interesting point though, that you like at a lot of jobs and you think, wow, I could do that entire day’s work in 10 minutes but writing a simple application. I used to work with somebody in Ops who use to have a T-shirt that said, “I could replace you with a very small shell script.”
Daniel Hinojosa: Yeah, interesting. You know that we’re coming up to tax season. For my taxes, for the last few years, I have a groovy script and for my deductions and I have certain keywords like Subway, Starbucks, and if it’s not in Albuquerque, I’m usually on a job or something like that. And, I just have this script that parses all my, I just download all my PDF bank statements and go through all those, parse them down, categorizes them and then I just give it to my accountant.
You would think that I would do my taxes on time because I have so much power at my disposal, but no. But, really doing my taxes is like a two hour affair, where I think for most people, I think there are a lot of people who still get one receipt at a time. But like having that power of programming is just like, yeah, look at me.
Michael : So, are you using regular expressions while you do this?
Daniel Hinojosa: That’s a good question. Do I use? Yes, because my bank statement, I think I have a regular expression somewhere because my bank statement has commas and I need to sum them up. How do I do that? Do I use the number for, I forget what I have on my script. I think I do have regular expressions here or there for that particular script. I haven’t seen it in a year. I’ll let you know in, hopefully a few weeks. Either that, or I’ll let you know around October.
Michael : Yeah, there you go. I just want to thank you for reminding me that it’s almost tax season.
Daniel Hinojosa: Yeah.
Michael : I actually have a book keeping service that goes through and they connect into my bank accounts and they pull in all the data and categorize it for me and I also don’t get my taxes done on time, either. I just filed for two extensions, one for my business and one for my personal.
Daniel Hinojosa: Oh wow.
Michael : Part of the thing, just going back to this technology, taking things in a completely different tech. Their interface with my bank breaks all the time. I had a candid conversation with a developer who built these bank integrations for a personal finance tool that I won’t name but is one of the features is it interfaces with all of your banks. And I said, “So I can’t believe, there’s no standard platform that they use. I can’t believe that any of these banks have any kind of API. How are you doing this?” And he looked at me and he said, “Honestly, screen scraping and regex.”
Daniel Hinojosa: Oh.
Michael : And they just build these little things and every time they change their interface it breaks.
Daniel Hinojosa: There’s a lot of money in regex, wow that’s amazing.
Michael : My bank link breaks all the time and it’s funny because the banks keep going and adding additional verification steps and to stop computers logging in, not necessarily to thwart that, but to thwart man-in-the-middle type attacks, where somebody can impersonate your bank and actually give very convincing information. But people are thwarting that actually for good reasons and not bad reasons. What’s your rundown on skills that everybody should know then? If regular expressions are one, and by the way, settle a bet, regex or regex?
Daniel Hinojosa: Oh.
Michael : Not to be controversial.
Daniel Hinojosa: Let’s see. So we call them gifs, not gifs.
Michael : That’s right. I’d rather be happy than right.
Daniel Hinojosa: Right, that could backwards but yeah. Gif, so I call it gif and it’s regular …
Michael : Regular expression.
Daniel Hinojosa: So, should I call it regex?
Michael : I’ve heard it both ways.
Daniel Hinojosa: I usually say regex.
Michael : I’ve always said regex. But I guess I pronounce the word …
Daniel Hinojosa: As the way it’s spelled as an abbreviation.
Michael : Because, there aren’t very many english words that start with G-I that have a soft G.
Daniel Hinojosa: Yeah, that’s right because like scuba is scuba, not scuba because it’s underwater, you don’t say scuba, like when you phonetically say it, it’s not scuba, it’s scuba. Because it looks good, it looks like a scuba, if it was actually a word and not an acronym it’d be scuba, so as an abbreviation it just looks like regex, not, all right we’ve settled it.
Michael : That’s right, same with gif. Although, I guess if you build one of the most ubiquitous formats ever that is still wildly popular, so many decades after you created it, I guess you can pronounce it anyway you want to.
Daniel Hinojosa: You know what? There is so much emotional reaction to gifs.
Michael : Yeah.
Daniel Hinojosa: I don’t want to get into politics but particularly in this last election, just to rub an insult in someone else’s face, like someone would do like a gif where someone be laughing at your candidate or whatever and you just feel that, just like.
Michael : I like the little baby laughing.
Daniel Hinojosa: Yeah, just like the baby laughing, ha-ha you’re an idiot and then you hear the baby laughing, it infuriates you and you just have to step back a bit and just like, man that was just an animated gif, I got to calm down.
Michael : But going back to this, so regular expressions would be useful, I don’t think most people know how to use a spreadsheet.
Daniel Hinojosa: Oh, yeah. Oh wow, that’s amazing because I’ve got a great story for you. Absolutely, right. Let’s do back to taxes, not back taxes, but back to the story about taxes.
Michael : Yeah, hopefully there aren’t back taxes.
Daniel Hinojosa: That’s right. I get my wonderful categorization done and I get my printed report and I go send it to my accountant, he’s retired now, so he was on the verge of retirement when I gave him this report and he took days. It wasn’t that bad, but he took like three days and he said, “Okay, got your taxes done.” And I’m like, that total doesn’t seem right and so I just did, you can just highlight a column and it just shows the total, right? And I’m going to highlight column K and there’s a total right down there on the bottom right hand corner.
Michael : That’s right, yeah. It’s got the count, the total, the [campus 00:17:41] sum and the-
Daniel Hinojosa: No, guess what he did? Adding machine and he was off by $5,000.
Michael : Wow.
Daniel Hinojosa: And I’m like, you know I’m not paying you for that time, right? That one should of, you should have known your tools, man. You can’t do that. You’re off, you’re way off.
Michael : I remember in college I was taking an IT course because I needed an easy A and we did a, we were doing some module on spread sheets and the girl sitting next to me, and the person sitting next to me, asked if they could borrow my calculator, and I was like, “Why?” “Because the assignment said we need to have the total at the bottom here.” “That’s no, just, no, let me.” But beyond that, beyond the basics of spreadsheets, I think a lot of people who were managing them, there’s unbelievable amount of power in spreadsheets that …
Daniel Hinojosa: There is.
Michael : That I think a lot of people don’t-
Daniel Hinojosa: It’s one of the greatest tools but also …
Michael : But do you think it’s abused, going the other direction? Do people have a lot of knowledge of spreadsheets but it becomes their golden hammer?
Daniel Hinojosa: I know we’re at a podcast right now so it’s tough for me to recall, I don’t know, which financial institution it was, but there was a financial institution that had an egregious error because everything was stored on an excel sheet and this was, I guess one of the contributions to the great recession that we had, and one of the report was just miscalculated just because it was on an Excel sheet.
Michael : And they had moved a cell and it updated the references or something?
Daniel Hinojosa: Something like that, yeah. Yeah, I think it’s a tool that shouldn’t be used in someplaces, especially in large enterprise level, you definitely can’t share an Excel sheet that quite easily on a network and I think people still try to do that and to great remorse. That’s the time you need a database and now we’re at the point where you don’t need a relational database, you need large cluster of old databases and I think, data stores are quite a topic. Maybe that’s another good topic to tell the laymans out there who aren’t computer programmers but there are different kinds of databases you should use for certain situations.
Michael : Yeah. The problem is so much of this knowledge depends on so much other knowledge.
Daniel Hinojosa: Yeah, that’s the thing.
Michael : So none of these things really work well in abstraction. As a trainer, as a speaker, how do you breakdown complicated topics?
Daniel Hinojosa: Analogies. Always, at least for my technique, it’s always an analogy and I think the funnier it is, the better it is, I like using my humor as much as I can for that sort of thing. That’s why Justin Bieber always comes in as analogy, for I don’t know what reason, but people are like, “Justin Bieber, why?” But there was something interesting about that and about humor. I use humor a lot for teaching, I make dumb analogies, but people remember the dumb analogies because I’ve figured out something about my childhood. I had straight A’s, maybe a few sprinkles of B’s, but I was a good student. But, we had two columns, one was citizenship and one was the actual grade. My grades were outstanding and my deportment was always like, U, meaning unsatisfactory. I would just crack jokes, I would just do dumb stuff but when I needed to recall, my brain was able to harken back to one dumb joke I said at some particular point and I remembered everything about that day.
Michael : That was like the pneumonic hook that you would-
Daniel Hinojosa: Right, yeah, that was my anchor to the past and I’m like, oh I remember that now, able to jot that down on the test, help me recall just about anything.
Michael : Wow.
Daniel Hinojosa: I didn’t even realize that until I was older.
Michael : I use stories a lot in my style, in my style of speaking.
Daniel Hinojosa: And you use it for your magic, too.
Michael : Quite a bit, yeah.
Daniel Hinojosa: Yeah.
Michael : Something about stories, is there relatable. They resonate with us more than just raw data. Actually I read somewhere that a study they did, they put people in an FMRI machine, a functional MRI where they can actually monitor, which parts of your brain are busy at any given time.
Daniel Hinojosa: Wow.
Michael : And they would watch people listening to stories and people, sensory areas would light up in sympathy to descriptions, so there were kind of-
Daniel Hinojosa: Oh wow.
Michael : They weren’t just hearing it, they were on some level experiencing it, which I thought was really cool and I think there’s some power there. I think you try to make a funny story, too, and hopefully it sticks.