Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Рыбачь в мире после катастрофы. Лови мутантов, находи артефакты, участвуй в рейдах и соревнованиях. Создавай предметы, прокачивай навыки, помогай соратникам и раскрывай тайны этого мира.

Аномальная рыбалка

Симуляторы, Мидкорные, Ролевые

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
4
KenuLen
KenuLen
9 дней назад
Лига программистов
Серия Образовательное

Мобильный геймпад на Godot. Кнопки. Часть 1⁠⁠

Введение

Итак, это мой небольшой... Да на самом деле довольно большой! Рассказ как я делал из своего телефона контроллер. Небольшая предыстория. Решил я сыграть в Broforce с друзьями и тут понял, что если я притащу свой ноутбук с игрой, то поиграть с комфортом мы не сможем - нет столько контроллеров. В mvideo геймпады для xbox или ps стоили около 5 тысяч рублей. Можно было и китайские купить, которые обещали нормально работать при подключение к компьютеру, но... Но отсутствие доверия к качеству и жалось не то что к 5 тысяч, а к 700 рублям удавили возможность покупки на корню. И тут мы задумались, а можно ли сделать собственный мобильный контроллер. Конечно же мы нашли готовые проекты в google play, но они шли с вшитой рекламой и могли начать портить игровой процесс в самый неудобный момент. Так родился интересный проект для реализации. Был ли у меня опыт с Godot? Нет. Разработчик или хотя бы хоть сколько-то программист? Нет. Удивительно, что можно сделать при беспардонном упорстве и наличии гугла. Проект я в итоге сделал. Потом забил на него. А недавно вспомнил! И решил переделать :) Эта и все последующие статьи как раз пересказ процесса ПЕРЕСОЗДАНИЯ мобильного контроллера. Кусочек результата старого проекта ниже:

Мобильный геймпад на Godot. Кнопки. Часть 1 Godot, Godot Engine, Разработка, Программирование, IT, Windows, Программист, Гифка, Длиннопост

Зачем вообще переделывать, а не дорабатывать готовое? Я решил серьезно углубиться в Godot и реально сделать свой проект, игру. Ту в которую я бы хотел сыграть. Все же гнаться за мечтой, даже детской, это несколько романтично, возвышено и тупо. Меня устраивает. Старый контроллер имел серьезные проблемы в самой своей базе. Так же его переработка хороший способ убить сразу несколько зайцев. Структура проекта "Контроллер" осталась старой.

  1. Сервер на Python - принимает подключение телефона, получает нажатия и передает их драйверу ViGEmBus. Сервер поддерживает подключение до 4ех человек;

  2. Контроллер на Godot (далее по тексту клиент) - подключается к серверу, передает ему нажатия. Для хобби-прототипа сильно париться не хотелось. У клиента всего 2 сцены - настройки и сам контроллер;

  3. ViGEmBus - драйвер для эмуляции виртуальных игровых контроллеров в операционных системах Windows. К сожалению, поддержка этого чуда прекратилась, и что будет теперь, мне не ясно. Скорее всего рано или поздно настанет момент, когда драйвер перестанет быть совместим с играми или новой версией ОС. Но пока что наслаждаемся.

Чертовы кнопки

Бесплатные картинки для кнопок взял с https://itch.io/game-assets/free/tag-gamepad. Набор приличный, на любой вкус. Со стиками было проще всего - не стал создавать велосипед и загрузил Virtual Joystick от MarcoFazio через AssetLib. А вот кнопки делал через узел TouchScreenButton - в документации Godot этот узел как раз предназначен для обработки на сенсорных устройствах. Загрузил текстуры для кнопок ииии... И границы текстур оказались слегка больше, чем ожидалось.

Мобильный геймпад на Godot. Кнопки. Часть 1 Godot, Godot Engine, Разработка, Программирование, IT, Windows, Программист, Гифка, Длиннопост

К стикам это не относится, так как они созданы через другую сущность Control. Пока не забивайте этим голову.

В общем Godot правильно определяет границы - я ведь не обрезал прозрачные лишние части. Вроде и черт с ним, но ведь нажатия будут обрабатываться неправильно - в местах пересечений будет срабатывать несколько кнопок. Вариантов была два (по крайней мере о которых я прочитал):

  1. Обрезать кнопки в редакторе убирая пустоты;

  2. Забить на TouchScreenButton и создавать области вручную через Area2D и CollisionShape2D.

Будучи здравомыслящим(?) человеком, я выбрал второй вариант. Чтоб больше страданий было, хех. Если пошагово, то создавалось все это дело следующим образом:

  1. Для 4ех левых кнопок был создан отдельный узел Node2D (CrossButtons1);

  2. Для каждой кнопки создан узел Area2D (UpArea);

  3. Для Area2D были созданы Sprite2D (UPsprite) - отображение кнопки, и CollisionShape2D (для него я уже поленился название выдумывать) - зона обработки нажатия.

Мобильный геймпад на Godot. Кнопки. Часть 1 Godot, Godot Engine, Разработка, Программирование, IT, Windows, Программист, Гифка, Длиннопост

Для узла CrossButtons1, в который входят кнопки, добавляем скрипт со следующим текстом:

