I have questions like: What type of software would one need to use to develop? Would it be regular nodeJS or something more specific to the component? What kinds of components are best to start out with? How long would it take to build something like what was presented for an amateur?
2. Making imaginary modules real with Webpack and Babel
This talk was delivered by Mark Brocato. I hadn’t heard of Babel or Webpack or modules before this talk.
Someone that I met at the talk mentioned that Webpack was like Grunt except larger in scope.
I had heard of Grunt before, but had attributed it to being like a package manager, when, in fact, it is a taskrunner. I had several questions.
What is a taskrunner?
Why use a taskrunner?
What is Webpack?
According to Juho Vepsäläinen, author of “SurviveJS - Webpack and React”, “In short Webpack is a module bundler. It takes in a bunch of assets (ie. source, images, markup, CSS, …) and turns that into something you can provide to the client”(“What is webpack?”).
What is Babel?
What is a module?
“Modules divide programs into clusters of code that, by some criterion, belong together”(Haverbeke).
What is a library in Rails?
I haven’t covered Rails yet. I completed two courses on it through Codecademy. We did not go over libraries. We went over saving data, associations, and authentication (“Learn Ruby on Rails”, “Ruby on Rails: Authentication”).
I searched for what a library in Rails actually is. I’m going to assume that a library in Ruby is the same as a library in Rails. According to the Ruby-lang site, libraries release as gems (“Libraries”). I know how to install gems via the bundler; I do not know what they actually are, except that they are external code.
I searched for what a computing library is. “In computer science, a library is a collection of non-volatile resources used by computer programs, often to develop software. These may include configuration data, documentation, help data, message templates, pre-written code and subroutines, classes, values or type specifications. In IBM’s OS/360 and its successors they are referred to as partitioned data sets.[…] A library is also a collection of implementations of behavior, written in terms of a language, that has a well-defined interface by which the behavior is invoked.” (“Library”).
A gem could be described as a released library. Gems consist of combination of code, documentation, and a gemspec (“Structure of a Gem”. It consists of a lib directory (contains the code), test directory (contains tests), bin directory (for executable files), README (documentation), and rakefile (“Structure of a Gem”).
What the talk was about:
Creating imaginary modules with webpack and babel was a talk about creating clusters of code that, by some criterion, belong together using the module builder, Webpack, and transliterating it using Babel for ES5 compatibility with ES6. It was called imaginary modules because it is not currently possible to use the functionality described with the ExtJS framework with React, so adaptations implemented provided functionality for its use.
The way that React - I haven’t studied React beyond the beginning of a tutorial - is includes libraries with JSX is not compatible with ExtJS components. In order to use ExtJS components, the speaker created workarounds using Webpack and Babel. This is why the talk is entitled “Creating Imaginary Modules with Webpack and Babel”.
The speaker went over specific code that would allow for this functionality with the current version of ES6.
I have questions like the following: What is JSX? What does ExtJS actually do? Why use React over Angular? What is ES6? Why is it important? What does a production workflow look like? Is there a difference between using Git for production and using it to have simple version control? What does a typical professional deployment look like?
While I don’t yet understand the code presented, I’m excited to continue learning and pursue those answers in the future when I reach the React section of my curriculum.
3. Slack Bots for Fun and Profit
In this talk, Cole Furfaro-Strode went over how he built slack bots. Slack is an IRC client that has become really popular lately. Bots are automatic interactors with human chatters. Slack bots are bots within a Slack channel. He emphasized that building Slack bots is an interaction first design process. Think about what would a bot say in response to the user. Create a decision tree, if necessary, to articulate this. Keep in mind the purpose of the bot. Aim for them to be humble, helpful, appropriately funny, and warm to the user. Avoid snark and being cutesy. They are difficult to pull off and get old quickly.
In code, he also emphasized that interactions come first for the user or anyone else who will need to read the code. This is why he created skellington, which simplifies the process of making a Slack bot from several hundred lines of code to 15.
I have questions like the following: What does a typical interaction look like? What does a decision tree for a bot look like? How do you know if your bot is hhafw? Does skellington work on a large enough scale that it is commercially applicable?
I’m happy to have attended the talk. I am curious about making my own open source hardware, coding modules using webpack and babel, and making Slack bots now. In the future, I’ll be happy I attended this talk, especially as I cover React. I am glad to have been exposed to new ideas and new questions.
Baltimore Node is hosting a Microcontroller Monday talk soon. I may attend and fool around with an Arduino.
Thanks for the stimulation! Looking forward to future meetups!
Works Cited"Arduino - Blink." Arduino - Blink. N.p., n.d. Web. 05 Jan. 2017. https://www.arduino.cc/en/Tutorial/Blink.