вторник, 7 августа 2018 г.

Simbicon Project - splitting it up to client and server

Hi,
I want to tell you about one of projects I've done long time ago. This is fork of Simbicon project. Simbicon project itself is a good example of biped simulation framework, and my fork is to try to make it a client-server type of simulation.

Originally the project is a standalone C++ application, that runs in super-loop, where
1. New state is calculated, applied forces are updated
2. Physical model is updated, new reaction forces are calculated, image is rendered

My idea was to split 1) and 2) into separate applications, that will run in parallel and communicate over network.

And this is what I got:
https://github.com/kantengri/simbicon

пятница, 20 июля 2018 г.

Ubuntu uefi and legacy boot

simple way to add legacy boot on UEFI enabled Ubuntu system:
just run sudo apt-get install grub-pc
For those, who failed to install fresh VMWare Workstation because old installation failed to uninstall.
In that case the message usually appears:

"the older version of vmware workstation cannot be removed"

Below is universal recipe to handle the errors like that:

1. Try to install new version. If it fails look for the error in installation log file:

see Location of VMware View log files (1027744)

2. Examine found error, if it says cannot find msi for product, find and remove all related entries for this in registry.

3. goto 1

That's all ! It works !

пятница, 12 мая 2017 г.

Waking up remote computer over NAT with TCP SYN WOL magic packet

       Waking up remote computer  appears to be a simple task that may be done sending usual WOL Magic packet inside UDP packet over LAN. Things become more complicated if the remote computer is behind NAT. Obvious approach in that case would be to add another NAT rule to pass WOL UDP packet. But sometimes it is not possible if for example you do not have enough permissions or access to configure NAT. However it still becomes possible if there is already a NAT rule to pass for example RDP connection. It is possible to craft custom TCP SYN packet with Magic packet inside that can pass through NAT as a TCP connection initiation. So if you have working RDP connection (or any allowed other TCP connection) you may wake up remote computer !

      Let see  the example below :
 
Network Topology
We have a Remote PC behind NAT that is accessed via OpenVPN from Local PC.
WOL tool is a software that generates WOL TCP packet.

The structure of the packet is as below:


For working project look at https://github.com/kantengri/wol_tcp

To run the tool:
raw_socket -i 192.168.10.6 -s 50140 -v 192.168.10.1 -m 00:ff:c4:76:49:72 -w bc:ee:7b:9a:6e:b8 -p 510

Don't forget to install WinPcap beacuse Windows doesn't allow crafting RAW TCP packets normally.

UPDATE: doesn't work unfortunately, server returns ICMP 3 Host Unreachable.

среда, 26 октября 2016 г.

Не самый простой способ переноса windows 7 на SSD

Недавно столкнулся с проблемой переноса винды на SSD. Везде пишут что нужно сначала устаонвить какую-то левую прогу которая может перенести все данные. Расскажу про способ где никакой проги не нужно. Винду можно переместить простым копированием ! Ниже порядок действий :

1. устанавливаем SSD, желательно на порт SATA0, он обычно самый быстрый, 6Gbs. Стартуем комп, запускается виндоус, там форматируем SSD на NTFS том целиком.
2. Копируем на вновь размеченный диск следующие файлы :
  • Program Files
  • Program Files (x86)
  •     - програм файлы важно именно скопровать а не создать ссылки, т.к. многие дотнетовские проги работать через ссылки не будут.
  • ProgramData - можно лиюо скопировать либо создать ссылку. Со ссылкой на старый диск оно не будет занимать драгоценное место на SSD.
  • Users   - лучше скопировать
  • Windows
  • Boot
  • bootmgr - это файл

И запомните назначенную букву диска для SSD.
Далее делаем как описано здесь http://www.oszone.net/10752/move_Windows7_boot_files :

Перезагружаемся в безопасный режим в консоль восстановления, в ней набираем :

DISKPART
list disk
sel disk 1
list partition
sel part 1
active
exit

c:\bootsect /nt60 All /force
bcdboot %Windir% /l ru-Ru /s С:
bcdedit /store C:\boot\bcd /set {bootmgr} device partition=С:
bcdedit /store C:\boot\bcd /set {current} device partition=С:
bcdedit /store C:\boot\bcd /set {current} osdevice partition=С:

Перезагружаемся, жмем F8, указываем БИОС загрузиться c SSD. Если винда не смогда загрузить профиль пользователя, значит буква системного диска установлена неправильно в реестре. Меняем вот так : https://support.microsoft.com/ru-ru/kb/223188
Запускаем Regedit,
заходим в HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices,
переименовываем \DosDevices\C: в \DosDevices\Z:, \DosDevices\D: в \DosDevices\C:, \DosDevices\Z: в \DosDevices\D:, где D: изначально SSD диск.

После указанных манипуляций винда стартует с SSD и даже не замечает что у нее новый системный диск !

вторник, 22 декабря 2015 г.

Status update

I want to share my preliminary results in implementing custom 3D physics-based simulator in Java with JMonkeyEngine framework. The simulator now can:
- read STL files into a mesh
- parse SDF (Gazebosim) robot description and display it
- added collision primitives

Todo : add joints, remote control protocol etc
Sources are at Github:  https://github.com/kantengri/gazebo-java-control