Author Archives: mcwoods

About mcwoods

By day I'm a Researcher & Future Internet creator. By night I'm a Mobile, Web and Cloud Developer & owner of http://www.voczie.com. My views are my own, and not that of my employer.

Waggle My Mouse Icon

The Second Waggle is Out !

It Snuck Out

They say software doesn’t get released, it sneaks out.

I am pleased to say that Waggle My Mouse version 2 is now available on Gum Road ! This new release features a whole bunch of new features and re-written old ones.

You can find the new version on Waggle My Mouse available for purchase on Gum Road

As I previously mentioned I’ve provided a copy of the new version of Waggle to everyone who purchased a copy of the original version. Overall the feedback has been really positive. I’d had some good suggestions for improvement too, and I do plan to work on this for a future update. In the mean time Waggle is now available for every to check out and download.

New Features

The new version of Waggle now has:

  • A new icon; I got rid of my mouse cartoon guy. I liked him, but thought the new version could do with a new icon!
  • A new algorithm for detecting Waggle’s.
  • A new animation; when a Waggle is detected the circles will grow and animate, then shrink and eventually vanish when you slow the waggle down.
  • A start on boot; by default, Waggle will automatically start when you login to your machine, you can turn this off by right clicking the waggle arrow in the notification tray and selecting “about” – there is a new dialog box with a check box.
  • A new window display routine; In the old version the circles would sometimes appear hidden behind other windows. I’ve worked hard to try to fix this. It seems a whole lot more reliable now.

Waggle My Mouse 2.0

Creating an update

I created waggle a couple of years ago to scratch a personal itch, loosing my mouse pointer on one or more high definition screens. The application was fairly simple – want to find your mouse pointer? – Then shake it from side to side. The application would draw multicoloured circles around the mouse pointer. Once you stopped shaking the mouse the circles would vanish.

This led to me writing the TBool, a C++ temporal Boolean which can help with detecting the mouse shake.

I eventually released the first version of waggle. Several people downloaded the application. I reached out to a few and got some feedback on it. This led to me wanting to do an updated version. However the update got delayed a little. You see at the same time as trying to do the update I moved countries, changed continents, jobs, houses, cars, and got my kids into a new school. To say it was hectic would have been a complete understatement.

But this itch of wanting to do better has stayed with me, and now, I’m delighted to say that I have an update. This update provides the following:

  • Start the application when the user logs into their account
  • New waggle detection code
  • New animation code allowing circles to grow as you waggle and shrink when you stop
  • New window handling code to try to ensure that the circles always appear on top of every window on the screen
  • A new installer

I am sharing an early version of Waggle My Mouse 2.0 to some the folks who purchased the original copy, and I’m looking for feedback and ways in which I can improve it. Once I’m happy with it, I hope to provide to everyone who’d like a copy.

Finally, why circles and why those colours?

Well this is a question I have been asked about, well, the colours where picked when looking at my son’s crayola crayon case. Thinking about the desktop, I didn’t know what application would be running on the machine, nor what would be displayed, however it was important to show the mouse location. So thinking that the crayon case contained nearly every primary colour I used that as a starting point. You’ll notice if you shake long enough nearly every colour available in crayon case will appear.

My Dad

Happy Father’s Day

It was an idea that Dad and I had kicked about as a bit of thought experiment when I was in my late teens / early twenties. But there it was in real life. All set out in the shopping mall and implemented by a large clothing chain 20 years after we’d kicked the idea about. Funny. I had the sudden urge to tell him.

“Dad, you’ll never guess what I just saw… “

Funny how loss can sneak up on you like that. But it made me smile, and remember the late night conversations we used to have. We’d solve all of the world’s problems by 1am. The whiskey, served as was mandated, with just 3 blocks of ice always helped improve the quality of our ideas. But as the hours grew smaller the conversation would swap from planet defining moments of salvation to the more mundane; University, girlfriends, work.

I am very lucky; I’ve some awesome memories, and I’ve got the chance to create some more, this time with my family.

Happy Father’s Day Dad, and to all the Dad’s out there – let’s go make some awesome memories, the whiskey, of course, is completely optional.

The finished product

In Your Eye Steak

Nelson’s Eye and the Steak

