воскресенье, 27 октября 2019 г.

Портирование проекта c qt4 на qt5

В pro-файл легче всего добавить условную операцию, вводящую разные настройки в зависимости от версии Qt. Это можно сделать в pro-файле при помощи следующих операторов (test functions): equals , greaterThanlessThan. Дополнительно, устанавливаем препроцессорную переменную окружения, которую в исходном коде можно будет обрабатывать при помощи #ifdef HAVE_QT5  и #if defined(HAVE_QT5) (отсюда).Мне кажется, легче всего так:

equals(QT_MAJOR_VERSION, 5){
  DEFINES+=HAVE_QT5
  QT += widgets
}
equals(QT_MAJOR_VERSION, 4) {
  QT += gui
}


Источники:
1) https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5
2) https://doc.qt.io/qt-5/embedded-linux.html
3) https://www.linux.org.ru/forum/development/9500040
4) https://doc.qt.io/qt-5/qtquick-porting-qt5.html
5) https://habr.com/ru/post/164721/
6) http://jeniapalto.blogspot.com/2015/06/qt-4x-qt5.html
7) https://doc.qt.io/qt-5/qscriptengine.html
8) https://doc.qt.io/qt-5/qqmlengine.html
9) http://stackoverflow.com/questions/18663331/how-to-check-the-selected-version-of-qt-in-a-pro-file
10) http://doc.qt.io/qt-5/qmake-test-function-reference.html


четверг, 10 октября 2019 г.

Расшаривание на ноуте с виндой 10 wifi-инета по ethernet-соединению

Мы на телефоне сделали wifi точку доступа, хотим подключиться с ноута к ней и по ethernet-кабелю раздать инет подключенному устройству с линуксом. На ноуте стоит винда 10 с нативным американским языком.

1. На ноуте у имеющегося ethernet-соединения выставляем следующие параметры ip4:
1) статическое получение ip;
2) ip4 address - 192.168.1.1;
3) mask - 255.255.255.0;
4) отключаем расшаривание сети по этому адаптеру на вкладке sharing.

2. Настраиваем, если ещё не настроили, подключение по wifi ноута к телефону. Там будет стоять, скорее всего, ip4 подключение и динамическое получение адреса от dhcp-сервера, который работает на телефоне. На этом адаптере во вкладке sharing тоже отключаем расшаривание.

3. Выделяем во вкладке "Network connections" оба подключения мышкой, нажирмаем правую клавишу и выбираем "Bridge connection". Создается виртуальный "Network Bridge".

4. На линукс-устройстве вводим следующие параметры ip4:
1) статическое получение ip;
2) ip4 address - 192.168.1.2;
3) mask - 255.255.255.0;
4) gateway - 192.168.1.1;
5) dns - 192.168.1.1.

Источники:
1) https://answers.microsoft.com/en-us/windows/forum/windows_10-networking/internet-connection-sharing-in-windows-10/f6dcac4b-5203-4c98-8cf2-dcac86d98fb9
2) https://superuser.com/questions/563291/share-wi-fi-connection-over-ethernet

среда, 9 октября 2019 г.

Уроки по unreal engine для создания игр в стиле tps, quest

Manual:
1) Learn Unreal Engine for Blender Users - UE4 Beginner Tutorial https://www.youtube.com/watch?v=3jM_VLzRqlE&ab_channel=UnrealSensei

Level design:
1) Level Design Timelapse in Unreal Engine using Megascans | Myrkur Games https://www.youtube.com/watch?v=L430pv3pCac&ab_channel=MyrkurGames
2) Brushify Bootcamp - Landscape sculpting and level design in Unreal Engine https://www.youtube.com/watch?v=MYqvBvR5LBQ&ab_channel=JoeGarth
3) A Guided Tour of Gameplay Abilities | Inside Unreal https://www.youtube.com/watch?v=YvXvWa6vbAA&ab_channel=UnrealEngine

Официальные уроки: https://docs.unrealengine.com/en-US/Resources/index.html

ue4:
1) Общий туториал по движку от установки до игры (гипертекст): https://habr.com/ru/post/344394/
2) UE4 для Unity-разработчиков https://habr.com/ru/companies/vk/articles/327520/
3) Unreal против Unity: на чем лучше разрабатывать мобильные игры? https://habr.com/ru/companies/piter/articles/269415/
4) Итак, вы решили перейти с Unity на Unreal Engine https://habr.com/ru/articles/762076/
5) Создание Survival Horror в стиле RE2 на Unreal Engine и С++. Базовая настройка и импорт ассетов https://habr.com/ru/articles/675906/