Мобильный геймпад на Godot. Кнопки. Часть 1 Godot, Godot Engine, Разработка, Программирование, IT, Windows, Программист, Гифка, Длиннопост

зашел сюда по быстрому сделать кнопку? Хотел скопировать текст, а тут картинка? Уж прости, картинка красивее текста выглядела.

Строка 4 нужна для привязки функции обработки нажатия к нашей области Area2D (UpArea). Строки 8 и 10 ловят нажатие и отпускание кнопки.
Это все супер, но как будто лень писать подобный код для каждой новой кнопки. Благо, действительно есть способ попроще.

Мобильный геймпад на Godot. Кнопки. Часть 1 Godot, Godot Engine, Разработка, Программирование, IT, Windows, Программист, Гифка, Длиннопост

Пробегаемся по всем подузлам нашего Node2D (CrossButtons1), находим те, что принадлежат типу Area2D и подключаемся функцию _on_button_input для обработки всех кнопок в Node2D. Для нашей задачи главное понимать, какая кнопка была нажата - получаем через button.name.

Замечательно, но что если мы хотим, чтобы картинка кнопки менялась при нажатии? Вышеописанные методы уже не сработают, придется работать с каждым Area2D узлом отдельно. В целом ничего страшного. Делаем все те же шаги, что раньше, но создаем скрипт для узла Area2D. В него грузим картинки состояний.

Мобильный геймпад на Godot. Кнопки. Часть 1 Godot, Godot Engine, Разработка, Программирование, IT, Windows, Программист, Гифка, Длиннопост

Код +- тот же, но добавляем:

  1. Строка 7 - начальное состояние/начальная картинка;

  2. Строки 12 и 15 для переключения состояния/картинки при обработке нажатия.

Заключение

Все что осталось - томная работа по повторению процесса для создания всех нужных кнопок. В следующей части добавлю новую сцену, ввод текста и сохранение данных в json формате. И немного работы сети. У-о-о-т. Спасибо за чтение. Дельные замечания и советы приветствуются, ибо в плане создания подобного я ещё профан.

Показать полностью 5
[моё] Godot Godot Engine Разработка Программирование IT Windows Программист Гифка Длиннопост
9
2
TECHLiveHACK
TECHLiveHACK
1 месяц назад

Пользователи винды, сохраняйте: в сети разгулялся простой, а главное БЕСПЛАТНЫЙ метод активации Windows⁠⁠

Пользователи винды, сохраняйте: в сети разгулялся простой, а главное БЕСПЛАТНЫЙ метод активации Windows Программа, Гайд, Технологии, Приложение, Microsoft, Windows, Активация, Тестирование, Обход блокировок, Программирование, Программист, IT, Telegram (ссылка)

Делается в 3 клика:

— Запускаем PowerShell от лица администратора;

— Вбиваем команду irm https://get.activated.win | iex ;

— В появившемся окне выбираем нужный продукт для активации, а далее просто пользуемся.

Насчет легальности способа можете не переживать — служба поддержки Microsoft сама юзает его.

Источник

Показать полностью 1
Программа Гайд Технологии Приложение Microsoft Windows Активация Тестирование Обход блокировок Программирование Программист IT Telegram (ссылка)
7
NetIntel
NetIntel
1 месяц назад
Лига программистов

Языки программирования на все случаи жизни. Часть 1⁠⁠

В программировании существует десятки разных направлений, языков ещё больше, около 9000. Эта статья будет интересна для тех, кто только-только начинает свой путь разработчика или же для тех, кому просто интересно. К языку будут прилагаться библиотеки и фреймворки, которые нужны для обсуждаемых направлений (например, django для python в бэкэнде). В статье будут не только языки программирования, но суть от этого не меняется.

Направления и языки

Web-разработка

В web-разработке есть 2 основных поднаправления: Backend и frontend. Frontend это клиентская часть сайта, её видит пользователь и она отправляется клиенту с сервера в браузер. Backend это логическая часть сайта, она работает на сервере и делает всё, что пользователь не видит, например, обрабатывает платежи и т.д.

Frontend

Frontend это клиентская часть веба. Она отвечает за визуал сайта. Всё то, что видит и слышит пользователь на сайте - дело рук фронтендера. Браузер делает http(s) запрос на сервер, он получает HTML-страницу (и CSS с Javascript) и отрисовывает страницу. Ответ сервера может содержать: HTML-документ; данные, встроенные в HTML; ссылки на статические файлы (CSS, JS, изображения); JSON/XML/другие данные (если это API запрос).