There is a restaurant in Cape Town that I first visited about 11 years ago now, it’s still there. It is called Nelson’s Eye. It has some of the best tasking steak I’ve had in quite some time. The steak had been marinated and I’ve been trying to figure out their sauce for quite some time.

This weekend I think I came close. Well, even if I didn’t, what I came up with was tasty, so I thought I’d share it with you.

What you’ll need

  • Olive oil
  • 25g of unsalted butter
  • Salt
  • Garlic Salt
  • The Steak
    For this we need some nice thick steaks, about 3.5cm – 4cm thick. I opted for some New York Strip
  • The Marinade
    This is a combination of:

    • Worcestershire sauce
    • Soy Sauce
    • Red wine
    • Beer (ale, not larger)

Marinade the Steaks

Add a good splash (almost cover the bottom of the dish) of Soy to a large dish, then add the same in again in Worcestershire sauce. Then pour in about ½ a glass of red wine, and a bottle of beer (330ml). I added the steak and rotated it once. I left it in for about 30 mins, but longer is always better and 2 hours would have been ideal.

Steak in Marinade

Steak in Marinade

Cooking the Steak and the Marinade

I cooked the steak and the Marinade separately and the recombined them.

Step 1: Prep the steak

I removed the steak and placed it on a plate, covering it with olive oil and light sprinkling of salt to season.

Step 2: The Marinade Prep

I transferred the marinade to a sauce pan and added the butter, a dash more salt, and some of the garlic salt to it. I placed it on a low heat. This should cook any of the blood from the steak and melt the butter. Once this is done keep the marinade warm, but you don’t need to boil it.

Step 3: Cook the Steak

Placed the Steak in a high sided pan and seared each surface, paying special attention to the fat at the edges. I had the heat up high for this. Once the steak is starting to turn a good colour and the fat is browned, lower the heat.

Step 4: Add the marinade to the steak

I added about ½ the marinade to the steak, enough so it is sitting in the pan, covering about 1 cm of the steak. Then I put the lid of the pan and left the steak to cook, turning occasionally, and adding more marinade as needed. I let the steak cook until it seemed to right for us.

The finished product

The finished product

Served it with salad, potatoes and asparagus… ohh and more red wine…

Detecting a Waggle

I spent a long while thinking and discussing with others how a waggle could be detected. Two I guess opposite ideas were proposed:

  1. Sine wave mapping : This involves smoothing in the incoming data of “delta X” values and then mapping a sine wave to it, if the two overlap within a degree of tolerance, then a waggle exists.
  2. Simple Threshold : This is simply, if the “delta X” value passes a set threshold then we are in a waggle.

There are issues with both approaches, firstly the Sine wave mapping sounds good, but if the user speeds up the waggle then the frequency of the wave changes, and the mapping doesn’t work. Secondly the simple threshold value doesn’t work, we’d need multiples of the them, as the “delta X” values go from positive to negative. We’d also need to account of the time difference between the two. So it is not as simple as we first thought. Another solution is required.

Temporarily a bit True

When a bit is roughly true, some of the time.

jarnote1

Imagine a jar, the top of the jar is completely open and sand can flow into it. The bottom of the jar has a small exit through which the sand must pass. Now imagine that upon this jar there is a line, a threshold. If the sand is above this line, then the jar is said to be true. If the sand is below this line, then the Jar is said to be false.

If we used, say 5 sand jars to record the waggle thresholds we would record in the first jar the fact that the “delta X” threshold has been passed by filling the jar up to it’s brim. We’d then move on to the next Jar and wait for the “delta X” to pass the opposite threshold. If the first jar was filled because the “delta X” value was above the positive threshold, then the next jar will only be filled if the “delta X” threshold passes the negative threshold.

jarnote2

We would continue to do this for each of the 5 jars, when we reach the last jar, we would move back to the first and repeat.

If we were to watch all the jars and if any three of the five jars where above the threshold, and true. Then we could say that ‘Yes, we are in a waggle’.

This approach is the time dependant threshold approach. Right now it’s a concept, and now I have to code it and check to see if works…

Continuing to Waggle My Mouse

Getting the Waggle On

