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

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

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

📍 Безопасность данных. Защита данных от некорректного доступа. Класс предоставляет методы (геттеры и сеттеры) для безопасного доступа и проверки операций.
📍 Сокрытие реализации. Инкапсуляция позволяет менять внутреннюю реализацию класса без влияния на внешний код, облегчая поддержку и развитие программы.
📍 Упрощение интерфейса. Инкапсуляция обеспечивает простой интерфейс взаимодействия с объектами через публичные методы класса, скрывая детали его внутренней реализации.
📍 Модульность. Инкапсуляция создает модульные системы с классами, представляющими отдельные модули с данными и методами. Модули взаимодействуют через публичные интерфейсы, улучшая читаемость и восприятие кода.
📍 Принцип единственной ответственности. Инкапсуляция соответствует принципу единственной ответственности. Класс отвечает только за свои данные и операции с ними.
📍 Контроль доступа. Инкапсуляция в ООП устанавливает уровни доступа к данным и методам, обеспечивая защиту и контроль кода.

Применение процесса инкапсуляции в программировании помогает обеспечить структурированный, безопасный и гибкий код. Кроме того, внедрение инкапсуляции в программирование помогает эффективно управлять сложностью кода и облегчает сотрудничество разработчиков в процессе работы над крупными проектами.
👍7😢1
JWT - по секрету лишь клиенту

JWT (JSON Web Tokens) - это простой и безопасный способ передачи информации между клиентом и сервером. Своего рода секретное зашифрованное сообщение, расшифровать которое может только получатель.

Он состоит из трех отдельных частей, разделенных точкой (.):
1️⃣ Заголовок: содержит метаданные о токене и используемом криптографическом алгоритме, обычно это HMAC SHA256 или RSA.
2️⃣ Полезная нагрузка: здесь хранятся фактические данные, которые содержит токен. Полезная нагрузка также известна как "утверждения" и может включать информацию о пользователе и дополнительные метаданные.
3️⃣ Подпись: криптографически защищенное доказательство, которое подтверждает отправителя и гарантирует, что сообщение не было изменено во время передачи.

⚙️ Работает вот так:
🔹 Клиент выполняет вход, сервер проверяет учетные данные, генерирует JWT и отправляет его клиенту.
🔹 Клиент хранит JWT и включает его в заголовок каждого последующего HTTP-запроса.
🔹 Сервер проверяет JWT и, если действителен, аутентифицирует и авторизует клиента.

Но не забываем про безопасность при использовании!

‼️ Уязвимости JWT:
🔻 Кража токена: JWT хранятся на клиентской стороне и могут быть украдены. Обязательно использовать HTTPS для защищенной передачи данных.
🔻 Отсутствие встроенного механизма недействительности: JWT не могут быть индивидуально или группово отозваны. Будьте внимательны при работе с устаревшими токенами.
🔻 Размер токена: Слишком большой размер JWT может негативно повлиять на производительность сети. Избегайте хранения большого объема данных в токене.
🔻 Уязвимости алгоритмов: Некоторые алгоритмы JWT могут быть уязвимы к атакам. Всегда используйте безопасные и обновленные алгоритмы, и храните ключи подписи как секретную информацию.
👍8🤔1
Mad Devs в поисках Creative Lead-а 🚀

Наш технический опыт не ограничивает наши творческий потенциал и креативные идеи. Мы реализуем их, создавая посты в социальных сетях, подкасты и стримы, проводя мероприятия, коллаборируя с международными изданиями и, чего уж там, даже записывая видео в TikTok. Чтобы усилить нашу креативную команду, мы ищем Creative Lead-а, который возьмет на себя управление нашей контент-стратегией и процессом публикации, и сублимирует сотни креативных идей рождающихся внутри Mad Devs в вирусный, запоминающийся, хайповый контент, который захватит социальные сети.

Если вы креатор и любитель технологий, заядлый участник различных онлайн-сообществ и всегда в курсе последних новостей, трендов и мемов в мире ИТ, мы ждем вас в нашей команде!

Узнать больше подробностей о вакансии и подать заявку вы можете по ссылке: https://maddevs.io/careers/creative-lead/
🔥10🤣2
Нужно ли учить язык R, если ты питонист?

