Over a million developers have joined DZone.

How NodeBots Caused a Transformation From Food Truck Chef Operator to Nicholas Cage Worshipper

DZone's Guide to

How NodeBots Caused a Transformation From Food Truck Chef Operator to Nicholas Cage Worshipper

This might sound a bit weird, but hang in there. We'll show you how Nicholas Cage (sort of) helped on dev learn Node.js.

· Web Dev Zone ·
Free Resource

Learn how Crafter’s Git-based content management system is reinventing modern digital experiences.

While businesses scramble to find enough suitably skilled tech professionals to usher innovation into the next decade, at the other end of the spectrum, there's an enthusiastic revolution of tech newcomers getting into programming thanks to a growth of accessible and welcoming communities like NodeBots, that teach newcomers to build robots using JavaScript and Node.js. The community freely spreads knowledge and encourages everyone to build whatever they desire. JavaScript and Node make it extremely accessible by being free and open source. I recently spoke to Paul Chin from Virginia who went from running food trucks to building a shrine to Nicolas Cage where folks could "pay tributes" to The One True Cage and teaching NodeBot workshops. 

Chin explained that he became attracted to the idea of building something robotic after attending  International NodeBot day with his food truck business:

"I went to my first one and I got really hooked because there were a bunch of kids around 7 or 8 years old that were operating robot kits, plugging them in and controlling them. And I went the second year and actually sat down and built a kit myself with it. And after I built the kit I thought, like how does this code work? And my friend, Linda Nichols, showed me the file."

Chin previously thought programming was limited to people who liked math or had qualifications in physics and electrical engineering and now:

"It didn't seem that complicated anymore because I had that hands on experience and it was such an easy going environment that I wasn’t intimidated anymore. The more I got into it, I learned that there was an even larger community behind the NodeBot and behind JavaScript. It takes time and hard work to learn but the support is there."

The Worshipping of Nicholas Cage

 Image courtesy of The Church of Nicholas Cage

Nicholas Cage is an actor that enjoys something of a cult status including a Church of Nicholas Cage (check out the FB page) and a collection of memes. In response Chin created something of an online shrine:

"It's an internet enabled device where I'm running Node.js on a RaspberryPi that is hooked up to a touch screen and the touch screen then controls a Servo and some LEDs. There's a remote app that people can log into to control the LEDs and the Servo and it works sort of like a digital prayer rosary. So someone logs into it and there's a little Nicolas Cage prayer. When they say it, they press the button when they get the end of it and the Servo picks the arm up and it keeps track of how many times you’ve prayed to Nicholas Cage.

When I do my presentation, I talk about how you really heal yourself of any imposter syndrome that you have by building absolutely ridiculous things." 

Developers Can Love Hardware Too

Image title

According to Chin, one of the cool things about NodeBot is that "you go to zero to wow in no time at all." He encourages programmers who've never really touched hardware to get involved: 

"Last month I did a workshop using Node to execute commands on hardware. We use a library called Johnny5. It featured an ultrasonic sensor. It sends out these invisible sound waves and then you can calculate the difference in the speed of sound and it tells you how far away something is.

A lot of the participants were already familiar with JavaScript. So they already had Node ready to go. They understood the concept of installing the library and the way the library is written. After people saw that they can take their existing skill set of computer programming and a little bit of JavaScript and easily map it over to the hardware."

One of the workshop participants even went ahead and bought his own kit and is now building synthesizers for fun. As Chin says, "It's just incredible, the kind of platform that JavaScript can bring because it is so ubiquitous, there's so much stuff that I can hook into using the Internet." 

"So with this seemingly silly project, I've learned how to program, learn how to set up a server,  learn how to manage servers, learned how to use machine learning, and learned some hardware. Nicholas Cage is doing good work."

Chin is still enthusiastically tinkering away with the Nicholas Cagebot. The latest feature is facial recognition where "in order for the app to work, you have to hold up a mask of Nicolas Cage to authenticate your identity and let you into the program.

What Next? 

Overall, NodeBots and the community that supports them are a great example of how the generous sharing of experience and knowledge can change lives in unexpected ways. With the skills and confidence gained thanks to NodeBots and Nicholas Cage, Chin's next project moves beyond hardware into an old school style SMS game called Cat Wars. He explained :

"Remember that game Drug Wars that you used to play on your calculator at high school? I wanted to do a text version of it because I found out that there's a cool service called Twilio that allows you to programmatically send and receive text messages. But people told me that creating the game about buying and selling drugs from text messaging was a terrible idea. So I am now making the game about cats, like an ultimate reality scenario set in 1994 where tech has been outlawed by the government and you have to make the most money by buying and selling cats."

Crafter CMS is a modern Git-based platform for building innovative websites and content-rich digital experiences. Download this white paper now.

web dev ,node.js ,javascript ,learning and development

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}