Blog

No SSL while collecting leads emails? Get ready to pay (152 federal law)

Couple of days ago, while deploying the corporate website, I’ve encountered the issue with HTTPS – the self-signed certificate was appearing as invalid in Chrome and it certainly did not work well for the user experience. So I had to dig deeper in this topic, keeping in mind that the HTTPS is the essential thing for the compliance with Russian federal laws that regulate the processing of personal data. The problem is that, for example, half of first googled web-sites of various web-development companies, at least in the city of Irkutsk, Russia, do not have the HTTPS, so this is potential risk for the management of these companies – any time the company can receive the paper from the prosecutor and get pretty big fines and blocking of the web-site by Roskomnadzor. Imagine what it will be for company that gets clients relying on contextual ads and organic search.

So, what do we got? We need to run the HTTPS for a corporate website of the small company with lowest possible cost that will be compliant with the law and web-browsers.

Read more

1sass.exe on Windows Server 2008 R2

I want to tell the story of the investigation of the 1sass.exe virus that was living on one of Windows 2008 R2 Servers that I am responsible for (actually it can have any name that resembles the name of any Windows system process). It was discovered when the the CPU loads became up to 100% because of it. The antivirus did not find it as a malware, the killing of it in the Task Manager did not work, so there are several solutions below to fix it manually:

The bad, lazy way

If you want to fix the consequences of it, then the basic blocking of the internet access via the firewall will do it. In my case the executable was located in the C:\Windows\Fonts folder, so two rules (Inbound and Outbound) that block its internet access (create rules for specific program, not TCP port or whatever) will lower the CPU consumption by the 1sass.exe down to 0%.

If you feel uncomfortable knowing that the tricky executable can be crushing your system while you are asleep, then we should go further:

Read more

Debugging NodeJS application in Windows

This will be the first post in the category Black book, which will stand for common errors that I make and do not want to repeat. This idea came from the great book on IT management Making Things Happen.

So, debugging the Node application – usually after the NodeJS is setup, developers start working on theirs NodeJS projects using the standard console output. For example, I want to control what number I get after the function call

function getTheNumber(inputNumber) {
  return (inputNumber * 5);
}
console.log('Result: ' + getTheNumber(10));

The output will look like this

C:\Users\alexshumilov\blog\test>node test.js
50
C:\Users\alexshumilov\blog\test>

But what if you need to debug some complex logic, with all pros and cons of the JavaScript? What if you need the debugger like in desktop application developement IDE’s, with breakpoints, scope variables view etc.?

Read more

XPath to XML with PHP

Sometimes the development of applications that deal with the XML comes to the point when the developer has to build XML document using only XPath location of elements and theirs values. For such cases the XPath to XML processor was written, so I hope it will help somebody in converting the XPath sets into documents. It is very light and performs basic document construction without any validations (we assume that no XML Schema is available).

You can checkout the XPath to XML processor at https://github.com/sashuk/xpathtoxml. Below the example of input array (in JSON format, so you can just do the json_decode(INPUTSTRING, true); over it) and the resulting output (in XML) are listed.

Read more

JavaScript Genetic Algorithm example

Genetic algorithm – In the computer science field of artificial intelligence, a genetic algorithm (GA) is a search heuristic that mimics the process of natural evolution. This heuristic (also sometimes called a metaheuristic) is routinely used to generate useful solutions to optimization and search problems.

Genetic algorithms belong to the larger class of evolutionary algorithms (EA), which generate solutions to optimization problems using techniques inspired by natural evolution, such as inheritance, mutation, selection, and crossover.

There is a simple demonstration of this algorithm below

Read more

Deploying Windows Server 2008 R2 on VMware with Openstack

I would like to share my experience of deploying virtual machines (from now on – VM’s) based on Windows Server 2008 R2 x64 in Openstack environment.

First I would like to describe the situation why I had to use Openstack for deployment of Windows-based VM’s. Currently the project for distributed calculations using OGC WPS standard is being developed in

ISDCT SB RAS, Irkutsk, so there is a need for a web-application, which will allow users to create VPS in one click – then they install required WPS service on they freshly created VPS and join our project. Users enter the name of the VM and choose the operation system. Currently we offer Ubuntu 14.04 LTS and Windows Server 2008 R2. When user creates his own VPS, he receives public IP and root credentials of the VM.

 So, what do we have – host with VMware ESXi controlled by vCenter, two VM’s for Openstack compute and controller nodes. In this guide we will cover full procedure how to create Windows VM in vCenter, then we will convert it to the Openstack image in Glance and launch it as ready-to-use VM in one click. Probably, this guide can be applied to any of the Windows system, not only for Windows 7-based systems.

Read more

Operation system not found Error VMware Openstack

If you keep getting the “Operation system not found” error while deploying images in Openstack on ESX/ESXi host, it is probably because of you did not specify the the “vmware_ostype” parameter while creating/importing image – otherwise, it is not going to be properly recognized by VMware.

Example:

glance image-create –name=cirros –disk-format=vmdk –property vmware_adaptertype=”ide” –property vmware_disktype=”sparse” –is-public=True –property vmware_ostype=”otherLinux64Guest” –container-format=bare < cirros-0.3.2-x86_64-disk.vmdk

Complete list of possible values you can find at https://www.vmware.com/support/developer/vc-sdk/visdk25pubs/ReferenceGuide/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html