Unreal Engine: QuickStart в Qt Creator под Arch Linux https://habr.com/ru/post/341756/

Уроки по созданию первой игры:
1) канал Devslopes (бесплатно доступна небольшая серия видеоуроков) https://www.youtube.com/watch?v=QJpfLkEsoek
2) канал Game Dev Academy (бесплатно доступна небольшая серия видеоуроков)
https://www.youtube.com/watch?v=a0qNO6_xPx0
3) канал Гоша Дударь (серия уроков) https://www.youtube.com/playlist?list=PL0lO_mIqDDFWoBtWz06nf9TAbI0LVOoQi
4) канал Unreal Engine Rus https://www.youtube.com/watch?v=qesvyI7_bgY
5) канал Virtus Learning Hub / Creative Tutorials  https://www.youtube.com/watch?v=1M3S3eiJK5I

Уроки по созданию tps:
1) Unreal Engine https://www.youtube.com/watch?v=hRO82u1phyw
2) EvilEyeGames (playlist) https://www.youtube.com/playlist?list=PL4wXBehVu_5-SlRrhdvpd7RlczgJkfftG
3) MoCap Online https://www.youtube.com/watch?v=4KNqElZ6Sm8
4) Sg Unreal Creation https://www.youtube.com/watch?v=QrqKTN-ORzI
5) Medel Design https://www.youtube.com/watch?v=iZnv1FL0ux8
6) https://forums.unrealengine.com/community/community-content-tools-and-tutorials/64093-building-a-third-person-shooter
7) http://shootertutorial.com/tutorials/

Уроки по системы диалогов на unreal engine:
1) https://youtu.be/RBq-RqzhAL4
2) https://youtu.be/k2zC9pg6Eno
3) Создание редактора квестов и диалогов для Unreal engine: Часть 1 описание плагина https://habr.com/ru/post/318366/


Stepik:
1) Создание игр и приложений на Unreal Engine https://stepik.org/course/87797/syllabus
2) Введение в С++. Начало работы с Unreal Engine 4 https://stepik.org/course/92428/syllabus

Метаобъекты в Qt

вторник, 8 октября 2019 г.

unity3d third person shooter

Elder scroll, Dark Souls like:

Протагонист с оружием и скриптинг антигероя (tps):

Climbing the wall, parkour system:
1) (!) How to make Parkour system(VAULTING)in Unity and Playmaker 
3) [Unity 5] Tutorial: How to make a climbing system like in Assassins Creed in Unity https://www.youtube.com/playlist?list=PL47vwJBRNh1xzEvcLvXoJvjLcr1h0j-1O

