Deploy Free-tier Tor bridges on AWS

What if you could help journalists and activists in places like Iran and Russia with a few clicks? Tor is an anonymity network run by volunteers that protects the location and identity of users while they use the internet for research, messaging, and organizing. Unfortunately oppressive regimes block the access points to Tor. My project, Bridge Buttons, lets you deploy a Tor bridge for free to Amazon’s cloud. A bridge helps users connect to Tor by first connecting to an innocuous looking server, making it hard to block! I’ve preconfigured these bridges so that it can run for free for up to a year, making this the cheapest and easiest way to get started.

Direct link to Bridge Buttons where you can get started with just a few clicks!

Code and template on GitHub

Happy Halloween – Multiplayer Death Race (1976) Remake

This Halloween I have a new treat for everyone- a multiplayer remake of Death Race, an infamous arcade game from 1976. Video game developer Exidy built the game as a modification of their popular Destruction Derby game in which drivers hit cars to win points. In Death Race they instead were challenged to run over monsters called “gremlins”, which in the primitive graphics of the time looked like stick figures that resemble people. To add to the confusion the “gremlins” give out a high pitched scream when hit. This game marks the earliest controversy regarding video game violence and as such has a special place in video game and computer software history, as never before had a program been as attacked in the media as Death Race. Now you and your friends can play against each other in a web-optimized multiplayer remake!

Click here to play now!

The game is also fully open source and was developed using Phaser and Socket.IO!

Introducing FreeTranslate- deploy a personal webpage for neural machine translation with a click!

THE PROBLEM

The language barrier is a major problem during the COVID-19 pandemic when trying to convey critical safety and medical information and to get information to parents and students as we head back to school. Translation services are expensive and there are many communities that need services.

THE SOLUTION

Amazon Web Services has a product called Amazon Translate which is a neural machine translation service, meaning it translates text using machine learning. It is very powerful, and while it cannot replace a human translator, can help people like teachers convey meaning to the communities they work with reliably. Unfortunately this tool is intended for developers, whereas it can be of great value to people who are not programmers who could leverage its generous free usage tier, letting you translate 2 million characters per month for 12 months at no cost.

That’s where FreeTranslate comes in. FreeTranslate is a software project I have worked on that allows people to deploy a personal translation page to use these free credits by simply clicking a button. It will deploy FreeTranslate to your Amazon account and generate a personal URL just for you!

The technical details are that I have built a CloudFormation template that deploys when you click a URL on my projects page. This template deploys an API Gateway (for the webpage and sending translation requests) and a Lambda function (which does the actual translation bit). You can see a diagram from the CloudFormation designer tool here:

Diagram of FreeTranslate and what CloudFormation deploys when you click my Launch Stack button.

SHARING THE SOLUTION

You can deploy it for yourself, view instructions, and see additional pictures here!

As always, the code is open source! You can view it here.

Make Children’s Artwork look like Eric Carle Illustrations

v_hungry_caterpillar
The Very Hungry Caterpillar, by Eric Carle

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.

THE PROBLEM

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?

THE SOLUTION

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.

I found this excellent Google Colab notebook which taught me all about how to do this with tf.Keras!

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.

SHARING THE SOLUTION

The URL again is http://ericcarlearttransfer.ml/

As always, the entire project is opens source and can be found here on GitHub!

Text to Word Search!

Try it out for free here!

wordsearchgif

THE PROBLEM

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.

THE SOLUTION

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!

SHARING THE SOLUTION

Try it for free here!

As always, the code is available to browse and deploy yourselves!

A novel method for preventing “Zoom Bombing”

THE PROBLEM

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?

THE SOLUTION

BombSquad(4)

BombSquad is a solution I built on Amazon Web Services to help mitigate the worst of Zoom Bombing. Here’s how it works:

  1. Get a Zoom meeting invitation link like normal (and make sure the password feature is turned on!)
  2. Go to www.BombSquad.us
  3. Select your meeting options- you can permanently turn off the participant microphone and camera so that nobody can reenable it by clicking the checkboxes.
  4. Paste your invitation link
  5. Get a sharable cloaked URL that goes right to your meeting!
  6. 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!

SHARING THE SOLUTION

Head on over to www.bombsquad.us and give it a try!

interface
BombSquad interface

DIY COVID-19 Facemask using a plastic report cover!

mask1

THE PROBLEM

Personal protective equipment (PPE) is in short supply due to the COVID-19 pandemic.

THE SOLUTION

There are tons and tons of awesome PPE designs on Thingiverse, YouMagine, Instructables, and other popular hangouts for makers. One that I really like is this facemask that uses a plastic report cover or overhead transparency made by Erik Cederberg / 3DVerkstan from Faceshield.nu. Unfortunately, it was physically too large to print using my 3D printer, so I made a version of his design that can be cut using home CNC mills, like my Carvey. It can be cut in just 11 minutes! I used a 1/4″ thick MDF sheet, but any flexible but strong material should do the job.

ezgif.com-video-to-gif

SHARING THE SOLUTION

Head on over to Inventables right now to grab the Easel project/G-code! My employer is also printing these same masks in our company hackerspace, so I intend to bring them in as part of their drive to produce PPE and donate them to those who need them.

FreeDisplay – Share your screen with everyone on your local network for free!

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/

As always, the code is open-source and can be viewed here: https://github.com/kevinl95/freedisplay

DIY WiFi Smartbulb Classroom Sound Meter

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!

screenshot-2
Screenshot of the GUI. The program is an Electron application, and I have applied a material design stylesheet.

The software can be downloaded for free for Windows PCs here!

Works with MagicHome brand smart lightbulbs, such as these which are known to work:

MagicLight WiFi Smart Light Bulb, 2nd Generation Dimmable Multicolor A19 E26 Household LED Bulb

MagicLight Smart WiFi Alexa Light Bulb, A19 7w (60w Equivalent)

As always, this program is open source! Click here to view the code on GitHub!