Development of the Waggle My Mouse application has been going well. I’ve over come a number of issues, I can now track the mouse pointer, and can capture the quick changes in the mouse pointers location. Two outstanding technical issues arise. These are:

  1. How do draw a highlighted shape over the mouse pointer?
  2. How do I know when the mouse has been waggled?

Detecting a Mouse Waggle

I’ve done some Windows programming before and I’ve a fairly good idea that I can draw a shape over the mouse pointer. The biggest unknown after that was trying to determine what a waggle is, and recognising when I saw one. I’ve a little test bed win32 application that I’ve been playing it. I’ve been using this application to complete my investigations on the practical ability I have to write a mouse waggle utility. I modified this test bed tool to record the mouse pointer locations, and the Delta-X; the difference in the position between the X coordinate of the mouse pointer now, and when it was last recorded. I managed to capture a bucket load of data describing what a mouse shake (or waggle) looks like. I imported this data into excel to let me visualise the waggle.

Graph of a Mouse Waggle

The shape of the waggle became really quite easy to see. The next question is “How do I write a bit of code which can detect that waggle?”. – Or at least that’s what I thought the question was.

Sharing the Waggle

I’ve a big fan of Justin Jackson with the Mega Maker podcast and Rob Walling and Mike Taber with the Startups for the Rest of Us podcast, and I was listening to them recently, when both shows made two really good points:

  1. “How will I let people know about my idea?”

    and

  2. “How do I know what people think about my idea?”

That got me thinking.. “I really need to Share my Waggle”. So I bought wagglemymouse.com. Feel free to check it out, there is nothing there right now. My next job is to create some content which concisely describes my idea and why it is a good thing, and encourages people to sign up to an email list, or follow me on twitter for updates. That’s going to be my focus until the next Waggle my Mouse blog post.

Flying to Protest

Dublin Airport before the  sun rises

Dublin Airport before the sun rises


I’m typing this on a London bound flight. I’ve taken countless flights, but I’ve never done this before. I’m a little nervous, and a bit excited. 

Over the last couple of months I’ve met and become friends with a bunch of new people, a ber eclectic group, from models to town planners. We’ve become friends on line, and I’m going to meet most of them face to face for the first time.

I’m going to apologise now, because this is going to get a little political. If you’ve seen my Twitter or particularly my Facebook posts of late, then this will not come as a surprise.

While I’m British, I live in Ireland and in the month before the Brexit vote I was sure that the UK would vote to remain in the EU. Then I visited the UK and I was exposed to full force of the U.K. Press and my impression changed completely.

I was stunned at the arguments being used in the campaign to leave, they didn’t make any sense and in part didn’t reflect the work that the EU actually does. The suggestion that foreigners were taking jobs was the pivot point for me, the retorhric being used and the approach to the argument were divisive and ugly. The press from the BBC to national newspapers lead with similar, inaccurate stories. I know the UK had a free press, but they were publishing and republishing inaccurate information as fact, and dimissing facts dismissed as opinion.

Friends in Ireland said “isn’t there a referendum commission which oversees this?”. Unfortunately no, the whole idea of running regular referendums is new in the UK, and there is no such public body to oversee then.

This right wing campaign had all the trappings of something from the 1930s. The country is changing, and becoming something I do not recognise. As read the articles in the UK papers, the poem by Pastor Martin Niemöller came to mind:

First they came for the Socialists, and I did not speak out—

Because I was not a Socialist.

Then they came for the Trade Unionists, and I did not speak out—

Because I was not a Trade Unionist.

Then they came for the Jews, and I did not speak out—

Because I was not a Jew.

Then they came for me—and there was no one left to speak for me.

As the Wikipedia article explains, it impart reflects the regret that so many had at the time for not standing up to a political view they did not agree with.

And so, I find myself on a flight. 

Waggle my MegaMaker

Wow it is hard work to fit everything in. I’ve been working hard on progressing and investigating the two ideas I proposed last week;

  • Waggle my mouse : Find your mouse pointer on Windows desktops with very high resolution monitors, or multiple displays.
  • Social Media authorization for groups : Supporting the Brexit campaigns I’ve seen on Facebook who are struggling to all members of the group to access other resources, such as wordpress blogs etc.

Waggle My Mouse