И так, языки для frontend разработки:

  • HTML и CSS: Это не опционально. HTML обязателен, а без CSS сайт может работать, но вряд ли он будет красивым. Их нельзя назвать языком программирования, но пусть будут. Фреймворки и библиотеки для CSS:

    • Tailwind CSS: Utility-first CSS фреймворк, то есть разработчик использует набор предопределённых классов, каждый из которых имеет некоторое количество стилей. Очень гибкий и мощный.

    • Bootstrap: Самый популярный. Предоставляет адаптивную сетку, компоненты (кнопки, навигация, карточки и т.д.), JS-плагины.

    • Sass / SCSS: Препроцессор CSS, который расширяет возможности стандартного CSS, добавляя функциональность, такую как переменные, вложенность, миксины и многое другое.

  • JavaScript (JS): Двигатель для визуала сайта. Он добавляет интерактивность и динамическое поведение на веб-страницы. Фреймворки и библиотеки для JS:

    • React: Библиотека от Meta. Позволяет создавать компоненты. Упрощает разработку.

    • Vue.js / Vue 3: Модульная структура. Относительно простой фреймворк.

    • Angular: Полноценный MVC-фреймворк от Google. Работает на TypeScript. Хорошо подходит для крупных корпоративных приложений. Включает в себя маршрутизацию, формы, HTTP-клиент и т.д.

    • Svelte: Очень быстрый и лёгкий. Отлично подходит для микросервисов.

    • TypeScript: Надмножество Javascript. Статическая типизация.

Backend

Backend это серверная часть веба. Обработка платежей, регистрация пользователей и всё то, что не видит клиент, делается тут.

  • Node.js: Это среда выполнения JavaScripts, которая позволяет использовать JavaScript для разработки серверной части. Фреймворки и библиотеки для Node.js:

    • Expess.js: Самый популярный и гибкий фреймворк, часто используемый в качестве основы для многих Node.js проектов. Он обеспечивает минимальный базовый набор функций для создания веб-приложений и API.

    • NestJS: Фреймворк, ориентированный на создание масштабируемых серверных приложений. Он использует модульную архитектуру, поддерживает TypeScript и предоставляет встроенные решения для валидации, маршрутизации, аутентификации и авторизации.

    • Fastify: Фреймворк, ориентированный на максимальную производительность и низкое потребление ресурсов, что делает его подходящим для высоконагруженных приложений.

  • Python: Этот язык многофункционален и его можно использовать в бэкэнде. Фреймворки и библиотеки для Python:

    • Django: Полноценный фреймворк, предназначенный для создания сложных веб-приложений, включает в себя ORM, систему шаблонов, админ-панель и многое другое.

    • Flask: Микрофреймворк, гибкий и легкий, подходит для небольших и средних проектов, а также для создания API.

    • FastAPI: Современный, быстрый фреймворк, ориентированный на создание API.

  • Java: Java доминирует в банках, финансовых платформах и крупных онлайн-сервисах (например, LinkedIn, Netflix, Amazon частично используют Java). В большинстве случаев используется Spring. Фреймворки и библиотеки для Java:

    • Spring: Один из самых популярных фреймворков, предоставляющий множество инструментов для разработки веб-приложений, включая управление зависимостями, аспектно-ориентированное программирование и доступ к данным.

  • C#: C# популярен в компаниях, работающих на Windows-инфраструктуре, особенно в Европе и США: от страховых компаний до госпорталов. Фреймворки и библиотеки для C#:

    • ASP.NET: Основной фреймворк C#. ASP.NET Core предоставляет широкий набор инструментов для создания веб-сайтов, API и других веб-сервисов.

    • Entity Framework Core: ORM (Object-Relational Mapping) фреймворк, который упрощает работу с базами данных. Позволяет работать с базами данных, используя объекты C# вместо SQL запросов.

    • Blazor: Фреймворк для создания интерактивных веб-интерфейсов, работающий как на стороне клиента (в браузере), так и на стороне сервера.

  • Go: Высокая производительность и простота. Фреймворки и библиотеки для Go:

    • Gin: Известен своей высокой производительностью и легкостью использования. Идеален для создания API и веб-приложений, требующих быстрой обработки запросов.

    • Echo: Легкий и быстрый фреймворк, ориентированный на производительность и простоту использования. Отлично подходит для создания API и веб-сервисов.

  • PHP: Классика веба. Фреймворки и библиотеки для PHP:

    • Laravel: Известен своей элегантностью, мощной системой шаблонов Blade, и богатым набором инструментов для разработки. Laravel часто выбирают для создания масштабных и сложных веб-приложений.

  • Ruby: Лаконичный и удобный. Фреймворки и библиотеки для Ruby:

    • Ruby on Rails (RoR): Самый популярный фреймворк, известный своей структурой MVC, удобством разработки и возможностями для создания масштабируемых веб-приложений. Он предоставляет готовые решения для работы с базами данных, маршрутизацией, представлением и многим другим, что значительно ускоряет процесс разработки.

  • Базы данных: Будучи backend разработчиком вам придётся работать с базами данных.

    • PostgreSQL: Гибкая система управления реляционными базами данных (СУБД). Удобно хранить геопространственные данные.

    • MySQL: Одна из самых популярных. Открытый исходный код. MySQL имеет меньше поддержки стандартов SQL, чем PostgreSQL.

    • SQLite: Лёгкая, встраиваемая система управления базами данных. SQLite не требует отдельного сервера, база данных хранится в одном файле на диске. Не предназначен для многопользовательского доступа с высокой конкуренцией. Для локального хранения.

    • MongoDB: Нереляционная (NoSQL) документо-ориентированная система управления базами данных, которая предназначена для хранения, обработки и масштабирования больших объёмов неструктурированных или полуструктурированных данных. MongoDB хранит данные в формате BSON (Binary JSON).

    • Redis (REmote DIctionary Server): Redis хранит данные в оперативной памяти, что обеспечивает очень быструю обработку запросов. Данные хранятся в парах "ключ-значение", что упрощает доступ к информации.

  • Docker / CI/CD / Nginx/Apache: Полезные вещи для бэкенда.

