Global Hotkey Recognition in WinForms

So as part of my Google Play Music Desktop Player project I needed to listen for certain keypresses even when the application wasn't in focus. In practice I assumed this would be straight forward but I ended up scratching my head in puzzlement for hours before stumbling accross a semi-working solution and then making it work effectively. Making it easy for you There is a handy class which I found on a Gist and modified to work effectively using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Windows.Forms; using System.ComponentModel; namespace Utilities »

Google Play Music Desktop Player

So I am an avid user of Google Play Music and have a subscription to their All Access service which is absolutely great. Whatever song I want, whenever I want to listen to it, but over time I was having one major problem. I was getting fed up with searching for that one chrome tab with Google Music open or having to have the browser open just to play music. Chrome is not exactly resource efficient and having a tab consuming sometimes an entire gigabyte of RAM just to listen to my songs was unnacptable to me. Some people had »

Basic Bitmap Caching in Android

A major problem I faced when messing around with android development was fetching images from a remote server and displaying them in an ImageView. There is a neat bit of code that does this for you but it had one major floor. Caching was non-existent, every time you requested the image it fetched it again from the server, this meant in my use case between 20 and 30 profile pictures had to be freshly downloaded each time. This made the UI slow to load and created a far from ideal user experience. Below are the steps I took to make »

Using nginx as a proxy for WebSocket connections

Some people just want their entire world to run through nginx :) Well this is how you can get your WebSockets flowing through ports 80 and 443 with nginx. Setting up the Server Configuration By default your nginx configuration should be locations at /etc/nginx/sites-enabled/default and should already container a bit of config that looks kind of like this server { listen 80 default_server; server_name; ... location / { ... } } We are going to be adding another server configuration beneath this one that looks like this server { listen 80; #Only use this line if you want to enable wss: »

The tutorial for PHP WebSockets that I wish had existed...

About a year ago now I decided I wanted to move away from AJAX serving updates to dynamic content and into the future that is WebSockets. If you don't know what WebSockets are you should probably stop reading this and go find out all about them. So here I am thinking "Yes, let's go use websockets" and then hitting a brick wall. All the nice solutions it seemed were written for node (WebSockets were designed for JS after all). After a bit of Googling I found what appeared to be the solution for me. Enter Ratchet Here is where the »