Tuesday, March 28, 2017

Tic Tac Toe game made with Unity3D

Few years ago I was trying to get a job as a game developer. My test task was to make the Tic Tac Toe game using Unity3D game engine.

I didn't get the job but the game worked and looked good. Moreover my C# source code of Tic Tac Toe game is simple and well commented.

So I decided to publish the Tic-Tac-Toe project on GitHub.

Hope the sources of this game project for Unity3D will be a useful tutorial for some game developer or other person who want to learn the programming. Enjoy :)

Sunday, May 01, 2016

PHP scripts inside HTML on webserver with FCGId

There are lots of articles how to enable PHP scripts inside .html files using AddType and/or AddHandler directives in the Apache web-server configuration file.

But if you have the hosting with PHP engine is running as FCGId module, all these tutorials will not work or will issued downloading of the binary file instead of opening the HTML content in the web-browser :(

Here is a workaround that works for me, just modify .conf file of your website in the following way:

DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/xyz/public_html>
AddType application/x-httpd-php .html
AddHandler fcgid-script .html
FCGIWrapper /home/xyz/fcgi-bin/php5.fcgi .html
RemoveHandler .html

The "magic" comes in the last two lines. Enjoy :)

Sunday, April 10, 2016

Windows 10 - On Screen Tap Keyboard - Tapping Sound Location

Application and resources of "On-Screen Keyboard" for Windows 10 in Tabled Mode are located in "{Program Files}\Common Files\microsoft shared\ink" folder.

Executable file is TabTip.exe, so you can open the Tap Keyboard by pressing Win+R and typing "tabtip" in the command line.

Sound are played from WAVE resources in tabskb.dll library:

Location of Tap and Keyboard sounds in Windows system

There is strange bug with playing sequence of taping sound: the tap sound disappears at all or is played on low volume...

BTW, the option to enable or disable the tapping sound is not shown in the control panel for desktop and notebook PCs without touchscreen!

Also old-school "On-Screen Keyboard" in OSK.exe are still here :)

Turn off and turn on typing sound in On-Screen Keyboard

Press Win+R and тype "osk" as a command.

Friday, January 29, 2016

No Sound from Speaker but Headphones Work?

Some notebooks manufactured by ASUS (maybe by other vendors too) have strange issue with sound output. When all required drivers are installed and everything is properly set, you can not hear any sound from the internal speakers. Only plugged headphones or external audio works...

I was trying different tricks. Even soldered new audio jack connector to the motherboard of my ASUS U36SD notebook. I've spent lots of time, but found the solution! It is not a hardware issue. It is software/driver glitch :)

So if you have the same issue with your notebook: no sound from speakers, but headphones works. Here is the solution:

  1. Restart computer.
  2. Open BIOS/Setup console, by pressing F1, F2, F10 or Del key depending on your notebook model.
  3. Choose "Load Default Settings" option at the beginning.
  4. Then search for "Ring on Boot" or "Boot Sound Volume" option(s) and TURN IT OFF or set the volume level to ZERO!
  5. Save BIOS/Setup settings and restart computer again.

Now you can hear sound from the internal speaker of your notebook, laptop or tablet :)

Option to disable to get sound on ASUS notebook

Let me know if this workaround helps you and please specify the model of your notebook in comments. Thank you.

BTW, do you know about my Auto Mute software utility to make computer silent by default? :)

Wednesday, October 14, 2015

Skype freezes and hangs your system?

The best solution is uninstall the Skype and never use it again!

But if you still need Skype application to contact your siblings and co-workers, here is a useful trick

Screenshot of Task Manager how to set low priority for Skype.exe process

Sunday, October 11, 2015

New Design

Old blog template looks bad on huge monitors and there was no mobile version of website. So I fix it by applying some modern theme, hope you'll like it :)

Also I've add some advertising slots. You can purchase something at Alibaba.com and I'll get few bucks. Wish you good shopping ;)

Sunday, August 09, 2015

Wrap Headphones in the Right Way

Here is a lifehack to wrap headphones and earphones quickly, without any twisting:

Also you can use "devices" like this:

Friday, July 31, 2015

Touchpad Scrolling doesn't work on Windows 10?

If two or even single finger scrolling doesn't work after update to Windows 10 and your touchpad is manufactured by Synaptics company, download and install driver for touchpad version 16.2.x. Everything will work like a charm.

