Showing posts with label Computers. Show all posts
Showing posts with label Computers. Show all posts

Sentiment Sweep

Recently I developed and published an opensource web app that uses data from Twitter combined with sentiment analysis and emotion detection to create a series of data visualisations to illustrate the happy and less happy locations, topics and times....

The Final Product

Live application: http://sentiment-sweep.com/


The Aim

1. To make the uncomprehendable mass of Twitter data that available for many topic, accessible, clear and understandable for users.
2. To develop a new, faster more efficient method of calculating sentiment on the fly.
3. To use only opensource resources (and many of them!), and to then document and publish all code and findings from results back to the opensource comunity via GitHub.
4. To allow businesses and individuals to analyse the good/ bad points about what people are saying about their product or brand.

This primarily involved the research and development of a sentiment analysis module, and the implementation of it on real-time social media data, to generate a series of live visual representations of sentiment towards a specific topic or by location in order to find trends.


Screenshots

There are some screenshots of the various data visualisations here: 
https://github.com/Lissy93/twitter-sentiment-visualisation/tree/dev/docs/screenshots



Tech Stack

There is so much really cool new technologies (languages, libraries, API's, dev tools, platforms....) published opensource all the time! And I wanted this project to utilize and build upon many of these awesome projects! Below is a summary of the main tech stack:



Published Node Modules

Several open sauce node modules have been developed and published on npm as part of this project
  • sentiment-analysis - useses the AFINN-111 word list to calculate overall sentiment of a sentence
  • fetch-tweets - fetches tweets from Twitter based on topic, location, timeframe or combination
  • stream-tweets - streams live Tweets in real-time
  • remove-words - removes all non-key words from a string sentence
  • place-lookup - finds the latitude and longitude for any fuzzy place name using the Google Places API
  • hp-haven-sentiment-analysis - A Node.js client library for HP Haven OnDemand Sentiment Analysis module
  • haven-entity-extraction - Node.js client for HP Haven OnDemand Entity Extraction
  • tweet-location - calculates the location from geo-tagged Tweets using the Twitter Geo API
  • find-region-from-location - given a latitude and longitude calculates which region that point belongs in

Documentation

Thorough documentation of opensource projects is very important to ensure future maintainability, and to allow other developers to use the code in their projects, or to contribute.

The documentation can be viewed at: https://github.com/Lissy93/twitter-sentiment-visualisation/tree/dev/docs

Below are links to each of the key documentation articles written as part of the project 


Project Information

Project Planning

Development Documentation

Research




Hack Zurich 2016

Europes biggest 40 hour non-stop hacking marathon, HackZurich 2016 had  800+ Attendees from around the globe, 500+ hackers, hundreds of submissions, and 3.6 tons of food. Big name sponsors (including Google, Kyak, Adobe, Samsung, Bosch, Microsoft and loads way more) ensured that event was an awesome one. Plenty of funding for a great venue, tons (literally) of food, a swimming pool worth of RedBull and proper coffee, not to mention enough swag to not need to go shopping for the next year!









StartHack Switzerland 2016

On the 11th - 13th of March 2016, 200 hackers from around the world descended on St Gallen, Switzerland, for the second addition of StartHack. Sponsored by SwissCom and run as part of the START summit 2016, this 36 hour coding competition had plenty to offer.

There were many awesome projects that came out of StartHack, some of the winning submissions can be viewed here: https://starthack.devpost.com/submissions









Links
http://www.startglobal.org/
https://startsummit.ch/
https://www.facebook.com/STARTHackathon/






Smart Depart App - AngelHack 2015 - HP Prize Winner

Smart Depart is an app which monitors your predefined route into work, and will wake you up earlier if there are delays, ensuring your never late for meetings.


Currently it is integrated with TFL, but we plan to start integrating it with National Rail, traffic and weather data too.

The client is an iOS app written by Ollie, and links in with the backend which is written in Node.js
Smart Depart is also integrated with HP OnDemand IDOL, where we used Sentimant analysis API.
We used this tool to analyes multiple body's of Tweets, fetched from witin a given time frame and Tweeting about a particualr London Undergraound line. This enables us to determine whather the general attitude towards each undergraoud line is positive or negative and apply an extra layer of contextutal information to our application.

Smart Depart won 2nd overall at AngelHack and won the HP sponsor prize.



Ollie and I a few hours in













@suggest_movies Friction free social movie recommendations

Send a tweet to @suggest_movies and receive a personalized movie recommendation back.

@suggest_movies will analyse your public tweets from your Twitter profile and use personality insights powered by IBM Watson to create a profile of your character and determine what movie genre's you'd be interested in. It will then select a movie that it thinks you'd like and tweet it back to you along with a link of where you can watch it.

There is also a cinema mode, so if you use the word showing, cinema, nearby.... it will use it's recommendations engine to choose you a film that is showing in a cinema near you, and also give you details and a link to book your ticket.





How it works

All the code is open source and available on GitHub here
Source code is on GitHub
Source available on GitHub












Oh yeah and we came second, winning way too many movies and a bit of money which was nice :)

