Logitech M500 laser mouse (repair)

Last week the left mouse button of my beloved Logitech M500 laser mouse stopped working correctly. The mouse is several years old and used daily for several hours, so there is no reason for me to be unhappy with it’s endurance. But replacing a mouse, because of a single worn out switch, felt like a waste. That’s why I decided to repair the mouse.


Unfortunately I could not find a service manual on the Logitech support site. That did not stop me, oh no, on the contrary! I got enthusiastic and documented the process, so this will be much easier for you to repeat.

The “missing” Logitech M500 service manual

This post will show you what the inside of a Logitech M500 laser mouse looks like. It also explains where the screws are located and how you can remove them carefully. It should be possible without destroying the mouse, but I take no responsibilities for your actions. If your mouse is still under warranty – which is a generous period of 3 years – then I urge you to stop reading and contact Logitech support to get your mouse replaced.


The 4 bottom screws are located underneath the feet or “skates”. The skates are oval stickers and can be removed without too much damage by using a sharp knife. Slide the knife underneath the entire skate to peal it off in one piece. Do not fold or bend the skates as shown on the picture unless you plan to replace them. A replacement set of 4 skates can be bought on-line and cost about 5 dollars.


The cable of the mouse can easily be removed, because it is connected with a plug into a socket. Pull the plug out gently by wiggling it. You can then remove the wheel by pulling out the “f”-shaped axis (shown in the inset) that is located in the middle of the mouse (see circle). On one side it has a little handle that you can use to gently pull the axis out. After doing that you can pull the wheel structure upwards from the front of the mouse as indicated in the picture. You may need to pass a little aluminum strip that keeps the wheel structure in place.


Now we can remove the main board of the mouse which is kept in place by 5 screws that are marked in the picture. Easy ain’t it? If you need to replace a left or right mouse button switch the model is “OMRON Micro-switch D2FC-F-7N” as you can see below:


Their 3 pins can easily be (un)soldered on the main board. You can buy this OMRON micro switch on-line for about 1-2 dollar per piece.

Happy hardware hacking.. 😉


Leaseweb BigData and MapReduce (Part 2)

This is the second part of a series of posts about the current Leaseweb BigData and MapReduce. The first post can be found here.

In this one we will focus on understanding MapReduce and building a job that will run on the Cluster. Let’s start to look for a diagram of what a MapReduce job looks like (Source: http://discoproject.org/media/images/diagram.png):

MapReduce Example

When I first saw this image I started thinking “That’s quite simple! I just need to provide 2 functions and things will fly!” After a while it become clear that is not the case…

So, what is the problem? First let me update the image above what I think is a more realistic view of what are the steps you need to effectively get something out of a MapReduce cluster:

My version

So, now we moved from 2 problems (write a Map and a Reduce function) to 4. Could be 3 or still 2, depending on the cases. But I do think majority of the people will face 4 or 5 (Getting the data from whatever to the cluster).

Resuming, what you need to know to make it work:

  • Get the data to the Cluster (could be a non-issue)
  • Slice the data in appropriate chunks
  • Write the Map
  • Write the Reduce
  • Do something with the output! Store it in someplace, generate files, etc…

This was the second post on BigData and MapReduce. The first post can be found here.


Leaseweb BigData and MapReduce (Part 1)

Today BigData is a enormous Buzz word. So what all about it? How difficult is to use it?

I already wrote on a previous post (http://www.leaseweb.com/labs/2011/11/big-data-do-i-need-it/) about the need for it and gave some insight on our BigData structure here at Leaseweb. On this post I will dive more into how we process this data using MapReduce and Python.

First off all, as the name says, BigData is actually a lot of data, so to retrieve information from it in a timely manner (And we do it in real time) you need to build a infrastructure that can handle it. So without more delay, this is our cluster structure:

  • 6 machines
  • 48 processing units (4 cores per machine with hyper-threading)
  • 1Gb Network

As said before, we want to use our in-house python knowledge (although Java knowledge also exists). So we went with Disco (http://discoproject.org/) to build our MapReduce infrastructure. We didn’t benchmark Disco vs Classic Hadoop structure (the all knowing “Internet” says you take a hit on performance), but we are satisfied we the results we are getting and the cluster is not even getting that much work.

After the hardware and the framework is up and running, it starts the second part, programming the MapReduce Jobs.

MapReduce is not some miracle technology that will solve all your problems with data. So before starting programming the jobs you will have to actually understand how it works. But for that, wait for part 2 🙂