Stefano Tommesani

  • Increase font size
  • Default font size
  • Decrease font size

Returning buffers with C++ and Boost

E-mail Print PDF

In the article comparing CPU and GPU implementations of the median filter, the class was designed to receive image buffers with the AddSample method and return a pointer to the image buffer with the GetMedianImage method:

class TM_CPURefImpl :
    public TM_BaseClass
{
public:
    TM_CPURefImpl(const int _NumSamples, const int _BufferSize);
    virtual ~TM_CPURefImpl(void);
    virtual void AddSample(void *NewBuffer);
    virtual void *GetMedianImage();
protected:
    unsigned char *Buffers;
    unsigned char *MedianBuffer;
    std::vector<unsigned char> SortBuffer;
    unsigned char *MedianValuePtr;
    void BuildMedianImage(unsigned char *NewBuffer);
};

However, this is a poor design (granted, OOP was not the aim of the article) and should be improved. In fact, it assumes that the programmer using this class never:

  1. deletes the class instance and keeps using the returned buffer
  2. deletes the returned buffer
Last Updated on Monday, 03 June 2013 23:55
 

Friend Watchdog software livre para Facebook e Skype

E-mail Print PDF

Agora eu sei o que você fez na segunda-feira passada

Friend Watchdog controla os status dos seus amigos do Facebook e Skype, salva todas as mudanças de entradas e saídas dentro de um servidor remoto e te dá permissão de controlar quando os seus amigos estavam on ou offline detalhadamente com dias e horários.

Mas para isso deixe seu Friend Watchdog sempre aberto e ativo, pois somente assim ele será constantemente atualizado com as informações de status de seus amigos.

ScreenshotSmall

A sua privacidade em segurança

Porque confiar no software Friend Watchdog? Aqui está o porque:

  • a sua conta com seus dados de login Facebook nunca será enviada ao nosso servidor, essas informação são salvas de modo criptado dentro do seu computador, e será utilizado somente para acessar a sua conta de Facebook somente do seu computador. Não existe um modo em que podemos realizar o acesso utilizando seus dados pessoais do Facebook!
  • não sabemos quem são seus amigos de Facebook e Skype: o nome dos seus amigos são salteados e transformados em um código hash com SHA1, e assim somente o código hash é enviado ao servidor, sendo assim podemos distinguir entre eles os nomes dos diversos amigos mas não podemos recuperar os nomes dos amigos dos códigos hash. Por exemplo, um usuário de Facebook como "stefanotommesani" gera este código hash único: CDE381A6C6AD22E844263908022D40C4FE634C37. Este código hash identifica o nome do usuário de Facebook, mas não existe um modo de voltar atrás transformando código hash em nome de usuário de Facebook, portanto os nomes dos seus amigos permaneceram preservados, e somente você poderá vê-los.
  • uma vez que você permitiu Friend Watchdog de conectar ao aplicativo Skype ele se ativará em seu computador, Friend Watchdog lê somente a lista de amigos de Skype e seus respectivos status on line, e aquelas são as únicas informações controladas, sempre usando o código hash, e é assim que a sua privacidade é mantida completamente em segurança.
Architecture
ClientRole
Friend Watchdog é um software gratuito de espionagem para o Facebook e Skype, que mostra quanto tempo seus amigos do Facebook e contatos do Skype ficam online. Depois de se conectar às suas contas, é exibida uma lista de seus contatos, e ao lado de cada nome você poderá acompanhar quando seus contatos ficam online.
Friend Watchdog pode ser de utilidade para os pais terem controle sobre o tempo que os filhos ficam online, ou até para empresas controlarem quanto tempo os funcionários ficam online no Facebook durante o expediente.
Privacidade à parte, Friend Watchdog é muito eficiente no que faz, mostrando praticamente tudo o que seus contatos e amigos fizeram e compartilharam. Vale ressaltar, no entanto, que instalar o aplicativo não significa que você vai ver o que seus contatos estão fazendo em particular. Quando trocarem mensagens privadas, estas ainda serão privadas. - UltraDownloads.com.br

 

