• c++,  Code,  Linux,  Uncategorized

    The dbus-cpp Library, introduction

    While working on a bluetooth based embedded device, I needed to deal with the somehow infamous dbus. DBus and Bluez5 have a very steep learning curve, and if you are don't have access to either Qt framework or glib framework, you have indeed a problem. Glib are very complex C libraries that mimick some of the built-in feature of the C++ language, while on the other hand, Qt are very vast and sometime a big overkill. The stunning news is that it seems there aren't many options if you need a C++ only lightweight solution. It is not true, indeed. Somehow well hidden in the creases of the web, I…

  • Code,  Embedded

    Pairing Bluetooth with no pin on Intel Edison

    It may seems strange for an IoT enabled device, but there's no obvious way to pair an Intel Edison through Bluetooth without accessing the shell. I spent different hours to do something that with Bluez4 took at most 4 minutes, including the research on Google. Here's what I did. Edison provides Bluez5 that reworks most of the tools using DBUS, so to make two quite frequent actions, like pairing a device without providing user intervention on the device, and registering a new bluetooth RFCOMM service, you need to interface with it, that isn't so obvious from C or C++. The second action can be done if bluetoothd is started with…

  • Linux,  vmware

    Fixing problems with Ubuntu 13.04 and VmWare Tools

    Installing Ubuntu on my VmWare fusion box has never been so difficult as it was last weeks, when I needed to have it ready as soon as possible. Though 12.04 LTS has been proved to be a great choice when you need a solid rock linux box, latest Ubuntu boxes are preferable, on my opinion, for development purpose. This way, switching to the latest, bleeding edge kernel hasn’t gone well for the people at VmWare. There are two very big problems with the default installation. I usually choose the default installation because you only need the ubuntu ISO image and few minutes, and a new, shining linux box is ready…

  • Android,  Code

    TouchWiz and the onOffsetChanged missing call

    I am currently working on a Live Wallpaper project for a customer. Interestingly, I found that though my app works perfectly on different devices – I have a Nexus7, Nexus10, a Galaxy Tab p1010, different chinese allWinner devices, and a Note II phone – my wallpaper can’t scroll when the screen is swiped on some Samsung Device. Usually to detect the swiping on a Live Wallpaper, you use the WallpaperService.Engine.onOffsetChanged, i.e. overriding this method on your engine class. Unfortunately, the Samsung launcher app, TouchWiz, seems to have a bug, or maybe it’s an undocumented/not compliant feature: the onOffsetChanged method is never reached, because simply they don’t call it (or maybe…

  • AllWinner,  Windows

    Flashing an AllWinner device via LiveSuit from Windows 8

    Flashing an AllWinner device using the LiveSuit tool from Windows 8 isn’t as obvious as it seems. First, as usual with a new operating system, not all drivers works and you must find the “right” version. Second, as the previous issue wasn’t enough, with Windows 8 isn’t possible without some trick to install an “unsigned” driver. “unsigned” driver means a device driver that isn’t approved by Microsoft; on previous Windows versions, when installing an unsigned driver Windows asked for approval to the user. Today, Windows 8 doesn’t ask for approval and sometime refuses the installation without telling anything, it silently exits the driver installation window. So, first you need to…

  • Windows

    Annoying crapware on Java Updates (a.k.a. Ask.com toolbar)

    Tired of this annoying ask.com toolbar being installed every time Java gets updated? Here’s the solution: Open a notepad, copy-and-paste this code and save it on a file called “disable_java_sponsors.reg”.   Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft] "SPONSORS"="DISABLE" [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft] "SPONSORS"="DISABLE"   Then double-click on the new file, answer “yes” to the question about merging the registry and say bye to these annoying crapware. Next time you update Java, the ask.com bar (and eventually all other sponsored tools) should be disabled and not installed. Click here to download disable_java_sponsors.reg. Thanks to Danilko Roascio for his solution on superuser.com.    

  • AllWinner

    Building AllWinner Android Firmwares

    Foreword This is a work-in-progress post. I'll periodically update this page with new informations, tweaks and tools, because I wanted a single page to collect all the valuable informations about this theme.  Introduction The AllWinner A10 platform is a relatively new System-on-chip (SoC) product developed by a Chinese Company. His strength point is certainly the low cost compared to computation power and peripheral integration. The A10 SoC is based on Cortex-A8 ARM core, and provides a Mali-400 GPU on chip. Another very interesting point about the A10 based products, is that since the SoC has an hardwired primary bootloader, they are practically unbrickable, that makes the A10-based tablet a great…

  • Qt

    Qt Creator 2.6.2 hangs under Windows 8

    What a bad surprise when, installing my new Windows 8 box, I found that I couldn’t compile any of my Qt Projects! I couldn’t even running an instance of Qt Creator 2.6.2, because when it tries to open the project file, it hangs with that stupid white window… “Qt Creator is not responding…” Well, I tried the following: Installing a different MinGW version, Installing the new Qt5.0.1 library, modifying the projects files… nothing worked, though removing the QT+=xxx and the TARGET=yyy or the TEMPLATE=zzz lines makes sometime starting it. Anyway, the obvious solution is to downgrade the Qt Creator version to 2.6.1, it seems to work well (at least: it opens…

  • MacOS

    MacOS Mail.app slow… why? Ask iCloud!

    In the last few months I maturated the idea to change my 4 years old Late 2008 MacBookPro. Though I upgraded it to 8Gb Ram thanks to the kit from OWC, opening and managing mail was painfully slow. I didn’t experience a sudden deterioration of performance, but since I updated the OS to Mountain Lion, a slow and maybe continuous worsening. So it was difficult for me to realize that something wasn’t going wrong, I was ascribing this to many programs I installed and removed, and to Mountain Lion itself. Anyway, I decided to change the MBP. While I was waiting it to arrive (and, incredibly, I am still waiting it…

  • Uncategorized

    Tech blog

    Welcome to my tech blog. Here you’ll enjoy articles about all the fields related to my work, especially Linux, Embedded systems, Programming, Software and Hardware design and Engineering. All posts will be, hopefully, in English, some will be in Italian when the argument will suggest that only Italian people will have interest on that. Sorry guys 😉 If something isn’t clear, or if you feel that some should be corrected, please write me a comment. Comments are welcome, but due to spamming issues, they will be moderated.