Monday, December 19, 2016

Contemporary JavaScript programming

Some core tenets of contemporary JavaScript coding are demonstrated in this article. Things like Object Oriented Programming in combination with jQuery usage.

Tuesday, December 13, 2016

Are SSL certs really needed?

When I go to a well known site like or my main trust factor is a correctly spelled domain. On top of that, if all that is needed to establish a secure connection is a key pair generated by the correctly addressed domain what is the added value of third party's signature on say Google's public key?

Perhaps the only valid defense is they guard against a compromised DNS server or router but it seems kinda overkill especially when nobody is really guarding the integrity of your computer and browser software,

Sure, they do provide added security, but my point is whether it really addresses the weakest link in this connection. Can anyone hack your ISP's DNS or Router? It is pretty hard and rare these days. The weakest link however, by far, is your own browser where you could be seeing a fake address and a fake green light. Now, a virus that can do that is not that hard to build and we all know there are millions upon millions of people infected with computer viruses right now. How many are using a hacked DNS or a compromised router?

Monday, December 5, 2016

Rootless Android Screen Mirroring

Free seamless Android remote control (via screen mirroring) without rooting requirement. Special hosting app for Samsung smartphones - supports my S7 edge perfectly.

Saturday, September 17, 2016

Emulating user interaction with browsers (click-bots)

There are a number of ways this can be done and they vary in complexity and effectiveness significantly.

  1. You can control/drive any browser via a browser extension registered online (e.g. chrome store) and installed the usual way.
    • Problem 1: extension needs to be approved and signed by the browser owners
    • Problem 2: you need an extension for each browser you want to control
  2. Chrome specifically can be controlled/driven via DevTools Remoting which is also how Selenium does it with its ChromeDriver. Ref: Chrome Debugger Protocol
    • Problem: Only works with Chrome
  3. Set the browser into extension development mode by programmatically manipulating its configuration files and add an unsigned extension for controlling/driving the browser either by manipulating the browser configuration files and/or Windows registry or by scripting a hidden drag-and-drop operation of the extension file onto the browser window while it displays the appropriate extension installation page.
    • Problem: Although very doable implementation, especially for both the two major browsers out there (Chrome and FF) is on the hard side.
  4. Drive/control the browser, or any other Window really, via the Win32 SendInput() function. For this to work you need to defeat the Operating System's protection against click-bots which restricts window focus giving to non-programmatic GUI interactions (i.e. actions directly performed by a real user like clicking on a real mouse device). There is a diminishing repertoire of ways to do that but there are still ways to do it even on Windows 10 (e.g. DLL injection and dialog launch from within the hijacked process). Interactions can be accomplished either via keystroke sequences sent (with the correct timing) to the browser Window instance or via relative/absolute coordinates clicks (hard to claculate the exact spot given different window/screen sizes but still doable). Can work in all cases and for all browsers as it does not depend on other software or auxiliary APIs that may or may not be available.
    • Problem. Hardest of all four to do especially because of the window focus protection defeating requirement but also because of the complications related to correctly calculating coordinates where clicks (and not keystrokes) are absolutely needed.

Tuesday, August 16, 2016

Join Payoneer and free yourselves from money's geographical shackles

I use Payoneer to receive direct payments by my clients no matter where I am in the world - via Payoneer issued prepaid Mastercard or transfer to my bank account. Join and enjoy the full benefits that the Internet age can deliver to you.

Saturday, June 25, 2016

VSTO general installer error 8007007E

If you are getting a "VSTO general installer error" with an error code of 0x8007007E while trying to install A VSTO Office add-in a possible reason is absence of the VSTO runtime.

Download the VSTO Runtime here:

Obviously, you need to make sure your deployment VSTO installer detects/installs the VSTO Runtime before trying to install the add-in or you may have this issue popping up here and there throughout your installation base.

Saturday, April 9, 2016

Regarding YouTube video monetization

Money from youtube video monetization is not that great. If, based on the article below, we take an average of 3.5 USD per thousand views that gives us 3,500 USD per million views.

Major music stars do not have more than an average of 50 million views per major hit. So someone like that would have earned about 200K USD over years of the hit being on youtube. That is not much considering the popularity of the media.

So, what are the chances of making significant money out of youtube as an individual video producer/uploader? Slim, very slim I would say.


Some testimony here:

Wednesday, January 20, 2016

Bye bye Western Union transfers via Banco do Brasil

Bye bye Western Union transfers via Banco do Brasil's Internet banking. Basically the Brazilian crisis is forcing the government to try and limit the money trickling out of the country. Of course protectionism is exactly what has made Brazil such a failure of a country for centuries but obviously people there don't get it.

Here is what the bank replied to my enquiry:


Em atenção à sua manifestação registrada no Serviço de Atendimento ao Consumidor do Banco do Brasil, protocolo número 40483226, informamos que devido a alteração da regulamentação tributária, as remessas para o exterior, via canais de autoatendimento, ficam limitadas a ordens do tipo Swift para constituição de disponibilidade no exterior (transferência de mesma titularidade), sobre as quais não incide imposto de renda. As demais ordens deverão ser realizadas através de uma agência do Banco do Brasil. Ressaltamos que essas remessas estarão sujeitas à incidência de Imposto de Renda Retido na Fonte e demais encargos, conforme legislação vigente e tabela de tarifas do Banco do Brasil.

Prestadas essas informações, reafirmamos nosso compromisso com o melhor atendimento e permanecemos à disposição para quaisquer outros esclarecimentos.

Conheça os nossos canais de atendimento. Copie e cole o seguinte endereço no seu navegador:

Equipe BB Atende"

EDIT (22/03/2016): The service is back online alas offering slightly different options. Works fine though! :)