Системное программирование

Системное программирование - Разработка программного обеспечения, которое взаимодействует напрямую с железом. Это низкоуровневое программирование, где важна производительность и эффективность управления ресурсами. Системные программисты разрабатывают ОС, драйверы, компиляторы, виртуальные машины и антивирусы.

  • C: Фундамент всех ОС и системного ПО. Работает напрямую с памятью. Ядро Unix/Linux написано на C. Даёт полный контроль над памятью, но требует ручного управления памятью. Почти нет абстракции.

  • C++: Мощнее C, добавляет ООП, используется в движках и ядрах.

  • Rust: Безопасная альтернатива C / C++ без утечек памяти.

  • Assembly: Пишется для конкретного процессора (x86, ARM, RISC-V). Почти напрямую управляет CPU, регистрами, стеком.

Мобильная разработка

Создание приложений для смартфонов, планшетов и носимых устройств. Тут есть 3 поднаправления: нативные мобильные приложения; гибридные (на web-технологиях); кроссплатформенные.

Нативная разработка

Это создание мобильных приложений под конкретную операционную систему.

  • Kotlin: Разработка под android. Ститачески типизированный язык программирования, разработанный компанией JetBrains. Безопасен от NullPointerException. Выразительный синтаксис. Возможность интеграции с кодом на java.

    • Android studio: IDE специально для создания приложений под android.

    • Jetpack Compose: Упрощает и ускоряет процесс разработки интерфейсов за счёт меньшего объёма кода, мощных инструментов и интуитивно понятного кода. Использует kotlin для создания UI.

    • XML (eXtensible Markup Language): Язык разметки для хранения и передачи данных.

  • Swift: Разработка под IOS. Современный и безопасный.

    • Xcode: IDE для разработки под IOS.

    • UIKit: Предоставляет разработчикам набор элементов управления, такие как кнопки, метки, текстовые поля, а также возможности для обработки касаний и жестов, обеспечивая интуитивно понятное взаимодействие с пользователем.

    • SwiftUI: Декларативный UI-фреймворк от Apple.

Кроссплатформенная разработка

Один код работает и на android, и на IOS.

  • Flutter: Кроссплатформенный SDK от Google для создания красивых, нативных приложений для мобильных устройств. Быстрый рендеринг. Кастомный UI.

    • Dart: Основной язык для flutter. Простой синтаксис. Высокая производительность. Богатый набор библиотек.

  • React Native: Использует один и тот же код JavaScript для iOS и android. Основное преимущество React Native это возможность создавать приложения для iOS и Android, используя общий код на JavaScript.

  • Kotlin Multiplatform Mobile (KMM): Код пишется на kotlin и компилируется на обе ОС. UI пишется отдельно, но бизнес логика общая.

Гибридные и web-приложения

Такие приложения сочетают в себе элементы нативных и веб-приложений. Работают как web-приложения внутри обёртки. По своей сути, это веб-приложения (обычно написанные с использованием HTML, CSS и JavaScript), "упакованные" в специальную нативную оболочку (часто называемую WebView).

  • Ionic: Фреймворк для разработки гибридных кроссплатформенных мобильных приложений.

  • WebView Multiplatform Mobile: Кроссплатформенная библиотека для встраивания веб-контента в приложения для Android и iOS.

  • Xamarin WebView: Фреймворк для разработки кросс-платформенных мобильных приложений, предоставляет доступ к WebView для отображения веб-содержимого.

  • Tauri: Фреймворк для создания десктопных приложений с использованием веб-технологий. Во второй версии можно делать мобильные приложения. Написан на сложном rust.

Data Science / Аналитика данных

Data science - Наука о данных. Использует математику и статистику для обработки данных, извлечения полезной информации, выявления закономерностей и предсказания будущих событий. Они используют для этого статистические методы и машинное обучение.

  • Python: Де-факто стандарт в data science. Прост в изучении. Огромное сообщество. Богатейшая экосистема библиотек. Библиотеки для python, которые нужно знать аналитику данных:

    • NumPy: Для работы с многомерными массивами и матрицами. Линейная алгебра.

    • Pandas: Предоставляет мощные структуры данных.

    • Polars: Современная, очень быстрая альтернатива pandas. Оптимизированная для работы с большими наборами данных.

    • Matplotlib / Seaborn: Визуализация данных.

    • Scikit-learnt + keras: Машинное обучение. Прогноз данных.

    • Jupyter: Интерактивный блокнот для работы с кодом.

  • R: Язык специально для статистики. Имеет невероятно богатый набор пакетов для статистического анализа, визуализации.

  • SQL: Необходим любому специалисту по данным. Для хранения данных.

  • Scala: JVM-язык, сочетающий объектно-ориентированную и функциональную парадигмы. Основной язык для Apache Spark.

  • Julia: Создан специально для высокопроизводительных научных вычислений. Синтаксис похож на Python / MATLAB.

Машинное обучение и ML-инженеринг

