Inspiring Curiosity

We initially started this blog in 2012. I was a brand new college professor and this platform became an opportunity for my husband and I to share our thoughts and ideas on education and technology. We took the conversations that we had at the dinner table and put them into this public forum. It was a project that we could share. The last time I posted was in 2014, I had just finished my first year in a tenure track position and was getting ready for the arrival of our third baby. It’s true what they say, three is the hardest number of kids. The long and the short of it is that life has been incredibly busy over the last five years. While Michael has continued to maintain the blog, I have struggled with juggling parenting and full time teaching. Throw in an interstate move, a new job, and some extra teaching jobs on the side, and I just did not have the bandwidth to write.

Things are beginning to settle down a bit (I hope) and I feel the need to start contributing again. Two years ago I started my current position at an awesome institution dedicated to high quality education. They invest heavily in faculty development and provide plenty of opportunities for me to hone my craft as a teacher. I have learned so much and I want to share those ideas with others, so here I am, back in the blogosphere.

Michael got super excited the other day when I told him that I wanted to start writing again. For him, this blog has been a labor of love. We sat down over breakfast, before the kids got up, and talked about the directions we wanted to take things. I am a biology professor and he is a computer programmer. We both naturally lean towards topics in STEM, but we don’t want to limit ourselves to that. We tossed around some ideas, and came up with our new catch phrase:

Inspiring Curiosity through Creative Projects and Exploration

As both a teacher and a parent, it is my hope that I can inspire people to get excited about learning. One of my biggest frustrations is when I encounter a student that sees my class as an obligation for getting a degree and not an opportunity to learn new things. I want to tap in to people’s natural curiosity.  With curiosity comes joy in learning and discovery. I want to help people to find awe and wonder in the world around them. I want to use this blog and social media channels to this end. In this world of fear, suspicion and tribalism, I want to encourage others to think outside of themselves and open themselves up to new ideas and perspectives.

I am not sure where this all will lead, but I will leave you with this video that encompasses what I am hoping to achieve. It is of a student seeing Euglena (a microscopic, single celled creature) under the microscope for the first time. The first voice you will hear will be mine, followed by my student’s. I love that I captured this moment, because you can just hear her joy in her laughter. It is more moments like these that I seek.

Posted in technology | Leave a comment

Music Maker: Using NodeJS to Create Songs

Music maker screen shot

In my graduate school career, I had the opportunity with our evolutionary complexity lab to study creating music using neural networks and interactive genetic algorithms. It’s fun to study these two topics together since I enjoy crafting code and music. If you enjoy this too, you might enjoy Music maker, a library I created to explore generating music with code. Sonic Pi by Sam Aaron, a popular tool to teach music theory and Ruby code, inspired me to build this tool. My team from InspiredToEducate.NET enjoyed teaching a coding workshop on music using Sonic Pi. We, however, encountered a challenge of installing Sonic-Pi on a lab of computers. The workshop targets 5th-grade to 8th-grade students who have good typing skills. It would be cool if something like Sonic-Pi supported features like Blockly coding too.

In terms of musical motivations, I wanted to provide features like the following:

  • Like Sonic-Pi, the tool should make it easy to generate chords and scales.
  • I want it to feel simple like Sonic-Pi. I, however, don’t think I’ve achieved this yet.
  • I wanted the tool to have a concept of players who can generate music over a chord progression. I believe it would be cool to grow an ecosystem of players for various time signatures and musical types.
    I wanted to support the MIDI file format for output making it possible to blend music from this tool in sequencers broadly available on the market. This also enables us to print out sheet music using the MIDI files.
  • Building drum patterns can be tedious at times, I wanted to create a way to express rhythm simply.
  • We desired to have a browser-based interface that a teacher could install on a Raspberry Pi or some other computer. This was a key idea from one of my teachers.  I’m focusing on building a tool that works on a local area network.  (not the broad internet)
  • From a coding perspective, we need to build a tool that could interface with Blockly coding someday. JavaScript became a logical choice. I’ve wanted to explore a project the used TypeScript, NodeJS and Express too. I especially enjoyed using TypeScript for enums, classes, abstract classes, etc.

Here’s a sample MIDI file for your enjoyment:  jazz midi test

I do want to give a shout out to David Ingram of Google for putting together jsmidgen. David’s library handled all the low-level concerns for generating MIDI files, adding tracks, and notes. Please keep in mind that MIDI is a music protocol and file format that focuses on the idea of turning notes and off like switches over time. Make sure to check out his work. It’s great NodeJS library.

Here’s a quick tour of the API. It’s a work in progress.

Where do I get the code?

  • run app.js to load the browser application.   Once the application is running, you should find it running on http://localhost:3000 .
  • Make sure to check out the demo type scripts and music_maker.ts for sample code.

JSMIDGen reference

To learn more JSMIDGEN,
please visit

Hello world