This looked the most technically straight forward of the two ideas, and one with probably the easiest route to market. So this week I set up to investigate what APIs where available on Windows to track the mouse cursor. Now, I’ve done some win32 programming in the past so I thought “This can’t be too hard… right?”. Alas, as anyone who’s done win32 and ‘c’ programming knows, there are always twists in the tale. So I spend a number of hours chasing through the MSDN win32 documentation trying to discover how you track the mouse. In brief, it’s really easy to track the mouse if the cursor is moving over your application’s window, but if it isn’t – then it’s a bit more tricky. I discovered the rawinput APIs which are pretty cool. They give the raw input from the mouse device driver. I thought this would solve the problem, and it does and then it doesn’t.

RAWINPUT on Windows

While the rawinput API does give me information about the mouse, even when it is not over my application, it doesn’t actually tell me where the mouse is. The API gives the delta between the mouse’s last location, and its current location. This is great or detecting a “waggle” – as this is exactly what I would need to do, but it doesn’t tell me where on the screen the mouse is, or on multiple displays – which display. I’ve some more work todo.

WaggleMyMouse.com

Well on the basis on my hunch for implementing the idea I went out and bought the domain name anyway. I had a number of domains up for renewal and though, heck, I’ll get this one while I’m at it. I plan to setup a simple WordPress page, with a pre-bought template. I known that I can get a template that will hook up with mailchimp and provide me with a quick sign up mailing list. Now I’ve just got to go searching for that.

Before I do, I want to go searching for this silly Win32 API – talk about an itch I need to scratch, this technical issue about he mouse location is bugging me.

Social Media authorization for groups

I did some API investigation on this one. The core idea is that members of a specific Facebook group would be able to sign in to say, WordPress, and then would be provided access to the editor based on their group membership within Facebook. That way user access control is done by the Facebook group admins. Now, after checking I can see that all the APIs are there to do this, and it seems deceptively straight forward. However given all the trouble with the win32 idea, I’m wondering if it really is.

The goal of this plugin / tool is to support the existing Facebook groups. So I’ve a meeting this Wednesday with a group. It also happens to a brexit group, one I’d like to help anyway – perhaps I would be able to kill two birds with one stone? – I’ll have to wait and see…

Keep moving forward

Of the two ideas Waggle My Mouse looks like the idea with the least unknowns, both technically and route to market. So that’s the one I will follow for now.

I’m going to see how I can help the brexit group more generally, if anything comes out of that conversation which could be a candidate for my own MegaMaker challenge, then that’s a bonus.

Time challenge

The originally challenge from Justin was to launch something every week. That’s tough, especially while your holding down a day job – and I’m contracting at the moment, and have a young family to hangout with. But even doing the API investigations has engendered that love of technology and software development I have, and I’ve really enjoyed it.

Justin mentioned finding something that you enjoy doing – and this has been it.

And all the rest

In addition to the work I’ve done on these projects, I’ve also taken part in an AirRun – it’s a 5k race with adult style bouncy castle obsticals to cross. It was a huge amount of fun, and if you get the chance you should totally do it. It also reminded me that I need to get back and exercise. I’d eased off in the run up to my holidays, but I really do need to get back at it.

Inspiration and Exasperation

This has been a really busy week. Last week I was on holiday, as you can tell
from my previous blog posts, I’m a Brit, who firmly believes in the EU, and so
was pretty distraught at the results of the referendum. During the vacation I
got involved in a number of Facebook groups who are attempting to help ensure
that the UK reconsiders leaving the EU. Its a long hard struggle, but I think,
if we can pull it off it will be the national good.

 

So this week has been spent trying to help some of the Facebook groups out. I’ve
written blog posts and offered my skill set to them. With the exception of a few
committed individuals, there appears to be a lot of good will, but a lack of
organisation. Coming from the professional world you can see this causing some friction between people. I guess that’s to be expected in the nature of these movements. It has been a learning experience for me.

 

In the midst of all of this, I returned to the day job. During my commute I
often listen to a podcast called Start Ups for the Rest of
Us
. It’s a fantastically interesting
show and it tries to explain who two guys went from working full time as
employees to having their own companies and products. In “Launching 100
projects in One
Year