Modo de Usar

  • Adicione as informações de sua conta Facebook ( nome de usuário e password), após isso arraste o botão Off para ON e aguarde abrir sua conexão com o Facebook. Se as informações da sua conta não estiverem corretas a lista a esquerda de seu software não carregará seus amigos do Facebook.
  • Right-Arrow-Icon-small
FacebookLogin
FacebookAccountInfoEN
  • inicie e arraste o botão Off para On na página do Skype, a primeira vez que você usa Friend Watchdog o Skype te pedirá para confirmar se o Friend Watchdog tem permissão para acessar os dados do Skype, clique em aceitar e assim sua lista de amigos se preencherá.

SkypeConnect

SkypeAllow

  • para fazer uma busca das estatísticas de um amigo de Facebook ou Skype, você deve somente clicar sobre o nome e os dados deste amigo compareceram sobre uma barra colorida na timeline a direita.
Timeline

 

AliasesApelidos

Existe um amigo no Facebook como também o mesmo no Skype? Então adicione um apelido para ele, assim quando você selecionar aquele amigo do Facebook o mesmo será selecionado na lista do Skype e vice-versa.

 

 

Last Updated on Saturday, 07 December 2013 11:19
 

Friend Watchdog software gratis per Facebook e Skype

E-mail Print PDF

Ora so cosa hai fatto lunedì scorso

Friend Watchdog controlla lo stato dei tuoi amici su Facebook e Skype, salva i cambiamenti di stato su server remoti, e ti permette di controllare quando i tuoi amici sono stati online nella settimana passata.
Nota che mandi aggiornamenti sugli status solo quando Friend Watchdog è aperto e attivo, e che gli aggiornamenti di stato inviati da utenti diversi sono mescolati, quindi più utenti ci sono di Friend Watchdog, e più questi utenti tengono attivo Friend Watchdog, più accurate saranno le statistiche di uso.

ScreenshotSmall

La tua privacy è al sicuro

Perchè dovresti fidarti di Friend Watchdog? Ecco perché:

  • il tuo account Facebook non è MAI inviato ai nostri server, è salvato in forma criptata solo sul tuo computer, ed è utilizzato per accedere al tuo account di Facebook solo dal tuo computer. Non c'è modo con cui possiamo accedere al tuo account di Facebook!
  • non sappiamo chi sono i tuoi amici su Facebook e Skype: i nomi dei tuoi amici sono salted e trasformati in un codice hash con SHA1, e solo il codice hash è inviato ai server, così che possiamo distinguere tra loro i nomi dei diversi amici ma non possiamo recuperare i nomi degli amici dai codici hash. Per esempio, un nome utente Facebook come \"stefanotommesani\" genera questo codice hash univoco: CDE381A6C6AD22E844263908022D40C4FE634C37. Questo codice hash identifica in modo unico il nome utente Facebook, ma non c'è modo di tornare dal codice hash indietro al nome utente Facebook, quindi i nomi dei tuoi amici rimangono privati, e solo tu puoi vederli
  • una volta che hai permesso a Friend Watchdog di collegarsi all'applicazione Skype attiva sul tuo PC (così da non dover neppure dire a Friend Watchdog qual'è la tua password Skype), Friend Watchdog legge solo la lista degli amici su Skype e il loro status online, e quelle sono le sole informazioni controllate, sempre usando codici hash così che la tua privacy è al sicuro
  • non è necessario registrarsi, non è necessario aprire un account, non si paga niente, basta solo scaricare il software e farlo girare sul proprio PC
Architecture
ClientRole

 

 

Come usarlo

  • aggiungi le informazioni sul tuo account Facebook (nome utente e password), quindi trascina l'interruttore da Off a On per aprire una connessione a Facebook. Se le informazioni dell'account sono corrette, la lista a sinistra sarà riempita con i tuoi amici su Facebook, ognuno con un'icona che ne mostra lo stato corrente.
