🕹Хардкорный курс по Unity от Романа Сакутина
🕘 Таймкоды:
00:02:46 — Установка
00:04:40 — Основные понятия
00:29:01 — Создание уровня 3D
01:05:31 — Базовая физика
01:17:42 — Создание уровня 2D
01:38:51 — 2D физика
01:50:40 — 3D анимации
02:00:41 — 2D анимации
02:06:21 — Введение в скриптинг
02:55:19 — Code Style
03:01:07 — Связь компонентов
03:16:54 — Корутины
03:35:39 — Столкновения
03:40:48 — Эффектность
03:59:24 — Объекты в динамике
04:05:55 — Математика (Петр Земсков)
04:39:24 — Математика (Роман Сакутин)
05:02:12 — User Interface
06:07:07 — Flappy Bird
06:18:17 — Полезные инструменты
07:00:02 — Эффекты в Unity
07:30:38 — Монетизация (Евгений Гришаков)
08:12:34 — Основы 3D (Алексей Долгов)
10:04:46 — Моделирование
11:00:12 — Текстурирование
11:57:06 — Анимация
12:38:15 — Взаимодействие с 3D-художниками
12:50:30 — New Input System
13:15:51 — Оптимизация
13:31:05 — Продвинутая работа с редактором
13:54:55 — Подготовка к собесу (Антон Назаров)
14:38:28 — VR в Unity (Владимир Макушев)
🕘 Таймкоды:
00:02:46 — Установка
00:04:40 — Основные понятия
00:29:01 — Создание уровня 3D
01:05:31 — Базовая физика
01:17:42 — Создание уровня 2D
01:38:51 — 2D физика
01:50:40 — 3D анимации
02:00:41 — 2D анимации
02:06:21 — Введение в скриптинг
02:55:19 — Code Style
03:01:07 — Связь компонентов
03:16:54 — Корутины
03:35:39 — Столкновения
03:40:48 — Эффектность
03:59:24 — Объекты в динамике
04:05:55 — Математика (Петр Земсков)
04:39:24 — Математика (Роман Сакутин)
05:02:12 — User Interface
06:07:07 — Flappy Bird
06:18:17 — Полезные инструменты
07:00:02 — Эффекты в Unity
07:30:38 — Монетизация (Евгений Гришаков)
08:12:34 — Основы 3D (Алексей Долгов)
10:04:46 — Моделирование
11:00:12 — Текстурирование
11:57:06 — Анимация
12:38:15 — Взаимодействие с 3D-художниками
12:50:30 — New Input System
13:15:51 — Оптимизация
13:31:05 — Продвинутая работа с редактором
13:54:55 — Подготовка к собесу (Антон Назаров)
14:38:28 — VR в Unity (Владимир Макушев)
👍18😁9🥱5🤔3❤1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1
🔎 Глубокое исследование техники managed .NET hooking с использованием библиотеки Harmony
🤩 Jiri Vinopal из команды Check Point Research погружается в практику использования Harmony для динамического изменения поведения методов .NET во время выполнения, охватывая различные типы патчей: Prefix, Postfix, Transpiler, Finalizer и Reverse Patch.
📌 Для чего? Для решения конкретных задач с помощью Harmony, включая обход сложных обфускаторов, таких как ConfuserEx2.
👨🎓 Представленные Jiri методики сочетания отладки и перехвата могут значительно улучшить процесс разработки и отладки софта.
👉 Читать
🤩 Jiri Vinopal из команды Check Point Research погружается в практику использования Harmony для динамического изменения поведения методов .NET во время выполнения, охватывая различные типы патчей: Prefix, Postfix, Transpiler, Finalizer и Reverse Patch.
📌 Для чего? Для решения конкретных задач с помощью Harmony, включая обход сложных обфускаторов, таких как ConfuserEx2.
👨🎓 Представленные Jiri методики сочетания отладки и перехвата могут значительно улучшить процесс разработки и отладки софта.
👉 Читать
🥰4🤔4🔥2🥱2
Три фазы сборщика мусора в .NET на пальцах: на заметку C#-разработчику
1️⃣ Marking
На данной фазе сборщик мусора отмечает все объекты, которые можно будет удалить позже. Например, у нас есть небольшой локальный список внутри функции, которая завершает работу. Наш список теперь выходит из области видимости и может быть удален.
2️⃣ Sweeping
Теперь, когда у нас есть некоторые объекты, которые мы можем удалить, сборщик мусора пробегается и удаляет эти блоки памяти. Это может оставить неиспользуемые участки в памяти. Поэтому у нас есть следующая фаза.
3️⃣ Compacting
Данная фаза похожа на инструмент дефрагментации на старых жестких дисках, где файлы перемещаются в начало, а «пустое» пространство — в конец диска. Сборщик мусора делает что-то подобное с нашей памятью.
👉 Подробнее
#dotnet #csharp #tip by Steven Giesel
1️⃣ Marking
На данной фазе сборщик мусора отмечает все объекты, которые можно будет удалить позже. Например, у нас есть небольшой локальный список внутри функции, которая завершает работу. Наш список теперь выходит из области видимости и может быть удален.
2️⃣ Sweeping
Теперь, когда у нас есть некоторые объекты, которые мы можем удалить, сборщик мусора пробегается и удаляет эти блоки памяти. Это может оставить неиспользуемые участки в памяти. Поэтому у нас есть следующая фаза.
3️⃣ Compacting
Данная фаза похожа на инструмент дефрагментации на старых жестких дисках, где файлы перемещаются в начало, а «пустое» пространство — в конец диска. Сборщик мусора делает что-то подобное с нашей памятью.
👉 Подробнее
#dotnet #csharp #tip by Steven Giesel
👍29❤15🔥1🙏1
🧰 Copilot сегодня встроен в мобилки/Bing/Edge и основан на нескольких опенсорсных инструментах, включая SignalR, Adaptive Cards, Markdown и object-basin.
🤔 Но как все это работает вместе под капотом? Читайте подробнее про использование SignalR с другими инструментами на практике, потоковую передачу сообщений, ответы во внешний UI и другие аспекты, которые происходят стороне сервера.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Как вы обычно отдыхаете?
Anonymous Poll
20%
У самурая нет отдыха, только хардкор
11%
Делаю что-то своими руками
43%
Лежу, туплю и расслабляюсь
1%
Хожу на массаж
16%
Занимаюсь йогой/спортом
25%
Гуляю на свежем воздухе
5%
Хожу в походы (активный отдых)
55%
Читаю книги/играю в игры/смотрю кино или сериалы
16%
Пилю пет-проект
4%
Свой вариант (напишу в комментариях)
👍4
🛠 Tmds.ExecFunction — С#-библиотека, упрощающая выполнение функции в отдельном процессе.
Это может быть полезно для написания тестов, требующих отдельного процесса, или для запуска кода с другим временем жизни, чем у процесса .NET-приложения.
Библиотека основана на классе👇
🔗 GitHub
Это может быть полезно для написания тестов, требующих отдельного процесса, или для запуска кода с другим временем жизни, чем у процесса .NET-приложения.
Библиотека основана на классе
corefx
RemoteExecutorTestBase
🔗 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
string.Contains(char)
vs. string.Contains(string)
: когда производительность находишь там, где вообще не ждешь #dotnet #csharp #benchmarks #tip by Сергей Тепляков
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱21👍14
#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥4
🔸 Выпуск 1: System Design. Подготовка к сложному интервью
🔸 Выпуск 2: масштабирование от нуля до миллионов пользователей
🔸 Выпуск 3: приблизительные оценки
🔸 Выпуск 4: общие принципы прохождения интервью
🔸 Выпуск 5: проектирование ограничителя трафика
🔸 Выпуск 6: согласованное хеширование
🔸 Выпуск 7: проектирование хранилища типа «ключ-значение»
#подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍2😁1
🤔 Как получить ассемблерный код, сгенерированный JIT для C#-метода?
Когда вы выполняете .NET-метод, JIT компилирует его в машинный код. Этот нативный код затем выполняется процессором.
Если у вас вдруг возникла необходимость исследовать сгенерированный ассемблерный код, сделать это можно несколькими способами:
✅ Использовать переменную окружения
✅ Использовать расширение для Visual Studio Disasmo
✅ Использовать онлайн-сервис Sharplab, если под рукой нет других инструментов
Когда вы выполняете .NET-метод, JIT компилирует его в машинный код. Этот нативный код затем выполняется процессором.
Если у вас вдруг возникла необходимость исследовать сгенерированный ассемблерный код, сделать это можно несколькими способами:
✅ Использовать переменную окружения
DOTNET_JitDisasm
(.NET 7+)✅ Использовать расширение для Visual Studio Disasmo
✅ Использовать онлайн-сервис Sharplab, если под рукой нет других инструментов
👍13❤3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Сам виноват, но быстро исправился и не потерял атмосферу!
#жиза
Please open Telegram to view this post
VIEW IN TELEGRAM
😁63👍3❤2
🤔 Когда она завершается, надо точно понимать, куда вернуть управление — в какой конкретно шаг. Поэтому все шаги нумеруются и компилятор очень строго следит за тем куда можно перейти. Такое решение называется state machine.
👨🎓 .NET/ASP.NET Core разработчик Родион Мостовой разбирается с понятием state machine для понимания принципа работы асинхронности в C#.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍3❤2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏔 Эпикфейл: карьера катится к чертям
🤦♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.
📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?
👉 Поделиться историей
🤦♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.
📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?
👉 Поделиться историей
❤1👍1
TerminalLogger предоставляет более подробный вывод, по сравнению со стандартным консольным логгером, однако он не включен по умолчанию.
📌 Для активации используйте опцию
--tl
(например, dotnet build --tl
) или включите его по умолчанию с помощью переменной окружения MSBUILDTERMINALLOGGER
, которая может быть установлена в значения true
, false
или auto
.📌 Новый TerminalLogger можно включить для текущего пользователя:
[Environment]::SetEnvironmentVariable("MSBUILDTERMINALLOGGER", "auto", "User")
В статье также приводится сравнение вывода между стандартным консольным логгером и TerminalLogger, подчеркивая такие преимущества, как группировка предупреждений и ошибок по целевой платформе, улучшенная читаемость благодаря цветам, гиперссылки для основного вывода сборки, отображение времени выполнения для каждой цели и более понятный статус окончательной сборки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤2
Можно ли ускорить рефлексию в .NET? Да, с помощью легковесной генерации кода на основе деревьев выражений.
Выше — пример оптимизации доступа к членам путем кэширования сгенерированных выражений доступа к полям или свойствам.
Это все еще в 100 раз медленнее, чем прямой доступ. Но в 10 раз быстрее, чем обычная рефлексия!
#dotnet #csharp #benchmarks #tip by Сергей Тепляков
Выше — пример оптимизации доступа к членам путем кэширования сгенерированных выражений доступа к полям или свойствам.
Это все еще в 100 раз медленнее, чем прямой доступ. Но в 10 раз быстрее, чем обычная рефлексия!
#dotnet #csharp #benchmarks #tip by Сергей Тепляков
⚡12👍6❤1💯1
🤦♂️ Есть такое слово «надо», которое отравляет многим жизнь. Надо получить вышку, надо жениться до стольких-то лет и родить детей до стольких-то, надо зарабатывать столько-то и еще много-много «надо».
❤️ Как с этим жить? Попробуйте вместо «надо» поставить «полезно». И если бесполезно — то не надо!
💬 А какое слово отравляет вашу жизнь? Поделитесь в комментариях 👇
❤️ Как с этим жить? Попробуйте вместо «надо» поставить «полезно». И если бесполезно — то не надо!
💬 А какое слово отравляет вашу жизнь? Поделитесь в комментариях 👇
👍12🥱7❤4