Mike, one of the hosts, interviews Justin Jackson. Justin is in the middle of a
year long journey to discover what type of product and company he would like to
run. To do this he us experimenting with 100 startups during the course of a
year, that 2 or more releases every week! Justin’s called this project
“MegaMaker”. It was a really inspiring show, since then I headed over to his
podcast and started listening to the start of his journey, 6 months ago. I’m
hooked.

 

This has got me wondering about what I can do, what could I commit to delivering
in a weeks time.

 

Facebook Discoveries

Prior to all of my anti-brexitering engagement, and social media based protest
groups, I did not know about some of the features that Facebook has. A number
of the groups I’ve joined have a “files” section, where additional content is
stored and shared. My first thought was… “wait… Facebook supports files?!”.
Well yes, it does. It is a bit kludgy in user experience terms, but there are
files associated with groups. After learning how this worked, I met a lot of
people inside these groups who were confused when others started mentioning the
“files section”. Part of the problem is that inside the Facebook application,
which I’m guessing is how the majority of its users now access it, a Group’s
files section is hidden behind the group’s “information” button. You wouldn’t
find it, if you hadn’t been told that it existed.

 

As these groups start to organise themselves they start to look to move away
from just Facebook, and back out to more traditional channels, like Twitter,
blog postings (medium, wordpress), and from there to standard stand alone
websites. There are teething trouble during this transition as Facebook’s groups
don’t easily allow sharing of content, or integration with other products and
services. Here are some of the issues that I’ve encountered:

  • Pinning posts which shrink
    To try and address common issues, like letting people know where the files
    section is, or providing them with links to important documents, or
    important posts, we’ve tried pinning posts to the top of the group. They pin
    to their location ok, but the posts are always truncated, and have to be
    expanded to be read, and not everyone does that. It would be munch better if
    pinned posts, could be pinned open.

  • Group Authentication
    In a number of the groups we would like to securely share access to allow
    members of groups to access files on google docs, or post blog updates to
    Wordpress or Medium sites. Bu there is no way to do this. This then requires
    folks within the groups to try to create manual processes for creating and
    maintaining these external sites and services. This takes time and puts
    pressure on just one or two individuals in groups with thousands of members.
    It would be so much better if you could log into the external services, with
    your Facebook account, and because your a member of a predetermined Facebook
    group you get access to additional services. So as a member of one of the
    groups, I could log into, say WordPress and post new blog posts to my
    group’s wordpress site. But I’ve not found anything that would allow me to
    do that.

 

MegaMaker Idea: Group Blog Posting from Facebook to Medium / WordPress

This all got me thinking, is there something I can do to help here. What about a
web service that would log into Facebook, check a group and its files, find all
the files with names beginning with “blogpost_” and publish these to a Medium
or WordPress site? – could I deliver that in a week?

 

Waggling my Mouse in Frustration

I’ve a multi monitor, and laptop setup at work. In total I’ve three screens. It
is very handy, but have you ever lost your mouse pointer across three monitors?
– Damn it, it is annoying. The first thing everyone in the office does is to
“waggle” (shake) their mouse. The human eye spots movement quicker than still
images, so waggling the mouse pointer to spot movement is an undderstanable
reaction. But it seldom helps. I’ve made my mouse bigger, and added mouse trails
etc, but it doesn’t feel like it is helping.

 

MegaMaker Idea: Waggle My Mouse

I got the chance to try out Mac, and I lost my mouse pointer on that machine
too. However when I shook / waggled the mouse pointer… there it was! The
pointer grew in size as I continued to waggle the mouse. Now if only similar
functionality existed on Windows… Could waggling my mouse me another MegaMaker
idea?

 

The weekly Email update

I’ve really enjoyed the weekly update format used by Justin on his MegaMaker
podcast. I’m also a long time follower of a Twitter user called @Documentally aka Christian Pain. Christian writes a weekly newsletter in which he details what
he’s been up to each week. Now, he’s a much more varied life than me, with a job
that often takes him around the world. Not only do I enjoy his writing, but I
can see how after a few weeks of publishing his weekly thoughts he’s also using
them almost as a form of motivation.

 

Next Week

