Saturday, October 17, 2020

[DevOps] NodeJS installation script for hot update

Hello, this is script is needed for the hot switch versions of Node.js on machine. You can have two installed different versions of Node.js. For example, it can be v12 and v14.

So is possible to switch on a different version using only one command. Currently, I work only on Linux based (and macOS as a client system) systems and code will be targeted on these systems

#!/bin/sh
# Install Node.js 14.2.0
sudo su
yum install -y git
curl https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
source ~/.bashrc
nvm install v14.13.0
# Relevant for some OSes
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
For getting a list of all installed nodes, you can use
#!/bin/sh
nvm ls #list all nodes
nvm use <version># switch to specific version
Sources:
  1. More information you can get on official repo
  2. Or on another site (first link in google)

Friday, April 14, 2017

Deleting file from history of git-repository(all commites)

First:
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch ' \
--prune-empty --tag-name-filter cat -- --all
Replace <myfile> on your file or directory(<dir>/*)

Next:
git push origin --force --all
git push origin --force --tags
Sometimes you must delete all tags

Wednesday, April 5, 2017

Interected materials from GDC 2016-2017

NGTech into Android. Building dependencies for NGTech(RU)

В прошлом, я уже предпринимал попытки портировать движок на Android, поэтому большая часть кода была уже переведена, за исключением подсистем физики, звука, окна и подсистемы потоков, но в этот раз я настроен более чем серьезно.  Тогда даже был получен рабочий билд, который рисовал картинку на экране, и остальные подсистемы работали судя по тестам, но прям поиграть было нельзя.

Сейчас же хочется получить полноценный билд. Поэтому 3 дня назад я начал полноценное портирование, перед этим произведя код-ревью части компонентов, фиксинга части горячих багов и подготовка соответствующей инфраструктуры. За эти дни я активировал весь отключенный функционал, кроме собственно указанных подсистем.

Проблема отсутствия поддержки необходимых функций для функционирования файберов в тред библиотке будет решаться методом молотка - будет внедрена их ASM реализация. Притом примечателен тот факт, что их функционал еще был реализован в 2012 году, но они так и не попали в финальную сборку Android. Напомню, что с момента 2012 года, прошло уже 3 мажорные версии.

Т.к большинство зависимостей движка уже собрано, осталось собственно:

1) OpenAL
2) PhysX
3) Devil

Если со вторым все ясно - там скорее всего все соберется из коробки, ибо NVidia же, сценариев под VS конечно нету, но никто не отменял командную строку
С первым все гораздо сложнее - в интернете пишут постоянно, что необходимо использовать специальную версию openal(ссылка будет приложена ниже), но на практике структура у OpenAL такая, что нужные участки кода можно включать макросами, поэтому нам надо всего лишь получить правильный config.h под нашу платформу, во всяком случае я надеюсь этим дело и ограничится. Иначе придется лезть diff'ом и искать изменения, это немного усложняет сам процесс, ибо у меня используется мало того, что более новая версия чем все тут представленные, так еще и своя ветка, в которой я попытался избавиться от данной структуры(что бы можно было одновременно переключаться между типами API).
С третьим ситуация осложняется следующим образом - банально неизвестно собирается ли она(там файлов много, а выборочно я просто устану компилировать - поэтому просто отложим это сейчас).

По итогам сегодняшнего дня и сегодняшней ночи... осталось только собрать эти библиотеки и слинковать это все добро. - Ну или найти бинарный вариант OpenAL Soft, но это уже завтра все.
Оконная система будет реализована самостоятельно(надо же учиться работать и без кроссплатформенных либ) - вариант с SDL пока не рассматривается, т.к еще и мало времени. Инпут будет осуществляться через NVGamepadLib - я все равно ее собирался внедрять.

В общем завтра я буду плотно разбираться с этим вопросом.

Пока уделяю по максимуму времени, ибо в итоге не хочется оказаться ... ну вы поняли


Да и добить это уже надо



Ссылки по работе с OpenAL Soft Android:
1
2
3
4
5
6
7
8
BinRepo?

Ссылки по Fibers:
Aros/Platforms/Support for *nix

Boost.Context
boost context class
LIGHTWEIGHT COOPERATIVE MULTITASKING WITH BOOST.CONTEXT
Асинхронность: назад в будущее
FiberTaskingLib

Tuesday, February 7, 2017

Useful extenssioins for Visual Studio


SQL
Entity Visualizer – Entity Framework Debugger Visualizer to display SQL source code generated by Entity Framework.
Entity Developer for LINQ to SQL – is a powerful ORM designer – modeling and code generation tool for LINQ to SQL.

C# WPF
WPF Office 2010 Silver Theme – Office 2010 theme for official Microsoft WPF controls

Time Tracking
VSJira – adds tools to the IDE to interact with JIRA servers.

Scrum Sprint Monitor  – Scrum Sprint Monitor provides the Agile team with hands-off, always up-to-date status of the current Sprint, both at the individual and team level.

Code Style
Indent Guides  – Adds vertical lines at each indent level
Editor Guidelines – Adds vertical lines at each indent level
Indent Guides Spell Checker – Adds vertical lines at each indent level

Monday, January 23, 2017

PBR Impmentation in NGTech

Я не хотел публиковать свой черновик, но надо сделать его открытым

Real shading in UE4
https://nickgalko.blogspot.ru/2016/07/modern-render-techniques.html
http://diaryofagraphicsprogrammer.blogspot.ru/
http://joker-ru.livejournal.com/

http://blog.selfshadow.com/publications/s2013-shading-course/#course_content
https://www.unrealengine.com/blog/physically-based-shading-on-mobile
http://blog.selfshadow.com/publications/s2013-shading-course/

https://gist.github.com/galek