Computer Science
Kanalga Telegram’da o‘tish
По всем вопросам: @altmainf Уважаемый менеджер: @altaiface
Ko'proq ko'rsatish7 876
Obunachilar
-324 soatlar
-147 kunlar
-5130 kunlar
Postlar arxiv
7 876
Что теперь умеет нейросеть Алиса? Узнайте раньше всех
Яндекс анонсировал прямую трансляцию конференции «Алиса, что нового?», где будет представлено новое поколение генеративных моделей. Эти разработки позволят нейросети Алисы расширить свои возможности и осуществлять действия в реальном мире.
Конференция «Алиса, что нового?» начнётся 28 октября в 12:00.
Прошлая конференция состоялась весной и была посвящена нейросети Алисе и анонсам умных устройств. В этот раз представители Яндекса расскажут о масштабном обновлении нейросетевых технологий.
Подпишитесь, чтобы не пропустить начало
Записаться онлайн
#реклама 16+
О рекламодателе
7 876
EXE (Windows Executable)
Структура:
• DOS Header: Первые 64 байта, служат для обратной совместимости с DOS. Содержит метку "MZ".
• PE Header: Заголовок Portable Executable, содержащий информацию о типе файла, секциях, размерах, точках входа и т. д.
• Секции:
.text: Код программы.
.data: Глобальные и статические переменные.
.rsrc: Ресурсы, такие как изображения и строки.
• Import Table: Содержит список используемых внешних функций и библиотек.
Использование:
• EXE файлы запускаются через двойной щелчок или через командную строку Windows.
• Поддерживает графические интерфейсы и консольные приложения.
ELF (Executable and Linkable Format)
Структура:
• ELF Header: Содержит информацию о типе файла (исполняемый, объектный и т. д.), архитектуре, размере заголовка и других метаданных.
• Program Header Table: Описывает сегменты, которые будут загружены в память.
• Section Header Table: Описывает секции файла (например, .text, .data, .bss и другие).
• Секции:
.text: Код программы.
.data: Инициализированные данные.
.bss: Неинициализированные данные.
.dynamic: Динамическая информация для линковщиков.
Использование:
• ELF файлы запускаются через терминал в UNIX-подобных системах или через графические оболочки.
• Поддерживает динамическую линковку, позволяя использовать библиотеки во время выполнения.
Ключевые различия:
• EXE предназначен для Windows, ELF — для Linux и других UNIX-подобных систем.
• ELF более модульный и гибкий, поддерживает динамическую линковку и различные типы секций.
• ELF включает больше информации о типах данных и секциях, что упрощает работу компиляторов и отладчиков.7 876
Ищете стабильную видеосвязь и мессенджер?
⚡WhatsApp и Telegram работают с перебоями, Skype с октября без техподдержки — публичные мессенджеры не подходят для бизнеса.
✅Российская платформа МТС Линк доступна 99,9% времени. Попробуйте и убедитесь сами.
Попробовать
#реклама 16+
mts-link.ru
О рекламодателе
7 876
Главная загрузочная запись (MBR)
Нулевой сектор физического жёсткого диска содержит так называемую главную загрузочную запись (MBR — Master Boot Record). При начальной загрузке компьютера с жёсткого диска
BIOS считывает этот сектор в оперативную память и передаёт управление содержащемуся в нём коду начального загрузчика.
MBR логически можно разделить на три области: код начального загрузчика, таблицу разделов и сигнатуру — слово со значением AA55h, занимающее последние два байта MBR. BIOS проверяет сигнатуру, чтобы убедиться в корректности MBR; если сигнатура не равна указанному значению, загрузка не выполнения и выдаётся сообщение об ошибке.
Начальный загрузчик, находящийся в MBR, в общем случае определяет, какой из разделов диска является активным, загружает в память первый сектор этого раздела и передаёт ему управление.7 876
Принципы SOLID в ООП
SOLID — это акроним, обозначающий 5 ключевых принципов проектирования ПО в ООП. Они помогают создавать гибкий, поддерживаемый и расширяемый код. Принципы были сформулированы Робертом Мартином (Uncle Bob). Каждый принцип решает конкретные проблемы в архитектуре классов и модулей.
1. Single Responsibility Principle (SRP) — Принцип единственной ответственности
• Суть: Каждый класс должен иметь только одну причину для изменения, то есть выполнять только одну задачу. Это предотвращает "божественные" классы, которые делают всё и ломаются при малейших изменениях.
• Пример: Класс
User должен только хранить данные пользователя (имя, email), а не отправлять письма. Для отправки создайте отдельный класс EmailService.
• Нарушение: Класс, который и сохраняет пользователя в БД, и логирует, и отправляет уведомления — изменение логики ломает всё.
• Преимущества: Легче тестировать, поддерживать и переиспользовать.
2. Open-Closed Principle (OCP) — Принцип открытости-закрытости
• Суть: Классы должны быть открыты для расширения, но закрыты для модификации. Добавляйте новую функциональность через наследование или интерфейсы, а не меняя существующий код.
• Пример: Интерфейс Shape с методом area(). Классы Circle и Rectangle реализуют его. Для нового Triangle просто добавьте класс, не трогая старые.
• Нарушение: Если в классе Calculator добавить новый тип операции прямо в код, это модификация.
• Преимущества: Минимизирует риски багов в существующем коде.
3. Liskov Substitution Principle (LSP) — Принцип подстановки Барбары Лисков
• Суть: Объекты подклассов должны быть взаимозаменяемы с объектами базового класса без нарушения корректности программы. Дочерний класс не должен ломать ожидания от родителя.
• Пример: Класс Bird с методом fly(). Подкласс Penguin не должен наследовать fly(), если пингвины не летают — лучше использовать композицию или интерфейсы.
• Нарушение: Подкласс бросает исключение в методе родителя, ломая полиморфизм.
• Преимущества: Обеспечивает правильное наследование и полиморфизм.
4. Interface Segregation Principle (ISP) — Принцип разделения интерфейсов
• Суть: Клиенты не должны зависеть от интерфейсов, которые они не используют. Разделяйте жирные интерфейсы на мелкие, специфичные.
• Пример: Вместо одного интерфейса Worker с work() и eat(), создайте Workable и Eatable. Робот реализует только Workable.
• Нарушение: Класс, реализующий интерфейс с 10 методами, но использующий только 2, вынужден реализовывать пустышки.
• Преимущества: Уменьшает связанность и упрощает код.
5. Dependency Inversion Principle (DIP) — Принцип инверсии зависимостей
• Суть: Зависимости должны строиться на абстракциях, а не на конкретных классах. Модули верхнего уровня не должны зависеть от нижних; оба зависят от абстракций.
• Пример: Класс OrderService зависит от интерфейса PaymentProcessor, а не от конкретного PayPalProcessor. Легко заменить на StripeProcessor.
• Нарушение: Прямое создание объектов (new PayPal()) в классе.
• Преимущества: Увеличивает гибкость, облегчает тестирование (mock'и) и инверсию контроля (IoC-контейнеры).7 876
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
7 876
Что такое RegExp?
Regular expression, регулярные выражения или регулярки — это механизм для поиска и замены текста. В строке, файле или нескольких файлах. Их используют разработчики в коде приложения, тестировщики в автотестах, да и просто при работе в командной строке.
Они удобны тем, что позволяют создать шаблон для поиска.
Метасимволы:
. — соответствует любому одному символу
[ ] — соответствует одному символу из содержащихся в квадратных скобках
^ — соответствует началу строки
$ — соответствует концу строки
*— соответствует 0 или более предыдущих элементов
? — соответствует 0 или одному предыдущему элементу
+ — означает, что предшествующий символ присутствует и может повторяться несколько раз
{ } — кол-во повторений предыдущего символа7 876
Где вести задачи и проекты?
В Битрикс24 ✅
Бесплатный онлайн-сервис для бизнеса и совместной работы.
— Удобный планировщик задач для всей команды с чек-листами и комментариями.
— Популярные проектные методики: канбан, скрам, диаграмма ганта.
— Видеозвонки в один клик из чата.
— Календарь и слоты для совместного планирования.
— Умный ИИ-помощник для постановки четких тз.
Полный комплект для эффективности вашей команды.
Ставьте первую задачу прямо сейчас⚡
Начать
#реклама 16+
task-24.bitrix24.ru
О рекламодателе
7 876
Штрих-коды — универсальный способ представления данных о товарах с помощью черных и белых полос.
Основные стандарты, такие как UPC (Universal Product Code) и EAN (European Article Number), позволяют однозначно идентифицировать продукт. Когда штрих-код сканируется, лазерный сканер считывает отражение света, преобразуя его в последовательность нулей и единиц. Эти данные отправляются в базу, где происходит сопоставление с информацией о товаре, такой как цена и описание.
Стандарты штрих-кодов различаются по формату, области применения и количеству закодированной информации. UPC, например, используется в основном в США и Канаде и состоит из 12 цифр, в то время как EAN, более распространенный в Европе, может иметь 13 цифр. ISBN (International Standard Book Number) применяется для книг и имеет уникальный формат. QR-коды, хотя и не являются традиционными штрих-кодами, могут содержать гораздо больше данных, включая ссылки и текст.
7 876
Дефрагментация дисков
Процесс поиска и сбора всех разделенных частей файлов в одно место — называется дефрагментацией. Таким образом все записанные данные оказываются целостными и располагаются в начале дорожки, что ускоряет обработку таких данных. Свободные же ячейки помещаются в конец дорожки для будущей записи.
Именно благодаря дефрагментации происходят следующие изменения в работе ПК:
⁃ Увеличивается скорость чтения/записи на диск.
⁃ Быстрее открываются приложения.
⁃ Повышается срок службы накопителя.
7 876
RAID-массив
RAID (Redundant Array of Independent Disks) — технология виртуализации данных, которая объединяет несколько дисков в логический элемент для повышения производительности. Соответственно, минимальное количество требуемых дисков — 2.
Есть несколько видов RAID-массива:
RAID 0 — принцип работы - чередование. Массив при котором информация разбивается на одинаковые по длине блоки, а затем записывается поочерёдно на каждый диск в структуре (фактическое увеличение производительности в 2 раза)
RAID 1 — принцип работы — «зеркалирование». Представляет собой параллельную запись информации с основного диска на другие — дублирующие.
RAID 10 (1+0) — совмещает в себе всё самое лучшее из RAID 1 и RAID 0
RAID 5 — схож по своему принципу работы с RAID 1. Только тут потребуется минимум 3 накопителя, на одном из которых будет храниться продублированная информация
7 876
+1
Рекламируйте бизнес на МегаФон Таргет и получите кешбэк
До 30 ноября получите кешбэк 100% за запуск рекламы на сумму от 10 000 руб
Находите новых пользователей для своего бизнеса через рекламную платформу МегаФон Таргет!
— На платформе доступен запуск рекламы в Telegram Ads
— 100+ готовых сегментов аудитории из базы биг даты МегаФона
— Более 78 млн потенциальных клиентов
— Выгодная цена смс от 3,5 руб
— И многое другое
Оставить заявку
Получить предложение
#реклама
megafon.ru
О рекламодателе
7 876
Контрольные суммы
Распространенный способ быстро и эффективно обнаружить повреждение данных в современных системах.
Для вычисления простой контрольной суммы нужно лишь сложить байты блока данных, но, конечно, придумано много более изощренных контрольных сумм, в том числе циклический избыточный код (
CRC), контрольная сумма Флетчера и другие [MK09].
В компьютерных сетях контрольные суммы используются следующим образом. Отправитель вычисляет КС байтов сообщения и посылает ее вместе с самим сообщением. Получатель также вычисляет КС поступившего сообщения; если она совпадает с отправленной, то есть надежда, что данные не были повреждены во время передачи.
КС оцениваются по нескольким критериям. Самый важный – сила, или способность к обнаружению ошибок: приводит ли изменение данных к изменению контрольной суммы? Чем сильнее контрольная сумма, тем больше шансов, что изменение данных не останется незамеченным.
Еще один важный критерий – производительность: каковы затраты на вычисление контрольной суммы?
К сожалению, сила и производительность редко уживаются, т. е. высококачественную контрольную сумму труднее вычислить.7 876
Гайд для РОПов по проведению эффективных вебинаров
Как руководителям отделов продаж увеличить количество успешных сделок при том же объеме лидов с помощью вебинаров?
Гайд от МТС Линк по обучающим вебинарам для отделов продаж.
✅ В гайде:
- Как эффективнее прокачивать скиллы менеджеров и закрывать больше сделок за меньшие сроки;
- Как организовать тренинг так, чтобы участники действительно подключились и дошли до финального модуля;
- Как выявить слабого менеджера и улучшить его показатели;
- Как сэкономить время на организации вебинара и пригласить всех участников в 2 клика.
Бонус внутри: 5 прикладных советов по контролю внимания участников во время вебинара
✨ Скачайте гайд бесплатно по ссылке
Скачать
#реклама 16+
mts-link.ru
О рекламодателе
7 876
Типы флеш-памяти
Флеш-память - это тип энергонезависимой памяти, которая используется в различных электронных устройствах, таких как USB-накопители, твердотельные накопители (SSD) и мобильные телефоны. Существует несколько типов флеш-памяти, каждый из которых имеет свои преимущества и недостатки.
Основные типы флеш-памяти:
• NOR Flash: NOR Flash позволяет выполнять чтение и запись на уровне байта, что делает ее подходящей для использования в коде и данных. Однако она имеет более низкую плотность хранения и более высокое энергопотребление, чем другие типы флеш-памяти.
• NAND Flash: NAND Flash позволяет выполнять чтение и запись на уровне страницы (обычно 512 байт или 4 КБ), что делает ее более эффективной для хранения больших объемов данных. Она имеет более высокую плотность хранения и более низкое энергопотребление, чем NOR Flash.
• SLC NAND Flash (одноуровневая ячейка): SLC NAND Flash хранит один бит данных на ячейку памяти, что обеспечивает высокую надежность и производительность. Однако она имеет более низкую плотность хранения и более высокую стоимость, чем другие типы флеш-памяти.
• MLC NAND Flash (многоуровневая ячейка): MLC NAND Flash хранит два или более бит данных на ячейку памяти, что обеспечивает более высокую плотность хранения и более низкую стоимость. Однако она имеет более низкую надежность и производительность, чем SLC NAND Flash.
• TLC NAND Flash (трехуровневая ячейка): TLC NAND Flash хранит три бита данных на ячейку памяти, что обеспечивает еще более высокую плотность хранения и более низкую стоимость. Однако она имеет еще более низкую надежность и производительность, чем MLC NAND Flash.
• QLC NAND Flash (четырехуровневая ячейка): QLC NAND Flash хранит четыре бита данных на ячейку памяти, что обеспечивает максимальную плотность хранения и самую низкую стоимость. Однако она имеет самую низкую надежность и производительность среди всех типов флеш-памяти.
Другие типы флеш-памяти:
• EEPROM (электрически стираемое программируемое ПЗУ): EEPROM позволяет выполнять чтение и запись на уровне байта, как и NOR Flash. Однако она имеет более низкую плотность хранения и более высокое энергопотребление.
• FeRAM (ферроэлектрическая ОЗУ): FeRAM позволяет выполнять чтение и запись на уровне бита, как и SRAM. Однако она имеет более низкую плотность хранения и более высокое энергопотребление.
7 876
Дарим подписку на Яндекс Музыку
Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте 30 дней бесплатно❤️
Попробовать
#реклама 18+
music.yandex.ru
О рекламодателе
Реклама на Яндексе
7 876
Основные различия между IPv4 и IPv6:
1. Адресная разрядность:
• IPv4 использует 32-битные адреса и поддерживает около 4,3 миллиарда уникальных адресов.
• IPv6 использует 128-битные адреса и обеспечивает гораздо большее количество уникальных адресов, практически неограниченное количество.
2. Формат адреса:
• IPv4 адреса записываются в десятичной системе, разделенные точками, например,
192.168.1.1.
• IPv6 адреса записываются в шестнадцатеричной системе, разделенные двоеточиями, например, 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
3. Поддержка и распространение:
• IPv4 широко используется в настоящее время, но из-за ограниченного количества адресов возникает проблема исчерпания адресов.
• IPv6 разработан для решения проблемы исчерпания адресов IPv4 и постепенно внедряется в сети.
4. Безопасность и другие функции:
• IPv6 включает в себя встроенные функции безопасности, такие как IPsec, что делает его более безопасным и защищенным по сравнению с IPv4.
• IPv6 также поддерживает более эффективную маршрутизацию и улучшенную поддержку качества обслуживания (QoS).7 876
REKONFA Live
6 ноября приглашаем рекламодателей, агентства и рекламные площадки обсудить технологии, маркетинговые инструменты и актуальные новинки. Ключевые участники рынка поделятся опытом и расскажут:
— О ситуации на рынке рекламы
— Как продвигать и продавать в интернете в 2025 году
— Как бизнесу адаптироваться к меняющимся условиям
Вас ждут доклады на актуальные темы, классный нетворкинг, вдохновляющая атмосфера для творчества и креатива.
Встречаемся 6 ноября в Москве. Для тех, кто не сможет приехать, организуем интерактивное digital-шоу. Мероприятие бесплатное, нужно только зарегистрироваться.
Зарегистрироваться
#реклама 18+
ya.rekonfa.ru
О рекламодателе
7 876
Как эффективно использовать Git и GitHub для управления проектами
Git — это система контроля версий, которая позволяет отслеживать изменения в коде и управлять проектами. GitHub — это платформа для хостинга проектов, использующих Git. В этой статье мы рассмотрим, как эффективно использовать эти инструменты для командной работы и управления проектами.
1. Основы Git
Git позволяет сохранять различные версии вашего кода. Для этого вам нужно создать репозиторий и выполнять следующие операции:
• Инициализация репозитория:
git init
Эта команда создаст скрытую папку .git, которая будет отслеживать изменения.
• Добавление файлов в индекс:
git add <file>
Для того чтобы сохранить изменения, нужно добавить файлы в индекс.
• Коммит изменений:
git commit -m "Your commit message"
Коммиты сохраняют изменения в репозитории.
• Просмотр истории:
git log
Команда показывает историю изменений в репозитории.
2. Использование GitHub
GitHub — сервис для хостинга репозиториев Git. Чтобы начать работать с GitHub, нужно создать репозиторий на платформе и подключить его к локальному репозиторию.
• Создание репозитория на GitHub:
1. Перейдите на GitHub и создайте новый репозиторий.
2. Скопируйте URL вашего репозитория.
• Подключение локального репозитория к GitHub:
В терминале выполните:
git remote add origin <URL вашего репозитория на GitHub>
• Отправка изменений на GitHub:
После коммита отправьте изменения на GitHub:
git push -u origin main
3. Работа с ветками
Для эффективной работы в команде часто используется принцип ветвления. Это позволяет работать над разными задачами параллельно и объединять их в основной код.
• Создание новой ветки:
git checkout -b <имя ветки>
• Переключение между ветками:
git checkout <имя ветки>
• Слияние веток:
Когда работа в ветке завершена, ее нужно объединить с основной веткой:
git checkout main
git merge <имя ветки>
4. Разрешение конфликтов
Иногда при слиянии веток могут возникать конфликты, когда изменения в разных ветках касаются одних и тех же строк. Git помечает такие места, и вам нужно вручную выбрать, какие изменения оставить.
5. Использование Pull Requests
Pull Requests (PR) позволяют предложить изменения в проект, который находится в удаленном репозитории. Это позволяет коллегам обсудить и проверить изменения до их слияния в основной код.7 876
Реализация чат-бота с использованием Python и NLP
Чат-боты становятся неотъемлемой частью различных сервисов, начиная от поддержки клиентов и заканчивая развлекательными приложениями. В этой статье мы создадим простой чат-бот с использованием Python и технологий обработки естественного языка (NLP).
Шаг 1: Установка библиотек
Для начала установим необходимые библиотеки:
pip install nltk
Шаг 2: Импортирование библиотек
Импортируем основные библиотеки для работы с текстом:
import nltk
from nltk.chat.util import Chat, reflections
# Убедитесь, что скачаны необходимые ресурсы
nltk.download('punkt')
Шаг 3: Создание правил для чат-бота
Мы создадим несколько шаблонов для простого общения. Каждый шаблон представляет собой пару: ввод пользователя и соответствующий ответ.
pairs = [
(r'Привет|Здравствуйте', ['Привет! Как я могу помочь вам?']),
(r'Как дела?', ['Хорошо, спасибо за вопрос! А у вас?']),
(r'(Что ты можешь делать\?)', ['Я могу отвечать на вопросы и помогать с простыми задачами!']),
(r'Пока', ['До свидания!'])
]
Шаг 4: Создание и запуск чат-бота
Теперь создадим чат-бота, который будет использовать наши шаблоны для общения.
chatbot = Chat(pairs, reflections)
chatbot.converse()
После запуска код будет ожидать ввода и отвечать согласно заданным шаблонам.