ca

JSJ 249 Loading and Optimizing Web Applications with Sam Saccone and Jeff Cross

On today's episode, Charles Max Wood, Joe Eames, and Aimee Knight discuss Loading and Optimizing Web Applications with Sam Saccone and Jeff Cross. Tune in to their interesting talk, and learn how you can improve user experience and performance with better loading!




ca

JSJ 251 InfoSec for Web Developers with Kim Carter

On today's episode, Charles Max Wood and Aimee Knight discuss InfoSec for Web Developers with Kim Carter. Kim is a senior software engineer/architect, an information security professional, and the founder of binarymist.io. He is currently working on his book called Holistic InfoSec for Web Developers. Tune in to learn more on what his book is all about.




ca

JSJ Special Episode: Azure with Jonathan Carter

On today's episode, Aimee Knight, AJ O'Neal, Cory House, Joe Eames, and Charles Max Wood discuss Azure with Jonathan Carter. Jonathan has been working at Microsoft for 10 years. He currently focuses on Node.js and Azure. Tune in to learn how you can use Azure in building applications and services.




ca

MJS #013: Rebecca Turner

Welcome to the 13th My JS Story! Today, Charles Max Wood welcomes Rebecca Turner. Rebecca is a CLI programmer at npm, Inc. She has been in the show around two to three years ago in episode 174 and talked about npm 3. Tune in to My JS Story Rebecca Turner to learn more how she got into programming and what she is up to these days!




ca

MJS #014: Kim Carter

On this week's episode of My JS Story, Charles Max Wood interviews Kim Carter. Kim is a software engineer, architect, web developer, entrepreneur, and the founder of BinaryMist Ltd. He recently appeared as a guest in episode 251, and talked about InfoSec for Web Developers. Also, he is currently writing a powerbook series and runs InfoSec conferences based in New Zealand. Stay tuned to know more about his journey in programming!




ca

JSJ 260 Practical JavaScript with Gordon Zhu

On today's episode, Charles, Joe, and Cory discuss Practical JavaScript with Gordon Zhu. Gordon is the founder of Watch and Code, and teaches the Practical JavaScript online course. His mission is to help beginners become developers through tutorials. Tune in!




ca

JSJ 264 Mendel with Irae Carvalho




ca

JSJ 266 NPM 5.0 with Rebecca Turner

On today’s episode of JavaScript Jabber, Charles Max Wood and panelist Joe Eames chat with Rebecca Turner, tech lead for NPM, a popular Javascript package manager with the worlds largest software registry. Learn about the newly released NPM 5 including a few of the updated features. Stay tuned!

[1:58] Was the release of node JS 8 tied to NPM5?
  • Features in NPM5 have been in planning for 2 years now.
  • Planned on getting it out earlier this year.
  • Node 8 was coming out and got pushed out a month.
  • Putting NPM5 into Node 8 became doable.
  • Pushed really hard to get NPM5 into Node 8 so that users would get NPM5 and updates to NPM5.
[2:58] Why would it matter? NPM doesn’t care right?
  • Right you can use NPM5 with any version of node.
  • Most people don’t update NPM, but upgrade Node.
  • So releasing them together allowed for when people updated Node they would get NPM 5.
[3:29] How does the upgrade process work if you’re using NVM or some node version manager?
  • Depends. Different approaches for each
  • NVM gets a fresh copy of Node with new globals. NVM5 and Node 8 are bundled.
  • For some, If you manually upgrade NVM you’ll always have to manually. It will keep the one you manually upgraded to.
[4:16] Why NPM 5?
  • It’s night and day faster.
  • 3 to 5 times speed up is not uncommon.
  • Most package managers are slow.
  • NPM 5 is still growing. Will get even faster.
[5:18] How did you make it faster?
  • The NPM’s cache is old. It’s very slow. Appalling slow.
  • Rewrote cache
  • Saw huge performance gains
[5:49] What is the function of the cache?
  • Cache makes it so you don’t have to reinstall modules from the internet.
  • It has registry information too.
  • It will now obey http headers for timing out cache.
[6:50] Other things that made it faster?
  • Had a log file for a long time. It was called shrinkwrap.
  • NPM 5 makes it default.
  • Renamed it to packagelog.json
  • Exactly like shrinkwrap package file seen before
  • In combo with cache, it makes it really fast.
  • Stores information about what the tree should look like and it’s general structure.
  • It doesn’t have to go back and learn versions of packages.
[7:50] Can you turn the default Packagelog.json off?
  • Yes. Just:
  • Set packagelog=false in the npmrc
[8:01] Why make it default? Why wasn’t it default before?
  • It Didn’t have it before. Shrinkwrap was added as a separate project enfolded in NPM and wasn’t core to the design of NPM.
  • Most people would now benefit from it. Not many scenarios where you wouldn’t want one.
  • Teams not using the same tools causes headaches and issues.
[9:38] Where does not having a lock show up as a problem?
  • It records the versions of the packages installed and where NPM put them so that when you clone a project down you will have exactly the same versions across machines.
  • Collaborators have the exact same version.
  • Protects from issues after people introduce changes and patch releases.
  • NPM being faster is just a bonus.
  • Store the sha512 of the package that was installed in the glock file so that we can verify it when you install. It’s Bit for bit what you had previously.
[11:12] Could you solve that by setting the package version as the same version as the .Json file?
  • No. That will lock down the versions of the modules that you install personally, not the dependancies, or transitive dependancies.
  • Package log allows you to look into the head of the installer. This is what the install looks like.
[12:16] Defaulting the log file speed things up? How?
  • It doesn’t have to figure out dependences or the tree which makes it faster.
  • Shrinkwrap command is still there, it renames it to shrinkwrap but shrinkwrap cannot be published.
  • For application level things or big libraries, using shrinkwrap to lock down versions is popular.
[13:42] You’ve Adopted specifications in a ROC process. When did you guys do that?
  • Did it in January
  • Have been using them internally for years. Inviting people into the process.
  • Specifications
  • Written in the form of “Here is the problem and here are the solutions.”
  • Spec folder in NPM docs, things being added to that as they specify how things work.
  • Spec tests have been great.
[14:59] The update adds new tools. Will there be new things in registry as well?
  • Yes.
  • Information about a package from registry, it returns document that has info about every version and package json data and full readme for every version.
  • It gets very large.
  • New API to request smaller version of that document.
  • Reduces bandwidth, lower download size, makes it substantially faster.
  • Used to be hashed with sha1, With this update it will be hashed with sha512 as well as sha1 for older clients.
[16:20] Will you be stopping support for older versions?
  • LTS version of NPM was a thing for a while. They stopped doing that.
  • Two models, people either use whatever version came with Node or they update to the latest.
  • The NPM team is really small. Hard to maintain old NPM branches.
  • Supports current versions and that’s pretty much it.
  • If there are big problems they will fix old versions. Patches , etc.
[17:36] Will there ever be problems with that?
  • Older versions should continue to work. Shouldn’t break any of that.
  • Can’t upgrade from 0.8.
  • It does break with different Node version
  • Does not support Node versions 0.10 or 0.12.
[18:47] How do you upgrade to NPM?
  • sudo npm install -gmpm
  • Yes, you may not need sudo. depend on what you’re on.
[19:07] How long has it been since version 4?
  • Last October is when it came out.