R создан для статистического анализа и визуализации данных (dataviz). Python тоже подходит, но R легче в использовании:
📌 Удобные встроенные компоненты: R предлагает простоту работы без сложной документации.
📌 Быстрое прототипирование и обнаружение инсайтов: R помогает быстро находить идеи для анализа данных.
📌 Богатство библиотек и пакетов: R имеет много полезных библиотек для визуализации и обработки данных, таких как ggplot2, dplyr, Leaflet и simplevis.
📌 R и Python имеют примерно одинаковую лаконичность и читаемость синтаксиса
📌 Сообщество R достаточно популярно среди статистиков и исследователей данных, и насчитывает около 2 миллионов человек. Благодаря этому, можно легко найти ответы на сложные вопросы и обмениваться опытом.

➡️Но есть небольшой нюанс - R может быть медленнее Python в некоторых операциях, особенно при использовании циклов for.

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

А вы используете R в своей работе? Поделитесь ваши опытом 👇
👍4
scrollbar-gutter

scrollbar-gutter предназначено для решения проблемы с "прыгающей" шириной контента, которая возникает при появлении или скрытии скроллбара. Обычно это происходит, когда высота контента меняется или появляется модальное окно.

У scrollbar-gutter есть три значения:
📍 auto — это значение по умолчанию. Если у элемента установлено overflow: scroll или overflow: auto, и его содержимое вызывает переполнение, тогда появляется отступ для скроллбара.
📍 stable — отступ для скроллбара появляется, если у элемента установлено overflow: hidden, overflow: scroll или overflow: auto, независимо от того, вызывает ли его содержимое переполнение.
📍 stable both-edges — то же самое, что и stable, но отступы для скроллбара будут создаваться с двух противоположных сторон. При вертикальной прокрутке — справа и слева, при горизонтальной — сверху и снизу.
Важно отметить, что во всех случаях не будет создаваться отступ, если скроллбар является оверлейным.

scrollbar-gutter поддерживается всеми современными браузерами, за исключением Safari. ☝🏻
Подробнее можно узнать здесь
👍3🔥1
Anthropic запустила Claude 2 🤖

Anthropic был основан в 2021 году Дарио Амодеем, бывшим директором по исследованиям в компании OpenAI, вместе с другими бывшими сотрудниками компании. Чат-бот стартапа, известный как Claude, проходил закрытое тестирование с января 2023 года.

На сегодняшний день чат-бот Claude имеет бета-версию, которая доступна через платный API с тарифом около $0,0465 за 1000 слов или на сайте claude.ai. На данный момент, сервис доступен только для жителей США и Великобритании. Однако в будущем планируется расширить охват и предоставить доступ к новой модели для пользователей из других стран.

Обновленная нейросеть, Claude 2, представляет собой значительный шаг вперед в области искусственного интеллекта. Она обладает улучшенной способностью писать код, решать математические задачи и создавать более длинные тексты. Кроме того, она чаще форматирует ответы в JSON, XML и YAML правильно. Однако, в отличие от GPT-4, эта нейросеть не способна искать информацию в интернете.

Важно отметить, что Claude 2 также демонстрирует значительное снижение частоты выдачи "обидных, опасных или предвзятых" ответов по сравнению с предыдущей моделью Claude 1.3. Несмотря на улучшения, компания признает, что, как и любая другая модель, Claude 2 не застрахована от возможных сбоев. Поэтому сложно предсказать ее поведения в различных ситуациях. Это подчеркивает важность дальнейшего развития и исследований в области ИИ для обеспечения безопасного и эффективного использования таких мощных инструментов.

По данным стартапа, новая модель, Claude 2, продемонстрировала лучшие результаты по сравнению с Claude 1.3 при прохождении профессионального экзамена для получения медицинской лицензии.

Также, она показала более высокие результаты при ответе на вопросы того же типа из юридического теста — 76,5% против 73%. Это подтверждает улучшенные возможности и эффективность новой модели в решении профессиональных задач и увеличении точности ответов на разнообразные вопросы из различных областей знаний.

Довелось ли вам уже поработать с Claude 2? Поделитесь мнением в комментариях 👇
🤔1🌚1
Методология для проекта

Цикл жизни проекта представляет собой последовательность этапов, которые проходит проект с момента его создания до передачи в операционную эксплуатацию. Ясное представление и понимание этого цикла позволяют команде:
📌 эффективно управлять проектом в соответствии со стратегией развития компании или организации;
📌 поддерживать спокойный темп работы над проектом;
📌отслеживать прогресс и статус каждого этапа проекта;
📌 завершать проекты более оперативно;
📌 минимизировать риски и ограничения;
📌 управлять рисками, закупками, коммуникациями и интеграцией.

