Terraform: реализация технологии “инфраструктура как код”
Предлагаем ознакомительный обзор Terraform — инструмента, которым должен овладеть каждый инженер-программист. Экспресс-демонстрации помогут вам быстро освоить основной функционал Terraform, чтобы успешно использовать инновационную технологию “инфраструктура как код”.
Как взломать веб-версию WhatsApp за 3 дня — отчет белого хакера
Whatsapp не раз привлекал внимание хакеров из-за своих уязвимостей. С этой точки зрения мессенджер представляет немалый интерес для исследователей проблем безопасности. Если вы относитесь к их числу, ознакомьтесь с отчетом белого хакера о 3-дневной работе по взлому веб-версии WhatsApp.
5 ловких приемов Xcode для рефакторинга кода
Ищите быстрый и эффективный способ рефакторинга кода? Представляем среду разработки Xcode и ее эффективные возможности.
YAML против JSON: какой формат эффективнее для работы с LLM?
Сравним два формата, применяемых в работе с языковыми моделями: JSON и YAML. Выясним, почему YAML эффективнее с точки зрения временных и ресурсных затрат, чем JSON.
Ранние версии кодовых баз популярных проектов: как все начиналось
Знаете ли вы, что самые известные публичные проекты рождались как побочные эксперименты и личные инициативы? Приглашаем вас в путешествие по архивным версиям кодовых баз, чтобы открыть истоки привычных инструментов разработки.
5 недооценённых приложений в помощь программисту
Вступление
Весьма ироничен тот факт, что разработчики используют кучу разных приложений и ПО, чтобы создавать… приложения и ПО. С течением времени мы выработали строгие предпочтения...
С нуля до разработчика игр: как начать создавать видеоигры, если у вас нет опыта
Два года назад я была простой семнадцатилетней ученицей средней школы и я ничего не знала о программировании. Но я все равно достигла своей цели...
5 советов по быстрому написанию кода на любом языке программирования
Создать работающий код - это искусство. Но ценность программиста заключается не только в теоретической, но и в практической подкованности. Мы расскажем, как писать качественный код с минимальными временными затратами.
Секрет быстрого обучения
Многие молодые разработчики боятся выглядеть глупо. Они уверены, что это преуменьшает их способности в глазах других и отрицательно влияет на их карьеру.
Однако все наоборот....
Как писать код, который будет нравится вам в будущем
Дядя Бен однажды сказал Питеру Паркеру: “С большой силой приходит большая ответственность”. Эта цитата относится также и к программистам, отвечающим за разработку проектов. После...
21 серьёзная ошибка за 21 год работы программистом
7 апреля 2020 года — знаменательная дата для меня, ведь ровно 21 год назад в этот день началась моя карьера программиста.
Уф! Всё было будто вчера, а...
Чем отличается разработка продукта для ИИ
Люди, которые интересуются темой искусственного интеллекта, часто спрашивают, кто такой ИИ-разработчик. В данной статье мы хотим помочь вам понять, чем отличается разработка продуктов на...
Какие вопросы задавать HR-менеджеру во время собеседования
Последние 6 недель я только и делала, что проходила собеседования на роль middle-разработчика программного обеспечения в Амстердаме. Амстердам — это очень большой город, и собеседований я...
Как мне не удалось совладать с устаревшим кодом
Я очень хорошо помню свой первый опыт работы с устаревшим кодом. Я была младшим разработчиком и совершенно не представляла, что делаю.
Само приложение было чем-то...
Инструменты с открытым исходным кодом, популярные на GitHub
Общедоступные проекты - фреймворки, библиотеки и утилиты - не только повышают производительность приложений, но и способствуют сотрудничеству и инновациям. Представляем 7 инструментов, ставших популярными на GitHub: go-containerregistry от Google, Es-toolkit от Toss, HyperDX, Cerbos, Stagehand, Tauri и FTL.
Знакомство с Git и GitHub: руководство для начинающих. Часть 2
Часть 1, Часть 2
Рабочий процесс на GitHub
Допустим, у вас есть проект с кучей разных идей и возможностей для дальнейшей реализации. Что-то из этого...
Дизайн для искусственного интеллекта
Чем дизайн для ИИ отличается от традиционного дизайна? Расскажем про преимущества и недостатки использования ИИ в UX-дизайне, а также рассмотрим перспективы развития данного вида дизайна.
8 бесплатных шпаргалок, которые должны быть в закладках у каждого разработчика
Как ничего не упускать и изучать программирование эффективно? Эти сайты пригодятся в качестве справочной информации, особенно при подготовке к экзамену или даже собеседованию.
Настройка сервера AWS Aurora PostgreSQL и мониторинг его производительности
Наглядная пошаговая инструкция настройки базы данных Aurora PostgreSQL с описанием различных опций.
Подсказки по именованию логических переменных
Существует определенное соглашение — снабжать имена логических переменных и функций префиксами “is” или “has”. Ну, знаете, что-то вроде isLoggedIn, hasAccess или наподобие этого.
Но на...
SQL в науке о данных
Введение
SQL (язык структурированных запросов) - язык программирования, используемый для запроса и управления данными в реляционных базах данных. Реляционные базы данных состоят из наборов двумерных...
Введение в бинарный поиск
Представляем простой алгоритм обнаружения нужных значений - бинарный поиск. Разбираемся, как он работает, на примерах, а также описываем его этапы.
Рекурсивное программирование
При первом знакомстве с концепцией рекурсии, она может показаться странной и отталкивающей. Это кажется почти парадоксальным: как мы можем найти решение проблемы, используя решение...
Обработка сигналов в операционных системах семейства Unix на Golang
Сигналы в операционных системах семейства Unix — это программные прерывания, которые отправляются программе для указания на возникновение какого-то важного события. Это могут быть разные...
Репозитории GitHub, которые помогут подготовиться к техническому собеседованию
Предлагаем вашему вниманию коллекцию учебных ресурсов, которые помогут легко пройти собеседование по программированию.
Разработка ПО — системы плагинов
Рассмотрим особенности систем плагинов, которые позволяют разработчикам расширять функциональность и модульность программ. В качестве примера создадим чат-бот.
Прикольные анимации для Flutter-приложений
Я покажу вам 6 прикольных анимационных эффектов, которые можно попробовать в своих приложениях. Добавлять анимацию с Flutter — одно удовольствие. И делать это можно по-разному. Например,...
Вычислительные затраты на написание чистого кода
Почему иногда люди пишут подобный код?
var = float(str(alist).split())/3+float(alist)
Ответ прост: чтобы сэкономить вычислительное время. Стоит только написать это в четыре строки…
var = alist[::-1][0]
var = str(var).split()[1:4]
var...
Топ 10 лучших дистрибутивов Linux в 2018 году
Мир дистрибутивов Linux крайне разнообразен и новичку будет достаточно сложно определиться с выбором. Мы подготовили данный Топ-10 дистрибутивов Linux, чтобы помочь вам найти для...
Как украсть секреты разработчиков через Websocket?
Это история о запутанном и не очень полезном методе извлечения кода, создаваемого ничего не подозревающими JavaScript разработчиками, занятыми над секретными проектами.
Недавно в сети появилась...
Почему вы никогда не будете слишком стары, чтобы изучать Java (или любой другой язык...
“Любви все возрасты покорны.”
Несмотря на то, что очень многие солидарны с этой фразой, я постоянно наблюдаю за тем, как люди загоняют себя в мнимые...
Почему западные приложения более минималистичны, чем азиатские?
Узнаем, чем отличаются культуры коллективизма и индивидуализма. Изучим влияние этих культур на онлайн-коммуникацию, а также UI/UX дизайн. Выделим основные различия двух культур и узнаем, как улучшить локализацию продукта.
Несколько советов, которые помогут вам на собеседовании и не только
Зачастую, получить первую должность в качестве разработчика крайне трудно.
Как убедить человека принять вас на работу, если опыта как такового и нет? Какие вещи знать...
Руководство по написанию чистого и читабельного кода для начинающих разработчиков. Часть 2
Часть 1, Часть 2
Не забывайте про принцип DRY (Не повторяйтесь)
Принцип DRY гласит:
“ Каждая часть знания должна иметь единственное, непротиворечивое и авторитетное представление в рамках...
Первые шаги в программировании: работа без ошибок
Овладение искусством написания кода может стать неоценимым вкладом в ваше будущее, так как этот профессиональный навык востребован в современном мире как никогда раньше. Именно...
5 S-принципов в программировании
Хотите прокачать свой уровень разработки, но не знаете, с чего начать? Возьмите на вооружение 5 S-принципов из производственного опыта компании "Тойота".
Лучшие JavaScript библиотеки за 2019 год для построения диаграмм
Вступление
По мере того, как увеличиваются объёмы и сбор данных, необходимость визуализации этих данных становится всё более актуальной. Разработчики ищут способы объединять миллионы записей баз...
Лучшие бесплатные источники наборов данных для анализа
Сбор высококачественных данных представляет собой важную часть любого анализа данных или проекта по машинному обучению. В целях экономии вашего драгоценного времени команда WebDataRocks подготовила...
Станьте экспертом в разработке с этими продвинутыми советами по кодированию. Часть 1
Самое худшее, что может произойти с разработчиком, — это застрять в своей нынешней квалификации. Когда вы знаете о пробелах в собственных знаниях, но не понимаете, чем...
Стоит ли разработчику изучать VIM в 2020 году?
Введение
Небольшая предыстория для понимания контекста. В конце 2018 года я всерьез занялся программированием, решив развивать карьеру. До этого я создавал (довольно плохие) сценарии для...
Определите свой уровень технических навыков — экспериментальный проект от Яндекса
Яндекс запускает экспериментальный проект по диагностике технических навыков. Принять участие могут бэкенд- и мобильные разработчики, а также разработчики интерфейсов и аналитики.
В рамках диагностики вы...
Ленивая загрузка, агрегирование и CQRS
Рассмотрим шаблоны, позволяющие справляться с приложениями, у которых повышается сложность, и поймем, в каких случаях пригодится каждый из них.
Обзор плагинов Obsidian
Рассмотрим несколько новых плагинов Obsidian для автоматического создания индексов папок, страницы обзора проектов, ссылок из строк, размещения галереи и геймифицирования хранилища.
Топ-12 факторов, уничтожающих продуктивность программиста
Никто не ждет от программиста, что он сделает свою работу, не используя компьютер. Но при этом многие компании ожидают, что он сделает свою работу,...
Как определить цели разработчику программного обеспечения
Почему важно устанавливать цели
За последние несколько лет постановка целей стала неотъемлемой частью жизни, поскольку отслеживание процесса развития помогает в достижении новых высот.
Каждому специалисту по...
Топ-5 самых простых и востребованных языков программирования в 2025 году
Какой язык программирования подойдет для старта в IT-сфере? Рассмотрите 5 самых востребованных и простых в изучении языков. Каждый из них имеет свои преимущества, которые обеспечат вам успешную карьеру в конкурентном мире разработки ПО.
10 полезных команд для командной строки и консоли
Консольные команды позволяют продвинутым пользователям работать еще быстрее и продуктивнее, так как редактура команд вручную отнимает много времени, а написание коротких, но эффективных инструкций для консоли доставляет не меньше удовольствия, чем само написание кода.
Создаем ИИ с помощью OpenAI
Создайте с помощью Node.js собственное приложение на базе ИИ, которое на основе предоставленных инструкций будет генерировать код, изображения и текст.
Чистый код работает медленно, но он все равно нужен
Что важнее - чистота, читаемость, расширяемость и надежность кода или производительность? Чтобы ответить на этот вопрос, нужны прагматизм и гибкость квалифицированного специалиста. Прислушайтесь к рекомендациям опытного разработчика iOS, Android и игр.
Шоу должно продолжаться: обеспечение безопасности Netflix Studios с масштабированием
Узнайте об одной из выдающихся стратегий Netflix Studios - развертывании приложений, гарантирующем 100% аутентификации поддерживающим его сервисам. Она многократно сокращает время и усилия разработчиков, а также риски безопасности в интернет-пространстве.
Как и почему я перешёл с Ruby на Python
В 2008, когда я ещё учился на инженера-разработчика, двое моих друзей решили запустить проект под названием Feedbooks. Суть проекта состояла в создании электронной библиотеки,...
Как начать учиться, когда на это совсем нет времени
Как вы проводите свое время?
Недостаток времени — основная причина, почему мы не учимся изо дня в день! На самом деле проблема заключается в другом! У каждого из...
Как начать работать программистом почти без опыта
Я попал в Кремниевую Долину через черный ход — я начинал свою карьеру с простых и быстрых подработок на фрилансе. Рекомендую этот подход: это эффективный и...
Как мой 10-летний сын выучил Javascript
“Папа . . . А чем ты зарабатываешь на жизнь?”
Этот неожиданный вопрос заставляет нас, родителей, испытать чувство гордости. Так как он означает, что ребенок наконец-то видит в...
Руководство по Docker. Часть 3: Amazon Web Services, Travis CI и Elastic Beanstalk
Руководство по Docker. Часть 1: образ, контейнер, сопоставление портов и основные команды.
Руководство по Docker. Часть 2: Docker Compose для JavaScript, Python и Redis
С помощью первых...
Что я изучил за год занятия программированием
Будучи учеником старшей школы, я начал изучать графический дизайн. В основном, я занимался созданием различных иконок, логотипов и геофильтров для Snapchat. Примерно в то...
8 советов, как стать лучше во фронтенд-разработке
Должен ли я планировать свой проект или лучше сразу погрузиться в процесс разработки? Стоит ли мне внедрить вот этот плагин или вон ту библиотеку?...
Какой язык программирования выбрать в 2019?
Благодаря интернету весь мир имеет доступ к ресурсам для обучения программированию: как платным, так и бесплатным. Каждый щелчок мыши ведёт к новой статье, новому...
Что в голосе моем? - Код!
Недавно у меня состоялся интересный разговор со слабовидящей девушкой. Вернувшись домой, я поймал себя на мысли, а что было бы, имей я такого рода...
Автоматический мониторинг скорости API с помощью динамического тестирования
Готовый вариант тестирования производительности API. Настраиваем и запускаем! Экономит время на прописывание и обслуживание тяжелых тестов.
О нейронных сетях в двух словах
Нейронным сетям посвящены горы научной литературы. Перед погружением в тему ознакомьтесь с кратким обзором нейронных сетей, принципами их работы и использованием в машинном обучении.
11 общедоступных аналогов SaaS: собственный хостинг с Docker
Ознакомьтесь с преимуществами и методами перехода от традиционных моделей SaaS (Software as a Service) к самостоятельным решениям с помощью Docker. Используя эти инструменты, вы сможете получить больший контроль над своей программной экосистемой и уменьшить зависимость от проприетарных сервисов.
Принципы SOLID - ключи к чистому коду
Хотите писать чистый, удобочитаемый код и экономить при этом время? Тогда уделите несколько минут изучению принципов SOLID, выведенных легендарным Робертом К. Мартином в бестселлере "Чистая архитектура".
Как рационально использовать GIT
Вчера код работал, сегодня нет
Код был удален
Появилась ошибка и никто не имеет представления почему
Если у вас была такая ситуация, то эта статья для вас.
Не считая знания...
9 лучших примеров макетов сайта и идей для веб-дизайна в 2018
Есть всего одна возможность создать хорошее первое впечатление. Качественный дизайн сайта может в первую же секунду поразить посетителя. Именно поэтому дизайн главной страницы очень...
Комментарий в коде написать - всё равно, что проиграть
Могу себе представить, какое бурное негодование вызвал у вас лишь заголовок данной статьи, но не спешите бросать в меня камни и просто выслушайте. Уместные...
Почему не всегда стоит следовать принципу DRY
Наряду с принципом "не повторяйся", в программировании есть другой принцип "повторяйся, если в этом есть смысл". Предлагаем задуматься над тем, когда и каким принципом стоит руководствоваться, чтобы не создать код "с душком".
Язык запросов Lisp Query Notation
Автор делится своей разработкой — альтернативой sed и awk для любителей Lisp. В материале вы найдете примеры применения языка, в частности для JSON, и ссылку на более техническое описание в формате PDF.
4 шага для повышения концентрации
Одним из наиболее важных навыков, выделяющих успешных людей, является умение выполнять работу сфокусированно в течение продолжительного времени.
Если вы работаете в среде знаний (исследователь, разработчик...
Утечка мозгов в 3 часа дня: почему разработчики не могут продуктивно думать после обеда?
Почему в 15:00 мы наименее продуктивны? Может, это тайное время сна нашего мозга? В таком случае следует выяснить, в какие периоды суток мы наиболее энергичны и сосредоточены, а когда наступает спад мозговой деятельности.
Топ-12 языков программирования для корпоративного ПО в 2026 году
Выбор языка для корпоративного ПО в 2026 году — стратегическое бизнес-решение. Внедрение ИИ и облачных технологий требует идеального баланса производительности, безопасности и доступности разработчиков. Обзор 12 ключевых языков, задающих тон в современной корпоративной разработке, поможет вам сформировать идеальный стек.
Какую СУБД начать изучать в первую очередь?
Какую систему баз данных стоит изучить в первую очередь? И стоит ли вообще изучать какие-либо СУБД, ведь для этой работы есть специально обученные люди?
Да,...
Обзор команд Git для отмены изменений
Откроем двери в мир Git и рассмотрим полезные команды для отмены самых разных изменений.
Программирование: 5 недооцененных навыков
Убедитесь, что они есть в вашем арсенале
Сейчас инженеры-программисты нуждаются в довольно широком спектре навыков. Наверху списка этих навыков вы найдете что-то вроде того, что… вам...
5 шагов к созданию крутого пул-реквеста
Во-первых, поздравляю с тем, что вы достигли этих рубежей! Создание пул-реквестов — это последний шаг на пути согласования улучшенного вами кода с владельцем его оригинала и...
1984 в 2020: Социальная инженерия в Китае
Китай— крупнейшая по численности населения страна мира, в в которой проживает 1,4 миллиарда человек. Если бы правительство Китая не ввело агрессивную политику «одна семья — один...
OTP-аутентификация c Devise
Сделаем простую реализацию OTP-аутентификации с Devise-функционалом Confirmable без сторонних библиотек или обширных конфигураций. Напишем функции для обработки форм валидации OTP и повторной его отправки.
Введение в Subject в реактивном программировании
Subject — это «особый» тип наблюдаемого объекта, который позволяет транслировать значения сразу нескольким подписчикам. Самое классное здесь то, что Subject предоставляет ответы в режиме реального времени.
Например,...
Как приобрести навыки, необходимые для выживания в мире современных технологий
5 способов, которые помогут перестать беспокоиться о будущем
Современный мир нестабилен и непрерывно развивается. Автоматизированные машины, данные и алгоритмы, компьютеры и код — изменения затрагивают все аспекты нашей...
Интеллектуальная синергия: динамические отношения между искусственным и человеческим интеллектом
ИИ дополняет потенциал человека, а люди следят за тем, чтобы ИИ служил интересам человечества. Рассмотрим подробно преимущества искусственного и человеческого интеллекта, а также способы формирования ими новой парадигмы, в которой будут гармонично сосуществовать инновации и эмпатия.
Когда программисты выходят на пенсию? 35 — новые 55?
Обсудим правду, слухи и закат карьеры программистов
Не задумывались, почему в офисе нечасто можно увидеть седых разработчиков? Куда все деваются, когда становятся старше? Неужто компании...
Клятва Гиппократа для дизайнеров в эпоху искусственного интеллекта
Время разработки этических принципов для дизайнеров настало. Клятва Гиппократа для дизайнеров не только послужит защитой от возможных ошибок, но и станет навигатором, направляющим специалистов на создание инноваций, действительно служащих интересам человечества.
Руководство по Docker. Часть 2: Docker Compose для JavaScript, Python и Redis
Рассмотрим написание docker-compose.yml и запуск веб-приложения в связанных контейнерах Docker Compose на примере Node.js и Redis.
Как я столкнулся с плохим разработчиком в команде и какие выводы из этого сделал
Мы видим их издалека, а менеджерам это удаётся не всегда.
Допустим, вы находитесь в команде разработчиков, и один из сотрудников плохо выполняет свою работу, а вы...
3 инструмента, чтобы начать программировать на недорогом гаджете
В твиттере я общаюсь с людьми, которые только приступают к разработке приложений. Иногда они говорят, что, чтобы начать программировать, им нужен (дорогой) ноутбук. Но для...
Развенчание мифов о разработке программного обеспечения
Каждой отрасли — свои мифы. Как правило, они возникают, когда посторонним людям трудно понять специфику работы специалиста. Некоторые предрассудки забавны, а другие — откровенно...
Разделение окон в Vim
Рассмотрим возможности редактора Vim в плане организации рабочего пространства: разделение окон, взаиморасположение вкладок и окон, сравнение с другими редакторами.
Через Apache Brooklyn к автономным вычислениям
Автономные вычисления ждут вас! А приобщиться к ним можно с помощью специального фреймворка Apache Brooklyn, способного управлять настройкой и развёртыванием приложений на основе сложных алгоритмов. Без лишних слов - это инструмент, который вас приятно удивит.
Контейнеризацию невозможно сдержать
Откуда берутся контейнеры и для чего в них зависимости? Преимущества контейнеров: почему контейнеры используют все больше и в чем они превосходят виртуальные машины? Какое будущее ждет нас с этими виртуальными контейнерами?
Приключения аналитика в стране кода: пробуждение силы
Программы для электронных таблиц, такие как Microsoft Excel и Google Sheets, превосходны. Они вне конкуренции, когда дело касается выполнения простых вычислений или построения финансовых...
8 незаменимых веб-приложений для разработчиков
1. Online GDB
Online GDB — это браузерный компилятор, интерпретатор и отладчик. Поддерживает 20 языков программирования, включая C, C++, Python, Ruby, C#, Swift и JavaScript.
Для меня он бесценен...
Что на самом деле важно для качества кода?
Хотя новички и джедаи могут озвучивать свои подходы к решению проблем одинаково, результаты разработки у них совершенно разные, как и способы достижения чистого кода. Чтобы понять специфику создания действительно качественного кода, предлагаем детально разобрать реальный пример с реальным кодом.
Top 100 наиболее популярных репозиториев на GitHub
GitHub стал не просто хостингом для хранения кодов, а огромным сообществом разработчиков.
Масштабы GitHub колоссальны: более 30 миллионов аккаунтов, более 2 миллионов организаций и более...
Учим ИИ отвечать на сообщения
Введение
Глубокое обучение применяется во многих задачах NLP вроде перевода, добавления титров к изображениям и систем поддержки диалога. В машинном переводе оно используется для преобразования...
Что может помешать разработчику самостоятельно создать успешное приложение
Четыре года назад я опубликовал своё первое приложение в Google Play Store. И по ходу разработки я наткнулся на множество препятствий, но также и...
Тонкости представления нижнего всплывающего экрана в iOS 15
Детально изучим процесс реализации нижнего всплывающего экрана с помощью UISheetPresentationController.
C++: практическое руководство по побитовым операциям
Изучим, что происходит на битовом уровне. Разберем основные побитовые операторы и реальные сценарии, дадим рекомендации и практические задачи с решением.
15 идей для вашего приложения. Часть 2
Предыдущие части: Часть 1
6. Поиск книг
Уровень: 2 — средний
Описание: приложение для поиска книг по названию, автору и т.д. Найденные книги и соответствующая информация о них выводится в...
Сначала графдизайн создать, потом код написать
Рассмотрим важность создания графического дизайна приложения до написания кода и нарисуем диаграмму последовательности с помощью пакета pgf-umlsd.
10 практик написания кода, на которые полагаются все старшие разработчики
Почему код, созданный старшими разработчиками, не только отлично работает, но и служит долго? Секрет кроется в использовании практик написания чистого, функционального и удобного в обслуживании кода. Ознакомьтесь с десятью из них, чтобы облегчить работу себе и своим будущим коллегам.
Apache Iceberg за семь часов
Подробно разберем принцип работы, изучим внутренние механизмы Apache Iceberg, поэкспериментируем с этим файловым форматом и PySpark, PyIceberg, каталогом Nessie.
Новый шаг к будущему без языковых границ
Новый шаг к будущему без языковых границ: Яндекс запустил в открытую бету технологию закадрового перевода прямых трансляций на YouTube В Яндекс Браузере появилась уникальная...
Java для начинающих: часть 2 из 4
Часть 1, Часть 2, Часть 3, Часть 4
Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при...
Менеджеры контекста в Python - выходим за пределы «with open() file»
Введение
В Python при работе с файлами наиболее распространённой функция open(), создающая объект типа файл, который в зависимости от ситуации позволяет читать или записывать данные....
Pascal: ностальгическое путешествие сквозь годы и код
В чем сила языка Pascal, возникшего более полувека назад? Как он повлиял на наш мир? Почему его наследниками считаются Python, Rust, Go и многие другие современные языки? Откроем заново для себя Pascal.







































































