[19:24] Do you already have plans for version 6?
  • Yes!
  • More releases than before coming up.
  • Finally deprecating old features that are only used in a few packages out of the whole registry.
  • Running tests on getting rid of things.
[20:50] Self healing cache. What is it and why do we want it?
  • Users are sometimes showing up where installs are broken and tarbols are corrupted.
  • This happens sometimes with complicated containerization setups makes it more likely. It’s unclear where the problem actually is.
  • CaCache - content addressable cache. Take the hash of your package and use it to look up address to look it up in the cache.
  • Compares the Tarbol using an address to look it up in the cache.
  • Compares to see if it’s old. Trashes old and downloads updated one.
  • Came out with the cache. Free side effect of the new cache.
[23:14] New information output as part of the update?
  • NPM has always gave back you the tree from what you just installed.
  • Now, trees can be larger and displaying that much information is not useful.
  • User patch - gives you specifically what you asked for.
  • Information it shows will be something like: “I installed 50 items, updated 7, deleted 2.”
[24:23] Did you personally put that together?
  • Yes, threw it together and then got feedback from users and went with it.
  • Often unplanned features will get made and will be thrown out to get feedback.
  • Another new things ls output now shows you modules that were deduped. Shows logical tree and it’s relationships and what was deduped.
[25:27] You came up to node 4 syntax. Why not go to node 8?
  • To allow people with just node 4 be able to use NPM.
  • Many projects still run Node 4. Once a project has been deployed, people generally don’t touch it.
[26:20] Other new features? What about the File Specifier?
  • File specifier is new. File paths can be in package json, usually put inside pointing to something inside your package.
  • It will copy from there to your node modules.
  • Just a node module symlink.
  • Much faster. Verifiable that what’s in your node modules matches the source. If it’s pointing at the right place it’s correct. If not, then it’s not.
  • Earlier, sometimes it was hard to tell.
[27:38] Anything else as part of the NPM 5 release? Who do you think will be most affected by it?
  • For the most part, people notice three things:
  • 1st. no giant tree at the end
  • 2nd. Much faster
  • 3rd. Package lock.
[28:14] If it’s locked, how do you update it?
  • Run npm installer and then npm update
  • Used to be scary, but works well now.
  • Updates to latest semver, matches semver to package json to all node modules.
  • Updates package lock at the same time
  • Summary in Git shows what’s changed.
[28:59] Did Yarn come into play with your decisions with this release?
  • The plans have been in play for a long time for this update.
  • Yarn’s inclusion of similar features and the feedback was an indicator that some of the features were valuable.
[29:53] Other plans to incorporate features similar to yarn?
  • Features are already pretty close.
  • There are other alternative package managers out there.
  • PMPM interesting because when it installs it doesn’t copy all the files. It creates hard links.
[30:28] Does PMPM and Yarn use NPM registry?
  • Yes! Other than CNPM. The NPM client used in China.
  • CNPM Registry mirror behind firewall. Have their own client to their registry. Their registry is a copy of ours.
[31:15] What about RNPM?
  • I wouldn’t be surprised.
[31:45] “Won’t you come and say something controversial about your competitor?”
  • We all want it to be collaborative.
  • When we were writing our new cache, we also helped Yarn with their cache and sped things up tremendously.

Picks

Charles

Rush Limbaugh’s children’s books
Tinker Crate
Kiwi Crate
NPM
Episodes on My JS Story.

Joe

Gravity Falls
Board Games

Rebecca

NPX

Funstream


Links to keep up with NPM and Rebecca

Twitter @rebeccaorg
NPMjS on Twitter
blog.npmjs.com




ca

JSJ 270 The Complete Software Developers Career Guide with John Sonmez


JSJ 270 The Complete Software Developers Career Guide with John Sonmez

This episode features a panel of Joe Eames, AJ O’Neal, as well as host Charles Maxwell. Special guest John Sonmez runs the website SimpleProgrammer.com that is focused on personal development for software developers. He works on career development and improving the non-technical life aspects of software developers. Today’s episode focuses on John’s new book The Complete Software Developers Career Guide.


Did the book start out being 700 pages?

No. My goal was 200,000 words. During the editing process a lot of questions came up, so pages were added. There were side sections called “Hey John” to answer questions that added 150 pages.

Is this book aimed at beginners?

It should be valuable for three types of software developers: beginner, intermediate, and senior developers looking to advance their career. The book is broken up into five sections, which build upon each other. These sections are: - How to get started as a software developer - How to get a job and negotiate salary - The technical skills needed to know to be a software developer - How to work as a software developer - How to advance in career

Is it more a reference book, not intended to read front to back?

The book could be read either way. It is written in small chapters. Most people will read it start to finish, but it is written so that you can pick what you’re interested in and each chapter still makes sense by itself.

Where did you come up with the idea for the book?

It was a combination of things. At the time I wanted new blog posts, a new product, and a new book. So I thought, “What if I wrote a book that could release chapters as blog posts and could be a product later on?” I also wanted to capture everything I learned about software development and put it on paper so that didn’t lose it.

What did people feel like they were missing (from Soft Skills) that you made sure went into this book?

All the questions that people would ask were about career advice. People would ask things regarding: - How do I learn programming? - What programming language should I learn? - Problems with co-workers and boss - Dress code

What do you think is the most practical advice from the book for someone just getting started?

John thinks that the most important thing to tell people is to come up with a plan on how you’re going to become educated in software development. And then to decide what you’re going to pursue. People need to define what they want to be. After that is done, go backwards and come up with a plan in order to get there. If you set a plan, you’ll learn faster and become a valuable asset to a team. Charles agrees that this is how to stay current in the job force.

What skills do you actually need to have as a developer?

Section 3 of the book answers this question. There was some frustration when beginning as a software developer, so put this list together in the book. - Programming language that you know - Source control understanding - Basic testing - Continuous integration and build systems - What kinds of development (web, mobile, back end) - Databases - Sequel

Were any of those surprises to you?

Maybe DevOps because today’s software developers need to, but I didn’t need to starting out. We weren’t involved in production. Today’s software developers need to understand it because they will be involved in those steps.

What do you think is the importance of learning build tools and frameworks, etc. verses learning the basics?

Build tools and frameworks need to be understood in order to understand how your piece fits into the bigger picture. It is important to understand as much as you can of what’s out there. The basics aren’t going to change so you should have an in depth knowledge of them. Problems will always be solved the same way. John wants people to have as few “unknown unknowns” as possible. That way they won’t be lost and can focus on more timeless things.

What do you think about the virtues of self-taught verses boot camp verses University?

This is the first question many developers have so it is addressed it in the book. If you can find a good coding boot camp, John personally thinks that’s the best way. He would spend money on boot camp because it is a full immersion. But while there, you need to work as hard as possible to soak up knowledge. After a boot camp, then you can go back and fill in your computer science knowledge. This could be through part time college classes or even by self-teaching.

Is the classic computer science stuff important?

John was mostly self-taught; he only went to college for a year. He realized that he needed to go back and learn computer science stuff. Doesn’t think that there is a need to have background in computer science, but that it can be a time saver.

A lot of people get into web development and learn React or Angular but don’t learn fundamentals of JavaScript. Is that a big mistake?