Fighting system like in Assassin`s Creed:


Цилиндр (npc) следует за главным героем (Follow AI):
5) Использование NavMesh для навигации ИИ в Unity https://habr.com/ru/articles/646039/

Follow AI (youtube):
2) (!)Unity 3D Simple Enemy Follow AI Script for NavMeshAgent Getting Started for Enemy AI or Behaviour https://www.youtube.com/watch?v=omQ_o10WD_g&ab_channel=MayankSanghvi
3) Unity 3D Simple Enemy Follow AI Script Without NavMeshAgent https://www.youtube.com/watch?v=drTcfhULpLA&ab_channel=MayankSanghvi

Follow AI (forum):



Commandos, Diablo like:
2) Basic Diablo-like Light Radius in Unity3D https://www.youtube.com/watch?v=VlP9Aeo4xqU&ab_channel=Tudvari



Официальные уроки: https://unity3d.com/ru/learn/tutorials

Уроки по unity3d для начинающих (gui, prefab etc):
1) https://unity3d.com/ru/learn/tutorials/s/interactive-tutorials
2) https://unity3d.com/ru/learn/tutorials/s/unity-playground

Уроки по созданию трехмерных игр в Unity3D (платный asset):
1) https://unity3d.com/ru/learn/tutorials/s/3d-game-kit

habr:
1) Создание шутера с LeoECS. Часть 1 https://habr.com/ru/post/573028/
2) Создание шутера с LeoECS. Часть 2 https://habr.com/ru/post/578054/

Концепция:
1) погоня за мухой (гэг)
2) комната с арт-объектами из пустых по содержанию, но формально типичных совковых объявлений "в соответствии с законом росрегулирования искусства смотреть на белую стену строжайше запрещено, можно только с разрешения сторожа и т.д."
3) локация с открыпанием дома, который постепенно засыпает песок (Кобо Абэ "Женщина в песках")
4) вид fps, игрок-ёжик идёт в тумане, ищет грибы, может наткнуться на дерево или кого-то ещё;
5) вид tps, игрок должен добежать до финиша, сверху падают большие кубы, выростают горы;
6) сделать компилятор с языка sarte, собранный бинарник представляет из себя локацию из "Тошноты" или "Слов";
7) галерея, в которой при начальной подгрузке генерятся полотна абстрактной живописи;
8) бросание шарика в стакан (на телефоне)
9) механика из сделанной игры на английском: буква в изометрии пытается преодолеть препятствия, задействован микрофон - при назывании звука буква на экране трансформируется и может легче преодолеть нужное препятствие, надо сделать на русском
10) раскрыть метафору холивара и устроить rts, например, поклонников windows и linux
11) регулирование политики через законодательный последовательный беспредел (диктатуры Гитлера, Сталина, законы госдумы РФ 2011-2022 и т.д.)

Unity3d ide problems:

I need to start Unity with an environment variable(s) set, how can I do that? 

Brackeys:

понедельник, 7 октября 2019 г.

Внутреннее устройство stl-контейнеров и алгоритмическая сложность

1) Многообразие связных списков https://habr.com/ru/articles/814955/

Структуры данных (data structures):
1) Кольцевой буфер
2) Calendar queue
3) Двусторонняя очередь (deque)
4) Куча
5) B-tree
6) Двоичное дерево
8) Двоичная куча (английская полнее https://en.wikipedia.org/wiki/Binary_heap,
иитмо https://neerc.ifmo.ru/, визуализация https://www.cs.usfca.edu/~galles/visualization/Heap.html)
12) Сжатое префиксное дерево (cтатья на английском полнее https://en.wikipedia.org/wiki/Radix_tree)
13) Hash table
14) Фильтр Блума 

(!)Устройство бинарных деревьев поиска:
- вики:
1) Двоичное дерево поиска
- обзорные статьи:
1) https://tproger.ru/translations/binary-search-tree-for-beginners/
2) Бинарные деревья поиска и рекурсия – это просто https://habr.com/ru/post/267855/
3) Структуры данных: бинарные деревья. Часть 1 https://habr.com/ru/post/65617/
- реализация:
2) Основы B-деревьев (внутреннее устройство БД) 
3) Лекции 13-14: деревья поиска, почти сбалансированные деревья.
Красно-черные деревья и реализация множества на их основе http://mech.math.msu.su/~vvb/2course/Borisenko/lecTree.html

Префиксное дерево:
1) Префиксное дерево (cтатья на английском полнее https://en.wikipedia.org/wiki/Trie)
2) Сжатое префиксное дерево (cтатья на английском полнее https://en.wikipedia.org/wiki/Radix_tree)
3) Чем хороши префиксные деревья? https://otus.ru/nest/post/676/
4) Trie, или нагруженное дерево https://habr.com/ru/post/111874/
5) Сжатые префиксные деревья https://habr.com/ru/post/151421/
6) K-d дерево
7) Анатомия KD-Деревьев https://habr.com/ru/post/312882/
8) К-d деревья и перечисление точек в произвольном прямоугольнике (статика)
9) http://www.ray-tracing.ru/articles181.html
10) KD-деревья и R-деревья https://fat-crocodile.livejournal.com/156564.html

Реализация динамического массива на си c автоматическим расширением размера выделенной памяти в случае необходимости:
1) Аналог std::vector из C++11 на чистом C89 и как я его писал https://habr.com/ru/post/324210/
2) https://prog-cpp.ru/c-alloc/

Реализации односвязного списка на си:
1) https://prog-cpp.ru/data-ols/
2) http://acm.mipt.ru/twiki/bin/view/Cintro/SimpleList

Реализация очереди с приоритетами на базе двоичной кучи, реализованной через статический массив:
1) Двоичная куча (английская полнее https://en.wikipedia.org/wiki/Binary_heap,
иитмо https://neerc.ifmo.ru/)
2) https://ru.stackoverflow.com/
3) https://www.geeksforgeeks.org/building-heap-from-array/

Источники:
1) Qt Container Classes (wiki) https://doc.qt.io/qt-5/containers.html
2) Библиотека стандартных шаблонов (STL) (вики)
3) http://stepanovpapers.com/STL/DOC.PDF
4) Степанов, Ли - Руководство по стандартной библиотеке шаблонов (STL)
https://rsdn.org/article/cpp/stl.xml (немного косячный перевод)
5) http://www.martinbroadhurst.com/stl/

Реализация связного списка на C++ с шаблонами (аналога std::list):
1) Односвязный список на C++ http://itnotesblog.ru/note.php?id=178
2) STL для новичков. Реализация класса-контейнера https://habr.com/ru/post/187010/

Очередь с приоритетами на C++ с шаблонами:
1) адаптер std::priority_queue https://en.cppreference.com/w/cpp/container/priority_queue
2) https://www.bestprog.net/ru/2019/09/29/c-an-example-implementation-of-a-priority-queue-for-a-template-class-implementation-as-a-dynamic-array-ru/
3) https://ru.wikibooks.org

Алгоритмы сортировки:
1) Пузырьковая сортировка и все-все-все https://habr.com/ru/articles/204600/

Книги по STL:
1) Леен Аммерааль - STL для программистов на C++ https://vk.com/wall-18822808_8289
2) Скотт Мэйерс - Эффективный STL https://yadi.sk/i/miCReUNP3j7ECQ
3) Бьярн Страуструп - Язык программирования C++ https://yadi.sk/i/OaOuAQWWeEm9GQ
4) Джосьютис - Стандартная библиотека C++ https://yadi.sk/i/frVPf5aREhHqQA

Книги по алгоритмам:
1) Кормен, Лейзертон, Риверст, Штайн - Алгоритмы
2) Кнут Д. - Тома 1, 2, 3
3) Вирт Н. - Алгоритмы (pascal, modula-2)

Примеры реализаций алгоритмов на c, c++:
1) Язык Си в примерах (викиучебник)
2) Реализация алгоритмов (викиучебник)
3) http://acm.mipt.ru/twiki/bin/view/Algorithms/WebHome
4) http://algolist.manual.ru/
5) https://habr.com/ru/post/146793/

Вопросы:
1) типы указателей в c++11 (unique_ptr, shared_ptr, weak_ptr):
- Без new: Указатели будут удалены из C++ https://habr.com/ru/post/352570/
- Smart pointers для начинающих https://habr.com/ru/post/140222/
- weak_ptr:

2) какая алгоритмическая сложность у map, у unordered_map: 
- Потокобезопасный std::map с производительностью lock-free map https://habr.com/ru/post/328374/

3) чему равна высота сбалансированного дерева поиска в 1000000 элементов?

4) в чем проявляется сбалансированность дерева поиска?

5) какие структуры данных дают поиск за логарифмическое время? (map)

6) зачем нужен map, если unordered_map всегда выдает более быстрый результат?

7) какие структуры данных выдают результат за линейное время? (vector)

Вопросы с собеседований:
1) Популярные вопросы на собеседовании по C++ и ответы на них https://habr.com/ru/post/117996/
2) Дебри графики или как пройти собеседование на программиста компьютерной графики в GameDev https://habr.com/ru/post/561372/

Теория:

ШАД:
2) Решения вступительных испытаний в ШАД https://efiminem.github.io/supershad/
3) Полный разбор экзамена ШАД-2019 https://habr.com/ru/post/487680/
4) Поступление в ШАД глазами куратора и студента https://academy.yandex.ru/posts/postuplenie-v-shad-glazami-kuratora-i-studenta
7) Разбор задач для поступления в ШАД https://yandexdataschool.ru/stepbystep

yandex:
2) Как проходят алгоритмические секции на собеседованиях в Яндекс https://habr.com/ru/company/yandex/blog/449890/

спортивное программирование:
1) Спортивное программирование — социальный лифт в IT. Как его использовать школьнику, родителям школьника и разработчику? https://habr.com/ru/company/it_people/blog/583280/
2) Спортивное программирование https://astanahub.com/blog/sportivnoe-programmirovanie1617782868?locale=ru
3) Олимпиадное программирование https://tproger.ru/tag/competitive-programming/

6) Спортивное программирование https://stepik.org/course/53634/promo

10) ACM
17) A+B

Собеседование в it:
1) Как пройти собеседование в IT-компанию https://vc.ru/hr/263806-kak-proyti-sobesedovanie-v-it-kompaniyu
2) Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования https://habr.com/ru/post/499394/
3) Как я оклад 2х хотел https://habr.com/ru/post/657619/
4) Моя история прохождения интервью в IB IT (Java разработчик, investment bank) в Лондоне с примерами типичных заданий https://habr.com/ru/articles/430788/

leetcode:
2) Есть ли польза от решения алгоритмических задач на LeetCode? https://habr.com/ru/articles/709550/
3) Нужно читать академические статьи в Computer Science https://habr.com/ru/companies/skillfactory/articles/710822/

Реализация упорядоченного множества на c и c++:
3) Алгоритмы и структуры данных для начинающих: двоичное дерево поиска https://tproger.ru/translations/binary-search-tree-for-beginners/
4) Структуры данных: бинарные деревья https://habr.com/ru/articles/65617/

Уроки по питону для начинающих

1) Очень классный небольшой курс http://pythontutor.ru/
2) Курс на stepik.org от интитута биоинформатики для начинающих
https://stepik.org/course/67/promo и его продолжение https://stepik.org/course/512/promo

3d-принтер diy/aliexpress

Источники:
1) https://www.youtube.com/watch?v=CjX078Txd3o
2) https://www.youtube.com/watch?v=bVw_g89GlCw
3) https://lifehacker.ru/3d-printer-diy/

Тема на хабре:
1) https://habr.com/ru/hub/3d-printers/

Готовые наборы для сборки из китая, обзоры:
1) https://alexgyver.ru/3d-printers/
2) https://habr.com/ru/company/gearbest/blog/420011/

Видео по проектированию 3d-модели:
1) https://www.youtube.com/watch?v=7wlXyHM2YX8

Машина для переработки домашнего пластика в сырье для 3d-принтера

Источники diy:
1) https://hobiz.ru/ideas/izo/pererabotka-plastika-v-domashnix-usloviyax-vtoraya-zhizn-otxodam/
2) https://pikabu.ru/story/khalyavnyiy_plastik_dlya_pechati_na_3d_printere_6492005
3) https://rcycle.net/plastmassy/pererabotka-plastika-v-domashnih-usloviyah
4) https://takiedela.ru/news/2019/01/03/precious-plastic/

Просто готовые проекты (иногда с деталями):
1) https://3dtoday.ru/blogs/kirillll/recycling-plastic-for-3d-printing-pet/
2) https://habr.com/ru/post/224565/
3) https://www.youtube.com/watch?v=c-qISOLjOcY
4) https://recyclemag.ru/article/kak-pererabotanny-musor-stal-syriem-dlya-3d-printera
5) https://3d-expo.ru/article/materialy-dlya-3d-pechati-iz-plastikovyh-othodov
6) http://prointeraktiv.ru/3d-pechat-istochnik-plastikovy-h-othodov-ili-realizatsiya-vtorsy-r-ya-2/#.XZrhV3UzaV4
7) https://rb.ru/news/klyuch-na-3d-printere-iz-musora/
8) http://www.waste.ru/modules/news/article.php?storyid=3893
9) https://habr.com/ru/post/197250/

Промышленное производство пластика для 3д-принтера (из кукурузы?):
1) https://habr.com/ru/post/238053/

О переработке мусора:
1) https://habr.com/ru/post/411187/

вторник, 1 октября 2019 г.

centos systemd services management

Самые дешевые клеевые пистолеты

1) FixPrice Клеевой пистолет - 50 р. (обзор) + набор стержней - 10 шт. - 50р.
2) Леонардо Клеевой пистолет JX-GG6 (малый) d 7.2 мм - 308 р. + набор цветных стержней 6 шт. - 74 р.
3) Aliexpress PROSTORMER 7 мм + 10 стержней - 262 р.

Самые дешевые мультиметры

1) Галамарт ЕРМАК Мультиметр цифровой DT-832 - 269 р.
2) DNS Мультиметр TEK DT 830B - 350 р.
3) Aliexpress DT830B XL830L - 253 р.

Лабораторный блок питания diy

Источники:
1) Как устроен компьютерный блок питания и как его запустить без компьютера
http://electrik.info/main/praktika/1389-kompyuternyy-blok-pitaniya-kak-ego-zapustit.html
2) Лабораторный блок питания из китайских компонентов https://alexgyver.ru/lbp/
3) Самодельный блок питания (ЛБП) 24В 5А (12А макс). ОБЗОР И СБОРКА
4) Переделка ATX в лабораторный БП https://cxem.net/pitanie/5-286.php
5) Лабораторный блок питания из БП АТ https://www.drive2.ru/b/150956/

DC/AC:
1) DC/AC инвертор: принцип работы, схемотехника, встроенное ПО
https://habr.com/ru/post/358172/