Point and Call and the Windows Phone Ecosystem

So a few days ago I bought a Windows Phone device. So far, I am impressed with the Windows Phone ecosystem. The nicest thing is that I was finally able to test an app I’ve been eager to try for months: Point and Call.

Point-and-call in everyday life.


Now, the news: this app uses the Accord.NET Framework to do its magic 🙂

The app author, Antti Savolainen, was kind enough to share some details about his app. It uses part of the SVMs framelet from Accord.NET to do the digit recognition, mostly based on one of the earlier CodeProject articles I’ve posted in the past. Needless to say, Antti did an awesome job, as the SVM part was surely just a tiny fraction of all the work in preprocessing, adjusting, locating, and doing the right things at the right times that I would never be able to figure out alone. Surely, he and his company, Sadiga, deserves all the credits for this neat app!

If you would like find more interesting uses of the Accord.NET Framework, don’t forget to check the framework’s publication page for details!



Deep Learning Artificial Neural Networks: Speech Recognition and Universal Translators

Happy new year everyone!

With the beginning of this year, I would like to share a video I wish I had found earlier. It is about the recent breakthrough given by Deep Neural Networks in the field of speech recognition – which, despite I had known was a breakthrough, I didn’t know it was already leading to such surprising great results.


Deep neural networks are also available in the Accord.NET Framework. However, they’ve been a very recent addition – if you find any issues, bugs, or just wish to collaborate on development, please let me know!

Accord.NET Framework: Gesture Controller Components


A new version (2.2.0) of the Accord.NET Framework has just been released. This new version introduces many new features, fixes and improvements. The most interesting additions are certainly the HeadController and FaceController .NET components.


Accord.NET Framework sample application for Gesture Controller Components

The Accord.NET Controller components can be used to generate events based on webcam motion. By using a combination of HaarCascadeClassifiers, Camshift and Template-based Tracking, those components are able to detect when a face enters scene, leaves the scene, and moves across a scene.

The video above shows only the sample application which comes together with the framework. However, the interesting part is that this is just a sample of what can be accomplished using the real controller components. The controller components are .NET components, similar to Button, Label or Timer, and can be dragged and dropped from Visual Studio’s ToolBox directly into any application.

Accord.NET Controller Components in Visual Studio

Once inside an application, it will be possible to set event actions just as in any other .NET component:

Setting events for head movements using Accord.NET Controller Components

The controls have built-in support for calibration. All values except tilting angle are passed to the hosting application in the [-1;+1] range, in which -1 indicates either a total left/down/backwards position and +1 indicates a total right/up/forward position. The tilting angle is given in radians. Please note that the face controller is still a bit experimental and still requires some tuning.


This new version also introduces HSL Color Range object trackers, more default Haar Cascades, an experimental version of linear-chain Conditional Random Fields, and the ability to generate hardcoded C# definitions of any Haar cascade available in the OpenCV XML format. There is also initial support for finger detection using new implementations for Border-Following contour extraction, K-Curvatures and Convex Hull Defects extraction. On the statistics side, there has been the inclusion of the Von-Mises distribution, Moving and Running Normal distributions and improvements in the Multivariate Gaussian implementation. The full release notes are available in the release’s download page.

Also, a special thanks to Professor Dr. Modesto Castrillón Santana to let me embed some of his Haar definitions into the framework under the LGPL license. Please be sure to include a reference to his work if you plan to use this in an academic publication.


As always, I hope those additions and improvements will be useful to everyone 🙂

Pendrive Para Não Perder


É sempre bom andar com um pendrive à mão, mas nem sempre isso é possível. Acaba se tornando uma tranqueira a mais para se carregar nos bolsos. E o medo de quebrar?

Bom, isso com certeza não seria problema se pendrives fossem feitos de borracha.


E não é que existem?

Acabei de conseguir um pendrive novo, com corpo de borracha, perfeito para se juntar ao molho de chaves e estar sempre à mão. No MercadoLivre, pendrives úteis como este estão disponíveis a preços bastante convidativos! Opções incluem pulseiras-usb, canetas, pingentes, e muitos novos tipos que difilmente vejo por aí. Inclusive outras curiosidades como latinhas, instrumentos musicais e outras coisas engraçadinhas boas para se dar de presente.

Se for adquirir um, recomendo o vendedor Sukavog. Muito atencioso, e de extrema confiança! Bom, pelo menos oferece garantia de 3 meses… 😛

How Google Tricks Microsoft Into a Fake Competition


Or: The Most Overlooked Point In How Google Competes With Microsoft And Nearly Everyone Else Outside The Web

From the very principle, it was never Google’s aim to replace other browsing software such as Internet Explorer, Firefox or Safari with Chrome. In fact, what Google truly wanted, was rather to improve them.



Let me explain in simple words: Google doesn’t actually cares if you are using Chrome, IE or Firefox as long as you are using them to access Google. Didn’t you notice what happened after Google released Chrome? All other browsers adopted the concept of a JavaScript VM. All other browsers incorporated inovation from Google so now the Web loads faster. By adding competition and promoting the benefits of a secure browser architecture, Google has increased the momentum for further web-as-software-platform development. This will make sure not only Google and its services loads faster and look more appealing, but that it does so in every browser, for everyone.


Google indeed seems to have a brilliant plan: bringing innovation improving and exploring ideas and then letting everyone borrow its ideas improvements for free so it can profit while every other competitor wastes time and money improving their own products, thinking they are competing with Google. While, in fact, they aren’t: They are just building more room for Google to expand upon. And the Google Chrome Operating System is certainly part of this.

But note that, while those may be bad news for Google’s (virtual) competitors, for us, users, it means a lot more. It’s no doubt the Google Chrome OS will surely play a major role in the paradigm shift we are all living now, where everything is becoming web and being put in the clouds. Lets just wait for some real competition, let the technology evolve, and we shall all benefict.


Truth is: In the end, even if Chrome OS fails, it still a win. For Google, and for us.



Remember when...

I’m actually a believer of copyright. It’s original intention – to protect author’s rights over their work – is certainly valid and necessary, but the way the current law works and is enforced leaves room for such absurdities happening. It looks like some things need to be fundamentally rethought for the digital age.


The cartoon, albeit not copyrighted, explains the goal behind the lawsuit faced by The Pirate Bay in the Swedish courts and was published on their site in the second week of their trial.

7º É Dia de Java!


Apesar de não ser muito fã de Java, é sempre bom conhecer novas tecnologias e ficar por dentro das novidades na área.

O evento é oferecido pela Universidade Federal de São Carlos e tem como alvo profissionais e alunos de graduação e pós-graduação, não apenas da UFSCar, mas também de outras Instituições de Ensino Superior, e quaisquer outros interessados. O evento será realizado nos dias 29 e 30 de Agosto de 2008, no Teatro Florestan Fernandes e nos Auditórios da Biblioteca Comunitária da UFSCar.

No ato da inscrição, o participante pode optar por assistir um dos seguintes cursos:

  • Web 2.0 com WebSphere sMash
  • Java e Banco de Dados
  • JSF com Ajax
  • Desenvolvimento de aplicações para TV Digital

Já me inscrevi no curso de Desenvolvimento de aplicações para TV Digital, que parece ser a onda do momento no país. Para mais informações, acesse o site oficial do evento É Dia de Java, e não se esqueça de conferir sua programação, que inclui muitas outras coisas além dos cursos citados acima.