John believes that it is a mistake to not fully understand what you’re doing. Knowing the function first, knowing React, is a good approach. Then you can go back and learn JavaScript and understand more. He states that if you don’t learn the basics, you will be stunted and possibly solve things wrong. Joe agrees with JavaScript, but not so much with things algorithms. He states that it never helped him once he went back and learned it. John suggests the book Algorithms to Live By – teaches how to apply algorithms to real life.

Is there one question you get asked more than anything else you have the answer to in the book?

The most interesting question is regarding contract verses salary employment and how to compare them. It should all be evaluated based on monetary value. Salary jobs look good because of benefits. But when looking at pay divided by the hours of work, usually a salary job is lower paid. This is because people usually work longer hours at salary jobs without being paid for it.

What’s the best place for people to pick up the book?

simpleprogrammer.com/careerguide and it will be sold on Amazon. The book will be 99 cents on kindle – want it to be the best selling software development book ever.


Picks

Joe

Wonder Woman

AJ

The Alchemist

Charles

Artificial Intelligence with Python

John

Algorithms to Live by: The Computer Science of Human Decisions Apple Airpods


Links

Simple Programmer Youtube




ca

MJS 047: Tim Caswell

Panel: Charles Max Wood

Guest: Tim Caswell

This week on My JavaScript Story, Charles speaks with Tim Caswell. Tim got into programming when he was a kid and would mess around on a Commodore 64 he had found. He next moved onto writing games in Cue Basic, and once the internet came into play in the mid to late 90’s, his programming really took off, especially after he got Windows. Tim has since written his own language based on Lua, called Luvit, worked on browser-based IDE systems, like Cloud 9, and so much more. After working on many projects and programs over the years, he is now focusing on building his startup. His advice is to always balance your needs with what you can do and make sure that you are always moving forward.

In particular, we dive pretty deep on:

  • How did you get into programming?
  • Commodore 64
  • 386SX
  • Games in Cue Basic
  • CompuServe
  • SweetSharks.com startup
  • JavaScript and HTML
  • Learning about CPUs in college
  • Studied at Central Arkansas originally
  • C++
  • Software engineering at UT Dallas
  • Connect Framework
  • NVM in Bash
  • Luvit computer language
  • Polyglot startup
  • New product, SDK, coming soon
  • Daplie
  • Balance and moving forward
  • Getting paid for value
  • His mission
  • The power to create and to inspire
  • And much, much more!

Links: 

Picks

Tim

Charles




ca

MJS 056: Jonathan Carter

Panel: Charles Max Wood

Guest: Jonathan Carter

This week on My JavaScript Story, Charles speaks with Jonathan Carter. Jonathan is a PM at Microsoft and has been a web developer for over 15 years. At Microsoft, he’s had the opportunity to work on tooling, platform pieces for JavaScript applications, and many other things. He first got into programming when his uncle let him shadow him and the IT department he had working for him, and this is where he was first introduced to software and the idea of working with computers as a career. They talk about his proudest accomplishments within the JavaScript community as well as what he is working on now.

In particular, we dive pretty deep on:

  • Jonathan intro
  • Asure
  • How did you first get into programming?
  • Interest in creating a website
  • Dual enrollment in high school at local community college
  • Started off with VB6
  • Uncle was very active in his programming start
  • .net
  • Scrappy boredom mixed with curiosity led to him actually getting into software
  • Everyone comes into programming differently
  • Your past is important in explaining where you have ended up
  • Node.js on Asure
  • How did you get into JavaScript?
  • Worked at a newspaper in the software division
  • Ajax
  • jQuery
  • Wanted to write better apps
  • CodePush
  • Stayed in JavaScript community because it brings him inspiration and excitement
  • Likes to be able and look back on his past projects
  • App development for fun
  • Is there anything that you are particularly proud of?
  • Profiling tools
  • Liked building tools that meet people where they are at and simplify their jobs
  • Qordoba
  • React Native
  • And much, much more!

Links:

Picks

Charles

Jonathan




ca

JSJ 325: Practical functional programming in JavaScript and languages like Elm with Jeremy Fairbank

Panel:

  • Aimee Knight
  • Joe Eames
  • AJ ONeal

Special Guests: Jeremy Fairbank

In this episode, the JavaScript Jabber panel talks to Jeremy Fairbank about his talk Practical Functional Programming. Jeremy is a remote software developer and consultant for Test Double. They talk about what Test Double is and what they do there and the 6 things he touched on in his talk, such as hard to follow code, function composition, and mutable vs immutable data. They also touch on the theory of unit testing, if functional programming is the solution, and more!

In particular, we dive pretty deep on:

  • Jeremy intro
  • Works for Test Double
  • What he means by “remote”
  • What is Test Double?
  • They believe software is broken and they are there to fix it
  • His talk - Practical Functional Programming
  • The 6 things he talked about in his talk
  • Practical aspects that any software engineer is going to deal with
  • Purity and the side effects of programming in general
  • Hard to follow code
  • Imperative VS declarative code
  • Code breaking unexpectedly
  • Mutable data VS immutable data
  • The idea of too much code
  • Combining multiple functions together to make more complex functions
  • Function composition
  • Elm, Elixir, and F#
  • Pipe operator
  • Scary to refactor code
  • Static types
  • The idea of null
  • The theory of unit testing
  • Is functional programming the solution?
  • His approach from the talk
  • And much, much more!

Links:

Sponsors

Picks:

Aimee

AJ

Joe

Jeremy




ca

MJS 075: Jeff Escalante

Show notes coming shortly!




ca

JSJ 333: “JavaScript 2018: Things You Need to Know, and a Few You Can Skip” with Ethan Brown

Panel:

Special Guests: Ethan Brown

In this episode, the panel talks with Ethan Brown who is a technological director at a small company. They write software to facilitate large public organizations and help make projects more effective, such as: rehabilitation of large construction projects, among others. There is a lot of government work through the endeavors they encounter. Today, the panel talks about his article he wrote, and other topics such as Flex, Redux, Ruby, Vue.js, Automerge, block chain, and Elm. Enjoy!

Show Topics:

2:38 – Chuck: We are here to talk about the software side of things.

Let’s dive into what you are looking at mid-year what we need to know for 2018. You wrote this.

3:25 – Ethan: I start off saying that doing this podcast now, how quickly things change. One thing I didn’t think people needed to know was symbols, and now that’s changed. I had a hard time with bundling and other things. I didn’t think the troubles were worth it. And now a couple of moths ago (an open source project) someone submitted a PR and said: maybe we should be using symbols? I told them I’ve had problems in the past. They said: are you crazy?!

It’s funny to see how I things have changed.

4:47 – Panel: Could you talk about symbols?

4:58 – Aimee: Are they comparable to Ruby?

5:05 – Ethan talks about what symbols are and what they do!

5:52 – Chuck: That’s pretty close to how that’s used in Ruby, too.

6:04 – Aimee: I haven’t used them in JavaScript, yet. When have you used them recently?

6:15 – Ethan answers the question.

7:17 – Panelist chimes in.

7:27 – Ethan continues his answer. The topic of “symbols” continues. Ethan talks about Automerge.

11:18 – Chuck: I want to dive-into what you SHOULD know in 2018 – does this come from your experience? Or how did you drive this list?

11:40 – Ethan: I realize that this is a local business, and I try to hear what people are and are not using. I read blogs. I think I am staying on top of these topics being discussed.

12:25 – Chuck: Most of these things are what people are talking.

12:47 – Aimee: Web Assembly. Why is this on the list?