ML-инженеринг (MLOps) - Инженерная дисциплина, которая фокусируется на машинном обучении. В отличие от Data Science, где основное внимание уделяется исследованию данных и построению моделей, ML-инженеринг охватывает весь жизненный цикл AI-продукта. Построение моделей, нейросетей, прогнозирование. Это инженерная часть Data Science, фокусирующаяся на промышленной эксплуатации. ML-инженеру нужно также знать математику на высоком уровне.

  • Python: Часто этот язык является лишь высокоуровневым интерфейсом, а фреймворки написаны на C++. Если бы модели обучались только на python, это было бы слишком медленно. Фреймворки и библиотеки python:

    • TensorFlow: Открытая библиотека машинного обучения. Предназначена для построения и обучения моделей машинного и глубокого обучения.

    • MLflow: Платформа с открытым исходным кодом для управления жизненным циклом машинного обучения.

    • Kubeflow: Набор инструментов для развертывания ML-воркфлоу на Kubernetes (использует Python для определения пайплайнов).

Научные и инженерные расчёты

Математика, физика, симуляции.

  • Python: Отлично подходит для научных вычислений. Простота изучения, огромное сообщество, богатейшая экосистема научных библиотек, отличная интеграция с другими языками и инструментами, поддержка всех этапов работы (прототипирование, анализ, визуализация, развертывание). Фреймворки и библиотеки python:

    • NumPy

    • SciPy: Построен на NumPy. Реализация алгоритмов: оптимизация, интегрирование, интерполяция, специальные функции, обработка сигналов/изображений, статистика, дифференциальные уравнения.

    • SumPy: Компьютерная алгебра.

    • Matplotlib: Гибкая и мощная библиотека для создания статических, анимированных и интерактивных 2D/3D графиков.

    • Mayavi, PyVista: Визуализация 3D данных и научных расчетов.

  • MATLAB: Специально для численных вычислений. Широко используется в инженерии (особенно в вузах и промышленности). Платный. Интуитивный ситнаксис.

  • Fortran: Непревзойденная производительность для задач с плотными численными расчетами (физика, механика жидкостей, метеорология, квантовая химия, вычислительная астрофизика). Отличная поддержка многомерных массивов и операций над ними (включая срезы).

  • Julia: Быстро набирает популярность в научных вычислениях.

  • C / C++: Абсолютный контроль над аппаратурой и памятью.

GameDev

Создание игр от мобильных до AAA. 2D и 3D. VR/AR.

  • C++ / Blueprints

    • Unreal Engine: Движок для больших и AAA игр. Красивая графика. Подходит для крупных игр с проработанными механиками и игр с упором на графику. Для мощного железа. На нём даже фильмы снимают. Чтобы делать игры на нём, нужно быть профессионалом.

  • C#

    • Unity: Подходит для большинства игр. Часто используется дли инди проектов. Большое сообщество и много ассетов. Много полезных функций. Для VR/AR хорошо подходит.

  • Godot: Поддерживает некоторые языки программирования, такие как C# и C++, есть собственный язык GDScripts. Активно развивается. Открытый, лёгкий, отлично подходит для 2D игр. Хороший выбор для новичков.

  • Phaser (JS): HTML5-движок для 2D игр в браузере. Прост и быстр в освоении. Идеален для веб-игр.

  • Lua: Скрипты в играх (Roblox, WoW и тд). Очень простой язык. Тоже вариант.

DevOps

DevOps (Development + Operation) - Подход к разработке ПО, объеденяющий разработчиков и IT-специалистов по эксплуатации с целью: ускорить релизы; повысить стабильность и безопасность; автоматизировать всё, что можно. В основных задачах у девопсера это CI/CD (непрерывная интеграция и доставка), контейнеризация, оркестрация контейнеров, автоматизации инфраструктуры, мониторинг и логирование.

  • Linux: Каждому девопсеру нужно знать linux. Linux это основная платформа для управления серверами, развёртывания приложений и автоматизации процессов в DevOps.

  • Bash: Для автоматизации. Скрипты. CI/CD. Bash-скрипты позволяют автоматизировать повторяющиеся задачи, экономя время и ресурсы.

  • Python: Python подходит для разных задач, включая написание сценариев, определение инфраструктуры в виде кода, создание конвейеров CI и CD, упрощение мониторинга и разработку пользовательских решений. Python работает с API многих облачных сервисов, таких как AWS, Google Cloud и Azure, что делает его незаменимым для облачной инфраструктуры.

  • Go: Создание собственных CLI-инструментов. Go позволяет разрабатывать и поддерживать собственные инструменты для автоматизации CI/CD, мониторинга, оркестрации. Многие популярные DevOps-инструменты написаны на Go, например Kubernetes, Docker, Terraform, Prometheus. Умение читать и писать на Go помогает лучше понимать и изменять их код.

  • YAML: Конфигурации Kubernetes, Ansible, Github Actions.

  • Groovy: Скрипты для Jenkins.

  • Docker: Контейнеризация.

  • Kubernetes: Оркестрация контейнеров. Автоматическое масштабирование. Балансировка нагрузки и управление состоянием контейнеров.

  • Jenkins: Инструмент для автоматизации процессов непрерывной интеграции (CI) и непрерывной доставки (CD) в DevOps. Он помогает разработчикам быстрее и эффективнее интегрировать изменения в код, находить и исправлять ошибки на ранних этапах, а также автоматизировать рутинные задачи.

  • Prometheus и Grafana: Мониторинг облачных приложений и сервисов.