Presenting @Suggest_Movies

The live demo






Google IO - What's new in Android

At Google IO 2015 some exciting new announcements were made about new features in the Android operating system for developers.

Developers can now build apps for Android M by downloading the developer preview (API 22) and latest SDK. There will be a couple of versions of previews which will be improved before the final version is released.

Permissions

In Android M run-time permissions have been introduced. What this means is that the user won't have to accept a wall of permissions when they first install and application, instead they'll be asked to grant permission to that app to access a specific feature only when it's needed, and of course it'll remember the users  choice so they'll only have to do it once for each permission for each app.
The user can also go into settings and view and adjust app permissions for all installed applications sorted both by app and also by a particular permission too which is handy. Basically everything users have ever wanted with permissions delivered. This will only be available for apps developed for Android M though. Legacy apps will remain the same, by asking all permissions up front on install, but they can still be adjusted from the phone settings. This means that your app must be tested in M to check all permissions work.

Voice Interaction

VoiceInteractor allows you to interact with the voice input system - there was already the capability for the user to launch an intent and use voice, but now with the voice category intent filter, so creating voice interaction request is really easy

Finger Printing

There is a new finger print manager in the API which allows for really easy integration of finger print authentication. Your app will still contain all the UI, and the API does all the work on the backend alternativley you can use the existing keyguard manager to show the lock screen to authenticate the user with their pin, code or whatever they set up.

Backup

In Android M by default all app data will be backed up to the users Google account. The user can opt out of this, as can the developer don't use the <full-backup> tags. Everything else related to user data was already backed up in previous versions of Android and will continue to be.

Google Play Services

Version 7,5 is out, one of the most exciting features of this is GCM network manager - this is every cool way of making sure that your network requests are going to be much more optimal for the device, even for older versions (unlike in L where the app had to have this explicitly written in). There's also a few more new features, like maps available for Android wear devices.

Power

Another focus on M is to improve battery life. A new feature called Doze has been implemented which uses the devices accelarometer to detect if the device has not been moved for a long period of time (like hours to days) and exponentially decreases the number of network requests and scheduled app processes until the device is moved. If there are real-time alarms or high priority tasks the device will be woken and they will have priority. As soon as the device is plugged in or moved Doze will turn off. Same will happen with apps you don't use (for a few days or weeks), less resources will be allocated to their background processes.


Data Binding

This idea obviously has been around on other platforms for a while but it's now being integrated with Android. Data binding is the ability to connect the data model to some of the UI elements in the application. Data binding is cool.

UI Features

The Android design support library has been updated with the new material design, with emmbed better practices. And a f-a-b button so developers don't have to create their own circles with a shadow anymore. Updates to recycler view and web view.

Notications

Now notifications can contain a resource id for their icon, this is cool because for the first time you can use a bitmap, you no longer need a million  assets for each possible condition, they can now be generated on the go, like downloading an asset from your web back-end.

Text

Better text selection, (use ActionMode.TYPE_FLOATING in your code) for a floating pallet of icons, that'll be easier for users.  The improved ability to process text. Also better formatted text, finally.

App Links

In Android M will now be able to distinguish between app and web links made by the same developer securely. Very simple to set up in manifest and on server with auto verify certificates and app links, so links to those urls will open in your app. As with everything else in M the user can take controll and modify this in settings. 

Direct Share

Allowing the user to share more easily. Provide information with intent filter, with a certain intent return list of possible targets

Better Stylus Support

Stylus support has been around for a while, but it has been greatly improved in M. You can create a datastream to receive preasure and button data over BLE protocol Android can fuse this with touch data on the glass, what this means is you can build a bluetooth stylus that then records as a stylus on any app on M that supports stylus - no special hardware, no app modifications, no nothing complicated, so interrogating stylus data = very easy.
There will also be some motion events added in M to help deal with stylus'es like ACTION_BUTTON_RELEASE , BUTTON_STYLUS_SECONDRY.

Graphics and Media

RenderScript Compute: 
BLAS intrinsics (... really big matrix'es) 
Allocationless launches (size of kernal seperate from data)
ScriptGroup (more dependancy types, better compiler optimisations)

Also imporovements to camera API, even better flash light no longer linked to camera

Alpha Optimisation



MIDI

android.media.midi package has been introduced. You could already do MIDI, if you did it manualy. Now this new package will give the developer the bytestring that will be able to send and receive the not information.

Higher Res Audio

Now single precision float (rather the 16-bit sample of before) Multil chanel UB digital audio

Android Studio 1.3

Integrated testing support, tooling, new language support, more support for vector drawables, Android ndk development. Also Systray has been cleaned up.



Digital Bucket - Charity Donation Collection App

During the weekend of BattleHack I worked in a team developing a Digital Bucket Solution, a simple application that allows people to donate to charity bucket collectors even when they don't have any loose change, using their smart phone.

The backend was written in Node js and has an iOS client. It supports Apple Pay and all of BrainTree's services, it also uses iBeacons for detecting when you;v approached a charity collector.

Source Code for back-end

Web portal demo



Built my first PC!


I have finished building my computer!!!!
Christopher's got the AMD FX-8350 8 core 4 GHz processor, 16 GB of DDR3 1866MHz RAM, 2TB HDD and 240GB SSD, 2GB graphics card ( the Asus AMD Radeon R7 250X) and the Asus M5A97 EVO R2.0 MB 
and LED lights because LED lights are COOL!!!














Learn HTML5 in 40 minutes tutorial

Since EVERYTHING front-end related on the web is coded in HTML and HTML5 has a bunch of new features to make your web content more interactive and semantic, it is the language you need to know before you can do anything else web-related.

These videos should give you an overview of what HTML5 is and how you can use it to create web pages.

There are 6 videos in the series....




More resources relating to the videos above can be found at this URL:
http://web-dev.as93.net/html5-introduction

Enjoy :)