12:58 – Ethan: I put on the list, because I heard lots of people talk about this. What I was hearing the echoes of the JavaScript haters. They have gone through a renaissance. Along with Node, and React (among others) people did get on board. There are a lot of people that are poisoned by that. I think the excitement has died down. If I were to tell a story today – I would

14:23 – Would you put block chain on there? And AI?

14:34 – Panel: I think it’s something you should be aware of in regards to web assembly. I think it will be aware of. I don’t know if there is anything functional that I could use it with.

15:18 – Chuck: I haven’t really played with it...

15:27 – Panel: If you wrote this today would you put machine learning on there?

15:37 – Ethan: Machine Learning...

16:44 – Chuck: Back to Web Assembly. I don’t think you were wrong, I think you were early. Web Assembly isn’t design just to be a ... It’s designed to be highly optimized for...

17:45 – Ethan: Well-said. Most of the work I do today we are hardly taxing the devices we are using on.

18:18 – Chuck and panel chime in.

18:39 – Chuck: I did think the next two you have on here makes sense.

18:54 – Panel: Functional programming?

19:02 – Ethan: I have a lot of thoughts on functional programming and they are mixed. I was exposed to this in the late 90’s. It was around by 20-30 years. These aren’t new. I do credit JavaScript to bring these to the masses. It’s the first language I see the masses clinging to. 10 years ago you didn’t see that. I think that’s great for the programming community in general. I would liken it to a way that Ruby on Rails really changed the way we do web developing with strong tooling. It was never really my favorite language but I can appreciate what it did for web programming. With that said...(Ethan continues the conversation.)

Ethan: I love Elm.

21:49 – Panelists talks about Elm.

*The topic diverts slightly.

22:23 – Panel: Here’s a counter-argument. Want to stir the pot a little bit.

I want to take the side of someone who does NOT like functional programming.

24:08 – Ethan: I don’t disagree with you. There are some things I agree with and things I do disagree with. Let’s talk about Data Structures. I feel like I use this everyday. Maybe it’s the common ones. The computer science background definitely helps out.

If there was one data structure, it would be TREES. I think STACKS and QUEUES are important, too. Don’t use 200-300 hours, but here are the most important ones. For algorithms that maybe you should know and bust out by heart.

27:48 – Advertisement for Chuck’s E-book Course: Get A Coder Job

28:30 – Chuck: Functional programming – people talk bout why they hate it, and people go all the way down and they say: You have to do it this way....

What pay things will pay off for me, and which things won’t pay off for me? For a lot of the easy wins it has already been discussed. I can’t remember all the principles behind it. You are looking at real tradeoffs.  You have to approach it in another way. I like the IDEA that you should know in 2018, get to know X, Y, or Z, this year. You are helping the person guide them through the process.

30:18 – Ethan: Having the right tools in your toolbox.

30:45 – Panel: I agree with everything you said, I was on board, until you said: Get Merge Conflicts.

I think as developers we are being dragged in...

33:55 – Panelist: Is this the RIGHT tool to use in this situation?

34:06 – Aimee: If you are ever feeling super imposed about something then make sure you give it a fair shot, first.

34:28 – That’s the only reason why I keep watching DC movies.

34:41 – Chuck: Functional programming and...

I see people react because of the hype cycle. It doesn’t fit into my current paradigm. Is it super popular for a few months or...?

35:10 – Aimee: I would love for someone to point out a way those pure functions that wouldn’t make their code more testable.

35:42 – Ethan: Give things a fair shake. This is going back a few years when React was starting to gain popularity. I had young programmers all about React. I tried it and mixing it with JavaScript and...I thought it was gross. Everyone went on board and I had to make technically decisions. A Friend told me that you have to try it 3 times and give up 3 times for you to get it. That was exactly it – don’t know if that was prophecy or something. This was one of my bigger professional mistakes because team wanted to use it and I didn’t at first. At the time we went with Vue (old dog like me). I cost us 80,000 lines of code and how many man hours because I wasn’t keeping an open-mind?

37:54 – Chuck: We can all say that with someone we’ve done.

38:04 – Panel shares a personal story.

38:32 – Panel: I sympathize because I had the same feeling as automated testing. That first time, that automated test saved me 3 hours. Oh My Gosh! What have I been missing!

39:12 – Ethan: Why should you do automated testing? Here is why...

You have to not be afraid of testing. Not afraid of breaking things and getting messy.

39:51 – Panel: Immutability?

40:00 – Ethan talks about this topic.

42:58 – Chuck: You have summed up my experience with it.

43:10 – Panel: Yep. I agree. This is stupid why would I make a copy of a huge structure, when...

44:03 – Chuck: To Joe’s point – but it wasn’t just “this was a dumb way” – it was also trivial, too. I am doing all of these operations and look my memory doesn’t go through the roof. They you see it pay off. If you don’t see how it’s saving you effort, at first, then you really understand later.

44:58 – Aimee: Going back to it being a functional concept and making things more testable and let it being clearly separate things makes working in code a better experience.

As I am working in a system that is NOT a pleasure.

45:31 – Chuck: It’s called legacy code...

45:38 – What is the code year? What constitutes a legacy application?

45:55 – Panel: 7 times – good rule.

46:10 – Aimee: I am not trolling. Serious conversation I was having with them this year.

46:27 – Just like cars.

46:34 – Chuck chimes in with his rule of thumb.

46:244 – Panel and Chuck go back-and-forth with this topic.

47:14 – Dilbert cartoons – check it out.

47:55 – GREAT QUOTE about life lessons.

48:09 – Chuck: I wish I knew then what I know now.

Data binding. Flux and Redux. Lots of this came out of stuff around both data stores and shadow domes. How do you tease this out with the stuff that came out around the same time?

48:51 – Ethan answers question.

51:17 – Panel chimes in.

52:01 – Picks!

Links:

Sponsors:

Picks:

Aimee

Joe

Charles

Ethan




ca

MJS 080: Ely Lucas

Panel: Charles Max Wood

Guest: Ely Lucas

This week on My JavaScirpt Story, Charles speaks with Ely Lucas who is a software developer. He loves technologies and mobile technologies among other things. Let’s listen to today’s episode where Chuck and Ely talk about Ionic, Angular, React and many other topics! Check it out!

In particular, we dive pretty deep on:

1:33 – Hello!

1:40 Chuck: Give us a background on who you are, and tell us how famous you are!

2:31 – Chuck: What do you do with Ionic?

2:40 – Ely answers the question.

3:51 – Chuck: How did you get into your field?

3:55 – Ely: When I was a kid and played with video games. Later on I got into web development, like my website. Then I got into a professional-level of developing.

Ely goes into detail about how his passion for developing began and developed.

6:30 – Chuck: Yeah, I’ve talked with people who have gotten into video games, then got into software development.

7:01 – Ely: Someday I would like to develop games.

7:12 – Chuck: Yes, web developing is awesome.

Chuck asks Ely another question.

7:25 – Ely answers the question and mentions web controls.

9:17 – Ely: I thought Ajax was easier.

9:38 – Chuck: When I got into web development jQuery was sort of new. It made things a lot easier.

9:58 – Ely: A lot of people like to sneer at jQuery now, but back in the day it was IT.

10:28 – Chuck: How did you get into Ionic?

10:43 – Ely: I got a fulltime gig working on Ionic; I like the framework. I saw a job application and sent in my résumé. Two days later I got a callback and was amazed. They were hiring remotely. The team liked me and started over a year ago.

