Mad Devs Channel
1.6K subscribers
664 photos
30 videos
1 file
867 links
Канал Mad Devs.🤘Здесь мы рассказываем о жизни компании и инсайтах. Делимся знаниями и лайфхаками IT-индустрии.
Download Telegram
Mad Stream c приглашенным гостем! 🔥

26 октября к нам подключится Николай Кутузов - инженер в Yandex и ex-Researcher-Scientist в Huawei, чтобы выступить с темой «Приложения машинного обучения в Wireless». 

С развитием машинного обучения, оно находит свои приложения в новых областях, в частности в Wireless. Применение машинного обучения в области WiFi представляет не только научный интерес, но и открывает возможности для создания новых IoT решений и улучшения качества передачи сигнала.

На выступлении мы разберем постановку задачи, разберем,  как развивалось данное направление, какие результаты были достигнуты научным сообществом, и рассмотрим конкретный пример применения ML: улучшение алгоритмов подбора параметров адаптации канала.

Дата/Время: 26 октября, 19:00 (GTM +7)

Вход на вебинар – свободный.

Ссылка будет доступна в нашем Telegram-канале за 15 минут до начала ивента.

Ждем всех!
🔥8👍3
🥷Good, old PHP challenge🥷

Есть тут те, кто РНР использует? Челлендж для вас и не только.
Найдите уязвимость, опишите в чем она заключается и опишите эксплуатацию пошагово.

Свои ответы маркируйте спойлером, чтобы у других участников была возможность решить челлендж без спойлеров. Будем ждать ваших решений в комментариях.
🔥7
Mad Devs Channel
Mad Stream c приглашенным гостем! 🔥 26 октября к нам подключится Николай Кутузов - инженер в Yandex и ex-Researcher-Scientist в Huawei, чтобы выступить с темой «Приложения машинного обучения в Wireless».  С развитием машинного обучения, оно находит свои…
Mad Stream переносится.

К сожалению, по независящим от нас причинам сегодня стрим с Николаем Кутузовым не может быть проведен. Мы обязательно анонсируем новую дату стрима позже.
👍3
Mad Devs Channel
🥷Good, old PHP challenge🥷 Есть тут те, кто РНР использует? Челлендж для вас и не только. Найдите уязвимость, опишите в чем она заключается и опишите эксплуатацию пошагово. Свои ответы маркируйте спойлером, чтобы у других участников была возможность решить…
Делимся решением челленджа:

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

Однако, у этого кода есть проблемы:
- Функция client_ip() опирается на заголовок HTTP_X_FORWARDED_FOR для определения источника запроса, но так как этот заголовок может быть передан клиентом в запросе, то это значит, что клиент может передать туда любое значение, в том числе и 127.0.0.1.
Код с 9 по 12 строчки проверяет, является ли значение в переменной $ip действительным ip адресом и входит ли оно в состав массива array('localhost', '127.0.0.1')

Отсюда делаем вывод и четко понимаем, что если клиент передаст в запросе заголовок X_FORWARDED_FOR: 127.0.0.1, он обойдет эту первую проверку.

Далее по коду проверка на наличие сессионного идентификатора, что подразумевает некую функцию аутентификации, которой в коде не представлено. Но нам это и не нужно, так как проблема очевидна: если пользователь не аутентифицирован, код отправляет пользователя на error.php задав в ответе заголовок Location: error.php и... продолжит выполнение, так как после header("Location: error.php"); не стоит exit() или die(). Это значит, что хоть НЕаутентифицированный пользователь визуально в браузере и увидит перед собой страничку error.php, call_user_func все равно будет выполнен.

Итоговый запрос на получение удаленного выполнение кода будет таким:

GET /code.php?system&arg=whoami HTTP/2.0
Host: domain.com
X-FORWARDED-FOR: 127.0.0.1
👍2
Это все Карма

Karma Framework - это метод организации, разработанный в Нидерландах в 1970-х годах, основанный на принципе круговой организации. В этом методе люди объединяются в круги, чтобы достигать общих целей. Круги являются динамичными и также могут исчезать, когда цель достигнута, например, если определенная связь больше не требуется компании.

