Showing posts with label Web Application. Show all posts
Showing posts with label Web Application. Show all posts

Wednesday, 11 November 2015

Midterm Updates: BlackBerry Priv + YHack 2015!

Hello, blog. I feel like each time I come back, I'm stunned at how much time has passed by. It's been a busy two months since beginning co-op, but I've been having a blast and taking everything in stride.

BlackBerry Priv

BlackBerry recently released the product that I've been working on over the last few months: the Priv, a brand new Android phone! I've actually been doing development on two of the apps for the phone, Tasks and Notes. Since I am an avid user of similar apps in my own day-to-day life (yes you, Google Keep!), I've enjoyed the experience of contributing to user experience as well as learning a lot in the process. In fact, this term has only further reinforced the notion that what we learn in school is far from actual development projects; although we did some Android development last term, it was so basic that I practically felt like I didn't know anything about Android while at work. Overall, this term has definitely been a steeper learning curve than the last, but my team has been ever so helpful and every day is a whole new learning opportunity. And of course, I can't lie, it's cool to know that features I worked on have now been shipped to customers worldwide!

I might be a bit biased, but after having used the phone for a few weeks, I must say that it's a very decent phone. I especially like the customizations that BlackBerry made to the Android launcher, which allows you to launch three different apps instead of just Google Now, as well as the addition of really handy widgets and shortcuts. Furthermore, in addition to the physical keyboard, even the virtual keyboard is a step up from the stock Android one; it offers really smart word suggestions on the letters themselves, which you can swipe up to select while you're typing. And last but not least, the Tasks and Notes apps of course! It's been really nice to see all the positive reviews of the phone so far; although it hasn't been out for too long, I think there's potential that only time will fully divulge. 

YHack 2015: I Know That Feel
This past weekend, I had the opportunity to go back to Yale University for another year, for YHack 2015! Since it wasn't my first hackathon, I more or less knew what to expect, but the set-up this year was a bit different; instead of having individual rooms to ourselves, everyone was spread out around tables in a massive sports complex. It got a bit distracting at times, but it also meant getting to talk with the people around us.


I've always wanted to work on a social impact hack, so it was really nice to make a plausible idea come together at YHack. Our project aims to be an educational tool to benefit children with autism spectrum disorders. This actually tied in with my (as well as one of my teammate's similar) experience working with young children with autism to teach them social interactions. One of the difficulties that these children face is recognizing and differentiating between different emotions. And so, we created an application made up of two interactive games.


The first one is more simple of the two, and it involves the child matching images to different emotions.


The second game prompts them to take pictures using a webcam, in order to mimic different emotions. Together, the two games teach children to be able to both recognize and demonstrate emotions.

The web application was created using the Flask framework for Python to handle the backend work. Flask was interesting to work with as none of us had any experience with it - although, Flask is based on the jinja2 template, which I'd worked with previously during Google CSSI, so a lot of the code looked very similar and it was fairly easy to pick up.


We also tied in a SQLite database that we used to store account info as well as player results; this allowed us to create a stats page for each user, so that parents or educators could track the children's progress over time.

For the front end, we leveraged Bootstrap to scale our site, as well as jQuery to make and handle POST requests during the game so that we could display feedback and results without having to refresh the page. For the first game, we utilized the Flickr API to search for and display random images of people displaying different emotions. As for the other, we used a machine learning API from Indico that does facial emotion recognition to determine what emotions the pictures we took were displaying. Unfortunately, one of the caveats of relying on the Indico API was the for certain emotions, it wasn't as accurate as we'd hoped. We ended up trying to process the results we received back from it, but overall the accuracy still wasn't ideal. Still, we worked with the limited time and resources that we had in order to complete the project.

Feel free to check out our app on GitHub or DevPost! We were originally planning on deploying the site through the Microsoft Azure platform, but we ran into some issues with GitHub and Azure integration (later confirmed to be a known issue by people that we spoke to from Microsoft). Regardless, I am really happy that we were able to take an idea with the potential to make a difference in the lives of children, and turn it into reality. Part of the beauty of hackathons is being able to try something new and pour your efforts into making something interesting, and I am grateful that we came up with a unique idea that, if we have the opportunity to polish and improve accuracy on, could be an accessible and useful tool to support children and allow them to develop these necessary skills from an early age.

Sunday, 4 January 2015

AirDroid: Your Android Phone On Your Computer


I discovered AirDroid while searching for a way to relocate photos from my phone to my laptop, in order to free up some memory. I was having trouble with my laptop not recognizing my phone via USB, and Bluetooth wasn’t a viable option as only one photo can be transferred at a time. Browsing the web for alternatives, I came upon AirDroid, a pretty useful service that syncs your phone to your computer via the internet.

AirDroid offers to Android users the convenience of being able to control certain key features of your phone from your computer straight from the web. After downloading the app and signing up for an account, just log in online and the service will connect to your phone. Initially, I was only going to use AirDroid to back up my photos so I could delete them from my phone. The one downside to this feature is that it can take a while to download large files or many at once, especially if your internet connection isn't great. However, it still proved to be a good backup plan.

After finishing up, and subsequently solving my USB connection problem a few weeks later, I didn't think I'd need to use AirDroid again. But after revisiting AirDroid today out of the blue, I soon found that there are a few other useful features to take advantage of. 

Convenience
This can definitely be considered a first-world problem, but if you're busy at work on your computer and want to quickly check your phone for any calls or texts, yet your phone isn't beside you, just log on to AirDroid. You'll receive live notifications when you receive calls/messages, and you can even call/text straight from your computer. It can come in handy when you just want a quick glance at important phone notifications (or, let's be honest, you're a bit lazy).

Ringtones/Alarms  
This feature allows you to access the ringtones and alarms folder on your phone easily, to add or delete new sounds. For me, this comes in handy because the alarms on my Nexus 4 are the most non-intrusive, serene sounds that I've ever heard. Since I started using my phone as an alarm clock, I prefer to customize my morning alarm so that I can actually hear it blare in the morning.

Find Phone
Mac + iPhone users know that Find Your iPhone is a useful feature that comes from being able to sync up Apple products. Android users don't have a native phone-finding service, so this would be very helpful for those of us who misplace things easily. I haven't actually tried the feature yet (which is good news!), but from what I've read it allows you to locate your device on a map, call it, erase personal data, and also lock your phone. Now I'm sure that there are many similar services out there, but AirDroid conveniently bundles this together with other nice features.


AirDroid is an unexpectedly useful service that I'll definitely be reaching for from time to time and further exploring what it has to offer. I'm not sure if there are other similar services out there but I found it interesting so I thought I'd share my initial thoughts on it. If you're interested, be sure to check it out and let me know what you think!