11:46 – Chuck asks a question.

11:54 – Ely answers the question.

13:20 – Chuck: Why Ionic?

13:35 – Ely: It was based off of Angular.

15:17 – Chuck: You mentioned...what has the transition been like?

15:32 – Ely talks about past programs he has worked with. He taught React in the early React days.

16:37 – Ely: I have a deep appreciation on React now.

17:09 – Chuck: I like seeing the process that people go through.

17:24 – Ely continues the conversation.

Ely: It is interesting to see the learning process that people go through to arrive in the same place.

18:18 – Chuck: Redux is a good example of this. Anyway, this is near the end of our time.

18:39 – Chuck: Anything else you want to talk about?

18:48 – Ely: Yes, I have been involved in the Denver community. Check us out.

Links:

Sponsors:

Picks:

Charles

Ely




ca

JSJ 335: “CanJS 4.0” with Justin Meyer

Panel:

Special Guests: Justin Meyer

In this episode, the panel talks with Justin Meyer who is a co-author of DoneJS, CanJS, jQueryPP, StealJS, and DocumentJS. Justin currently works for Bitovi and is their Director of R&D. He is also a fan of basketball and Michael Jackson. The panel and Justin talk about CanJS in-detail – check it out!

Show Topics:

0:58 – We had you on Episode 202.

1:14 – Chuck: Can you tell everyone who you are?

1:20 – Justin tells us his background.

1:50 – Chuck.

1:58 – Justin.

2:06 – Chuck: Can you give us an introduction to what CanJS 4.0?

2:11 – Justin: It is a JavaScript framework and is similar to Vue. It adds a very model layer, and uses Real Time very well.

2:44 – Panelist.

2:49 – Justin.

2:55 – Panelist: What is the current...

3:09 – Justin: Compatibility is very important to us. A lot of the same tools are still available. It has over 80 different repositories.

Justin continues to talk about the differences/similarities between the different versions.

4:55 – Panelist: Angular, React, and Vue are dominating, so I have 2 questions.

1.) Where is the core strength of JS and its user base?

2.) What is like to be the CanJS when everyone is talking about the other programs?

5:31 – Justin: We have dealt with this for the past 10 years. Emotionally it’s not great, I wished it was more popular, but our priority is keeping our user-based happy. We’ve had big companies use it.

Justin answers the second question.

8:44 – Panelist: You mentioned two things.

9:22 – Aimee: I think everything has trade-offs. I would use something because it was the right tool for the job. I wouldn’t want to make something that was “cool.” I would want to make it super accessible in a network.

10:10 – Justin: That is a great marketing angle. We are trying to remove the worst parts of the program.

10:26 – Now I am intrigued.

10:32 – Justin: You have this mutable state and you aren’t sure. At least for CanJS I don’t see that occurring too often.

10:54 – Aimee.

10:58 – Justin: Deep inheritance is definitely a problem and it can create...

11:13 – Aimee.

11:19 – Justin: We have changed strategies a lot, and I think it’s helped CanJS grow; like 60% since January. We are doing a lot of user studies now. I run Meetups, etc. That being said inheritance schemes aren’t something that people will encounter. This is something that they won’t encounter months down the road.

13:00 – Aimee.

13:05 – Panelist: I would like to dig deeper into state-management. Everyone is doing Flux, talk about that with CanJS.

13:20 – Justin: Yeah. It depends on what kind of user you are talking to. When I talk to new users off the street (people who just graduated, etc.)...

If you look at React’s statistics – more than 50% doesn’t use any state management.

16:15 – Panelist: I think it’s interesting that there are people that aren’t “oh my gosh...”

16:43 – Justin: The last coolest thing I’ve done is...

18:02 – Justin continues.

18:16 – Panelist: I kind of have this belief that we as a community turn to frameworks and tools too much. From your perspective when does it make sense to turn to a tool like this or better off working with native...

18:56 – It depends on how complex your app is and our ability to work through those problems. I think that’s a generic answer, but hopefully that helps. I don’t think you really can’t live without.

19:49 – Panelist: I think that’s fair. One thing that I found is that there are many things layered into state-management. Because you mentioned performance, which is something I care about, too. At what point does the extra tooling become too heavy for the user’s experience? Where do you draw the line?

21:11 – Justin: It depends. I don’t know what the parallel is – it’s like a richer developer problem. You have too many users where you can make those fine tuned adjustments. Do whatever is going to deliver the product first and then worry about performance later? I think our things are geared towards performance by default.

22:41 – Panelist: Playing devil’s advocate, though. But isn’t there some danger in kind of suggesting that you focus on performance WHEN it’s a business issue? Maybe there is there a lack of empathy among developers. I worry that advice is hurting us.

23:53 – Justin: No matter what you can build your homepage with Angular weird monstrosity, but then when you get to the point when people are using your product – you can just use native HTML, and native methods and build that one widget and as easy and fast as possible.

24:50 – Panelist: Dealing with complexity. Now we need to do things like bundlers, and such to deal with this issue. I feel like a crotchety old man yelling because it takes forever.

25:38 – Justin: I think it depends on where you are sitting. I think that comes down to the design. If your design has a lot of complex states, then...

26:37 – Panelist: Because you care about performance...

26:54 – Advertisement

27:53 – Justin: I don’t think that the run time of CanJS is going to be a critical performance path for anybody. Is there a responsibility? This is the oldest question. It’s like saying: where do you draw the line that you need to choose success/be elected to fight the battles if you really want to win.

You need someone using your product or it doesn’t really matter. Start-ups use our product because they need to get something up and in. I am going to flip this back onto you guys.

30:48 – Panelist: I think that’s fair.

31:00 – Aimee: I have a question. You got into consultancy when do you recommend using CanJS or something else?

31:15 – Justin: I always suggest people using CanJS.

31:53 – Aimee: What do these people do when their contract is over? I have used an older version of Can, and...

32:20 – Justin: Are you on Gitter?

Aimee: No, I am not.

32:25 – Justin: We do offer promote job posting to help them find somebody. We try our best to help people in any way we can.

33:05 – Aimee: That’s helpful. Another question.

33:28 – Justin: DoneJS is that. It uses the full kitchen sink. That’s what DoneJS is.

33:50 – Panelist: Let’s talk about CanJS in the mark-up. Do you think it’s better now or worse than 2012? Less space or more space?

34:13 – Justin: It’s probably worse. I think the methodology that we are using: focusing on our users. We get their feedback frequently. We are listening to our users, and I think we are being smarter.

35:16 – Panelist: Is the space getting more welcoming or less?

35:31 – It depends on what framework you are. It’s very hard to compete if you are the exact same thing as...

The market is so dense and there are so many ideas, so it’s getting harder and harder. What helps people break-through? Is it the technology or the framework?

36:36 – Panelist: I appreciate the richness of the field, as it exists right now. There aren’t a few things SMELT and ELM

37:10 – Justin: Elm for sure. I don’t have a lot of experience with SMELT.

37:23 – Panelist continues the talk.

37:54 – Chuck.

38:00 – Justin: I think it spreads by word-of-mouth. I used to think it was “technology” or... all that really matters is “can you deliver” and the person have a good experience.

Usability is the most important to me. We will see how this turns out. I will be either right or wrong.

