Знакомство с Git и GitHub: руководство для начинающих. Часть 1
Часть 1, Часть 2
Ищите, с чего бы начать изучение Git и GitHub? Хотите поработать с другими? Усердно трудитесь над проектом? Или вдруг заметили, что...
Обработка дублированных сообщений в Kafka
Подробно рассмотрим сценарии, чреватые появлением дублей, и различные подходы для их недопущения. Как этими подходами реализуются решения этой проблемы?
Эволюция графического дизайна: от пещерной живописи до цифровой эпохи
В то время как дизайн UX/UI и продуктовый дизайн — относительно новые направления, история возникновения графического дизайна уходит в далекое прошлое. Графический дизайн появился...
Автоматизация обновления Angular
Приложения Angular с легкостью обновляются с помощью Angular CLI. Обновление до основных релизов, как правило, происходит в течение недели после выпуска без возникновения проблем,...
Обучение «на всякий случай» против обучения «точно в срок»
Как программист должен поступить с новой информацией? Выучить «на всякий случай», мало ли пригодится в будущем? Или выучить «точно в срок» тогда, когда эти...
10 полезных инструментов и библиотек для программистов и IT профессионалов
В каждой профессии есть свои инструменты, в том числе и у разработчиков программного обеспечения. Хороший программист знает свои инструменты лучше других, а также использует...
Сообщество — лучший двигатель карьеры разработчика
В мире технологий часто упоминается слово "сообщество". Разберемся, что включает себя это понятие, как стать участником сообщества и как его найти.
Принципы SOLID - ключи к чистому коду
Хотите писать чистый, удобочитаемый код и экономить при этом время? Тогда уделите несколько минут изучению принципов SOLID, выведенных легендарным Робертом К. Мартином в бестселлере "Чистая архитектура".
VIM — это не только скорость
Почему профессионалы обожают Vim, а новички его боятся? Что общего у этого текстового редактора и компьютерной игры Dark Souls? Чем, кроме скорости, он может быть полезен? Ответы на эти вопросы помогут вам приступить к освоению Vim/NeoVim и повысить свою продуктивность.
Как заработать с помощью бесплатного генератора артов на базе ИИ
Искусство, созданное силами искусственного интеллекта, не только отличается красочностью и креативностью, но и представляет собой потенциальный источник заработка. Поговорим о том, как генерировать арт-товары с помощью платформы Leonardo AI.
Пять шагов к красивому терминалу, которым вам понравится пользоваться
Если вы читаете эту статью, то, скорее всего, вы не большой поклонник своего терминала, и время, потраченное на ввод команд, входит в список неприятных...
12 привычек эффективного разработчика
Я работал со множеством разработчиков программного обеспечения. Некоторые из них только закончили колледж, другие — уже профессионалы. В этой статье я перечислил общие привычки этих людей.
1....
Технология составления промптов для модели ИИ на примере одного чат-бота
Научимся составлять инструкции для моделей ИИ на примере конкретного чат-бота. Рассмотрим такие этапы процесса, как определение концепции мышления модели, установка контекста и формата вывода ответа, построение вопроса и проверка вывода.
Различные модели машинного обучения
Что же такое машинное обучение? И почему оно так плотно связано с нашей повседневной жизнью? Отвечаем на эти и сопутствующие вопросы.
Полезные команды Git
Набор консольных утилит Git создан в помощь программисту. Используя их, он может управлять версиями проекта. Само собой, при работе с Git требуется знание определенных команд. Сегодня мы рассмотрим базовые команды Git и научимся добавлять и изменять удаленный репозиторий, а также удалять ветки.
17 успешных примеров дизайна логотипов для различных бизнес-целей
Процесс создания дизайна для логотипа крайне важен. Давайте рассмотрим несколько примеров хорошо разработанных логотипов для различных сфер деятельности.
Освоение безопасной для типов JSON-сериализации в TypeScript
Предлагаем руководство по использованию TypeScript для безопасной для типов сериализации и десериализации данных в формате JSON. Освоение этой стратегии позволит своевременно обнаруживать потенциальные ошибки во время разработки приложения.
Как находиться в потоке, программируя в парах
Не так давно я поинтересовался у коллег по команде, может ли разработчик находиться в потоке, программируя в паре. Ответ по-настоящему меня удивил. Дело в...
Нативное будущее кроссплатформенной разработки
Коротко о кроссплатформенности
Сейчас кроссплатформенная разработка не пользуется большой популярностью. Основная причина состоит в том, что существующие инструменты не в полной мере справляются со своей...
Хитрости объектно-ориентированного программирования. Часть 3: Смерть от аргументов
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2.
Аргументы, аргументы, аргументы
Длинные списки аргументов в функции крайне трудны для вызываемого...
Собеседование в Facebook. Ценный опыт и открытия
Начиная поиск работы, я никак не могла поверить, что имею реальный шанс на получение должности в Facebook.
Пять месяцев спустя я получила письмо с предложением.
Это...
5 лучших курсов по React Native для разработчиков мобильных приложений
Если вы — веб-разработчик, который хочет создавать мобильные приложения, но не хочет тратить время на изучение Java/Kotlin (для Android) или Objective C/Swift (для iOS),...
Планировщик cron и скрипты разведки с Docker
Автоматизация инструментов в cron идет полным ходом. Настроим планировщик для целей разведки и рассмотрим примеры, где он уже применяется.
Испытаем ИИ в решении логических задач
Алгоритмические задачи довольно часто нужны программистам для того, чтобы поддерживать свой мозг в тонусе и не давать себе прокрастинировать. Однако иногда гораздо интереснее решить задачу не напрямую, а хитрым способом. Один из таких способов и описан в этой статье.
5 лучших бесплатных текстовых редакторов для Windows
В представлении большинства людей современный писатель — это человек, печатающий на компьютере Apple MacBook. Они недалеки от истины, вот только не всегда учитывается один...
Руководство по написанию чистого и читабельного кода для начинающих разработчиков. Часть 2
Часть 1, Часть 2
Не забывайте про принцип DRY (Не повторяйтесь)
Принцип DRY гласит:
“ Каждая часть знания должна иметь единственное, непротиворечивое и авторитетное представление в рамках...
YAML против JSON: какой формат эффективнее для работы с LLM?
Сравним два формата, применяемых в работе с языковыми моделями: JSON и YAML. Выясним, почему YAML эффективнее с точки зрения временных и ресурсных затрат, чем JSON.
Из криптовалюты в криптоактив: как биткойн потерял свое изначальное предназначение
22 мая 2010 года один из первых майнеров по имени Ласло Ханец купил, возможно, самую дорогую в истории человечества пиццу: он заплатил 10 000...
Как научиться задавать вопросы, проектировать системы и выявлять ошибки?
7 навыков логического мышления, необходимых для карьерного роста разработчика программного обеспечения
Как обнаружить дублирование кода в проекте
Обнаружение повторяющегося кода - необходимая часть качественного проектирования. Пренебрежение ею чревато снижением читабельности проекта и усложнением его обслуживания. Ознакомьтесь с несколькими способами обнаружения и удаления дублирующегося кода.
5 советов по быстрому написанию кода на любом языке программирования
Создать работающий код - это искусство. Но ценность программиста заключается не только в теоретической, но и в практической подкованности. Мы расскажем, как писать качественный код с минимальными временными затратами.
2 черты отличных программистов
Что отличает отличных программистов от хороших? Это вопрос, который занимает меня с тех самых пор, как я только начал учиться программировать.
Рассмотрим основные черты, которые...
Мои заметки по программной инженерии
О процессе разработки
Код предназначен не только для его непосредственного выполнения, но он также является средством общения в команде и способом описать другим решение...
Манипуляции с битами. Игра в истину
Прежде всего нужно понять «Истину», как она представлена в таблице истинности. На самом деле таких таблиц несколько, но для этого урока нам хватит двух...
Почему ведущие инженеры ненавидят собеседования
Представьте, что вы директор небольшой средней школы, который хочет нанять нового учителя. Так как работает у вас их не очень много, то нужно убедиться...
Искусственный интеллект и наше будущее
Искусственный интеллект впечатляет не только колоссальными возможностями, но и пугающими угрозами. Что мы можем сделать, чтобы приручить умные машины? Поразмышляем над этим.
13 Горячих клавиш, которые должен знать каждый пользователь Ubuntu 18.10
Рассмотрим некоторые полезные сочетания клавиш для Ubuntu 18.10 с графическим окружением GNOME. Мы не включили в эту статью универсальные сочетания клавиш, такие как Ctrl...
Как пройти собеседование по проектированию систем?
У большинства компаний в сфере информационных технологий отдельный тур собеседования посвящён проектированию систем. Кандидатов просят спроектировать масштабируемую систему типа Facebook NewsFeed, Instagram stories, WhatsApp-чата,...
В борьбу с коронавирусом вступил мощнейший в мире суперкомпьютер
В то время как Covid-19 продолжает заражать людей, учёные спешат найти лекарства, которые помогут пациентам выздоравливать, как можно быстрее. Невиданный доселе патоген вызывает симптомы,...
Слабо решить эти задачи по программированию?
Программирование всегда связано с решением различных задач. Я подготовил список из шести различных заданий и отсортировал их по сложности решения. Первая — самая простая, шестая — самая сложная....
Вычислительные затраты на написание чистого кода
Почему иногда люди пишут подобный код?
var = float(str(alist).split())/3+float(alist)
Ответ прост: чтобы сэкономить вычислительное время. Стоит только написать это в четыре строки…
var = alist[::-1][0]
var = str(var).split()[1:4]
var...
Три фактора сдерживания прогресса ИИ
Реализовать трансформационный искусственный интеллект, несмотря на его революционный потенциал, достаточно трудно. Бизнес, экономика и общество сдерживают его прогресс. Предлагаем ознакомиться с мнением экспертов по этому поводу.
8 умных способов сохранять цифровую приватность
Неважно, как вы пользуетесь Интернетом: вполне вероятно, вашу Интернет-активность отслеживают. Недавно Натали Тридман рассказала, как люди неосознанно делятся своим местоположением. Нет, не нужно отказываться...
Что я изучил за год занятия программированием
Будучи учеником старшей школы, я начал изучать графический дизайн. В основном, я занимался созданием различных иконок, логотипов и геофильтров для Snapchat. Примерно в то...
Введение в конвейерную обработку данных с использованием бессерверной архитектуры
Сегодня мы расскажем вам о построении сквозных конвейеров данных с использованием бессерверных технологий. Мы сосредоточимся на Amazon Web Services (AWS) для построения конвейера, однако подобную архитектуру можно легко воспроизвести на любой другой облачной платформе, включая Google Cloud Platform (GCP), Microsoft Azure и т. д.
Теория игр
Узнаем, как объяснить конфликты, ситуации и возможности повседневной жизни с помощью математики.
Основы Git за 5 минут
По мере своего становления в роли разработчика приходит понимание того, что большая часть работы ведется в команде. И при работе в команде нужна система...
Комментарий в коде написать - всё равно, что проиграть
Могу себе представить, какое бурное негодование вызвал у вас лишь заголовок данной статьи, но не спешите бросать в меня камни и просто выслушайте. Уместные...
Хватит использовать Pandas, пора переходить на Spark + Scala!
Переход с Pandas на Spark и Scala не настолько труден, насколько вы можете предположить, при этом в итоге ваш код будет выполняться быстрее, и,...
5 признаков того, что вы отличный разработчик
Насколько вы продвинуты в программировании и как быстро сможете повысить свою квалификацию? Чтобы ответить на эти вопросы, узнайте 5 основных признаков хорошего разработчика.
Введение в библиотеку Flutter Bloc
Обратим наш пристальный взор на библиотеку Flutter Bloc и разберемся в ее тонкостях, чтобы эффективно задействовать ее потенциал в будущих проектах.
Лучшие языки программирования для изучения в 2018
Это полное руководство по выбору «правильного» язык программирования в 2018 году.
Хочу сразу прояснить кое-что: это не топ самых популярных языков, с кучей названий и...
Как использовать агенты Hugging Face для решения задач NLP
Предлагаем пошаговое руководство по использованию инструментов и агентов библиотеки Transformers. В отличие от ChatGPT, агенты Transformers имеют доступ ко многим моделям, доступным на Hugging Face. Такой арсенал значительно улучшит пользовательский опыт приложений.
Век программируй, век учись
В программировании приходится учиться методом проб и ошибок. Далее я расскажу о 9 важных уроках из своего непростого личного опыта.
1. Как раз самых дешевых,...
Как повысить мотивацию с помощью поведенческой психологии
Как достигать лучших результатов и развивать силу воли с помощью вознаграждения
С работой связано много сложностей: дел много, времени на них мало. Работе постоянно нужно...
Почему все веб-сайты выглядят одинаково?
Интернету не хватает креативных решений, поэтому я попросил своих учеников разработать редизайн уже существующих веб-сайтов.
Современный интернет однообразен. Все выглядит одинаково: одинаковые шрифты, похожие страницы,...
Топ 10 бесплатных инструментов для автоматизированного тестирования
В современном мире существует множество инструментов, помогающих ускорить достижение цели.
Я подготовил список из 10 лучших инструментов автоматизации, которые помогут справляться с задачами намного быстрее....
Создание модели Mixture of Experts (MoE) с помощью MergeKit
Объедините с помощью MergeKit несколько моделей в один коллектив экспертов (MoE). Предлагаем подробное описание процесса создания многозадачной и высокопроизводительной модели frankenMoE, не требующей предварительного обучения.
Сканируем образы Docker на уязвимости
Как своевременно обнаружить уязвимости?
Итак, вы создали Dockerfile, протестировали контейнер на рабочей станции разработки и ждете, когда он подцепится в CI/CD. Через какое-то количество времени...
Как научиться программировать по 8 часов в день
Моя система продуктивности
Я программирую всю свою жизнь. Раньше я думал, что это норма — садиться за стол, открывать ноутбук, брать задачу из списка дел...
Чистота и порядок: 3 правила для идеальной базы кода
В любом деле важен порядок, особенно если речь идет о чистоте кодовой базы. Рассмотрим 3 правила, выполнение которых помогает своевременно обнаружить грязный код и помешать его проникновению в базу.
Cтарая поговорка гласит: “Одна голова хорошо, а две — лучше”
Я часто слышу, как люди говорят о том, что их работа продвигается более эффективно и плодотворно когда они остаются одни. Также я знаю, что...
Как комментировать файлы JSON
JSON не поддерживает комментарии, что часто вызывает затруднения. Однако есть способы обойти это ограничение. В этой статье рассмотрены различные методы добавления комментариев в JSON.
Полезные уроки из книги “Мышление, быстрое и медленное”
Возможно, это самая полезная книга о человеческом уме и поведении. Она рассказывает о ловушках ума, заставляющих нас поступать опрометчиво. Это кладезь знаний, необходимых каждому из нас, особенно людям, принимающим решения.
Как настроить Docker и Windows Subsystem for Linux (WSL): история о любви?
Вы когда-нибудь чувствовали себя прекрасной принцессой, которую злой волшебник превратил в лягушку? Как будто происходит что-то не то? У меня такое бывает. Я пользуюсь...
Flutter и SonarQube для статического анализа кода
За 8 шагов настроим SonarQube с Flutter на Apple Silicon Mac, используя Docker. Погнали!
За что разработчики ненавидят парное программирование?
Обзор ответов на семь самых популярных замечаний о недостатках парного программирования, как со стороны junior-разработчика, так и со стороны senior-разработчика.
Парное программирование мешает углубленной работе
Достаточно...
3 основных принципа несвязных приложений
Самая большая ошибка объектно-ориентированного проектирования - это инкапсуляция устойчивого состояния. Что будет, если этого не делать?
Шоу должно продолжаться: обеспечение безопасности Netflix Studios с масштабированием
Узнайте об одной из выдающихся стратегий Netflix Studios - развертывании приложений, гарантирующем 100% аутентификации поддерживающим его сервисам. Она многократно сокращает время и усилия разработчиков, а также риски безопасности в интернет-пространстве.
Основы языка освоены. Что дальше?
Универсальная система из семи шагов для тех, кто уже освоил азы первого языка программирования и не уверен в дальнейших действиях.
Зачем разбивать код на столбцы
На мой взгляд, главная составляющая любого программирования – это читабельность кода, будь то написанный вами или кем-то другим. Читабельность складывается из множества факторов, начиная...
Генерация ответа, дополненная результатами поиска (RAG): от теории к реализации на LangChain
Ознакомьтесь с процессом выполнения простого RAG-пайплайна. Вы сможете изучить его пошагово — от теории, изложенной в оригинальной научной статье, до практической реализации на Python с помощью OpenAI, Weaviate и LangChain.
Вы не понимаете своих программистов
...Открытое письмо не-технарям в технических компаниях
Может показаться, что мы заняты только этим:
Но на самом деле всё несколько сложнее.
Обычно разработчики — целеустремлённые люди, многие из них сами...
Расширения VS Code, в 3 раза повышающие скорость работы
Возьмите на заметку 5 лучших расширений VS Code. Они значительно ускорят ваш рабочий процесс и помогут избежать досадных ошибок при написании кода.
Собеседование Java разработчика. Наиболее Часто Задаваемые Вопросы
В этом посте, я с удовольствием раскрою, вероятно, большинство возможных вопросов на Java-собеседовании, от простых до самых сложных.
Чем отличаются статические методы и переменные...
Будущее Ruby on Rails в эпоху искусственного интеллекта
Специалисты, занимающиеся разработкой на Ruby, уверены: наступает новая эра программирования. Искусственный интеллект станет незаменимым помощником человека в написании эффективного кода. Ознакомьтесь с концепцией программирования на базе промптов и оцените ее мощный потенциал.
Преодолейте ваши страхи перед Vim
Как выйти из Vim и не только
Я хочу развеять страхи, витающие вокруг использования текстового редактора VIM. В этой статье я расскажу о самых часто используемых...
Школа ленивого разработчика: ускоренный курс по созданию фрагментов кода в VS Code
Каждый разработчик сталкивался с утомительной необходимостью вводить один и тот же повторяющийся код бесконечное количество раз, начиная с цикла for и заканчивая логированием данных...
Сети Колмогорова-Арнольда (KAN) могут навсегда изменить мир ИИ
Забудьте все, что вы знали о нейронных сетях: KAN-технология обещает переписать правила игры. Ознакомьтесь с этой инновационной структурой и ее преимуществами перед традиционными моделями. В заключение предлагаем оценить ее в действии: посмотрите, насколько успешно KAN справляется с задачей классификации.
Векторы - прошлое ИИ, хэши - будущее
Искусственный интеллект был создан на основе векторной арифметики. Однако последние достижения доказали: в некоторых сферах применения ИИ векторы можно заменить (в плане памяти, скорости и т.д.) другими более эффективными двоичными представлениями (такими как нейронные хэши) без существенного компромисса скорость-точность.
Как создать криптовалютный дашборд с помощью Plotly и API Binance
Упрощаем отслеживание активов
Как установить API Binance
Binance предоставляет два типа доступа к API: реальный и тестовый.
Настраиваем реальный API Binance
Реальный API обеспечивает прямой доступ к аккаунту. В нем...
Итоги 8 лет с Kubernetes в продакшене: два крупных сбоя кластера, отказ от самостоятельного...
Проследим развитие Kubernetes по опыту запуска кластера одной из компаний. Как удалось оправиться от двух сбоев, какие уроки были усвоены? Выводы и рекомендации.
Упрощаем работу с Google-формами: Apps Script и выпадающее меню
Я работаю в отделе физической безопасности одной технической компании. Для улучшения рабочих процессов я пользуюсь JavaScript в G Suite. Сам я не люблю монотонную...
Всё, что вы хотели знать об отладке в IntelliJ IDEA
Отладка — это один из самых важных этапов процесса разработки. И дело не только в том, что устранение ошибок занимает, вероятно, большую часть времени: она также...
Лучшие JavaScript библиотеки за 2019 год для построения диаграмм
Вступление
По мере того, как увеличиваются объёмы и сбор данных, необходимость визуализации этих данных становится всё более актуальной. Разработчики ищут способы объединять миллионы записей баз...
10 признаков того, что программирование не для вас
Часто на Reddit или Quora я вижу вопросы “Как понять, что я могу стать хорошим программистом?”. Такие вопросы о программировании часто всплывают, когда люди...
Практическое предметно-ориентированное проектирование
Ознакомьтесь с бизнес-ориентированной архитектурой - удачно подобранной комбинацией шаблонов, правил и стилей предметно-ориентированного проектирования. Она упростит разработку и высвободит много времени, чтобы сосредоточиться на вопросах бизнес-логики.
Курс на продуктивность: 10 бесплатных инструментов и сайтов для разработчиков
Информативный обзор 10 полезных инструментов и сайтов для повышения продуктивности и сокращения времени разработки. Valgrind - для обнаружения ошибок памяти, Bootstrap - для создания потрясающих UI и многое другое.
9 вещей, которыми следует заняться Java программисту в 2018 году
Будучи Java разработчиком и автором Java-блога, я часто встречаю вопросы от java-программистов со всего мира, о том, как можно улучшить свои навыки.
В прошлом я написал...
Руководство по написанию чистого и читабельного кода для начинающих разработчиков. Часть 1
Часть 1, Часть 2
Написание чистого и читабельного кода — непростая задача, но данное краткое руководство поможет вам овладеть этим искусством.
Представьте, что читаете статью, во вступительном абзаце...
Генерация видео из текста стала возможной
Теперь с помощью ИИ можно генерировать не только изображения, но и видео. Конкретно речь идет об инструменте CogVideo, предлагающем всем желающим возможность опробовать его онлайн.
8 главных качеств технического менеджера
Один мой близкий друг, получив повышение и возглавив команду инженеров ПО, обратился ко мне за советом. И я призадумался, а что, собственно, порекомендовать? Книги?...
No-code и сферы его применения
Наблюдаем за ростом популярности нового IT-движения
Так называемое явление «No-code», или же «Zero-code», сейчас активно набирает обороты. На рынок приходит всё больше инструментов для создания...
5 правил кода
За последнее время я сформировал список актуальных рекомендаций относительно того, что должен и чего не должен делать современный разработчик. Давайте ознакомимся с пятью из...
Как писать Bash-однострочники для клонирования и управления GitHub/GitLab репозиториями
Мало что радует так же сильно, как одна красивая Bash-строка, способная автоматизировать часы рутинной работы.
Я изучала вопрос по автоматическому восстановлению системы на ноутбуке с...
Трассировка стека и более точная отладка
Умение читать трассировки стека, в особенности сложные и длинные - незаменимо, если в коде возникает ошибка, и нужно как можно точнее разобраться в ее причинах. Посмотрим на некоторые подводные камни, о которых необходимо знать перед отладкой.
Введение в блокчейн - основу криптовалют
Вы ещё помните то время, когда курс криптовалют вырос более чем в 50 раз всего за 1 год?! Вот наглядный график произошедшего:
А затем случилось...
Результаты ежегодного опроса программистов «New Coder Survey 2018»
Более 31.000 человек приняли участие в ежегодном опросе программистов со всего света, под названием New Coder Survey, предоставив исследователям беспрецедентные сведения о том, как...
Отказ после четырех раундов технических собеседований. Что делать?
Будущий инженер-программист должен быть готов к нелегкому испытанию - встрече с придирчивыми рекрутерами. Никто не хочет получить отказ на собеседовании, но лишь немногие отвергнутые кандидаты способны превратить свою неудачу в будущий успех.
Обзор плагинов Obsidian
Рассмотрим несколько новых плагинов Obsidian для автоматического создания индексов папок, страницы обзора проектов, ссылок из строк, размещения галереи и геймифицирования хранилища.
Что мы ожидаем от разработчиков на каждом уровне
Работа в офисе, а особенно дистанционно требует постоянной коммуникации между всеми сотрудниками, поэтому каждому сотруднику следует иметь представление о том, какие задачи, помимо, конечно же, программирования ему предстоит выполнять.
Начнем работу с Mock в Python
Предисловие
Mock - это просто объект, который создает пустой тест для определенной части программы.
Вместо вызова обычной проверки, вы вызываете mock и смотрите, как проходит тест...
Анализ социальных сетей: от теории графов до приложений на Python
Теория сетей
Начнем с краткого введения в базовые компоненты сети: узлы и ребра.
Узлы (например, A,B,C,D,E) обычно представляют объекты в сети и содержат собственные и сетевые...
4 расширения VS Code, которые пригодятся дата-инженеру
Если вы пользуетесь VS Code, то наверняка успели убедиться в его практичности. Однако работу с этим редактором можно сделать еще удобнее. Предлагаем расширения VS Code, которые сэкономят много времени и сил.
Aurora UI - новый визуальный тренд в 2021 году
UI-дизайн, особенно его художественная, визуальная сторона постоянно развивается. В то время как большинство современных продуктов повторяют одни и те же, проверенные и хорошо известные...