Right-Arrow-Icon-small
FacebookLogin
FacebookAccountInfo
  • avvia Skype e trascina l'interruttore da Off a On nella pagina di Skype, la prima volta che usi Friend Watchdog, Skype ti chiederà di confermare che Friend Watchdog può accedere ai dati di Skype, clicca su Consenti accesso, e la lista sarà riempita con i tuoi amici su Skype

SkypeConnect

SkypeAllow

  • per fare una ricerca sulle statistiche di un amico su Facebook o Skype, devi solo cliccare sul suo nome, e le statistiche di uso compariranno come barre colorate nella timeline a destra.
Timeline

Per favore, tieni aperto Friend Watchdog sul tuo PC, perchè stai inviando gli aggiornamenti di stato solo quando Friend Watchdog è attivo. Se chiudi Friend Watchdog, nessun aggiornamento di stato viene inviato ai server, e non puoi aspettarti che le statistiche sui tuoi amici siano affidabili. Non c'è modo di accedere ai dati di Facebook e Skype dai nostri server, quindi se non sei tu a inviare gli aggiornamenti di stato, le informazioni contenute nei database saranno incomplete. Certo, gli altri utenti di Friend Watchdog potrebbero avere i tuoi stessi amici, quindi potresti avere dei risultati delle ricerche basati sugli aggiornamenti che loro hanno inviato, ma se buona parte degli utenti solo fanno ricerche senza inviare gli aggiornamenti di stato, la qualità dei risultati delle ricerche crollerà.

 

AliasesAlias

Un tuo amico è sia su Facebook che su Skype? Allora aggiungi un alias tra i suoi nomi su Facebook e Skype, così che quando selezioni quell'amico dalla lista su Facebook, lo stesso amico è automaticamente selezionato nella lista di Skype, e viceversa.

 

Requisiti di sistema

  • un PC Windows recente
  • Skype per Windows deve essere installato
  • un account Facebook

 

 

La tecnologia patetica chiamata SmartScreen inclusa in Windows 8 cercherà di bloccare l'installazione di Friend Watchdog. Puoi evitare questo problema scaricando la versione Zippata del file di installazione, ed estraendo il file di installazione Exe contenuto nel file Zip.