Cloude

Cloud Developer - Специалист, чья работа сосредоточена на облачных платформах и сервисах. В отличие от традиционных разработчиков, он оперирует ресурсами (вычислительными мощностями, хранилищами, сетями), предоставляемыми по запросу через интернет, а не управляет локальными серверами напрямую. Разработчик облачных решений отвечает за проектирование, разработку, развертывание, масштабирование и поддержку приложений, сервисов и инфраструктуры, непосредственно работающих в облачной среде.

  • Amazon Web Services (AWS): Самая популярная облачная платформа, предоставляющая широкий набор сервисов для вычислений, хранения данных, аналитики, машинного обучения и многого другого.

  • Microsoft Azure: Облачная платформа от Microsoft. Популярная в корпоративном сегменте.

  • Google Cloude Platform (GCP): Облачная платформа от Google.

  • IBM Cloude: Платформа с акцентом на корпоративные решения, блокчейн и AI.

  • Oracle Cloude: Облачные решения от Oracle. Для крупного бизнеса и с фокусом на базы данных.

Для взаимодействия с облачными API, автоматизации задач инфраструктуры (IaC), написания скриптов развертывания и непосредственно разработки облачных приложений и сервисов разработчики облака активно используют языки программирования, такие как:

  • Python: Универсальность, богатые SDK для облаков.

  • Go (Golang): Высокая производительность, популярен для инструментов Cloud Native.

  • JavaScript / TypeScript: Фронтенд и бэкенд, серверные среды типа Node.js.

  • Java: Традиционно силен в корпоративной среде, особенно с Azure/IBM.

  • C#: Ключевой язык для экосистемы Microsoft Azure.

  • Ruby: Менее распространен, но используется, например, в DevOps инструментах.

Кибербезопасность

Кибербезопасность (Cybersecurity) - Комплексная практика защиты информационных систем, сетей, устройств, программ и данных от цифровых атак, несанкционированного доступа, повреждения или кражи. В современном мире, где бизнес, государственное управление и личная жизнь неразрывно связаны с цифровой средой, кибербезопасность становится критической необходимостью, а не просто опцией.

Основные направления кибербезопасности:

  • Сетевая безопасность: Защита инфраструктуры от атак (DDoS, MITM, эксплойты).

  • Информационная безопасность: Шифрование данных, контроль доступа, защита от утечек.

  • AppSec (безопасность приложений): Анализ кода, защита веб- и мобильных приложений.

  • Криптография: Разработка и взлом алгоритмов шифрования.

  • SOC & Мониторинг: Обнаружение и реагирование на инциденты в реальном времени.

  • Пентестинг и Red Teaming: Имитация атак для поиска уязвимостей.

Операционные системы для тестирования:

  • Kali Linux: Основной дистрибутив для пентеста.

  • Parrot OS: Альтернатива Kali с акцентом на анонимность.

  • BlackArch: Расширенный набор инструментов для хакеров.

Инструменты анализа и атаки:

  • Сканирование сетей: Nmap, Wireshark, Masscan

  • Взлом паролей: Hashcat, John the Ripper, Hydra

  • Эксплуатация уязвимостей: Metasploit, Burp Suite, SQLmap

  • Социальная инженерия: SET (Social-Engineer Toolkit), Maltego

Языки программирования:

  • Python: Автоматизация, скрипты для анализа угроз.

  • Bash/PowerShell: Администрирование, анализ логов.

  • C/C++: Разработка эксплойтов, анализ вредоносного ПО.

  • Go: Сетевые инструменты, быстрое создание утилит.

IoT и встаиваемые системы

Встраиваемые системы - Специализированные компьютеры, встроенные прямо в устройство, которым они управляют. Их задача это выполнять конкретные функции (управление двигателем, сбор данных с датчика и т.д.).

IoT (Internet of Things) - Когда такие встраиваемые системы получают возможность связываться друг с другом и с интернетом.

С чем должен уметь работать инженер IoT:

  • Микроконтроллеры (MCU)

  • Микропроцессоры (MPU)

  • Датчики: Температура, влажность, движение (акселерометр/гироскоп), свет, давление, газ, GPS и т.д.

  • Интерфейсы связи

Языки программирования:

  • C: Прямой доступ к железу, минимальные накладки.

  • C++: Набирает силу для сложных задач с ООП, где ресурсы позволяют.

  • Python: Для прототипирования, инструментов, мощных MPU (Raspberry Pi) и обработки данных на сервере / шлюзе.

  • Rust: Новый, но перспективный. Безопасность памяти + производительность как у C/C++. Начинают использовать в ядре Linux.

  • Assembler: Для самых критичных кусков кода или когда ресурсов очень мало.

ОС:

  • Без ОС (Bare Metal): Код работает напрямую на процессоре. Максимум контроля, минимум накладок.

  • RTOS (Real-Time OS): FreeRTOS (самый популярный), Zephyr (набирает ход, современный), ThreadX, VxWorks (для высоконадежных систем). Гарантируют времена реакции.

  • Linux: Для мощных MPU (Raspberry Pi, BeagleBone). Yocto Project/Buildroot — для сборки кастомных образов.