Что значит аббревиатура?
📌 Karmic (Карма и ценности): Учитываем не только числа, но и эмоции в работе.
📌 Adaptive (Гибкость и быстрая реакция): Готовы быстро адаптироваться к изменениям.
📌 Relevant (Удобство и целесообразность): Используем удобные методы для задачи.
📌 Meaningful (Смысл и цели): Работаем не только ради задач, но и для достижения смысла и целей.
📌 Approach (Комбинированный подход): Применяем разные методы в зависимости от ситуации.

🔘 Как это работает?
Есть один главный корневой круг, а внутри него - много меньших кругов (дочерних). Меньшие круги работают над своими задачами, но их цели всегда связаны с целями главного круга. Каждый круг самостоятелен и свободен в выборе, как достигать своих целей и как управлять своей работой.

🔘 В чем суть?
В Karma Framework команды (Круги) работают над продуктами, учитывая их особенности и потребности заказчика. Главный KPI - довольство заказчика. Да используются стандартные метрики, но также учитывается эмоциональные аспекты для адаптации к изменениям. Основа работы Кругов -
Ожидание - запрос задачи или ресурса
Обещание - согласие на активность или предоставление ресурса

🔘Как этого внедрить?
🔺Начните с определения контекста и целей.
🔺Помните, что "Круги" в Karma Framework создаются и прекращаются гибко и легко, в отличие от отделов в классических организациях.
🔺 Руководители должны быть осторожными и заботливыми в управлении "кругами". Уровень вовлеченности сотрудников зависит от того, насколько лидеры следуют установленным правилам.
🔺 Разработайте инструменты для управления эмоциональными напряжениями и предотвращения персональных конфликтов. Иногда требуется найти компромисс, отложить выполнение обязательств или создать новый "круг" в зависимости от ситуации.
👍3
Как работает gRPC 🤖

Протокол RPC (Remote Procedure Call) называется "удаленным вызовом процедур" потому, что он позволяет производить вызовы функций или процедур между удаленными службами, когда эти службы развернуты на различных серверах в архитектуре микросервисов. Для пользователя это выглядит так, как будто он вызывает функцию или процедуру локально, даже если она выполняется удаленно на другом сервере.

🖥️ Прикрепленная диаграмма иллюстрирует общий поток данных для gRPC. Выполняются следующие шаги:

Шаг 1: Клиент делает вызов REST. Тело запроса обычно в формате JSON.

Шаги 2 — 4: Служба заказа (клиент gRPC) получает вызов REST, преобразует его и выполняет вызов RPC к службе оплаты. gRPC кодирует структуру клиента в бинарный формат и отправляет ее на транспортный уровень низкого уровня.

Шаг 5: gRPC отправляет пакеты по сети через HTTP2. Из-за бинарного кодирования и оптимизации сети говорят, что gRPC в 5 раз быстрее, чем JSON.

Шаги 6 — 8: Служба оплаты (сервер gRPC) получает пакеты из сети, декодирует их и вызывает серверное приложение.

Шаги 9 — 11: Результат возвращается из серверного приложения, кодируется и отправляется на транспортный уровень.

Шаги 12 — 14: Служба заказа получает пакеты, декодирует их и отправляет результат клиентскому приложению.

Расскажите в комментариях, использовали ли вы gRPC в своих проектах? Какие недостатки вы заметили? 👇
👍8
Основные принципы ООП: наследование в программировании

Принцип наследования в ООП — это как использование готовых строительных блоков для построения дома. Один класс (суперкласс) предоставляет набор функций и свойств, а другие классы (подклассы) могут использовать эти функции и свойства, добавляя свои собственные.

Вот почему это полезно:
✔️Повторное использование кода
Вы можете взять готовый класс и использовать его в других частях программы, что сокращает дублирование кода.
✔️Добавление новых функций
Вы можете создавать новые классы, основанные на существующих, и добавлять в них дополнительные функции или свойства.
✔️Упрощение управления
Это помогает упорядочить код, разбивая его на логические части, что делает его более читаемым и управляемым.
✔️Поддержка разных типов данных
Он позволяет работать с объектами разных классов с помощью общего интерфейса, упрощая обработку данных разных типов.