BattleHack London 2015 @ Tobacco Docks

My team 
BattleHack 2015 was the biggest London BattleHack so far, held at the Tobacco Docks.

Was a great weekend, my only disappointment was that I did not win an axe :(
Swag


Stickers
Caffiine
The winners

Apps World 2014

Apps World 2014 in London was great this year, with over 1,600 attendees it was held at the ExCel, and had loads of good speakers and sponsors.

My favourite talks from day 2 were: first a talk titled responsive website or native app which was given by Geoff Parkhurst who's the CTO of Lovehoney, he weighed up the advantages and disadvantages of each side very nicely. This I found particularly interesting since it's relevant to work at the moment.

Another great talk was given by Grant Allen from Google, on extreme wearables. This image (sorry for the bad quality photo) actually shows something really cool. the axis on the left is the % of people who are awake, the axis on the bottom is the time of night. As you can see, between 10pm and 1am, the % of people awake falls, since they've gone to bed, however at 3:30 AM, it suddenly rises, this was due to a huge earth quake that night. Each different coloured line is a different city, and this data could potentially be used to give a short warning to an earth quake to people in further away cities. This particular data came from JawBone, but any basic activity tracker would have recorded similar results, and would have the scope to implement this.

I also attended several other very interesting talks seen  here











Study Time - Developed app to reduce distractions while studying

Introduction

Study Time is an open source Android application to reduce distractions while studying.
Any student will know that mobile phones are a massive distraction to studying, but also have some utilities that help you get your work done, such as calculator or Wikipedia. This weekend I developed an application that aims to reduce the distractions cause by your Android device.

The interface is simple, you enter the amount of time you need to stay focused for, and press start. Study mode will mute all notifications and disable home and back buttons. It's not immediately easy to get out of the app once your in study mode, though you do still have access to core features such as emergency dialer, time...  Once the timer reaches zero you once again have full access to your phone.

Technical Details

The app is built as a launcher that temporarily overrides the users default launcher. This will ensure that if they press the home button they can not close the app easily. There is also a timer that will run once study mode is enabled.

Links

Google Play - the app is available to download for free from the Play store
GitHub - all code is open source and available on GitHub along with graphics
Amazon App Store - [coming soon to Amazon]
YouTube - promo video

Screen Shots

Start Screen
Timer Screen

Additional Views
 

Tablet



Design

The icons, video and site were done by Joe Sykes. 




Droidcon Conference London 2014

Droidcon London is a 2-day Android conference organised by Skills Matter. 

The first day was a community-led barcamp and democamp with talks and discussions given by opensource Android developers. The second day was packed full of presentations given by the worlds leading Android experts, on a range of Android topics. There were 1,200 attendees and loads of great sponsors, as well as an open bar party in the evening and a hackathon the following weekend.

I was a volunteer, so helped set up prior to the event, and in return was given a free ticket to attend both days :)


Sponsors

There was also a wide range of sponsors including Microsoft Azure, Sony, PayPal/ Braintree, Intel, Epson, AppConverter, Amazon App Store, Facebook, Badoo, ooVoo and Google Developers. As well as many other Bronze sponsors. Attendees were free to talk to the sponsors about their software, products and services and ask questions (and get a ton of free t-shirts and stash!).


The Presentations

Day 2 saw was filled with talks and presentations given by the worlds leading Android experts. It kicked of at 9 AM with Chet Haase from Google discussing what's new in Android Lollipop. From 10 AM - 17:30 there 7 talks going on simultaneously throughout the day (35 in total). Meaning it was impossible to attend them all, however they were all filmed and made available on the internet later on. 

The Party

On Thuresday night, there was a networking session and party at a pup a few minutes down the road at the Wenlock & Essex. There was a free bar paid for by ooVoo, and plenty of food and more stash. The music was picked by the attendees and was GREAT! 

Setting Up

I volunteered to help set up the event the day before, and early the morning of the first day (it was the only way I could get a ticket, given the crazy high prices!). We arrived on Wednesday and Thursday at 06:30 AM and our time was put to good use packing 1200 goody bags, preparing flyers, folding thirsts and other general setting up jobs. 

A few photos

Chet Haase - Practicing Practical Best Practices for Software Development Practitioners

Cyril Mottier - Android Wear