So, what should I work on for next week. I’m thinking I compare these two ideas
and select one to move forward with. I love both of them. In fact tonight I
spend a long while researching windows APIs for mice, and also looking at
Facebook APIs. I’ve also promise to help out with some of the 48% group.
Personally I’ve got some work to do on just tidying up the various web sites I
currently own, I’ve a growing bill from GoDaddy.. every time I get an idea I
purchase a domain… I don’t normally use it, but I have it…

 

Anyway,.. for now.. good night all.

EU Flag

What has the EU ever done for us?

The EU does a lot of work to help drive Science, technology and innovation across Europe, and I think in the mist of the Brexit debate this can get over looked. My day job involves  working with these EU programmes, so I thought I’d share what I’ve been involved in, and have worked on.

European Research Programmes

There has been so much talk recently about how the EU imposes restrictions on business, and creates silly rules. Now, not every organisation is perfect, but national politics aside the EU can and does do some good work.

The EU works hard to support the creation new jobs via new technologies and the associated research. To do this the  EU is constantly looking at how we in Europe compete against other major counties, and it tries hard to ensure success for everyone living in the EU. This, as you can imagine is no easy task. Europe is big and has many millions of people, all with different skills dotted about many different countries.

I want to tell you about the European research programs I’ve been involved in and how, they have in the past created thousands of jobs across Europe, including the UK. The very same research is touching on the cutting edge of technology today and has the potential to create an amazing future for us all. Before I cover the European research program it is important to go back in time and to a different continent, North America.

Research Grants and The Birth of the Internet

Back in the 1980s the European Commission studied how each member states sponsored research and innovation policies compared to other counties from outside Europe. Specifically they looked at the DARPA (Defence Advanced Research Projects Agency) research grants issued by the US. Although these grants were, and still are, focused on defence research, Europe recognised the huge impact they had on the US economy. To give you an example of the impact DARPA grants have, I should point out that the entire internet was born from a DARPA grant. The initial research lead to the birth of the ARPANET, and eventually to the internet we know today. More recently the self driving cars we see from Google; that core technology is also from DARPA.

The Birth of European Research Projects

The DARPA grants are big, much bigger than any of the support packages that any individual state could provide. Europe decided it needed something on a similar scale, that would maximise the research value of everyone across Europe. From this was born the “Framework Projects”. These projects started in the 1980, and continue to evolve. The latest iteration of the Framework Project is called Horizon 2020, or H2020 for short.

The Framework projects have had some huge success. The “3G” technology that powers almost everyone’s mobile phone was designed and developed in Europe, with the support for European Research Grants.

Beyond Defence Research

The DARPA research grants, are by their very nature focused on defence. In contrast the EU Framework Projects and H2020 are not bound to defence. They include topics as diverse as archaeology and healthcare. The H2020 website contains a collection of “project stories” which highlight the diverse nature of the research grants and what they have achieved. This includes stories about a project designed to spot pancreatic cancer early which would dramatically improve survival rates, to a project about preserving ancient documents with digital copies.

And me?

Well as someone who works in software, my focus in H2020 research has been on extending the “cloud” from data centres, right out to the phone in your hand – turning that to into a cloud machine. I’ve also been working on new ways in which computer networks can operate (SDN/NVF) and how the software that manages that works. This all sounds quite geeky, and I apologise – it is. But I hope that some of this research will help contribute to the next wave of mobile and cloud technology, some of which could end up being in that little “5G” logo that will appear on your mobile device some time in the future.

H2020 Research Grants

I should add, that the research grants are available to all companies in Europe. The EC holds open days to educate people on how the programme works. Each year the EC announces a set of research topics, these are broad problem statements, or “calls”. Groups consisting of universities, SMEs and large industrial organisations from 3 or more member states get together in a consortium to submit a detailed problem statement and proposed solution which would address the problem outlined in the “call”. This is a competitive process and the EC uses a bunch of external experts to review the proposals it receives. The top solutions are then selected for funding.

The process of writing a good proposal can be hard, but as a researcher even this can be very rewarding. Imagine getting the time to work with some of the smartest people in Europe in some of the biggest challenges in your field. Thinking of creative ways to address these issues with them, brainstorming and then working hard to refine the solution. It really can be a lot of fun, and when done well even the act of writing the proposal can open up a world of new ideas.