В итоге принцип наследования — это мощный инструмент, который делает разработку программ проще и эффективнее. Он позволяет создавать гибкие и модульные приложения, облегчая разработку и сопровождение сложных проектов. Кроме того, он способствует повторному использованию кода и соблюдению принципов DRY (Don't Repeat Yourself) и SOLID, что помогает создавать высококачественный и эффективный код.
5👌2👍1
Шпаргалка по типам чисел в Java 📝

Java — мощный и гибкий язык программирования, и работа с числами является неотъемлемой частью разработки. В этом посте мы поговорим о различных числовых типах в Java и их применении.

1️⃣ В Java существуют 4 цельночисленных типа, различающихся по размеру в битах и диапазону значений:

📌 byte: 8 бит, от -128 до 127.
📌 short: 16 бит, от -32,768 до 32,767.
📌 int: 32 бита, от -2,147,483,648 до 2,147,483,647.
📌 long: 64 бита, от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.

Это разделение по битности позволяет оптимизировать использование памяти и процессора в зависимости от задачи.

2️⃣ Существуют два типа чисел с плавающей точкой:

📌 float: 32 бита, диапазон значений примерно от 1.4e-45 до 3.4e+38, с точностью около 7 знаков после запятой.
📌 double: 64 бита, диапазон значений примерно от 4.9e-324 до 1.8e+308, с точностью около 15 знаков после запятой.

Эти типы данных используются для работы с нецелыми дробными числами, предоставляя широкий диапазон значений и высокую точность. Тип float имеет более ограниченную точность и диапазон по сравнению с типом double.

3️⃣ Символьный тип char в Java представляет собой 16-битный символ Unicode, имеющий диапазон значений от \u0000 до \uffff. Char позволяет работать с символами, включая буквы, цифры, знаки препинания, специальные символы и даже управляющие символы. Этот тип данных применяется для обработки текстовых данных, названий файлов и символов форматирования, таких как перевод строки (\n) или табуляция (\t).

4️⃣ Два особенных числовых типа: BigInteger и BigDecimal.

BigInteger используется для работы с очень большими целыми числами, превышающими диапазоны типов данных int и long. Он предоставляет методы для арифметических операций над целыми числами произвольной длины.

BigDecimal, с другой стороны, используется для работы с числами с плавающей точкой, обеспечивая высокую точность при арифметических операциях. Это особенно полезно в финансовых расчетах и других сценариях, требующих точных результатов.

Эти два типа данных позволяют работать с числами, выходящими за рамки стандартных числовых типов в Java.

Надеемся, что теперь вам яснее, какие числовые типы данных в Java подходят для ваших задач 👍
👍3🔥3👏1
Почему и зачем дата-сайентисту нужны графы 🔗
Давайте разберемся, что такое теория графов, в каких аналитических задачах она находит применение и почему она несмотря на свою сложность важна, особенно для начинающих в области Data Science.

Графы — абстракция для анализа связей между сущностями: множество вершин и множество рёбер, которые их соединяют. Они важны в Data Science, особенно в задачах, где классические методы не подходят.

Например, компании как Uber, Google, Pinterest все чаще переходят на графовые методы, увеличивая производительность. По прогнозам Gartner, к 2025 году графы будут использоваться в 80% инноваций в области данных и аналитики.

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

📌 Рекомендации товаров или друзей
Графы помогают идентифицировать схожие интересы или связи между людьми, что позволяет делать рекомендации товаров, друзей или контента.

📌 Выявление мошенничества
Графы могут использоваться для построения цепочек транзакций и выявления подозрительных действий или мошенничества.

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

📌 Ранжирование информации
Графы могут быть использованы для ранжирования информации, например, в поисковых системах, чтобы определить авторитетность веб-страниц.

📌 Хранение взаимосвязей между сущностями
Графы знаний используются для хранения информации о сущностях и связях между ними, что помогает семантически структурировать знания.

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

Графы — универсальный инструмент, используемый в разных задачах. Не нужно запоминать всю их функциональность, важно понимать, что это и в каких областях применяется.
👍4
Рабочая этика – что может быть проще? О ней уже все сказали и все знают. Что еще добавить? Личный опыт!

В 44-ом выпуске #Кибирд, Олег Пузанов и Михаил Иващенко расскажут на личном примере, что такое рабочая этика, укажут основные принципы и частые проблемы, встречающиеся у сотрудников на рабочем месте. Это видео полезно всем, но особенно тем, кто желает улучшить свою рабочую этику и добиться больших результатов в карьерном росте. Также это видео будет полезно тем, кто лишь начинает свой карьерный путь.

🔗 Смотреть
👍2🔥21
Cloudflare Fonts или повышение конфиденциальности и скорости шрифтов веб-сайта 🤖💬

Забудьте о сторонних серверах Google Fonts и скажите привет улучшенной конфиденциальности и мгновенной производительности с Cloudflare Fonts. Теперь вам не потребуется никаких сложных изменений. Поговорим подробнее в этом посте.

Шрифты и конфиденциальность
При загрузке шрифтов с серверов Google ваш веб-сайт обменивается данными с Google. Это может привести к сбору данных, включая IP-адреса и другую информацию. Хотя Google утверждает, что эти данные не используются для персонализированной рекламы, сохранение конфиденциальности всегда важно.

Cloudflare Fonts позволяют загружать шрифты с вашего домена, сохраняя конфиденциальность и улучшая соответствие требованиям локализации данных. Это важно для защиты данных ваших пользователей.

Улучшенная производительность
Cloudflare Fonts решает проблемы производительности путем предоставления возможности загружать шрифты непосредственно с собственного домена веб-сайта. Это устраняет необходимость отправки запросов на сторонние серверы, такие как серверы Google, и уменьшает количество сетевых операций, что способствует улучшению производительности загрузки страницы.

Быстрые шрифты
Cloudflare Fonts улучшает производительность сайтов, уменьшая количество сетевых запросов с 8 до 1 и устраняя необходимость отправки запросов на сторонние сервера для CSS и шрифтов. Он также удаляет необходимость в отдельном запросе для CSS, обеспечивая всего один round-trip для загрузки шрифта. Это достигается путем переписи HTML-кода, чтобы внедрить CSS и модифицировать URL шрифтов. Результаты тестов Google Lighthouse показывают, что Cloudflare Fonts значительно улучшает производительность, сокращая время загрузки первого элемента контента на странице и повышая общую оценку производительности.

Ускорение Cloudflare Fonts с помощью ROFL
С технологией ROFL вы узнаете как ускорить веб-производительности. Модуль ROFL (Response Overseer for FL) от Cloudflare, разработанный с использованием языка Rust для обеспечения безопасности и производительности, преобразует веб-производительность, позволяя в реальном времени изменять HTML и быстро адаптировать ссылки Google Fonts. Эта технология значительно сокращает дополнительную задержку, связанную с обработкой HTML, что приводит к улучшению производительности веб-сайтов.

Надеемся эта информация пригодится вам в работе. А может быть вы уже используете и у вас сложилось свое мнение. Поделитесь своим мнением в комментариях 👇
👍3
Svelte против Vue: какой интерфейсный фреймворк лучше? 💻

Сейчас в мире технологий происходит жаркая битва между фреймворками. Раньше считались, что React, Angular и Ember. Но сейчас все изменилось, Vue и Svelte приобрели огромную популярность и успешно вошли в список лучших фреймворков JavaScript по всему миру. Однако выбор между ними может быть сложным.

При выборе между Vue и Svelte учитывайте их характеристики и задачи вашего проекта.

Преимущества Svelte:
1. Легкий старт, особенно если вы знакомы с C++, HTML и JavaScript.
2. Обеспечивает отличную производительность за счет оптимизации пользовательского кода на этапе компиляции.
3. Требует меньше кода, что приводит к лучшему опыту пользователя.

Преимущества Vue.js:
1. Прост и нагляден, подходит для тех, кто знаком с HTML, CSS и JavaScript.
2. Предоставляет широкий выбор инструментов, включая Vue CLI, для безпроблемной разработки.
3. Обладает высокой производительностью и масштабируемостью, при компактном размере и компонентной структуре.

🤷 Какой фреймворк лучше?

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

Поддержка сообщества
Оба фреймворка имеют поддержку сообщества, но Svelte получил высокие оценки удовлетворенности, что делает его привлекательным вариантом.

Размер
Размер приложения имеет значение, и Svelte хорошо подходит для небольших приложений, в то время как Vue является легковесным фреймворком, что также способствует быстрой разработке. Оба фреймворка подходят для разработки как небольших, так и более крупных и сложных приложений.

Независимо от выбора, оба фреймворка подходят как для небольших, так и для более крупных и сложных приложений. Важно выбрать тот, который лучше соответствует вашим целям и задачам разработки.
👍4🤔3
Лучшие практики для React в 2023 ⚛️

Сегодня мы поговорим о самых актуальных и лучших практиках для разработки с использованием React. Готовы узнать, как создавать отличные проекты с помощью этой потрясающей библиотеки?

📍 Структурируйте папки. Организуйте файлы и ресурсы в проекте с четкой структурой папок, учитывая группировку по маршрутам и функциональности или по типу файлов.
📍 Структурированный порядок импорта. Группируйте импорты по типу (сторонние библиотеки и локальные файлы) для улучшения понимания кода.
📍 Соглашения по именованию. Соблюдайте соглашения по именованию, такие как camelCase и PascalCase, для компонентов и переменных соответственно.
📍 Используйте линтер. Используйте инструменты типа ESLint для обеспечения согласованности и выявления ошибок в коде.
📍 Используйте библиотеки сниппетов. Воспользуйтесь библиотеками сниппетов, чтобы ускорить разработку, такие как ES7+ React/Redux/React-Native snippets.
📍 Объединение CSS и JavaScript. При работе над большими проектами объедините CSS и JavaScript с помощью фреймворков, таких как Tailwind CSS и Emotion.
📍 Ограничьте количество компонентов. Не создавайте избыточные компоненты; используйте Props для повторного использования логики.
📍 Внедрите отложенную загрузку (Lazy Loading). Используйте отложенную загрузку, чтобы ускорить загрузку веб-страниц, загружая только необходимый код.
📍 Переиспользуемые хуки. Создавайте переиспользуемые хуки для расширения функциональности компонентов и избегайте дублирования логики.
📍 Управление ошибками. Обрабатывайте ошибки с помощью инструментов, таких как react-error-boundary, чтобы обнаруживать и управлять ошибками в приложении.
📍 Тестирование и мониторинг. Тестируйте код для обнаружения ошибок и проблем. Следите за обновлениями React и библиотек для поддержания производительности.
📍 Быстрый и надежный хостинг. Используйте быстрый и надежный хостинг-провайдер для доступности вашего веб-приложения.
📍 Следите за обновлениями React. Это позволит вам адаптировать ваш код и использовать новые функции для оптимизации производительности.
📍 Используйте быстрый и надежный хостинг-провайдер. Выбирайте надежного хостинг-провайдера для доступности вашего веб-приложения. Варианты включают бесплатные (Firebase, Vercel, Netlify, GitHub Pages) и платные (Azure, AWS, GoDaddy, Bluehost), а также Application Hosting от Kinsta с широким инструментарием и поддержкой.

С правильным применением этих практик вы сможете разрабатывать удивительные проекты на React и выделяться в мире фронтенд-разработки. Успехов вам в ваших будущих проектах! ⚛️🚀
5
DevFest 2023 совсем скоро!

В этом году мы вновь поддерживаем сообщество GDG Bishkek и выступаем со-организаторами крупнейшей IT-конференции в Кыргызстане DevFest. Это международная технологическая конференция, организуемая сообществами Google Developer Group (GDG) по всему миру в период с сентября по декабрь ежегодно.

DevFest объединяет экспертов, специалистов и новичков в различных областях Tech сообщества. Вас ждут доклады именитых спикеров, которые помогут узнать о последних тенденциях в разработке программного обеспечения, искусственном интеллекте, машинном обучении и менеджменте и многих других смежных сфер. Во время конференции вы сможете не только приобрести знания, но и завести новые знакомство и отлично провести время в кругу единомышленников.

Полная информация о спикерах и темах конференции появится в ближайшее время, а пока Early birds могут начать приобретать билеты здесь. В прошлом году за неделю до конференции был объявлен sold out , поэтому советуем купить билет заранее, пока они еще есть.

Дата конференции: 17 декабря 2023, стартуем в 10:00
Место: Бишкек, Американский Университет Центральной Азии

До встречи на DevFest 2023 👋
👍51
Какие основные различия между интерпретируемым и компилируемым языком 💻

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

Интерпретируемые языки
🔺 Python, JavaScript, PHP, Ruby
Hаботают с помощью интерпретатора, который выполняет код построчно. Преимущества таких языков в том, что изменения в коде проявляются сразу, и они более гибки в работе с динамической памятью и типами данных. Однако интерпретация может быть медленной, особенно в крупных проектах с большими объемами данных.

Компилируемые языки
🔺 C++, Java, C, Rust, Kotlin
Требуют предварительной компиляции исходного кода в машинный код до его выполнения. Это делает их более эффективными с точки зрения производительности, но изменения в коде требуют перекомпиляции.

Выбор между ними зависит от конкретной задачи и требований проекта. Важно учитывать, что существуют и гибридные подходы.

Какой язык программирования вы изучали первым?
👍6
О микрофротенде

Микрофронтенд - это подход, при котором фронтенд разделяется на небольшие кодовые базы, хранящиеся в отдельных репозиториях и управляемые разными командами. Каждый микрофронтенд имеет свои стенды, тесты и циклы выпуска.

‼️Важно: в первую очередь это организационное решение для управления сложностью разработки, а не способ ускорить фронтенд.

Преимущества:
⭐️ Независимость разработки — разные команды могут работать над разными микрофронтендами, не затрагивая друг друга.
⭐️ Легкость масштабирования — микрофронтенды могут масштабироваться независимо друг от друга, что упрощает обновление и развертывание системы.
⭐️ Гибкость в выборе технологий — каждый микрофронтенд может использовать те технологии, которые наилучшим образом подходят для его задач.
⭐️ Уменьшение конфликтов — изоляция микрофронтендов помогает уменьшить конфликты между разработчиками и обеспечивает надежную работу системы.
⭐️ Быстрое развертывание — микрофронтенды могут быть легко развернуты и обновлены независимо, что ускоряет процесс разработки и доставки.

Есть множество подходов для организации микрофронтендов, но все зависит от вашей конкретной ситуации и требований проекта. Давайте рассмотрим возможные варианты и их назначение:
📌 iframe - используйте, когда необходимо встроить отдельные некомпатибельные компоненты в единый интерфейс.
📌 веб-компоненты - подходят, если вам нужна небольшая, независимая функциональность, например, корпоративный UI Kit.
📌 пакеты npm - пригодятся, если есть компоненты, которые могут быть повторно использованы в разных проектах и вы хотите обеспечить проверку типов во время сборки.
📌 git submodules - подходит, если вам нужно разделить проект на отдельные репозитории и распределить зоны ответственности между командами.
📌 single-spa - используйте, если вам необходимо комбинировать несколько фреймворков в одном приложении, особенно без серверного рендеринга.
📌 модуль-федерация - подходит для всех остальных сценариев использования микрофронтендов, при условии, что у вас есть единый стек технологий.

Прежде чем перейти к микрофронтендам, важно тщательно оценить, действительно ли они необходимы для вашего проекта. Каждый из этих подходов вносит свои сложности в разработку, CI/CD и производительность. Если у вас есть возможность остаться на одном стеке и использовать монолитное приложение, это может быть более простым и эффективным решением.
👍4
Области применения линейной алгебры в программировании 🖥️

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

🖥️ Анализ данных и машинное обучение
Линейная алгебра помогает в поиске связей между переменными, снижении размерности данных, кластеризации и обработке изображений. В линейной регрессии и логистической регрессии используются матричные операции для предсказаний. Метод главных компонент уменьшает размерность данных, а кластерный анализ группирует их по сходству. Нейронные сети, сверточные сети и метод опорных векторов также включают линейную алгебру для обработки данных и классификации.

🖥️ Разработка игр
Она задействована от 3D-графики и физического моделирования до анимации. Описывает объекты в 3D-пространстве, имитирует физическое поведение, и помогает в анимации, создании красочных игровых миров.

🖥️ Искусственный интеллект
Линейная алгебра обрабатывает и анализирует данные, оптимизирует алгоритмы, и помогает в создании умных стратегий и поведения для приложений и игр.

🖥️ Квантовые вычисления
В квантовой механике состояния систем описываются как векторы в линейном пространстве. Квантовые алгоритмы используют линейную алгебру для работы с квантовыми состояниями и операторами. Квантовые вентили, аналогичные битам, представлены матрицами, и используются в алгоритмах квантовых вычислений. Также она применяется в квантовых каналах и задачах оптимизации.

🖥️ 3D-моделирование
Линейная алгебра — основа в ПО для 3D моделирования. Она поддерживает математические модели, трансформации, освещение, анимацию, нормализацию поверхности и расчет коллизий, делая 3D приложения реалистичными и функциональными.

Для упрощения использования линейной алгебры в разработке, можно прибегнуть к специализированным библиотекам.

📍 NumPy и SciPy предоставляют функции для операций над массивами и линейной алгебры.
📍 SymPy позволяет работать с матрицами и векторами, а Pandas удобна для анализа данных в виде таблиц.
📍 Для Data Science и машинного обучения TensorFlow и PyTorch поддерживают многомерные массивы и обширные функции линейной алгебры.
📍 CuPy также обеспечивает матричные операции и вычисления собственных значений. Выбор библиотеки зависит от конкретных потребностей и производительности проекта.

Если вас интересует линейная алгебра, вот несколько книг для чтения:

📍 “Математические алгоритмы для программистов: 3D-графика, машинное обучение и моделирование на Python” — отличное введение в линейную алгебру и математический анализ в программировании с множеством практических примеров на Python.
📍 “Линейная алгебра и ее применения” Гилберта Стренга — обширный учебник, охватывающий основные теоремы и методы линейной алгебры в доступном стиле.
📍 “Высшая математика. Линейная алгебра. Векторная алгебра. Аналитическая геометрия” — объемное пособие с множеством задач, связанных с линейной алгеброй.

Выберите книгу или курс в зависимости от вашего уровня подготовки и интересов, и изучайте линейную алгебру с удовольствием 🧠
👍5
Узнайте о том, как создать подушку безопасности для предотвращения выгорания сотрудников и как отслеживать процессы в компании, чтобы не терять денеги. В этой статье на vc.ru мы рассказали об Enji.ai, который собирает данные с ежедневных стендапов, ворклогов и работает с отчетностью из трекеров, мессенджеров и репозиториев кода в одном месте.
🔥9👍1
🎙HR-специалист из Mad Devs Клара Абдукова выступит на DevFest 2023 с темой “Почему разработчики — больше не молчаливые ребята в капюшонах?”

Клара - HR специалист с 6+ годами опыта в HR/Talent Manegement, из них уже 4 года работает в IT. Основное направление, на котором специализируется Клара - это построение внутренних процессов в компании, таких как онбординг и оффбординг сотрудников, грейдинг. Выступает в роли ментора и тимлида, и имеет высшее психологическое образование.

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

Конференция DevFest 2023 пройдет уже в это воскресенье 17 декабря, в АУЦА (Бишкек).
Билеты на конференцию в продаже. Их осталось совсем немного.

До встречи на DevFest 2023!
🔥11
Представьте себе, что вы только что получили электронное письмо от банка, в котором говорится, что ваша учетная запись была взломана. В электронном письме содержится ссылка на веб-сайт, где вы можете проверить свою учетную запись и изменить свой пароль. Однако, как только вы это делаете, вы понимаете, что это была подделка. Но доступ к вашим учетным данным и деньгам на карте уже получен. Это лишь один из многих способов, которыми киберпреступники могут нанести ущерб вашей жизни.

Мекан, ведущий инженер по безопасности в Mad Devs, запустил канал на Youtube, посвященный кибербезопасности. На канале вы найдете видео на различные темы, от базовых правил кибербезопасности до прохождения CTF коробок на HackTheBox.

Очень рекомендуем подписаться на канал Мекана, чтобы чувствовать себя более защищенным в digital мире.
🔥15👍1