var fs = require('fs');
var Midi = require('jsmidgen');
var Util = require('jsmidgen').Util;
import mm = require('./MusicMaker')

var beat=25;
var file = new Midi.File();

// Build a track
var track = new Midi.Track();

// Play a scale
var scale = mm.MakeScale("c4", mm.ScaleType.MajorPentatonic,2)

for(var i=0; i<scale.length; i++){

// Write a MIDI file
fs.writeFileSync('test.mid', file.toBytes(), 'binary');

Creating a new file and track

var file = new Midi.File();
var track = new Midi.Track();

// Play cool music here ...

Play three notes

track.addNote(0, mm.GetNoteNumber("c4"), beat);
track.addNote(0, mm.GetNoteNumber("d4"), beat);
track.addNote(0, mm.GetNoteNumber("e4"), beat);

Saving file to MIDI

fs.writeFileSync('test.mid', file.toBytes(), 'binary');

Playing a scale

var scale = mm.MakeScale("c4", mm.ScaleType.MajorPentatonic,2)

for(var i=0; i<scale.length; i++){

Playing drum patterns

var DrumNotes = mm.DrumNotes;
var addRhythmPattern = mm.AddRhythmPattern;
addRhythmPattern(track, "x-x-|x-x-|xxx-|x-xx",DrumNotes.ClosedHighHat);

Setup chord progression

var chordList = new Array();
chordList.push(new mm.ChordChange(mm.MakeChord("e4", mm.ChordType.Minor),4));
chordList.push(new mm.ChordChange(mm.MakeChord("c4", mm.ChordType.Major),4));
chordList.push(new mm.ChordChange(mm.MakeChord("d4", mm.ChordType.Major),4));
chordList.push(new mm.ChordChange(mm.MakeChord("c4", mm.ChordType.Major),4));

Play random notes from chord progression

var p = new mm.RandomPlayer
p.PlayFromChordChanges(track, chordList, 0);

Play root of chord every measure

var p = new mm.SimplePlayer
p.PlayFromChordChanges(track, chordList, 0);

Tour of chord players

var chordList = new Array();

// setup chord progression
chordList.push(new mm.ChordChange(mm.MakeChord("e4", mm.ChordType.Minor),4));
chordList.push(new mm.ChordChange(mm.MakeChord("c4", mm.ChordType.Major),4));
chordList.push(new mm.ChordChange(mm.MakeChord("d4", mm.ChordType.Major),4));
chordList.push(new mm.ChordChange(mm.MakeChord("c4", mm.ChordType.Major),4));

var chordPlayer = new mm.SimplePlayer
chordPlayer.PlayFromChordChanges(track, chordList, 0);

chordPlayer = new mm.Arpeggio1
chordPlayer.PlayFromChordChanges(track, chordList, 0);

chordPlayer = new mm.RandomPlayer
chordPlayer.PlayFromChordChanges(track, chordList, 0);

chordPlayer = new mm.BassPLayer1
chordPlayer.PlayFromChordChanges(track, chordList, 0);

chordPlayer = new mm.BassPLayer2
chordPlayer.PlayFromChordChanges(track, chordList, 0);

chordPlayer = new mm.BassPLayer3
chordPlayer.PlayFromChordChanges(track, chordList, 0);

chordPlayer = new mm.OffBeatPlayer
chordPlayer.PlayFromChordChanges(track, chordList, 0);


If you write music using Music Maker, got ideas for features, or you’d like to contribute to the project, drop me a line in the comments or contact me through GitHub!  Hope you have a great one!


Posted in creativity, music, open source, programming | Leave a comment

4 Orlando Makerspaces You Don’t Want to Miss #makerspace #orlando

Atlanta Maker Faire 2016

When my family lived in Macon, GA, our Macon makers community helped start one of the first makerspaces in Middle, GA: A makerspace is a community oriented and operated workshop with tools to support a broad range of art and technology projects. At SparkMacon, we had tools for woodworking, physical computing, music recording, laser cutting, 3D printing, and art projects. In this season of life, I had the opportunity to witness the awesome benefits of a makerspace community. SparkMacon was founded to support local technology startups and inspire the growth of makers young and old. In general, makerspaces encourage grass-roots learning environments where makers learn from each other. I love the cross-functional nature of makerspaces too. It’s amazing the things you learn when you have different types of engineering, business minds, science, computer geeks and art people in the same room. Many makerspaces also support the mission of seeding the startup ecosystem of a city.

I’m looking forward to engaging in a makerspace community in Orlando at some point. I wanted to share a few makerspaces that you might enjoy exploring.

FamiLAB: As we were building SparkMacon, I gained a lot of inspiration from this makerspace community. I believe that this makerspace was the first makerspace community for Orlando. They consistently have diverse set of events and learning experiences. I’ve enjoyed taking my kids to their Raspberry Pi Jam sessions. The scale and variety of tools is amazing. (laser cutting, 3D printing, metal working, DIY biology and more). I specially find the DIY biology sub-community interesting since my wife teaches microbiology. ( very similar to


Melrose Center: I love seeing the makerspace movement move into other community and education organizations. If you live in Orange county in Orlando, you have a really nice benefit: Melrose Center. The Melrose Center, associated with the Orlando downtown library, provides makerspace services for the cost of a library card. If you don’t live Orange county, you can access many of the services for a nominal cost. The Melrose Center provides a nice spectrum of professional development workshops, family STEAM workshops, and community meetups. Some of my favorite meetups including ONETUG, Google Developers of Central Florida, and the Data Science and Machine Learning group of Orlando meet there. The makerspace offers tools like 3D printers, podcasting recording studios, music recording space, Adobe products lab, virtual reality lab, and more.


MakerFX: The MakerFX makerspace, located in South Orlando, have an impressive community of makers. Like all makerspaces, they offer an impressive range of tools and educational programming. If you’re interested in visiting this makerspace, they offer an “open house” every Friday. You can “drop in” and sample the community and tools. While this makerspace has equipment to serve advanced makers, they seem to have a cool collection of beginner content including Arduino workshops, 3D printing, laser cutting, electronics, and more. On the more advanced end, you can learn about beekeeping, parametric design, PCB layout with Eagle, and combat robotics. This makerspace is the home of the Maker Effect foundation. ( ) This foundation support STEAM education efforts in the city, connecting the makerspaces of Orlando, and coordination of the Orlando MakerFaire. (one of my favorite events every year!)


Factur: I wanted to give a quick shout out to the makers at Factur too. While attending Orlando MakerFaire in 2017, I saw some impressive projects from this community. This makerspace community has entrepreneurial tone since the makerspace also serves as a co-working space in downtown Orlando. They seem to have a great buzz. You can learn more about their culture, tools, and events here:

To our readers, make sure to mark your calendars for Nov 10 and 11 for Orlando Maker Faire. It truly is the greatest “show and tell” of the city. The art, projects and creativity will blow you away! And you get to see all of these makerspaces in action! 🙂  It’s a great event for the family.  Make sure to check it out!



Posted in technology | Leave a comment

Remotely Control IoT devices using NodeJs, Firebase, and Johnny5

Hello, makers!  In our blog post today, I wanted to share a simple way to remotely control IoT devices using NodeJs and Google Firebase.  Let’s say you’re trying to remotely control a small lego crane like this.  You’ll notice there are two servo motors connected to an Arduino.  You can learn more about how you can build this in our post on Arduino and Lego motor control.   For the scope of this blog post, let’s say we wanted to remotely control the servo motor at the bottom from any place in the world.  How would we do that?

Lego Crane

Firstly, check out Johnny 5,  a very nice NodeJs library for controlling IoT devices like Arduino’s, Raspberry Pi, and more.  I really appreciate the clarity of their documentation and API.  You can do a lot with a small amount of javascript.

I started to wonder if we could connect Johnny 5 to the real-time database of Firebase.   What’s a real-time database?  In a traditional relational database like MySQL, you need to declare database tables and structures.  You can make a database table to store a list of persons and their addresses (see sample code here).   After doing that, you can insert data into that table.  In this traditional database world, you can’t listen for inserts into a database table and easily write code to reach to that event.

The Firebase real-time database organizes information in a tree structure.  You can store information in that tree any way that you want.  Other users who have access to the database can listen for data changes at various locations in the tree and write code to react to that event.  Check out the following video to learn how the Firebase Real-time database works. Especially listen to how the value change event works.

This link review the details of getting started with FireBase on the web or NodeJS:

So, let’s explore the code for moving a single servo motor using Johnny 5 and Firebase.

At the top of the JavaScript file, we import johnny-five and firebase-admin. We start our firebase
database session by calling “initializeApp.”

On line 9, we create a “Board” object. I have my Arduino connected to my computer by a serial cable. Johnny5 handles this situation by default.

Once the board enters “ready” state, we create an instance of a servo motor connected to pin 10.

On line 14 and 15, we connect to a storage location called ‘servo_angle.’ Using the servo_angle “on value” event, we listen for changes to this location and
set the angle of the servo. And that’s it!

To write values into “servo_angle”, check out the following code.

In this script, we connect to the Firebase database in the same way. On line 10, we accept an angle from command line arguments. On line 16, we write that angle to ‘servo_angle’.

It’s a very simple pattern for making internet connected robots or home automation.

We love to hear from our readers. Leave a comment below if you get other ideas for internet connected robots, toys or devices.

Related Blog Posts

Posted in making, programming, technology | Leave a comment

Building Chat Bot Apps with Google Actions


In science fiction, we have dreamed about the days when we’ll talk to our computers to make things happen. In Star Trek, crew members can talk to the Holodeck computer to “program” and explore amazing virtual experiences. Tony Stark(aka. Ironman) constantly gets situation awareness from Jarvis during battle by simply talking to his device. We’re still a long way away from Holodecks, R2D2, and Ironman. As developers and makers, we can explore the potential of voice interactions with mobile devices today.

The Google Actions toolkit enables you to integrate your services into the voice command interface of a Google assistant. This technology touches millions of devices including phones, cars, and assistant devices. You can also integrate into services provided by Google or third party services.

This past weekend, our local Google developer group of Central Florida organized a hackathon to explore applications of voice user interfaces and Google Actions. We enjoy getting to organize community workshops like this. Love seeing our community come together. It’s always a great opportunity to learn, meet people, and generate new ideas.

Google Actions Hackathon

In general, Google actions work well in three major use cases. Users on the go. People starting their day. People relaxing at the end of the day.   For my Google Actions app, I tried to think of an application of Google Actions that would support our leadership team for our GDG. We recently adopted a Trello board to help us organize tasks for our club. If you’re not familiar with Trello, it’s simple a task management system popular with Agile teams. ( see a screenshot below )  As a busy Dad and professional, I typically think of stuff that needs to be accomplished for the GDG while I’m driving.

Trello board

I decided to create a simple Google Action to enable me to collect a task and share it on our leadership Trello board. I tried to explore this task in three phases.

1. Get to know the Google Actions API: I used a variety of resources to get to know the Google Actions interface. I, however, found this code lab very helpful.  After doing this code lab, I was able to slightly elaborate on the tutorial to create my own stuff.

2. Build Trello integration code to add a task to a list: On my local laptop, I started playing around with a few options for adding task information to a list.  I found the “node-trello” package for NodeJs worked really well.

3. Integrate the Google Actions API and the NodeJS code together

Here’s a quick tour of the Google Actions conversation setup. Using Dialogflow, it’s really cool that you can create conversational interface actions with almost no code.  JavaScript code becomes necessary if you need to integrate services or databases together.   Let’s focus on one intent: adding a task.   In general, intents enable you to accomplish a focused interaction on your Google assistant.   In my case, the user calls my action by doing the following:

  • Ok, Google.  Let me talk to GDG tasks
    • The system replies with a greeting and a prompt for a command
  • The user can reply “add task.”

In this intent, we can configure the system to respond to similar phrases to “add task.”

Add task

At this point, the intent collects two pieces of information.  (task name and task details).  We configure the intent to fulfill the conclusion of the intent with custom code.

Hope this code sample helps you understand the experience of building a Google Actions application.

Here’s a few more resources and ideas to help you write your own Google Actions app.

    • These are great tutorials for “non-coders” and programmers.  These templates are designed for teachers, educators or people curious about chat bot building.   The tutorials are designed to be very short.

Posted in making, mobile, programming | Leave a comment

The Importance of Reading To Foster Empathy

Girl with books

In my view, one of the best educational and community hacks of all times is the library.  Why?  They are organizations devoted to growing minds through books.   Books have the ability to send us to new worlds of adventure, help us consider diverse perspectives, and exercise our imagination.  Today, I wanted to introduce you to one of my best friends from church and expert homeschool teacher, Lisa Twardowski.  She has amazing, thoughtful and talented kids.   We enjoy getting our families together to do maker education projects.   I really appreciated her post on the empathy you learn from books.   Hope you enjoy it.


As I sit sipping my hot tea after I have tucked my children into bed, I ponder the questions they asked during our nightly read aloud.  While the youngest, our daughter, was still brushing her teeth, I began reading, “The Dangerous Book of Heroes” to our boys. They opted for an entry entitled, “The Abolition of Slavery in England”.  As soon as we started the story, the boys said we would need to stop before their sister joined us, but it was too late. She was already in tears in the other room, asking how one person could possibly feel like they had the right to own or sell another person – a human being!?  One of her brothers explained that that is just the way the world is, while the other brother tried to explain that it is not okay and no one should do it.

We all opted to move on to our family read aloud, “Little House on the Prairie”.  Safe, I mistakenly thought. The title of the chapter we were reading, “The Tall Indian”.  In this chapter, Laura describes her mother’s disgust at the Indians who are using the well-worn trail that is near their new home in Missouri.  Pa mentions that if he had known that trail was the Indian highroad, he never would have built his home so close to it. Laura asks question after question about the Indians: why will they have to move west (because the government will make them) and isn’t this their territory (yes, but white men are moving here now).

The topics, so unfamiliar to us today – at least to my young children – were upsetting, thought-provoking, and cause for pause and reflection.  They felt empathic; they have the ability to imagine or share the feelings of another.

Empathy is something that cannot be taught, it must be understood, lived, experienced.  One person cannot live in every situation, so how do we “learn” empathy? TV isn’t working; computer games aren’t working; apps – as great as they are, aren’t getting the job done.  What is a mom or dad to do – our future generation is at stake! Empathy is now one of the Top 10 Skills employers are looking for in their new hires. Why? Because so many of our young people today are not able to put themselves in a situation outside of the one they are living.

So, how do we solve this problem of learning to be empathic?  It’s as simple as words in print: Books. Do you remember those?  A stack of bound paper with words and sometimes pictures printed in ink, some with a funny smell.  It’s the words printed on those pages that are the important part of this story. Sure, now you can read the printed word on a screen, and even get the sounds effects of turning a page – which works just fine too, but it is those words.  It’s the words that tell the stories of lives and journeys and events that the reader can never live, but can experience through those written words. The reader can become familiar with characters, and practices, and locations that they may never get to visit – or that no longer exist except through that written word.

Reading is a big deal these days.  Sometimes we think reading is the magic key that will unlock any door.  And while I am certainly a believer that reading can fix many of our problems, I do think it is VERY important to choose what we, and our children, are reading carefully.  Captain Crazy Cape is not going elicit more than crass humor from our children. Diary of Anyone is probably not worth our time. What goes in will come out – it works in the stomach and the brain.

There are some great book recommendations online – and what you will find after reading enough of those lists is that as that they contain a lot of the same books.  Not all the books are old, but those tend to be the ones most often turned to. Some of the books I have read recently that really stirred me are middle-grade novels, many written in the 1950s.  The following is not a complete list, as I don’t believe such a thing can exist, but any of these books are a good place to begin.

  • Stuart Little
  • Charlotte’s Web
  • Little House on the Prairie Series
  • Sarah, Plain, and Tall
  • The 100 Dresses
  • Number the Stars
  • Heidi
  • Amos Fortune, Free Man
  • The Secret Garden
  • Tuck Everlasting
  • Carry On, Mr. Bowditch
  • Where the Red Fern Grows
  • Island of the Blue Dolphin
  • Shipwreck at the Bottom of the World: The Extrodinary True Story of Shackleton and the Endurance
  • Johnny Tremain
  • Roll of Thunder, Hear My Cry
  • Men of Iron
  • The Bronze Bow
  • The Giver (Upper Middle School, High School, and Adult)
  • Silas Marner (Upper Middle School, High School, and Adult)
  • The Strange Case of Dr. Jekyll and Mr. Hyde (High School and Adult)
  • The Hiding Place (a must read for ALL High School students and Adults)

There is no magic fix all in any of these books.  Some are true accounts of the authors’ lives, some are historical fiction, and still, others are fiction outright.  All tell the story of humankind: the hardship and failures, the successes and joys. Each will allow the reader to walk a mile in another person’s shoes.  These stories span historical times, locations, race, and socio-economic classes, but they all deal with characters who struggle with one issue or another, but find hope to continue on.  

Most of these situations are not things we can even offer our children, nor would we want to: to become an orphan, or a slave, or a science experiment.  But they can see life through another’s eyes and learn what it may have been like to have those struggles, and think those thoughts, and possibly make different choices – or at least ponder, “what would I have done?”  To be empathic to another’s struggles and life. To gain the ability to imagine or share in the feelings of another, all from the safety of the sofa.

As LeVar Burton of Reading Rainbow so often reminded us, “But you don’t have to take my word for it…”  

Lisa Twardowski


Other posts from InspiredToEducate.NET

Photo credit:

Posted in parenting, teaching | Leave a comment

The Challenge of Being Present

SunriseIn our modern world of mobile devices and tech, it’s easy to become distracted. As knowledge workers, we have an attraction to achieve mastery in our craft and autonomy. My family will attest that I do a lot of “work related” or “blog related” reading to stay on top of the latest maker tools, trends or leadership coaching. Our mobile devices offer an escape. They offer infinite entertainment, infinite knowledge, and illusion of being connected. Without checks and balances, is it worth the cost?

As I draft this post, I know that I can own the challenge of being more present to my friends, family and peers. As a Dad and husband, I am challenging myself to be in the moment. Honestly, this is a struggle. I work as a software engineer. Many programmers(including myself) will confess that they have the ability to continue working problems in their head even after they’ve disconnected from their computers. Now that we’re armed with mobile phones and Google, we can continue to “research” solutions anytime and anywhere. I know I have to cherish my wife and kids. My kids will only be little once in a lifetime. Let’s make this time count.

On a professional level, our team leader purchased our team the gift of really nice notebooks during a sprint planning meeting. After handing out theses gifts to each team member, he invited us to close our laptops/devices to encourage us to engage more deeply in the meeting and with each other. The message was the same. Let’s be present to each other. Since that teaching moment has happened, I’ve noticed that our team members have become more prepared to meetings too. This has increased meeting effectiveness. In some ways, this teaching hints at the agile concept of “people over processes and tools.”

As mentioned before, I struggle with the distraction of mobile tech just like anyone else. I believe that making, tinkering, and engineering skills support a profound engagement in learning. As my friend Sylvia Martinez says, “making is a stance toward learning.” Technology is one tool of many to express creativity and grow. It’s not the only tool. I have to acknowledge the tech needs limits, balance, and bounds. The following video by Guy Raz from NPR motivated me to draft this post. My goal in sharing this post is simply to create awareness of the influence of mobile tech. How do we use this tool effectively? How do we keep this technology in balance? How do we become more present to the people around us?

Do you have any rules of thumb that you follow to be more present? We love to hear from our readers. Please share a comment below.


Posted in parenting, technology | Leave a comment

“Growing Your Developer Career using Open Source” via @JohnBaluka

We are open

Whether you’re just starting in your career or you’ve been working in the industry for years, you can benefit from the culture and practice of open source. I want to thank John Baluka for sharing his reflections and personal journey on this topic. I really appreciate John’s fresh business perspective on using open source to advance your learning and business. I had the opportunity to hear him share his talk on this topic during an ONETUG meeting this past week. If you’re in the Orlando area, make sure to check out ONETUG. They’re a great community of programming professionals.

Some programming communities have stronger cultures of sharing and open source culture. As a web applications developer, we naturally love open source software. Programmers who leverage NodeJS and JavaScript operate in a very open way because the world wide web operates in that manner. I’ve been working as a C# developer for over 20 years. I’m very excited that our .NET community of developers has learned lessons from other languages and become open and collaborative. I still think it’s crazy that Microsoft has become the number one contributor to open source software. Stuff that used to be secret sauce has become open. On top of that, Microsoft has now bought Look forward to seeing Microsoft and GitHub use their influence to increase the impact of open culture.

I believe that John hit on 5 thoughtful benefits for getting to know open source solutions. In John’s view, you need to be strategic on your investment of time.

1. Personal learning and growth: In John’s journey, he wanted to find an example of a large software architecture written in .NET and ASP.NET MVC. He selected NopCommerce, a cool e-commerce platform for .NET developers. John organized lessons and meta-patterns from dissecting this project into a talk. Some of the topics included dependency injection, language localization, data validation, plug-in architecture, and agile design. John offered us a challenge to select and study an open source project as a tool to advance your career in architecture or software leadership. On InspiredToEducate.NET, we have talked about this principle in the context of the makers movement. Everyone can learn something from reading code, exploring a 3D model, dissecting an electronics schematic, music, art, etc. What’s an open source project that fits into your space of passion?

2. Open source software enhances your public profile of work: When you hire an interior designer, how would you make your decision? You probably would review pictures of previous work to see if the designer fits with your tastes and requirements. For the average job interview in software engineering, it’s typically hard to show code from your previous gig. (i.e. corporate secrets, policies) Most companies don’t do their work in open source. By getting involved and contributing to an open source project, you can enhance your public profile of work. How does your GitHub reflect your strengths and skills?

3. Speed to solution: It’s important to remember that software developers aren’t paid to write code. We provide value and solve business problems. Open source software enables our teams to reduce time to market. Phil Haack, creator of ASP.NET MVC and engineer at GitHub, shared a reflection that businesses should always focus on their unique value proposition. (i.e. what makes your company different than other options ) Open source provides an opportunity for companies to partner or collaborate on elements outside of your unique value proposition. Why write a big workflow system or content system when you can integrate one?

4. Open source is social: To advance your career, it’s important to expand your network and relationships. Growing authentic relationships becomes critical in growing your business. By collaborating on open source, you have an opportunity to learn from others. You have the opportunity to invest and support peers around you. I personally get excited about supporting the growth of others.

5. Business models around open source software: I really appreciate John’s reflections on this aspect. I admire his pragmatic approach to selecting NopCommerce. On one level, the open source project followed good and clean patterns. In his view, the project isn’t perfect, but you can learn something from it. By sharing his reflections on the software design during user group meetups and conferences, he started getting consulting requests to support NopCommerce integrations. He challenged us to strategically select an open source project for learning with an eye toward job growth. In the NopCommerce space, you can earn money by building store themes, building plugins, providing support or integrations. Here’s a few more blog post that elaborate on this idea.

What open source projects connect to your strengths, passions, and your career growth strategy? This was probably my favorite concept from John’s talk.

Again, I want to thank ONETUG and John Baluka for making this talk possible. I also appreciate John taking time after the meetup to hang out. I appreciate his accessibility.

Make sure to check out John’s talk and his resources.

Related Blog Posts



Posted in open innovation, open source, programming, technology | 1 Comment

10 Trends You Need to Know from Google I/O 2018

Google IO - Logo

What’s Google I/O?

Google I/O is an annual software developer-focused conference which features a keynote on the latest updates and announcements by Google. The conference also hosts in-depth sessions focused on building web, mobile, and enterprise applications with Google and open web technologies such as Android, machine learning, TensorFlow, Chrome, Chrome OS, Google APIs, Google Web Toolkit, and App Engine.

In this blog post, I’m going to share my favorite announcements from the conference. Hope these items serve makers, app developers, and web developers.

Angular Updates

It’s Christmas time for Angular developers. Check out this talk to learn what’s new with Angular, Google’s platform for scalable front-end web development. Using Angular 5 at work has been fun. Love working with TypeScript and the component model. In general, it helps reduce common JavaScript errors. It has also created a great deal of unity between our back-end and front-end code.

Abstract: Angular has a flag that will cut hundreds of kilobytes off of your bundles, improve mobile experiences, and allow you to dynamically create components on the fly. Learn about these changes and what they mean for your applications.

Android Studio 3.2

Google has worked to improve the application model for Android for simplicity, power, and developer speed. I’m curious to test the speed of the new Android emulator.

Abstract: The last couple of years have seen a plethora of new features and patterns for Android developers. But how do developers know when to use existing APIs and features vs. new ones? This session will help developers understand how they all work together and learn what they should use to build solid, modern Android applications.


For our makers and tinkering readers, you might check out Google AIY projects. I find it interesting that you can go to your local Target store and pick up a Google AIY kit so that you can start experimenting with machine learning, voice control, and computer vision.

The following MagPi issue covers the AIY voice kit:


Abstract: AIY efforts at Google puts AI into various maker toolkits, to make things more playful and, more importantly, to help you solve real problems that matter to you and your communities. Join this session to learn how you can use these kits to start adding natural human interaction to your maker projects. It will feature demos on the Voice and Vision Kits, and some amazing AIY experiments built by the makers community around the world.


A few years ago, I had tried the Dart programming language and enjoyed it. For background, I work as a web app developer using C# and JavaScript. I find Dart very approachable. In the Flutter.IO project, Google has worked to expand the influence of Dart into building native iOS applications and Android apps. I find the “hot reload” feature of Flutter.IO very compelling. It’s awesome to go from idea to device quickly. My only reservation with Flutter is that it doesn’t have a declarative model for expressing components(or widgets).

Abstract: Come watch a single developer code a beautiful app in real-time from the ground-up that runs natively on iOS and Android, all from a single codebase. Along the way, learn how to marry Flutter’s latest multi-platform reactive UI elements, accelerometer, and audio capabilities with powerful Firebase SDK functionality. See this app painted to life piece-by-piece in under 40 minutes thanks to Flutter’s sub-second hot reload developer experience.


Google’s ARCore framework received several notable updates. Firstly, Google ARCore enables developers to write Android apps that sense your environment. With these capabilities, developers can place 3D content layered over a view of the real world. This technology unlocks an amazing class of games, collaboration, and design applications that serve users in their physical spaces. The first version of Google ARCore focused on horizontal surfaces. Google has upgraded ARCORE to sense vertical surfaces(walls) and pictures. (i.e. custom tracker markers) Google now offers a way to shared markers or points of interest with multiple users. Let’s say you’re making an AR pool game using your dining room table. Multiple players of your game can collaboratively target the same dining room table and participate in a shared game experience. It should be noted that you can “instant preview” ARCore apps using ARCore Unity tools. This really helps you reduce your iteration cycles.

Abstract: Learn how to create shared AR experiences across iOS and Android and how to build apps using the new APIs revealed in the Google Keynote: Cloud Anchor and Augmented Images API. You’ll come out understanding how to implement them, how they work in each environment, and what opportunities they unlock for your users.

What’s new on Android on ChromeBooks

On InspiredToEducate.NET, we’re passionate about serving students, teachers, and makers of all ages. Since my wife works as a college professor, we’re constantly geeking out over various tools in educational technology. It’s very clear that Chrome books have made a positive impact in K-12 education. According to this article, Google Chromebooks command 58% of laptop devices in the K-12 market. That translates to millions of devices. It’s cool to see Google expand the capabilities of Google Chromebooks using their innovations in Android.

Abstract: With the Play Store on Chromebooks gaining traction, developers need to understand how to build high-quality apps and content for the new form factor. Attend this session to learn about adding support for larger screens, mouse and trackpad support, keyboard support (i.e. shortcut keys), free-from resizable windows, and stylus support for devices that have them.

Android Things

Abstract: Android Things is Google’s platform to support the development of Internet of Things devices. This talk will provide an update on the program and the future roadmap. Learn more about the breadth of hardware reference designs, the operating system, building apps, device management, and support from chip vendors. It will also discuss use-cases where edge computing can be used, and examples of prototype-to-production that demonstrate how Android Things is ready for commercial products.


Abstract: Sceneform SDK is a new library for Android that enables the rapid creation and integration of AR experiences in your app. It combines ARCore and a powerful physically-based 3D renderer. In this session, you’ll learn how to use the Sceneform SDK, and how to use its material system to create virtual objects that integrate seamlessly with the environment.

TensorFlow Lite

Over the years, Google has focused their energy on advancing machine learning capabilities. They have now entered a phase where application developers can now weave the power of machine learning brains(machine learning models) into their applications. Google TensorFlow enables app developers to train powerful neural network models so that computers can learn and use that intelligence in applications. In Google photos, I can do weird searches like “flowers in macon, ga.” Since Google have fast neural networks that can I identify flowers, Google can quickly return a list of photos with flowers matching my expectations. Wouldn’t it be cool if you could put these capabilities into your Raspberry Pi or Android app? TensorFlow Lite enables you to leverage pre-trained TensorFlow models in your apps. I’m very impressed by their focus on speed and efficiency.

Abstract: TensorFlow Lite enables developers to deploy custom machine learning models to mobile devices. This technical session will describe in detail how to take a trained TensorFlow model, and use it in a mobile app through TensorFlow Lite.

Google Lens

The following video demo’s some of Google’s cool innovations in computer vision. Using Google Lens, the photos app can identify objects in view. In the future, you’ll be able to point your phone at a store. Using an AR view, Google can tell you ratings, descriptions, and pictures related to the store.

Join the conversation at our next Google Developer Group.

Interested in digging deeper into these technology announcements? What are consequences of connecting some of these ideas together? What opportunities do these capabilities give to our local developer community?

We’ll dig deeper into the latest announcements from Google I/O conference. We’ll discuss the various pathways for leveraging these technologies in your career. We’re excited to discuss how these tools can benefit local startups, makers and businesses in Orlando, FL.

When: May 24, 2018 – 6pm to 9pm

I/O Extended 2018 Orlando

Thursday, May 24, 2018, 6:00 PM

101 S. Garland Ave #300 Orlando, FL

18 Members Went

• What we’ll do Google I/O is an annual software developer-focused conference which features a keynote on the latest updates and announcements by Google. The conference also hosts in-depth sessions focused on building web, mobile, and enterprise applications with Google and open web technologies such as Android, Chrome, Chrome OS, Google APIs, Goog…

Check out this Meetup →

Posted in making, mobile, programming, technology | Leave a comment

6 Resources To Build Cool Minecraft Mods with Python

Looking for a fun way to explore learning to code with your students or children? Consider exploring writing Minecraft mods using Python. In our house, we continue to enjoy building(destroying) together as a family in shared Minecraft worlds. I appreciate that Minecraft helps the kids exercise their thinking about working in 3D. The python language favoring concise expression, fast feedback and quick iteration will keep students engaged.


As a parent, I have been searching for ways to make learning math more attractive for one of my kids. In this particular case, he loves to read and often enjoys finding ways to avoid doing tasks related to math. I’m so thankful that he has developed a joy in reading. I don’t think I had that motivation at his age. During a trip to a bookstore, he expressed interest in the book “Learn to Program Minecraft” by Craig Richardson. As an experiment, we picked up the book to explore his engagement level. In one week, he got to chapter 4 and started requesting that we practice coding Minecraft together after school. I felt something like this.

Seymour Papert, a key influence in the learning theory of constructionism, aspired to create a math world where children would play with math as a learning tool. I believe that he would be proud of the various open source projects that connect Minecraft to computational thinking.

To help you get started with coding Minecraft mods with Python, I wanted to share a few tools to help you get started.

1. Raspberry Pi: The Raspberry Pi is a great $40 computer build to engage students in playing with physical computing and computer science. If you run the raspbian operating system on your Raspberry Pi, you already have a copy of Minecraft installed and related python tools.

2. Setup for Windows and Mac: If you run Minecraft(java edition) on a Windows or Mac OS, you will find the following tutorial from instructables helpful. The tutorial walks you through the process of setting up your Minecraft server, setting up the python api, and configuring your Minecraft environment.

3. Getting Started with Minecraft Pi: This resource from the Raspberry Pi foundation provides a concise set of steps to get started. Make sure to check out the link on playing with TNT. (The kids enjoy that one!)

4. MagPi Magazine issue on Minecraft coding: I’m a big supporter of the MagPi Magazine. I often give this magazine as a gift to my geek friends. They recently published an issue on Minecraft coding that you’d enjoy.

5. Minecraft Python API cheat sheet: For experienced programmers who need a quick reference guide to the Minecraft Python API, I found the following link helpful.

6. This interactive tutorial provides a fun way to get started with python programming and many other languages. People learn best when you see a new idea and immediately apply it. Code academy was designed with this learning pattern in mind. You are coached to immediately apply every new programming concept in an online code editor.

Related Blog Posts


Posted in creativity, game based learning, making, open source, programming, stem, technology | Leave a comment