Category Archives: Tech

Winpdb with Python3

You need to have python2.7 installed.

  1. cd /usr/lib/python3/dist-packages/
  2. cp /usr/lib/python2.7/dist-packages/ .
  3. Apply patch
    --- /usr/lib/python2.7/dist-packages/   2010-08-17 22:12:52.000000000 +0300
    +++    2014-05-14 10:37:29.559752856 +0300
    @@ -7280,7 +7280,7 @@
             Set rpdb2 to wrap all signal handlers.
             for key, value in list(vars(signal).items()):
    -            if not key.startswith('SIG') or key in ['SIG_IGN', 'SIG_DFL', 'SIGRTMIN', 'SIGRTMAX']:
    +            if not key.startswith('SIG') or key in ['SIG_IGN', 'SIG_DFL', 'SIGRTMIN', 'SIGRTMAX', 'SIG_BLOCK', 'SIG_BLOCK', 'SIG_UNBLOCK', 'SIG_SETMASK']:
                 handler = signal.getsignal(value)


  4. Start Winpdb using python2
  5. Start rpdb2 using python3
    python3 /usr/lib/python3/dist-packages/ --debuggee
  6. Attach the newly created debugger to Winpdb.

Exporting API reference from Tornado app - Mistakes to avoid

I've developed a small RESTful service with Tornado and I wanted to generated doc for the exposed API. Lucky me, someone already thought about it and created the sphinxcontrib.autohttp.tornado addon for Sphinx.

The next few tips will help getting the work done:

  1. If you're using python-3, you need to use this file The latest release 1.2.1 (as of 30/04/2014) doesn't work with python-3, because
    methods = inspect.getmembers(handler, predicate=inspect.ismethod)  # returns an empty array with python-3

    The predicate needs to be changed to include ismethod or isfunction

  2. In the subclass of the RequestHandler, be sure that the SUPPORTED_METHODS is defined as a tuple
  3. If you add a decorator to your handler methodes, be sure to use functools.wraps or functools.update_wrapper to copy the docstring of the original method to the function returned by the decorator.

CanalPlay VOD

Attempt to rent online a movie with CanalPlay VOD

  1. Find a movie and decide to watch it.
  2. First failure because Linux is not a supported OS
  3. Booting Windows XP in a Virtual Machine (vmware)
  4. Scan of the computer configuration from the CanalPlay website
  5. Incompatible media player -> Request to update to Windows Media player 11
  6. 6 clics further on the Microsoft website, before the update can be downloaded, a genuine windows code must be entered.
  7. The code is given by a application to download and execute on the computer.
  8. Once the code entered, the download starts (25MB)
  9. Windows Media player 11 installation
  10. Goto step 4.
  11. CanalPlay plugin installation
  12. Restart the browser
  13. Goto step 4.
  14. Windows Media player 11 scan fails again.
  15. Reboot the computer (well, the VM)
  16. During reboot, some system updates are applied.
  17. The plugin still doesn't work with Firefox
  18. The scan finally works with IE
  19. Creating a CanalPlay account
  20. Wrong country: the movie is not available
  21. Creating a SSH Socks proxy to a server in France (Thanks OVH)
  22. Renting the movie in SD for 48h for 4€ (Yes, I really want to try)
  23. The payement is rejected because a foreign credit card is used.
  24. Shutting down the VM
  25. Creating a Purevid account
  26. Monthly subscripion for 4.5€
  27. Starting the movie in streaming from Linux with Firefox.