Synaptics driver for Touchpad that Scroll on Windows 10

Open this link Synaptic Touchpad Driver 16.2, supports scrolling on Windows 10, check "I agree" options on the bottom of page and press "Submit" button. The driver will be downloaded.

Friday, July 03, 2015

Cat Tomas

Tomas or Thomas is big funny cat!

Lives on Suvorova 14, Dnepropetrovsk, Ukraine.

Wednesday, April 15, 2015

How to assign reserved IP to existing Virtual Machine in Microsoft Azure Cloud

I don't know why Microsoft cannot offer a single click tool to add a permanent static IP to any Azure resource. Moreover I don't understand why it is not possible to assign a reserved IP address to an existing Virtual Machine :(

The only way (as of April 2015) to assign a permanent public IP address (reserved IP) to Virtual Machine in Microsoft Azure Cloud is the following:

  1. Stop Virtual Machine
  2. Make captured image with a custom name ("image-of-virtual-machine" for example)
  3. Manually write out all Endpoints (insane!)
  4. Delete VM and associated Cloud Service
  5. Create Reserved IP using Azure PowerShell
  6. Create a new Virtual Machine from the saved disk image
  7. Set back all Endpoints manually (insane again!)

If you have finished deleting of Virtual Machine at step 4, start Microsoft Azure PowerShell. Creating of Reserved IP is easy, just a single command call:

New-AzureReservedIP -ReservedIPName "reserved-ip-address-for-your-vm" -Label "SomeTextHere" -Location "North Europe"

To verify that Reserved IP was successfully created, call:


We've got Reserved IP, so it's time to create a new "old" Virtual Machine.

First of all call this command in Microsoft Azure PowerShell:


You'll get something like that:

SubscriptionId : 123456-e123-1234-a123-1234567890
SubscriptionName : BizSpark
Environment : AzureCloud
SupportedModes : AzureServiceManagement,AzureResourceManager
DefaultAccount : some@some.com
Accounts : { some@some.com }
IsDefault : True
IsCurrent : True
CurrentStorageAccountName :
TenantId : 00000000-0000-0000-0000-000000000000

If CurrentStorageAccountName is empty set it to the value you can find in Azure Management -> Storage.

Set-AzureSubscription -CurrentStorageAccountName "get_id_from_web_panel_something_like_portal23423ns43" -SubscriptionName "BizSpark"

Otherwise you've got strange errors on next steps, for example:

New-AzureVMConfig : Must specify MediaLocation or set a current storage account using Set-AzureSubscription.

Now we can create a new virtual machine from the saved image with reserved ip address. Lots of tutorials offer to call the following command (don't do it):

New-AzureVMConfig -Name "your-virtual-machine-name" -InstanceSize "Small" -ImageName "image-of-virtual-machine" | New-AzureVM -ServiceName "could-be-same-as-vm-name" -ReservedIPName "reserved-ip-address-for-your-vm" -Location "North Europe"

But in 99% you'll get error:

New-AzureVM : BadRequest: A ProvisioningConfigurationSet was not found in the ConfigurationSet collection of the virtual machine with name your-virtual-machine-name. When creating a virtual machine from an image, ProvisioningConfiguration Set must be specified.

So add Add-AzureProvisioningConfig section into the command (call this):

New-AzureVMConfig -Name "your-virtual-machine-name" -InstanceSize "Small" -ImageName "image-of-virtual-machine" | Add-AzureProvisioningConfig -Linux | New-AzureVM -ServiceName "could-be-same-as-vm-name" -ReservedIPName "reserved-ip-address-for-your-vm" -Location "North Europe"

BTW, don't set any LinuxUser/AdminUsername or Password if you are creating Virtual Machine from disk image, otherwise you've got an error:

New-AzureVM : BadRequest: No Configuration Set should be specified while using a VMImage with a specialized OS Disk Configuration.

Almost done, you'll get a new virtual machine with the permanent public IP running in a few minutes.

Don't forget to add all endpoints! I prefer to do that using web interface. Also update internal IP address for all services on the Virtual Machine. New VM has a different IP address, either public or internal one.

Hope that helps and there were no problems on the Azure side while you are following these instructions :)

Why is it so hard?!