Блокчейн и Web3

Блокчейн - По сути, это распределенная база данных (цифровой реестр), где записи ("блоки") связаны в цепочку криптографически. Данные хранятся не на одном сервере у корпорации, а у тысяч участников сети

Web3 - Идея следующего поколения интернета поверх блокчейна. Суть такова, пользователь владеет своими данными, цифровыми активами (NFT, токены) и участвует в управлении сервисами. Вместо обычных платформ децентрализованные приложения (dApps).

ЯП:

  • Solidity: АБСОЛЮТНЫЙ мастхев для Ethereum и EVM-сетей (Polygon, BSC и т.д.). Похож на JavaScript, но со спецификой.

  • Rust: Доминирует в Solana, Near, Polkadot (Substrate), всё чаще пишут смарт-контракты и на нем. Сложнее, но мощнее.

  • Vyper (для Ethereum): Альтернатива Solidity, фокус на безопасность и читаемость (синтаксис ближе к Python).

  • Go: Для разработки нод (клиентов блокчейна), утилит.

Desktop

Десктоп-разработка - Создание приложений, которые работают напрямую на ОС пользователя. В отличие от веба или мобилок, тут есть прямой доступ к железу, файловой системе и нативным API. Мощь, контроль, но и ответственность за стабильность.

Стек:

  1. Нативные технологии:

    • Windows (C# / .NET):

      • Языки: C#, C++/CLI

      • Фреймворки: WPF (XAML + C#), Wndows Forms

    • macOS:

      • Языки: Swift, Objective-C

      • Фреймворки: SwiftUI (новинка), AppKit (старая школа)

    • Linux:

      • Языки: C++, C, Python, Rust

      • Фреймворки: GTK (GNOME), Qt (KDE, кроссплатформенно), wxWidgets

  2. . Кроссплатформенные фреймворки:

    • Electron: JavaScript + Chromium + Node.js. Плюсы: Пишешь как веб-приложение (HTML/CSS/JS). Минусы: Жрет память как не в себя.

    • Qt (C++): Мощь, скорость, зрелость. Используют в AutoCAD, Tesla. Поддержка 3D, сетей, БД.

    • Avalonia (.NET): Кроссплатформенный аналог WPF. Пишешь на C# — работает на Windows/macOS/Linux.

    • Flutter (Dart): Добрался до десктопа. Пока сыроват, но трендовый.

    • Tauri (Rust): Альтернатива Electron. Бекенд на Rust, фронт - любая веб-технология. Размер приложения ~10 МБ вместо 150 МБ у Electron.

Разработка корпоративных решений (Enterprise)

Erprise-разработка - Создание софта для крупного бизнеса: банки, страховые, логистика, ритейл, госсектор. Системы обрабатывают миллионы транзакций, хранят терабайты данных и должны работать 24/7.

ЯП:

  • Java (Spring Boot, Jakarta EE, Quarkus): Король корпов.

  • C# (.NET Core ASP.NET): Популярен в банках и госсекторе.

  • Python (Django, FastAPI): Для аналитики, скриптов.

  • ESB: Apache Camel, MuleSoft, IBM Integration Bus.

  • API Gateway: Kong, Apigee, AWS API Gateway.

  • Очереди: Apache Kafka (лидер), RabbitMQ, IBM MQ, Azure Service Bus.

  • Стандарты: REST/JSON (модерн), SOAP/XML (легаси), gRPC (микросервисы).

  • SQL: Oracle DB, Microsoft SQL Server, PostgreSQL, IBM Db2. Транзакции, ACID, отчетность.

  • NoSQL: MongoDB (документы), Cassandra (высокая нагрузка), Redis (кэш/очереди).

  • Аналитика: Snowflake, Amazon Redshift, Apache Druid.

Финтех

FinTech (Financial Technology) - Область, в которой пишут технологии для финансов. Например, финтехи пишут платёжные системы, необанки, аналитику и бюджетирование, кридитные платформы, алготрейдинг, B2B-решения. Финтех разработчик занимается разработкой: бизопасных API и клиентских приложений; обработкой денежных транзакций, комиссий, волют; реализацией сложных бизнес-правил.

Стек:

  • Java: Часто используется.

  • Kotlin: Современная альтернатива Java.

  • Go: Высокая производительность, минимализм.

  • Python: Быстрая разработка, аналитика. Скоринг.

  • C#: Банковский и страховой сектор.

  • Rust: Безопасность и производительность.

Если понравилась статья - рекомендую подписаться на телеграм‑канал NetIntel. Там вы сможете найти множество полезных материалов по IT и разработке!

Показать полностью
[моё] Программирование IT Стек Разработка Языки программирования Web-программирование Backend Frontend Python Linux Windows Программист Программа Автоматизация Приложение Google Текст Длиннопост
3
0
trenerneigraet
1 месяц назад

Ищу оригинальный образ Windows для Toshiba Satellite L875-B4M с драйверами и фирменным запуском⁠⁠

Всем привет!

У меня Toshiba Satellite L875-B4M. Заводская Windows (скорее всего Windows 7 Home Basic) была лицензионной и работала отлично — ноут запускался быстро, тихо, без глюков, появлялась фирменная заставка Toshiba при включении, всё было оптимально.

Потом я переустанавливал систему, скачал с интернета какую-то другую версию Windows, но ноут стал работать не так гладко: запуск «тупит», звук вентилятора стал громче, нет фирменной заставки, и драйвера взаимодействуют иначе. Лицензионный ключ у меня есть, и можно поставить Windows заново с драйверами, но хочется именно тот оригинальный заводской образ, в котором всё идеально работает «из коробки».

К тому же раздел восстановления Toshiba удалён (восстановление через Toshiba Recovery невозможно).

Если у кого есть такой оригинальный образ Windows с драйверами и фирменным ПО для Satellite L875-B4M — поделитесь, пожалуйста. Или подскажите, где его можно найти.

Заранее спасибо!

[моё] Техника Ноутбук Windows Программирование Ремонт ноутбуков Текст
5
6
TECHLiveHACK
TECHLiveHACK
2 месяца назад

Все шпаргалки в одном месте⁠⁠

Все шпаргалки в одном месте Технологии, Telegram (ссылка), Программа, Гайд, Python, Шпаргалка, Программирование, IT, Полезное, Помощь, Компьютер, Приложение, Windows, Linux

Обширная коллекция шпаргалок по различным языкам программирования и библиотекам. Сгруппированы по алфавиту. В наличие даже PDF-файлы шпаргалок. Отличный ресурс для быстрого поиска нужной информации.

Сохраняем ссылку.

Источник

Технологии Telegram (ссылка) Программа Гайд Python Шпаргалка Программирование IT Полезное Помощь Компьютер Приложение Windows Linux
1
2
user10848676
2 месяца назад

История на зачете 2⁠⁠

Задание: написать программу пересылающую файл с одного ПК на другой.

Реализация:

На исходном ПК создается файловый поток в который загружается файл.

На ПК приемнике создается поток для получения файла.

ПК обмениваются информацией и поток приемник получает информацию о том что ему отправляют файл имярек размером хххх и радостно оповещает об этом пользователя: "файл скачивается!".

Программа завершает работу!

Мой вопрос: а где в итоге файл?

Ответ: не знаю, где-то на компьютере.!!!!!

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

Занавес!

По моему студент даже не понял, почему я так "*** огорчился"

Windows Приложение Программирование Зачет ChatGPT Текст
3
berlogamedved
berlogamedved
2 месяца назад
Серия Берлога Медведя: Жизнь и ИТ #автобиография

Автобиография. Часть 1 — Детство и юность (1999-2011)⁠⁠

Автобиография. Часть 1 — Детство и юность (1999-2011) Детство, IT, Колледж, Программирование, Компьютер, Windows

Мой путь в ИТ начался в далеком 2007 году. В то время я поступил в колледж информационных технологий после 9 класса. Почему именно ИТ? Это была одна из тех областей интересов, которые меня по-настоящему увлекали.

С 10 лет я проводил много времени за приставкой SEGA Mega Drive 2, а потом появился мой первый ПК. Основной фокус, конечно, был на играх, но в те времена часто приходилось возиться с установкой и настройкой — как запустить игру, чтобы она работала без проблем.

Не стоит забывать и про операционные системы. Первой у меня была Windows Me, и, как часто бывает, после множества инсталляций (игры, ПО) система ломалась, и я сталкивался с необходимостью ПЕРЕУСТАНОВИТЬ ШИНДОВС. Проблемы с железом не обошли меня стороной — иногда что-то выходило из строя (БП, ЖД, ГПУ), и приходилось разбираться, как починить. Это стало моим первым опытом траблшутинга, который открыл передо мной мир ИТ.

Чуть не забыл — в школьные годы мы с друзьями-соседями организовали локальную сеть для обмена файлами и играми. Вспоминая школьных друзей, я был именно тем другом, который поможет с компом, прошьет телефон и т.д.

Пришло время вернуться в колледж. В школе я учился не очень старательно, и когда я оказался в новых стенах, ощутил мощную нагрузку. За первый курс мы прошли программу 10-11 классов, и было нелегко. Почти до самого четвертого курса я был в списках на отчисление, но в последние моменты мне удавалось сдавать долги. В плане обучения было много математических предметов и, конечно, программирования. Первые курсы — Delphi, потом C# — к слову, они меня нисколько не увлекали. По-настоящему меня привлекло web-программирование, и даже некоторое время у меня был свой сайт о футболе на WordPress. Также, насколько помню, мы изучали Ассемблер и сдавали лабораторные работы по нему.

Колледж в 2011 году я все-таки закончил, получил диплом, но настало время задуматься о том, что делать дальше. Однако через пару дней после выпускного мои мысли пришлось кардинально изменить — я получил повестку в армию.

To Be Continued...

Показать полностью
[моё] Детство IT Колледж Программирование Компьютер Windows
0
0sadchi
0sadchi
2 месяца назад
IT-юмор

Смешные мучения с исходниками ММО, добавил кастомные метки внутри игры для группы и кланов⁠⁠

[моё] Программирование Windows C++ YouTube Hacking Видео
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии