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 является формой записи некоторых слов. При отладке компьютерных программ содержание памяти должно отображаться на экране (или, как это было в давние времена, на бумаге)....
Читать дальше

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

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

С самой эпохи становления веб-технологий программисты использовали JavaScript с целью практического воплощения своей творческой мысли. Отсутствие строгих требований к оформлению позволяет записывать исходники необычным способом и делать код выразительнее. На...
Читать дальше

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

Механизм шаблонов встроен в компилятор C++, чтобы дать возможность программистам делать свой код короче за счет обобщенного программирования. Естественно, существуют и стандартные библиотеки, реализующие этот механизм. STL является самой эффективной...
Читать дальше

Вопрос Почему строка auto a = 1; воспринимается компилятором C как корректная? Я пользуюсь MS Visual Studio 2012, и вот этот код:

компилируется без ошибок, несмотря на то, что...
Читать дальше
Post thumbnail

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

Post thumbnail

Здравствуйте. Хотим поделиться интересным кейсом, который совершенно неожиданно у нас вышел. Небольшая предыстория: мы уже год думаем о том, куда бы податься с нашими проектами, потому как видим, что российский...
Читать дальше


Вас уменьшили до размеров 5-центовой монеты и бросили в блендер. Ваш вес уменьшился так, что плотность вашего тела осталась прежней. Лезвия начнут вращаться через 60 секунд. Ваши действия? Это классическая...
Читать дальше

Команда git add выполняется вслепую, но ее можно более или менее проконтролировать, используя опцию –patch. Но к сожалению, она хорошо работает только с изимененными или удаленными файлами, а вот неотслеживаемые...
Читать дальше