Однако не всем удаётся правильно организовать процессы. Согласно данным PMI, как минимум 12% от каждого вложенного миллиарда долларов теряется из-за низкой эффективности выполнения проектов, отсутствия силы и мотивации у команды, а также из-за несоблюдения сроков и неправильного определения приоритетов.
Мы подготовили для вас 3 методологии, которые помогут вам выработать правильный подход. Смотрите в карточках ⬆️
👍6
4 главные ошибки разработчиков на собеседованиях
Интересуетесь вакансиями и ищете свое идеальное место работы? Тогда не пропустите наш новый пост. Сегодня мы рассмотрим 4 главные ошибки, которые вы можете допустить на собеседованиях. Узнаете, как избежать неловких ситуаций и впечатлить работодателей своими навыками и профессионализмом.

Ошибка №1. Не указывать реальную локацию и пожелания по работе в резюме
Важно указывать реальное место жительства в резюме на работных сайтах, чтобы избежать несоответствий и упростить работу рекрутеров. Не забывайте уточнять детали, важные для вас в работе, такие как тип занятости и предпочитаемые технологии, для более точного подбора вакансий. Это поможет сократить время и улучшить релевантность запросов.

Ошибка №2. Не написать про софт скиллы
Кроме технических навыков, для успешного собеседования важны и другие аспекты. Коммуникация, работа в команде и эмпатия – это одни из ключевых факторов при оценке кандидата. Соблюдение профессиональной этики и уважительное отношение к интервьюерам – залог успешного прохождения собеседования.

Ошибка №3. Неподобающие условия для собеседования
Подготовка к интервью говорит о вашей мотивации. Проверьте камеру, обеспечьте тишину и надежный интернет. Задний фон и внешний вид также важны – оденьтесь и приберитесь, чтобы создать приятное впечатление.

Ошибка №4. Не надо приукрашивать ситуацию
Не преувеличивайте знание технологий на интервью. Если не работали с ними, честно признайтесь. Лучше искренность, чем стыдливый поиск ответов во время собеседования. HR всё заметит.

Это одни из самых распространенных ошибок на собеседованиях. Чтобы повысить свои шансы на успешное прохождение интервью, постарайтесь их учесть и избежать в будущем. Помните, честность и подготовка – ключи к впечатляющему выступлению перед работодателем. 💪

Кстати, с открытыми вакансиями в Mad Devs вы можете ознакомиться здесь.
👍91🔥1
Векторных базы данных: Интересные факты

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

📍 Недавние достижения в области ИИ общего назначения (AGI) сделали векторные базы данных настолько популярными.

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

📍 Примеры использования:
- поиск похожих изображений или текста
- рекомендация похожих продуктов
- обнаружение аномалий
- временное хранение вложений для большого объема входных данных

📍 Немножко цифр. Компании, разрабатывающие векторные базы данных, которые привлекли крупное финансирование:
Pinecone: 138 миллионов долларов
Milvus: 113 миллионов долларов
Weaviate: 67,7 миллионов долларов
Chroma: 20 миллионов долларов
Qdrant: 9,8 миллионов долларов

И небольшой бонус. Ловите диаграмму сравнения между векторной базой данных и другими типами баз данных.
А вы используете векторные базы данных? Поделитесь своим опытом!
👍5
Mad Stream продолжается! 🔥

22 августа наш Frontend Developer Константин Бабушкин выступит с темой: «Garbage Collection».

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

Дата/Время: 22 августа, 19:00 (GTM +6)

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

Ждем всех!
🔥15
На каких языках кодят в NASA и SpaceX 🚀

Ещё в 2000-х годах для кораблей NASA использовались маломощные по современным меркам процессоры. К примеру, в 2006 году корабли работали на процессорах Intel 8085 1976 года выпуска и для их программирования использовался Ассемблер.

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

Например, Министерства Обороны США разработали универсальный язык Ada. С его помощью управляли кораблями, самолётами и военными базами. Но и тут не все так просто. Ada был прост, быстр и надёжен, но он не был лёгким, из-за чего NASA перешла на С.