Ma tu puoi scegliere di cambiare la decisione di SmartScreen! Quando appare la schermata di SmartScreen, non cliccare su OK, ma clicca su "Ulteriori informazioni" (si, l'hanno reso perfino difficile da leggere, scegliendo un colore del testo quasi uguale a quello dello sfondo)

SmartScreen1

Adesso la schermata di SmartScreen cambierà, svelando un pulsante "Esegui comunque", e cliccando su questo pulsante potrai installare Friend Watchdog senza problemi. E no, non distruggerà il tuo PC!

SmartScreen2

Last Updated on Saturday, 07 December 2013 11:18
 

Comparing SSE2 and GPGPU C++ AMP

E-mail Print PDF

MedianValueThe temporal median algorithm compares the same pixel in consecutive images in a sequence, and returns the median value of the pixel, i.e. the pixel value that has the same number of lower and higher values (an easy way to visualize this is imaging all the pixel values in an array that gets sorted, then picking the value in the middle of the array). Depending on the time span of the sequence, and on the number of samples in the sequence, the temporal median filter can be useful for:

  • Smoothingfiltering out noise, especially brief noise impulses that last for less than samples/2 time
  • estimating a steady state of a scene, especially with a longer time span and an higher number of samples

When using the temporal median algorithm, every time a new image arrives, the oldest in the images' queue is discarded, the new one is added to the queue, then every single pixel is processed to obtain an output image that contains the median value of all images in the queue. The easy (and slow) method is copying all the values of the given pixel into a vector, sorting it then picking the middle value. This implementation will be named "reference" and it will be the yardstick for other implementations, as they must exactly match its results. Fortunately, for specific vector lengths (3, 5, 7 and 9 samples) there are pre-computed optimal sequences of min/max computation that give the median value with the absolute minimal number of computations. Even number of samples (4, 6 and 8 samples) can be transformed into the optimal 5, 7 and 9 samples cases by adding an empty 0 data element and adjusting the index of the median element.

Before analyzing how the basic and optimized algorithms are implemented, let's have a look at the contenders.

  • SSE2, Streaming SIMD Extensions 2, is one of the Intel SIMD (Single Instruction, Multiple Data) processor supplementary instruction sets first introduced by Intel with the initial version of the Pentium 4 in 2001. It extends the earlier SSE instruction set, and is intended to fully replace MMX. In this example, we will use the SSE2 C++ intrinsics, and let the Visual C++ compiler take care of SSE2 register allocation (due to the low registry pressure, the generated assembly code is optimal)
  • C++ Accelerated Massive Parallelism (C++ AMP) is a library implemented on DirectX 11 and an open specification from Microsoft for implementing data parallelism directly in C++. It is intended to make programming GPUs easy for the developer. Code that cannot be run on GPUs will fall back onto one or more CPUs instead and use SSE instructions. The Microsoft implementation is included in Visual C++ 2012, including debugger and profiler support.
Last Updated on Tuesday, 21 May 2013 18:22
 

Spidering Facebook public profiles with C++ and Boost

E-mail Print PDF

FBDirectory

Back in 2010, security researcher Ron Bowes wrote a Ruby script that downloads information from Facebook's user directory, a searchable index of public profile pages. The directory did not expose a user's entire profile and only exposed information that the user has allowed Facebook to make public. Bowes got the idea of spidering the data so that he could collect statistics about the most common names.

Now, how hard can it be to write such a software using C++ instead of Ruby? As Jeremy Clarkson was not interested in answering such a question, I decided to write a quick and simple spidering software in C++, and found out that while it is easy to build, these days it is not useful at all.

The main part of this project is parsing the HTML pages containing the Facebook directory. In a directory page, we can find both links to other directory pages and links to public users' profiles. Luckily, they are easy to distinguish using regular expressions, and the Boost C++ library supports Perl regular expression, so given the HTML source of a page, the following functions use regular expressions to extract useful links:

Last Updated on Friday, 17 May 2013 22:59
 

GPGPU performance on switchable graphics notebooks

E-mail Print PDF

switchable1

Many notebooks on the market feature switchable graphics, that is, a notebook with an Intel CPU with built-in HD Graphics technology, as well as an additional AMD HD Radeon GPU or nVidia GeForce GPU. During normal usage, just the Intel HD Graphics is enabled, as it consumes less power, and the high-performance AMD or nVidia GPU is enabled only when 3D intensive applications are started.

When developing a GPGPU application, in this example using C++ AMP with Microsoft Visual C++ 2012, you must check that the high-performance GPU is running your GPGPU kernels, or the resulting performance will be so poor, that you will wonder what the hype about GPGPU is all about. To ensure that the high-performance AMD GPU is running your code, right click on the desktop and click on Setup switchable graphics

 


Page 5 of 9
View Stefano Tommesani's profile on LinkedIn

Latest Articles

Necessary evil: testing private methods 29 January 2017, 21.41 Testing
Necessary evil: testing private methods
Some might say that testing private methods should be avoided because it means not testing the contract, that is the interface implemented by the class, but the internal implementation of the class itself. Still, not all
I am right and you are wrong 28 December 2016, 14.23 Web
I am right and you are wrong
Have you ever convinced anyone that disagreed with you about a deeply held belief? Better yet, have you changed your mind lately on an important topic after discussing with someone else that did not share your point of
How Commercial Insight changes R&D 06 November 2016, 01.21 Web
How Commercial Insight changes R&D
The CEB's Commercial Insight is based on three pillars: Be credible/relevant – Demonstrate an understanding of the customer’s world, substantiating claims with real-world evidence. Be frame-breaking – Disrupt the
Windows Forms smells funny, but... 07 April 2016, 15.38 Software
Windows Forms smells funny, but...
In the "2016 .NET Community Report" just released by Telerik, the answers to the question "What technology would you choose if building for Windows Desktop?" were as follows: So roughly half of new desktop developments would
Say goodbye to
It is not easy to monitor how our code behaves on a vast array of different machines. A myriad of different configurations can lead to errors that are difficult to reproduce and even more difficult to anticipate. And when the

Translate