39:18 – Panelist: Can we talk about the long-term future of Can JS?

39:28 – Justin: We are connecting to our user-base and making them happy. If I had it my way (which I don’t anymore) I think JSX is the best template language. We have been building integrations between JSX and...

I am putting out proposals where most people don’t like them.

Justin continues this conversation.

44:24 – Picks!

44:28 - Advertisement

Links:

Sponsors:

Picks:

Aimee

Chris

Joe

Charles

Justin




ca

JSJ 349: Agile Development - The Technical Side with James Shore

Sponsors

Panel

  • AJ O’Neal

  • Aimee Knight

  • Joe Eames

  • Charles Max Wood

Special Guest: James Shore

Episode Summary

James Shore is a developer who specializing in extreme programming, an Agile method. He also used to host a screencast called Let’s Code Test-Driven JavaScript. They begin by discussing the core of Agile development, which James believes is being responsive to customers and business partners in a way that’s sustainable and humane for the programmers involved. It prioritizes individuals and interactions over processes and tools. More can be found in The Agile Manifesto.

James delves into the historical context of the immersion of Agile and how things have changed from the 90’s. Now, the name Agile is everywhere, but the ideals of agile are not as common. There is a tendency to either take Agile buzzwords and apply them to the way it was done long ago, or it’s absolute chaos. James talks about ways to implement Agile in the workplace. He believes that the best way to learn Agile is work with someone who knows Agile, or read a book on it and then apply it. James recommends his book The Art of Agile Development: Pragmatic Guide to Agile Software Development for people who want to started with Agile development. The panelists talk about where people often get stuck with implementing Agile. The hosts talk about their own processes in their company.

They discuss how people involved in the early days of Agile are disappointed in how commercial it has become.They agree that what’s really the most important is the results. If you can respond to a request to change direction in less than two weeks and you don’t have to spend months and months preparing something, and you do that in a way where the people on the team feel like their contributing, then you’re doing Agile. James thinks that the true genius of Agile is in the way the actual work is done rather than in the way your organize the work.

Links

Picks

AJ O’Neal:

Aimee Knight:

Joe Eames:

  • The Ballad of Buster Scruggs on Netflix

Charles Max Wood:

  • Getting up early

  • John Sonmez Kanbanflow video

  • Drip

James Shore:




ca

JSJ 352: Caffeinated Style Sheets: Supporting High Level CSS with JavaScript with Tommy Hodgins

Sponsors

 

Episode Summary  

In this episode of JavaScript Jabber, the panelists talk with Tommy Hodgins who specializes in responsive web design. He starts with explaining to listeners what it means by a responsive web layout and goes on to discuss the techniques in using JavaScript in CSS in depth.

He elaborates on dynamic styling of components, event-driven stylesheet templating, performance and timing characteristics of these techniques and describes different kinds of observers – interception, resize and mutation, and their support for various browsers. He also talks about how to go about enabling certain features by extending CSS, comparison to tools such as the CSS preprocessor and Media Queries, pros and cons of having this approach while citing relevant examples, exciting new features coming up in CSS, ways of testing the methods, caffeinated stylesheets, along with Qaffeine and Deqaf tools.

Links

 

Picks

Joe

Aimee

Chris

Charles

Tommy




ca

JSJ 363: Practical JAMstack and Serverless with Gareth McCumskey

Sponsors

Panel

  • Charles Max Wood
  • Aimee Knight
  • AJ O’Neal
  • Aaron Frost
  • Joe Eames

Joined by Special Guest: Gareth McCumskey

Summary

Gareth McCumskey introduces JAMstack and serverless. He goes into great detail on how it works. Aimee Knight and Aaron Frost voice their concerns about going serverless. Aimee thinks it feels dirty. Aaron has concerns about the code, is it actually easier, what use cases would he use it for, and does it actually save money. Gareth addresses these concerns and the rest of the panel considers the positive and negatives of using JAMstack and serverless. Charles Max Wood asks for specific use cases; Gareth supplies many uses cases and the benefits that each of these cases.

Links

Picks

Charles Max Wood:

  • Join the mailing list
  • Watch out for new podcasts
  • Send me defunct podcasts you love chuck@devchat.tv

Aimee Knight:

AJ O’Neal:

Aaron Frost:

Gareth McCumskey:

Joe Eames:




ca

JSJ 372: Kubernetes Docker and Devops with Jessica Deen LIVE from Microsoft BUILD

Sponsors

Panel

  • Charles Max Wood

Joined by Special Guest: Jessica Deen

Episode Summary

Coming to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with The Deen of DevOps aka Jessica Deen. Jessica is a Senior Cloud Advocate at Microsoft. As an advocate she acts a liaison between developer communities and Microsoft to help understand developer pain points and road blocks especially in areas such as Linux, open-source technologies, infrastructure, Kubernetes, containers and DevOps. Jessica explains how to go about setting up a containerized application, Kubernetes and how to use Dockerfiles. Charles and Jessica then talk about how to get started with a Kubernetes cluster and the resources available for developers that don't have any infrastructure. Jessica advises that developers start with Azure DevOps Services and then go to Microsoft Learn Resource.

Charles also encourages listeners to also check out the Views on Vue podcast Azure DevOps with Donovan Brown for further references. Jessica also recommends following people on Twitter and GitHub to find out about solutions and resources.

Links

Follow Adventures in Angular on tv, Facebook and Twitter.

Picks

Jessica Deen:

Charles Max Wood:




ca

JSJ 377: Bringing Maps and Location Into Your Apps with the ArcGIS API for JavaScript with Rene Rubalcava

Sponsors

Panel

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

With Special Guest: Rene Rubalcava

Episode Summary

Rene is a software developer for ESRI and works in spatial and mapping software. ESRI has been around since 1969 and has seen their work explode since they shifted to providing address and location services. Rene talks about how he thinks about location and mapping when building software around it and things that he has to approach in unique ways. The panel discusses some of their past experiences with location software. Some of the most difficult aspects of this software is changing time zones for data and actually mapping the Earth, since it is not flat nor a perfect sphere. Rene talks about the different models used for mapping the Earth.

Most mapping systems use the same algorithm as Google maps, so Rene talks about some of the specific features of ArcGIS, including the ability to finding a point within a polygon. Rene talks about what routing is, its importance, and how it is being optimized with ArcGIS, such as being able to add private streets into a regular street network.

The panel discusses how the prevalence of smartphones has changed mapping and GPS and some of their concerns with privacy and location mapping. One thing ESRI is very careful about is not storing private information. Rene talks about the kinds of things he has seen people doing with the mapping and location data provided by ArcGIS, including a Smart Mapping feature for developers, mapping planets, indoor routing, and 3D models. 

Links

Follow DevChat on Facebook and Twitter

Picks

Rene Rubalcava:

AJ O’Neal:

Aimee Knight:

Charles Max Wood:




ca

JSJ 379: FindCollabs and Podcasting with Jeff Meyerson

Sponsors

Panel

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

With Special Guest: Jeff Meyerson

Episode Summary

