show and tell for hackers in DC.

Round 50: Pre-season Undertones

16 Nov 2017

Eric - LED Metro Map @EricHaengel

Eric is an electrical engineer by trade and hobby and he built a realtime map of the WMATA Metro system in a laser-cut LED panel! Uses the free WMATA API

Shows the live train positions on the Map. Written in Python, uses a Raspberry Pi (which has a Wifi module), a custom circuitboard with a mess of soldered LEDs. Gets data from the WMATA API, connects it to the LED Controller PCB. Laser cut at the TechShop in Crystal City. Used Eagle to make the PCBs. Each train line color for LEDs.

Jay Kay - Pandemic emulator

Wrote an emulator for the board game Pandemic, a cooperative board game where you work together to wipe out all the diseases and save the world. Every time he emulated pandemic, it always lost. Maybe we need a simpler goal (win condition) than “cure all four diseases” to start out. The reinforcement learning then became: try to cure a disease cube.

Game initializes with a set of disease cubes on different cities. Each player gets a hand full of cards that allow them to take special actions.

Using reinforcement learning, try to get better at treating diseases (and surviving longer!)

Started out:

Haven’t yet saved the world, but we’re surviving for much longer!

A3C Asyncronous Critic Model

Reduce the actor search space to something that would be descriptive enough to allow the agent to learn, but not so large that it would slow learning.

Treatment reward: 1 point per disease cube treated

What is the reward for any given action? In Pandemic, you have a limited set of actions available – much less than the total options that would be possible.

Kajari Ghosh @ghoshkaj

Created an open-source Routing Machine – figures out the best route from point A to point B. Ways and Nodes data comes from Open Street Maps (an open-source data store of street and place data). Boost library does the co-routing Libosmium processes the ways and nodes. Going from source data to useable graph data is really difficult.

Aaron Schumacher @planarrowspace

Created an App called “Ohana is family”. Your credit card should be secure by default and you need a second factor (the app!) to use it. Then weird transactions started showing up on his credit card and he wished that it was available! It was for a hackathon, so everything was faked – all of the functionality was exactly tuned for the lightning fast demo and nothing else! Create a single page that behaves like it’s multiple pages, and the hashtag-targets are the other pages. The divs have different data-roles, and JQuery mobile can turn it into something that looks like a mobile app. But for a super quick demo, this was perfect.

Grant Harper @grant_emersn

Severless Alexa Skill with SSML Experimentation

Things you can do with Alexa:

Right now this is only available to Grant but he could publish this skill.

Travis Hoppe - Landmark @metasemantic

The first message board on the Etherium blockchain. Permanent. Uncensorable. Decentralized. If you can store code, you can store data. Github pages is the front-end; Ethereum is the backend. Works on your phone. Uses a Robohash to turn your personal hash into a colorful robot. If you were to deploy other smart contracts, they would live here.

Solidity is the programming language that lets you program in Landmark / Ethereum. Once you push code to Ethereum, it’s there forever – so if you make a bug, people can exploit it!

See it live.

Jesse Gerard - Password generator @jessehg

A Student at the GW Coding Bootcamp, been learning Javascript for 1 week. Created a password generator, used sliders to choose the password length, then the program generates a list of chunked words within the length requirements you sent.

Doesn’t use the top 10,000 most common words; doesn’t use offensive words Figures out how many lists (between 2-4) words it can give you and how many words you can get. The idea is that if you’re choosing from a large enough list of words (~800,000 words, all stored locally). Also uses a random symbol and a capital letter somewhere in the middle.

Example: lulus doted lucre strewn

Similar to the Diceware method of generating passwords. If you have some choice in choosing the words, you’re more likely to remember it. Used JQuery UI for the front-end. Used EC6 modules so it only works with Chrome and Safari for right now. Found a list of words on Github, put it into a Javascript array, sectioned it out by length. Haven’t calculated how many bits of entropy.

Shannon Turner - 140 characters @svthmc

Who here is on twitter? If you’re not on team 140, you’re a monster. 140 helps us be concise and makes everything better. 280 might work if they changed something about product, but they are committed to being the worst.

Chrome extension that enforces the 140 character rule! Bring down the long text to a manageable length. Have uncluttered timelines.

Gets all the tweets on the page. If the inner text is over 140 chars, it cuts it off, links and all.

140 characters only, on the chrome web store.

Questions: How to start with chrome extensions? A chrome extension just runs javascript on the page. Chrome webstore uses semantic versioning that you must increment. Chose the name because it didn’t include the word “Twitter,” so it was not filtered out by Chrome.

Load an unpacked extension to test an extension without publishing. Having done this, does this make you a little unsure about downloading chrome extensions? Yes! You have access to the entire DOM.