Больше новостей
Post thumbnail

Допустим, вы пишете конвейер, в котором 2 потока, используя общий буфер, обрабатывают данные. Поток-producer эти данные создает, а поток-consumer их обрабатывает (Producer–consumer problem). Следующий код представляет собой самую простую модель:...
Читать дальше

Post thumbnail

Да, мы знаем, на что это похоже, но сейчас мы расскажем вам, как «ускорить Интернет». В некоторых случаях скорость ответа DNS-серверов может значительно влиять на время загрузки страниц. Дело в...
Читать дальше

В этой задаче можно использовать только сложение. В подобных задачах полезно вспомнить суть математических операций и как их можно реализовать с помощью сложения (или других операций)....
Читать дальше

Команда echo в Unix предназначена для отображения строки текста. Она просто выводит текст на стандартное устройство вывода. Далее представлена небольшая подборка реализаций этой команды на языке С в различных ОС....
Читать дальше

Post thumbnail

В настоящее время все процессы, где применяется синтаксический анализ, используют парсеры — программы для проведение визуального или программно-автоматизированного синтаксического и лексического анализа или разбора какого-либо документа с целью извлечения из него...
Читать дальше

Post thumbnail

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

Post thumbnail

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

Виртуальная функция определяется vtable (виртуальной таблицей). Если какая-либо функция класса объявлена как виртуальная, создастся vtable, которая хранит адреса виртуальных функций этого класса. Для всех таких классов компилятор добавляет скрытую переменную...
Читать дальше

Post thumbnail

Прежде чем читать эту часть, советуем вам взглянуть на предыдущий урок. А в этой статье мы продолжим реализацию искусственного интеллекта для игры в хоккей с использованием «рулевого поведения» (steering behaviors),...
Читать дальше

Post thumbnail

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

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

Post thumbnail

Один из способов решить сложную проблему оптимизации — сначала свести её к соответствующей, но более простой задаче, а затем постепенно увеличивать сложность, каждый раз решая новую проблему, и, в свою...
Читать дальше

Post thumbnail

Хекслет — это платформа для создания практических уроков по программированию в настоящей среде разработки. Главное отличие от других проектов (например, Codecademy или CodeSchool) в том, что на Хекслете нет симуляторов: в...
Читать дальше

Post thumbnail

Автор этих советов, Гейл Лакман Макдауэлл — основатель и CEO CareerCup, автор известных книг по подготовке к собеседованиям. Гейл работала программистом в Microsoft, Apple и Google. У неё есть степени...
Читать дальше

Post thumbnail

В этом материале мы решили разобрать алгоритмы, которые часто встречаются на собеседованиях. В качестве инструмента реализации мы использовали Java. Стоит сразу заметить, что нашей задачей является не подробное описание алгоритмов...
Читать дальше

Post thumbnail

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

Post thumbnail

Недавно мы публиковали интервью с Джеймсом Боттомли, техническим директором продуктов серверной виртуализации Parallels и членом совета директоров Linux Foundation. Джеймс согласился ответить на несколько дополнительных вопросов от подписчиков Типичного программиста....
Читать дальше

В настоящее время существуют методы справедливого совместного использования ресурсов, на основе системы распределения. Наиболее известным является метод деления торта «Ты отрезаешь, я выбираю». Есть также алгоритмы, которые позволяют разделить торт...
Читать дальше

Post thumbnail

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

Первое, что приходит в голову, — обработка битов. Почему? У нас нет выбора — нельзя использовать оператор «+». Так что будем суммировать числа так, как это делают компьютеры!...
Читать дальше

Post thumbnail

На пустынном шоссе вероятность появления автомобиля за 30-минутный период составляет 0.95. Какова вероятность его появления за 10 минут? Это вопрос труден только потому, что та информация, которую вы получили, не...
Читать дальше

Самый распространенный вариант реализации функции max — проверка знака выражения a — b. В этом случае мы не можем использовать оператор сравнения, но можем использовать умножение....
Читать дальше

Процессы и потоки связаны друг с другом, но при этом имеют существенные различия. Процесс — экземпляр программы во время выполнения, независимый объект, которому выделены системные ресурсы (например, процессорное время и...
Читать дальше

Позволять программистам использовать неинициализированные переменные — большая ошибка со стороны разработчиков языка. Такую оплошность легко совершить и тяжело отследить. Особенно при выполнении программы на разных платформах. И необходимости в этой...
Читать дальше

Под отсортированной матрицей будем понимать такую матрицу, строки и столбцы которой отсортированы. Чтобы найти нужный элемент, можно воспользоваться бинарным поиском по каждой строке. Алгоритм потребует O(M log(N)) времени, так как необходимо...
Читать дальше

Ключевое слово volatile информирует компилятор, что значение переменной может меняться извне. Это может произойти под управлением операционной системы, аппаратных средств или другого потока. Поскольку значение может измениться, компилятор каждый раз...
Читать дальше

Наверняка многие из web-разработчиков удивлялись, почему их любимый сайт, который они делали несколько месяцев и наполняли уникальным контентом, не появляется в поисковой выдаче? Ведь тут статей хоть пруд пруди, функционал...
Читать дальше

Куайн (от анг. quine) — программа, результатом работы которой является собственный исходный код. Сразу оговоримся: программы, которые обращаются к файлам или производят считывание с клавиатуры куайнами не являются. Более серьезное...
Читать дальше

Post thumbnail

Типичный: Давайте начнем с самого начала: что такое Linux-сообщество сегодня? Какие люди там работают, и на какие категории их можно разделить? Джеймс Боттомли: Linux-сообщество сегодня, спустя 23 года после своего...
Читать дальше

Post thumbnail

Сам Бьярне Строуструп советует следующие книжки: «A Tour of C++» (русского перевода книги мы не нашли) — сравнительно короткое (около 180 страниц) учебное пособие-обзор всего стандарта языка С++ (сам язык и стандартные...
Читать дальше

Что означает Dead beef? Dead beef является формой записи некоторых слов. При отладке компьютерных программ содержание памяти должно отображаться на экране (или, как это было в давние времена, на бумаге)....
Читать дальше

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