Jeff Meyerson is the host of the Software Engineering daily podcast and has also started a company called FindCollabs, an online platform for finding collaborators and building projects. Jeff started FindCollabs because he believes there are all these amazing tools but people are not combining and collaborating as much as they could, when so much good could be accomplished together. FindCollabs is especially useful for working on side projects. The panelists discuss the problems encountered when you try to collaborate with people over the internet, such as finding people who are facing similar and gauging interest, skill, and availability. Thankfully, FindCollabs has a feature of leaving reviews and rating your partners so that users can accurately gauge other’s skill level. Users can also leave comments about their experience collaborating with others. The only way you can show competence with an interest is to contribute to another project. FindCollabs is also a good place to look for mentors, as well as for Bootcamp graduates or people going through an online coding course. If you are part of an organization, you can create private projects. The company plans to expand this feature to all users in the future.The panelists talk about their past experiences with collaborating with other people.

Jeff talks about his podcast Software Engineering Daily and how it got started and the focus of the podcast. As someone working in technology, it is important to stay current on up and coming technology, and listening to podcasts is an excellent way to do that. Jeff talks about where he thinks podcasting is going, especially for programmers. The panel discusses some of the benefits of listening to programming podcasts. Jeff talks about how he is prepping Software Engineering Daily for the future. He shares the audience size for Software Engineering Daily and some of the statistics for his different channels. Jeff has also released an app for Software Engineering Daily, and he shares some information on how it was written. Finally, Jeff gives advice for people who want to use FindCollabs and some of the next steps after creating a profile.

Click here to cast your vote NOW for JavaScript Jabber - Best Dev Podcast Award

Links

Follow DevChat on Facebook and Twitter

Picks

Aimee Knight:

AJ O’Neal:

Charles Max Wood:

Jeff Meyerson:




ca

JSJ 385: What Can You Build with JavaScript?

Sponsors

Panel

  • Charles Max Wood

  • Christopher Beucheler

Episode Summary

Today Charles and Christopher discuss what can you do with JavaScript. They talk about the kinds of things they have used JavaScript to build. They discuss non-traditional ways that people might get into JavaScript and what first drew them to the language. They talk about the some of the non-traditional JavaScript options that are worth looking into. Christopher and Charles talk about some of the fascinating things that have been done with JavaScript, such as Amazon Alexa capabilities, virtual reality, and games. They spend some time talking about JavaScript usage in game creation and building AI. They talk about how they’ve seen JavaScript change and progress during their time as developers. They talk about areas besides web that they would be interested in learning more about and what kinds of things they would like to build in that area. They finish by discussing areas that they are excited to see improve and gain new capabilites. 

Links

Follow DevChat on Facebook and Twitter

Picks

Charles Max Wood:

Christopher Beucheler:




ca

JSJ 386: Gatsby.js with Chris Biscardi

Sponsors

  • GitLab | Get 30% off tickets with the promo code: DEVCHATCOMMIT

  • Sentry– use the code “devchat” for $100 credit 

Panel

  • Chris Beucheler

  • AJ O’Neal

  • Aimee Knight

With Special Guest: Chris Biscardi

Episode Summary

Chris is an independent consultant working with open source startups. He taught himself to program and started in open source. He talks about how he got into programming and how he learned to code. One of Chris’ current clients is Gatsby, a static site generator. Chris talks about his work with Gatsby themes, how he got started working with Gatsby, and how you can get started with Gatsby. Chris talks about how Gatsby differs from other static site generators and how difficult it is to use. The panel discusses possible use cases for Gatsby, and agree that if your site is going to get more complex and larger over time, something like Gatsby is what you want to use. Chris talks about what it’s like to migrate to Gatsby from another service. The panel discusses the pros and cons of server-side rendering. Chris talks about building more app-oriented sites with Gatsby and things that you can plug into a Gatsby theme besides a blog. The show concludes with Chris and the panelists agreeing that if you can write it in JavaScript, you can ship it in a Gatsby theme. 

Links

Follow DevChat on Facebook and Twitter

Picks

AJ O’Neal:

Aimee Knight:

Chris Beucheler:

Chris Biscardi:




ca

MJS 131: Chris Biscardi

Chris is an independent consultant working with open source startups. He taught himself to program and started in open source. He talks about how he got into programming and how he learned to code.

Chris' first access to programming was writing index.hml files when he was younger and again when he was majoring in Arts in university he was introduced to ActionScript.

Host: Charles Max Wood

Joined by Special Guest:  Chris Biscardi

Sponsors

_______________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood will be out on November 20th on Amazon. Get your copy on that date only for $2.99

_______________________________________________________

Links

Picks

Charles Max Wood:

Chris Biscardi:

  • Follow Chris on Instagram at ChrisBiscardi




ca

JSJ 408: Reading Source Code with Carl Mungazi

Carl Mungazi is a frontend developer at Limejump in London. He is a former journalist and switched to programming in 2016. Today the panel is discussing the benefits of reading source code. Carl began reading source code because he came into programming late and from a different field. His first project was with Mithril, and he read the source code and documentation to help him understand it. The panelists discuss how reading the source code has helped them and others to improve their coding. They compare reading and understanding source code to learning a foreign language, and discuss  different methods. 

Carl gives some suggestions for reading source code effectively. He advises people to be patient and step through the code. Accept that you will probably take a wrong path at some point or another, but the more you read, the more you will see patterns in how libraries are structured. He also encourages listeners to approach the authors, as they are often happy to lend a hand. Reading source code is an active approach of stepping through, debugging, putting in break points, checking the stack, and so forth. It’s also important to do outside research. 

Since he has been reading source code, Carl has come to prefer plain JavaScript and libraries with as little code as possible. The panel discusses the benefits of small, simple libraries. Carl gives examples of techniques that he learned from reading a library source code and how he applied it to his own coding style. Reading source code has made him more careful about mixing logic and UI, and now he separates them. He also is more confident in seeing a problem, going to a preexisting library, and just importing the fix for that problem rather than the whole library. Reading source code is really about understanding the code you use in your project. It may slow you down, but you’ll be thankful in the long term because it will help you solve future bugs more efficiently. Carl talks more about his debugging process. He still relies on a debugger, but reading a library helps you to see patterns and guess the output of a function. These patterns persist in other libraries as well. Once you can guess correctly what will happen, you go back to reading the code and find instances where the output is unexpected, and fix it. Carl’s closing thoughts are that through reading source code, he has learned that although code is used differently in each library, they are all written in the same language, and therefore interrelated. This gave him more confidence in reading code because they’re all fundamentally the same. When a bug is discovered, he encourages listeners to look at the source code before googling a solution. 

Panelists

  • AJ O’Neal

  • Dan Shapir

  • Steve Edwards

  • Charles Max Wood

Guest

  • Carl Mungazi

Sponsors

Links

Picks

AJ O’Neal

Dan Shapir

Steve Edwards

Charles Max Wood

Carl Mungazi




ca

JSJ 411: Unit Testing Jest with Daniel Caldas

Daniel Caldas is calling from Singapore. He currently works as a software engineer for Zendesk and has also worked in Portugal and Germany. He has worked primarily on the frontend with Node and JavaScript. He talks about his experience testing JavaScript, how he got started with Jest, and why he likes it. Daniel finds Jest very easy to use and straightforward. He likes that  Jest has a single reference page for documentation. He feels that Jest is largely complete out of the box and has only made a small add on to get rid of Boilerplate in some tests.