На сегодняшний день большая часть ПО в NASA разрабатывается на С, в то время как Python вовсе не используется. Кроме того, разработчики NASA избегают применения С++. Разработчики отмечают, что при разработке на С проблемы возникают реже, потому что он наиболее близок уровню «железа», а писать на нём — легко и быстро.

В отличие от NASA, SpaceX предпочитает использовать С++, который отлично подходит для разработки удаленных систем управления. Также, SpaceX использует JavaScript, включая фреймворк веб-приложений Knockout.js и шаблонизатор Handlebars, в свои инструменты. В компании реже применяют динамический язык стилей LESS и Python. В области операционных систем, предпочтение отдается Linux.

Существует ли готовое ПО для полёта на Луну?
К сожалению, информация о конфигурациях программного обеспечения для запуска ракет не распространяется космонавтами. Тем не менее имеются обрывки данных о ранее использованных решениях.

На GitHub можно найти несколько репозиториев с кодом для миссии Apollo-11, например:
📍 chrislgarry/Apollo-11 — это восстановленный репозиторий с кодом на Ассемблере. Благодаря специалистам из Virtual AGC и Музея MIT мы узнали как выглядел код для оригинальной лунной миссии.
📍 alfonsokim/apollo-guidance-computer — Код написан на языках С и С++ и использовался для Центра принятия решений миссии Аполлон-11.
📍 virtualagc/virtualagc — большая часть этого ПО ещё одна версия ПО написана на Ассемблере, также использованы Xproc и С. Применялось для Центра принятия решений.

Кроме этого, можно посмотреть еще:
📍 VxWorks — это ОС, которая использовалась в NASA и SpaceX. Использовали для кораблей серии Dragon и для марсохода Curiosity.
📍 SOFTWARE CATALOG — это список open-source решений от NASA, используемых в программе. Например, можно найти ПО для робота Astrobee, который выполняет стыковку и посадку на МКС.

Надеемся, что мы ничего не упустили. А если вы знаете еще больше интересных фактов и готовы ими поделиться, то всегда рады вас видеть в комментариях. To infinity... and beyond 🚀
👍4🔥4
Прогуляйтесь по городу из вашего кода с помощью Grappl 🏙️

Grappl — это свежий плагин, который был выпущен в июле 2023 года. Это визуализатор для VS Code, с помощью которого можно строить целые города из вашего кода, а затем прогуливаться по ним.

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

Grappl работает с любыми языками, поддерживаемыми VS Code, и весь анализ кода происходит в пределах вашей локальной среды VS Code.

Несмотря на то, что это коммерческий проект, в текущей версии плагин доступен бесплатно для всех желающих.

Как использовать Grappl?

1️⃣ Установите Grappl с помощью команды ext install grappl.grappl в VS Code.

2️⃣ Запустите парсинг вашего кода. Плагин предложит выполнить парсинг сразу после запуска. Весь код будет загружен из папки src в VS Code, но вы также можете добавить другие источники в настройках. Начнется процесс визуализации кода.

3️⃣Для прогулки по городу, построенному на основе вашей кодовой базы, используйте стрелки на клавиатуре и мышь/тачпад, словно вы перемещаетесь по карте.

4️⃣Подключите Jira и Trello, чтобы видеть, что необходимо добавить в коде и какие проблемы требуют решения. Добавить доски можно с помощью команды alt+d. Если вы хотите выбрать карточку с задачей и приступить к работе над ней, нажмите alt+c.

5️⃣Чтобы посмотреть, как блоки кода связаны между собой, нажмите на блок в Grappl и затем alt+r. Плагин отобразит все зависимости.

Grappl — это новый проект, поэтому делать окончательные выводы о его полезности пока сложно. Однако вы можете сформировать свое мнение и поделиться им с нами в комментариях. 👇
🔥81👍1
Mad Devs Channel
Mad Stream продолжается! 🔥 22 августа наш Frontend Developer Константин Бабушкин выступит с темой: «Garbage Collection». За время стрима вы не только поймете как работает память и узнаете что такое Garbage Collection, но и рассмотрите основные алгоритмы…
Напоминаем, что уже сегодня в 19:00 (UTC 6+) начнется Mad Stream на котором Константин Бабушкин, наш Frontend Developer, выступит с темой доклада «Garbage Collection»🔥

Вход на стрим – свободный! Ссылка будет опубликована в нашем Telegram-канале за 15 минут до начала ивента.
🔥5