Famous author and artist Eric Carle turns 91 today. I remember loving his books when I was a kid, especially The Very Hungry Caterpillar and Brown Bear, Brown Bear, What Do You See?. Each book features his distinctive art style. The images are collages composed of tissue paper and acrylic paint, producing vivid depictions of animals and nature.
Carle’s work is as complex as it is beautiful. How can we make it easier for children to produce their own homages to his creations?
Neural style transfer is a technique that allows you to compose images in another’s style using deep learning. That is, you teach a computer to identify key elements of an image’s style and redraw that image in that style it has just learned.
Taking the code from the tutorial I built a website that lets you upload images, have the style of Eric Carle’s The Very Hungry Caterpillar transferred to it, and display it for the world to see and for you to download! At any given time the latest 10 images will be displayed for any visitors to see. The website is built in one of my favorite frameworks, Flask.
You can access the website at ericcarletransfer.ml. Be warned, the transfer time can be in excess of 10 minutes- it is very computationally intensive.
The results have been encouraging though! Take a look:
The neural network is picking up on the look of the tissue paper and paint. In the future I want to work on reducing the amount of noise seen in the backgrounds.
Word searches can be a great way to build a summary activity for reading a story, article, or book. However, they are time consuming and difficult to make.
text2wordsearch uses the Rapid Automatic Keyword Extraction (RAKE) algorithm to automatically extract the top key words from a blob of text! Simply copy the text from the article or story and choose how many words you want in your word search. Then copy the word search into your favorite word processor (be sure to use a monospace font!). The keywords selected are found in the bottom box.
The technical details are that this uses an AWS Lambda function to run the RAKE algorithm and generate the word search, ingesting the text from the web interface above which is deployed on AWS API Gateway. The Lambda function is written in Python and leverages two excellent packages: python-rake and word-search-puzzle. Because it is a Lambda function they had to be installed to a directory and uploaded as part of a zip bundle along with my function code. This zip is included in the repo linked below for you to deploy and play with yourselves!
Zoom Bombing is exposing children learning remotely to inappropriate content and disrupting meetings so a few pranksters can have a laugh. The biggest unsolved issue with Zoom Bombing is that people are sharing links and passwords on social media in order to egg trolls and classmates on to bomb these classes and meetings. How can we share a meeting without disclosing the meeting ID and password?
BombSquad is a solution I built on Amazon Web Services to help mitigate the worst of Zoom Bombing. Here’s how it works:
Select your meeting options- you can permanently turn off the participant microphone and camera so that nobody can reenable it by clicking the checkboxes.
Paste your invitation link
Get a sharable cloaked URL that goes right to your meeting!
Continue orchestrating your meeting from the Zoom client like normal.
The technical details are as follows: BombSquad takes your URL, transforms it to force the user to use the Zoom web client, stores the original URL securely, and only redirects the browser to the real meeting URL if the user clicks through the sharable link you receive. The invitation link inside the window is disabled. Thus, all a user can see are BombSquad URLs! This is performed using a combination of AWS S3 and Lambda instances as shown above, making this a neat example of a serverless application– the first I am distributing publicly!
COVID-19 is taxing our internet infrastructure, and many stuck at home are struggling with tasks where it would be useful to share one’s screen with others, such as teaching from home, sharing content with someone without handing them your device and getting it contaminated, or monitoring what is happening on a home computer in real time.
FreeDisplay is a free open-source program written in Python that allows you to share your screen with anyone on your local network, such as your home Wi-Fi network. It creates a QR code other can scan for easy sharing and serves a simple webpage with a mirror of your screen so that any device with a web browser can easily view your screen! Use it for home teaching, sharing content without handing someone your device, presentations, monitoring activity on your home computer and more. Download for free here: https://kevinl95.github.io/freedisplay/
This is an exciting new project I’ve been working on to use off-the-shelf smart lightbulbs to make an inexpensive and automatic classroom management gadget. Using a bit of Node I was able to get the noise level of a classroom and translate it into a color for a connected smart lightbulb, from green to red as the classroom gets louder! Inspired by the ‘traffic light’ noise warning gadgets I see in classrooms, this one is fully automatic. There are no switches to throw- just set the maximum volume in the free software and the lightbulb will change color on its own!
It can be difficult or dangerous to connect internet of things (IoT) gadgets like sensors, smart light bulbs, switches, digital assistants, etc. to campus WiFi networks. Your information technology department may have instituted restrictions on connecting these devices to their network, a landing page may make connecting impossible, or no guest network may exist. Additionally, it is good practice to keep IoT gadgets on their own separate network for security. The FBI has made several recommendations including using a separate network for operating IoT gadgets safely.
Travel routers offer a convenient way to set up this separate network inexpensively and with portable equipment. Unlike your home router or the router in your workplace these routers are small and low power, and can even be run off a USB port on your computer! The range of these devices vary, but generally will cover a single room.
Introducing the GL.iNet GL-USB150 Microuter! This handy little USB microrouter creates a small, easy to set-up WiFi network around your computer. When connected to your laptop, it will appear as a second network connection, letting you access all of your IoT gadgets as well as your campus internet. There are many travel routers out there that may better suit your needs, but this one is small, inexpensive, and has worked for me in the past. It is easy to use and portable.
If your devices will need internet access, you can connect your router to the campus internet itself using the connect tool on the main page.
Your router is now broadcasting. Connect your IoT gadgets to the network using their respective apps. You should see a network that starts with the words “GL-USB150…”. Your devices should have no problem connecting to this new network instead of the campus network.
Connect your tablet or phone to your new network when you want to control the devices with their apps. Your computer will always be connected to this network as well as the campus network, requiring no reconnection. It will treat the new network as a second network connection.
The GL-USB150 router is a 2.4 GHz device. If you plan on connecting it to the campus WiFi because some of your devices require internet access (note that many devices like switches, light bulbs, etc. do not need internet access, they can be operated on a network without an internet connection) you should verify it is not a newer 5 GHz network. Note that some devices, like Amazon Echo devices, do need internet access so putting them onto a network like this without setting up an internet connection will not work.
Some IT policies forbid you from running your own networking equipment.
When volunteering in schools I have run into this problem before- a teacher wants to use a cool new gadget but it just won’t connect to the WiFi. This workaround as worked for me, and I hope it works for you!
This is a DIY Ghost Box like the Ovilus ghost hunting device. While I don’t believe in ghosts, I do think ghost hunting gear is fascinating. This box chooses words out of a 1000 word dictionary based on magnetic field and temperature changes. The code is available for free on GitHub: https://github.com/kevinl95/ghostbox
1x Adafruit Feather M4 Express (If substituting, make sure you either buy a board with a DAC for the speaker or build one)
1x Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board – LSM9DS0
1x Adafruit Illuminated Toggle Switch with Cover – Green
1x Adafruit Thin Plastic Speaker w/Wires – 8 ohm 0.25W
1x Adafruit Lithium Ion Battery – 3.7v 2000mAh
Long time no post! I am at PyColorado 2019 in Denver this weekend and wanted to share I’ll be posting my notes as I write them to GitHub throughout the weekend. Very excited to be supporting the local Python developer community.