Daniel explains what a snapshot, how they work, and why he prefers fixtures over factories. He gives tips on how to set up your tests so that they are easy to follow. He finds it helps to structure your scenarios in the fixture description. He talks about gotchas in Jest. While Jest is largely easy to use, Jest has been around for a while and breaking changes do happen. It’s important to check what version your code base is using. While there are a lot of free sources around Jest online, he advises listeners to stick as close to the official documentation as possible, or to people associated with Jest, and to read recent stuff. As for conventions, Jest has pretty much everything out of the box and the built in conventions make it easy to navigate any project that uses Jest.

Daniel talks about some of the features available in Jest, converting observables into promises, and tricks he has used to make tests easier to put together. He talks about his method for keeping his mocks and stubs straight. He advises listeners to have some organizational rules, such as starting the imports alphabetically, and to always follow those rules. He talks about how he runs tests and what environments he uses. While Jest is normally used for unit testing, Daniel has also used it for end to end tests, and he talks about his experience with an open source project doing both types in Jest. Daniel concludes the show by advising listeners starting with JavaScript and frontend, don’t think too much about the library you’re going to use because you’ll probably end up using Jest. It’s more important to have unit tests and a proper testing framework at the beginning than anything else. He also invites listeners to check out his open source work on Github.

Panelists

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

 

**To receive your 40% OFF coupon for Manning Publications (good for all our products in all formats) visit us on Facebook - click on "Send A Message"and type "YES"**

Guest

  • Danile Caldas

Sponsors

  • Sentry | Use the code “devchat” for $100 credit

Links

Picks

Aimee Knight:

AJ O’Neal:

Charles Max Wood:

Daniel Caldas:




ca

JSJ 418: Security Scary Stories and How to Avoid Them with Kevin A McGrail

In this episode of JavaScript Jabber the panel interviews security expert, Kevin A. McGrail. He starts by explaining what security frameworks and what they do. The panel wonders how to know if your developers are capable of self-auditing your security or if you need help. Kevin shares recommendations for companies to look at to answer that question. 

Aimee Knight explains the hell she has been in making changes to be compliant with CCPA. The panel considers how policies like this complicate security, are nearly impossible to be compliant with and how they can be weaponized. They discuss the need for technical people to be involved in writing these laws. 

Kevin explains how you can know how secure your systems actually are. He shares the culture of security first he tries to instill in the companies he trains. He also trains them on how to think like a bad guy and explains how this helps developers become security first developers. The panel discusses how scams have evolved and how the same scams are still being run. They consider the importance of automated training and teaching developers to do it right the first time.

Finally, they consider the different ways of authentication, passwords, passphrases, sim card, biometrics. Kevin warns against oversharing or announcing vacations. The panel discusses real-world tactics bad guys use. Kevin explains what he trains people to do and look out for to increase security with both social engineering and technical expertise. 

Panelists

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

  • Dan Shappir

  • Steve Edwards

Guest

  • Kevin A McGrail

Sponsors

____________________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

____________________________________________________________

Links

Follow DevChatTV on Facebook and Twitter

Picks

Aimee Knight:

AJ O’Neal:

Dan Shappir:

Kevin A McGrail:

Steve Edwards:




ca

MJS 138: Carl Mungazi

Carl is a developer from Zimbabwe currently living in London. He explains how he started out as a journalist and wound up doing web development to keep track of news stories coming out in his local area. He leveled up by attending meetups and talking to other developers. He currently works for LimeJump, an energy startup which is creating a virtual power plant by connecting together different power assets

Host: Charles Max Wood

Joined By Special Guest: Carl Mungazi

Sponsors

______________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

______________________________________

Links

Picks

Carl Mungazi:

  • React Dev Tools

Charles Max Wood:




ca

MJS 142: Daniel Caldas

Daniel Caldas is a Portuguese developer working and living in Singapore. He learned to code in high school programming in Pascal. He moved up to the university and that's where he encountered JavaScript. He wound up doing a bunch of design work, static websites, and jQuery. He explains his journey and learning methods leading to a job working for Zendesk on their CRM.

Host: Charles Max Wood

Joined By Special Guest: Daniel Caldas

Sponsors

______________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

______________________________________

Links

Picks

Daniel Caldas:

Charles Max Wood:




ca

Yeast research [electronic resource] : a historical overview / James A. Barnett and Linda Barnett

Barnett, J. A. (James Arthur), 1923-




ca

Yellow dogs and Republicans [electronic resource] : Allan Shivers and Texas two-party politics / Ricky F. Dobbs

Dobbs, Ricky F




ca

Yellow power, yellow soul [electronic resource] : the radical art of Fred Ho / edited by Roger N. Buckley and Tamara Roberts




ca

"The yellow wall-paper" by Charlotte Perkins Gilman [electronic resource] : a dual-text critical edition / edited by Shawn St. Jean

Gilman, Charlotte Perkins, 1860-1935




ca

Yellowface [electronic resource] : creating the Chinese in American popular music and performance, 1850s-1920s / Krystyn R. Moon

Moon, Krystyn R., 1974-




ca

Yes Africa can [electronic resource] : success stories from a dynamic continent / editors, Punam Chuhan-Pole and Manka Angwafo




ca

Yet I loved Jacob [electronic resource] : reclaiming the biblical concept of election / Joel S. Kaminsky

Kaminsky, Joel S., 1960-




ca

Yet more everyday science mysteries [electronic resource] : stories for inquiry-based science teaching / Richard Konicek-Moran ; botanical illustrations by Kathleen Konicek-Moran

Konicek-Moran, Richard




ca

Yii 1.1 application development cookbook [electronic resource] / Alexander Makarov

Makarov, Aleksandr




ca

Yii rapid application development hotshot [electronic resource] : become a RAD hotshot with Yii, the world's most popular PHP framework / Lauren J. O'Meara, James R. Hamilton III

O'Meara, Lauren J




ca

Yoga for children with autism spectrum disorders [electronic resource] : a step-by-step guide for parents and caregivers / Dion E. Betts and Stacey W. Betts ; forewords by Louise Goldberg and Joshua S. Betts

Betts, Dion E. (Dion Emile), 1963-




ca

You never call! you never write! [electronic resource] : a history of the Jewish mother / Joyce Antler

Antler, Joyce




ca

You should see yourself [electronic resource] : Jewish identity in postmodern American culture / edited by Vincent Brook




ca

Young America [electronic resource] : land, labor, and the Republican community / Mark A. Lause

Lause, Mark A




ca

Young Architects 13 [electronic resource] : it's different / foreword by Michael Manfredi ; introduction by Anne Rieselbach ; Catie Newell, form-ula, Future Cities Lab, Kiel Moe, NAMELESS, William O'Brien Jr




ca

A young Dutchman views post-Civil War America [electronic resource] : diary of Claude August Crommelin / Claude August Crommelin ; translated by Augustus J. Veenendaal, Jr. ; edited with an introduction by Augustus J. Veenendaal, Jr., and H. Roger Grant

Crommelin, Claude August, 1840-1874




ca

Young people living with cancer [electronic resource] : implications for policy and practice / Anne Grinyer

Grinyer, Anne, 1950-




ca

Young people's experiences of loss and bereavement [electronic resource] : towards an interdisciplinary approach / Jane Ribbens McCarthy

Ribbens McCarthy, Jane




ca

The young professional's survival guide [electronic resource] : from cab fares to moral snares / C.K. Gunsalus

Gunsalus, C. K




ca

The young reader's Catlin [electronic resource] : My life among the Indians / George Catlin; Edited by M.G. Humphreys

Catlin, George, 1796-1872