August 7, 2014
August 4, 2014
Fresh off the red eye from Mountain View, I want to share my favorite entries with you from Y Combinator’s YC Hacks hackathon. The hacks were out of the world and you can find them all here.
I sat next to the EVOO team for most of the event and loved the product they came up with. EVOO is designed to help you quickly discover and plans meals for diverse dietary needs. Within the app meals are broken down into timed tasks to make all the steps simple to walk through.
Trader Bro’s uses Amazon product reviews to predict a company’s stock price movements. One of my favorite things about this project is that the team had to wait until around 4am Sunday morning to see if their “Impact Score” successfully tracked against a stock price - thankfully it does, as you can see on the submission.
No more broken branches! The next time you git rebase or reset instead of commit - run git-undo and roll-back those previously destructive actions. I’ll be using it a lot between midnight and 3am.
Athelas drives down the cost and wait time for many common medical diagnoses. Using a macro lens attached to a smartphone, an untrained user can scan blood samples for common diseases like Malaria.
As someone who spent ages rearranging furniture in his apartment, I wish Vrniture had been around a few months ago. The project allows you to stage furniture in a virtually modeled room. And, once everything looks good, purchase them IRL, right from the app!
All-New Software Search
Our new software search is way more powerful than your standard Ctrl-F or Google query. You can search for projects you’ve worked on with your friends, software that uses two specific APIs or tags, winners, and more. We’re really excited about this feature and fast tracked it from side hack to production.
More Hackathons on the Way
Are you as hackcited as we are right now? Well stay tuned! We’ve got many more great hackathons coming up. Sign up for hackathon alerts by joining our mailing list and telling us where you’re located.
August 1, 2014
Judging is one of the hardest things to get right at hackathons - especially at larger events with hundreds of projects.
However, it’s also one of the most fun and important parts, providing everyone an opportunity share their hacks and checkout the competition.
Organizers who use ChallengePost have a variety of tools and options at their disposal for judging hacks. In this post I’ll show you how to get the most of ChallengePost if, like the majority of large hackathons, you opt for expo or science fair judging.
It’s quite common for sponsors like Twilio or Dropbox to offer specific prizes for the best use of their APIs and SDKs. The key to keeping sponsors happy - in addition to using our Built With galleries - is to help them quickly identify which of the hacks use their service and where to find them. Here’s how ChallengePost can help you do that:
1. Let us know your sponsor prizes.
We’ll build you a custom filter for sponsor prizes on your submission form. When hackers submit their projects on ChallengePost, they’ll select the prizes they are applying for.
2. Assign teams table numbers.
You can add an additional field to your submission form to collect and display the team’s table number for expo style judging. This makes it easy for judges and participants to locate teams at large events.
3. Send sponsors to your submissions gallery
Once all the submissions are in, direct your sponsors to your ChallengePost submissions gallery. They’ll be able to filter through submissions and see all the projects - including table number - they need to judge.
What about the primary judging?
Our judging system has been designed to work seamlessly on mobile. To complete your main judging simply follow these steps:
1. Assign your judges in the Challenge’s Manage area.
2. Have the judges log in on their phone, tablet, laptop, or tricorder and go to the challenge gallery.
Every user facing page on ChallengePost is mobile optimized. This means judges will be able to browse the projects in the expo hall and enter their scores on the site.
3. Watch the Leaderboard to see which projects are on top.
Using ChallengePost you’ll spend less time running the judging process, more time checking out the hacks, and ensure that every project has been judged.
Is your use case different?
Give me a call (202-203-0025) so we can chat about your ideas. We have built a ton of functionality into ChallengePost so it can be used in a number of ways!
July 30, 2014
It’s nearly impossible to spend a day at ChallengePost without hearing about a new hack from our team or one of our awesome community members. While most of our team is located in New York City, we have a few folks working remotely and they’re just as involved in everyday CP activities as those in the office. Between attending meetings via Google Hangouts and participating in hilarious conversations on Slack, it’s easy to forget that they’re in different time zones.
One team member that is not working remotely, however, is our developer evangelist Neal Shyam. When he isn’t highlighting epic open source projects on his blog, he’s adding to his ever-growing collection of Chrome extensions and various hacks. When Serena, one of our amazing Project Managers, started working remotely from Boulder, Neal, in true hacker fashion, created a Chrome extension to quickly reach Serena. All you have to do is click the “Call Serena” extension from your browser and it automatically starts a Google Hangout — epic!
After a week or so of playing with the button, I got to thinking about how cool it would be to have a physical button to call Serena. I had been messing around with my new Arduino for the past few weeks and after chatting with the team, we decided this would make an awesome project. This leads us to version 2.0 of the Call Serena Button.
Here’s the source code so you can follow along.
Bridging the gap between hardware and web development is something I’ve become increasingly excited about. Working with web applications is fun and bringing them to the physical world is a whole different level of exciting. With an abundance of powerful micro controllers priced below $40 and more open source APIs than seconds in a day, there’s no excuse not to start experimenting with these technologies. Our project required three things:
- Arduino Uno
- Chrome Serial API
The Arduino is a micro controller board with 14 digital input/output pins, 6 analog inputs, USB connection, and power jack. In other words it’s a small computer capable of big things.
There are two main ways to build on top of Chrome Extensions and Packaged Apps. Extensions are “small programs that add new features to your browser and personalize your browsing experience.” There are tens of thousands of these available to download and the possibilities are endless. Extensions can range from beautiful productivity apps such as Momentum, to the ridiculous from yours truly.
The best way to fully understand how everything ties together is to walk through the code the same way it’s executed, starting from the Arduino in our NYC office and making our way to Serena in Boulder, CO.
At the top of the Arduino we have our USB port, which also serves as the power source while connected. On the left side of the board we have two wires. A red wire is connected to 5v (providing the power) and a black wire is connected to GND, which stands for ground.
On the breadboard pictured earlier, you’ll notice we have a large red button, which when pressed completes the circuit. Between our button and ground we have an orange wire, which is connected to digital input 7 on the Arduino. We will read from this pin to know when the circuit has been completed.
Every Arduino program needs a setup and a loop function. On line 1 and 2 we declare two variables. We give led a value of 7 and val a value of -1. In our setup function, on line 5, we open a serial port and set the data rate to 9600 bits/second. We then use an Arduino function pinMode to set pin 7 to INPUT, since we’re going to want to read its input. Once an Arduino sketch is uploaded to the board it runs a continuous loop. Every time the loop runs we read pin 7 to check to see if it has been set to 1 indicating HIGH. If this is true we know the circuit has been completed, indicating the button was pressed, and therefore write two bytes (“HI”) to our serial connection and delay 5000 milliseconds, which is a cheap way of debouncing.
That’s it for the Arduino and now we can turn our attention to the Packaged App - where most of the magic happens. The app consists of the following files:
Manifest.json - This file is required and contains important information about our app including the name, description, scripts to run, and any required permissions or Chrome APIs.
Window.html - This background HTML file provides the app’s user interface.
Background.js - This script runs in the background of our browser and is used to create the event page responsible for managing the app life cycle.
Script.js - This script contains most of the logic and instructions for our app.
When the app is launched, background.js is executed. This opens window.html and runs script.js while waiting for user input.
The Chrome serial API provides many useful methods that we can take advantage of to get our Arduino communicating with our Packaged App. Any method prefixed by chrome.serial is provided by the API. getDevices executes first and takes a callback parameter we’ve named ports since it is an array of all available ports. Next getPortPaths is called, passing in the ports array and setting the div with id ‘serial-port’ to the port path -dev/tty.usbmodemfa131.
Once getPortPaths is done executing, openPort is called. This function grabs the port path from the div and attaches it to a variable, connectedPort. We then connect to this port with connect, which takes two arguments,
- Path of the port you want to connect to
- Success callback: onOpen, taking a callback parameter of openData which renders the connection status on the window.html page.
Finally, we have the most important function: addListener. This sets an event listener, which is very similar to web development, only instead of listening for user executed events we are listening for any data sent through the connected port. Upon successfully receiving data, (someone hits the big red button), it executes a function with a callback parameter of info. Google Hangouts work with unique urls, similar to a phone number. In our case all we need to do is open a new window pointed at Serena’s hangout address. Our application completes its job when Serena receives an incoming Hangout request.
One of the biggest takeaways from this project is that just by including a simple switch developers can easily bridge the gap between the physical and digital worlds. You don’t need to limit yourself to just opening a new window upon receiving data.
You could just as easily call upon one of the seemingly infinite number of APIs available today. The switch just kicks off your application. Once back on the Internet, where us web developers are truly comfortable, the possibilities are truly limitless.
Source Code: https://github.com/AlexWheeler/Serena-Button
July 23, 2014
This past February, delivery.com asked developers to rethink online ordering and explore its new API. The first of its kind, delivery.com’s API connects users to thousands of local restaurants, grocers, liquor stores, laundries, and dry cleaners.
Here’s what the winning hacks delivered, pun fully intended:
Bar Cart First Prize - Liquor Stores ($15,000)
Use your phone to find a new cocktail recipe and order all the ingredients. Shake the app, and see what the bartender serves up.
Liquory Second Prize - Liquor Stores ($5,000)
Hacked in just 10 days, Liquory integrates with Yelp, Yummly, and beer social network Untappd to make beer & wine delivery quick and easy.
Basket First Prize - Laundries & Dry Cleaners ($15,000)
Schedule laundry pickups and deliveries from the closest dry cleaner in just a few taps.
FitMunch First Prize - Restaurants ($15,000)
Bye bye french fries, hello salads. This mobile hack recommends and delivers healthy meals from local restaurants.
Gastronomie Second Prize - Restaurants ($5,000)
Hungry, but not sure what you want? Gastronomie recommends the perfect food based on your location, time of day, and how you’re feeling.
Transit Takeout Popular Choice Prize ($5,000)
A brilliant hack for New Yorkers who don’t live within the delivery zone of their favorite restaurants.
Other submissions included apps for loyalty rewards, wine recommendation, party planning, and more. Go to the challenge gallery to see all 15 projects and like/comment on your favorites.