Обложка поста

Смарт-клавиатура с автономным питанием

Обычные клавиатуры регистрируют нажатие на клавишу, которое создает механический контакт. Смарт-клавиатура записывает не только каждый символ, которого коснулись, но также фиксирует информацию о количестве силы, приложенной к клавише, и промежутке…

Программирование и кодирование. Компьютерная и программная инженерия. В чём разница?

КН/КИ/ПИ и Программирование/Кодирование Компьютерные науки (КН), компьютерная инженерия (КИ), программная инженерия (ПИ), программирование и кодирование – это всё связанные между собой термины, но при этом они немного отличаются, вводя в заблуждение…

События и курсы

Алгоритм для поиска в односвязном списке k-го элемента с конца

Данный алгоритм можно реализовать рекурсивным и нерекурсивным способом. Рекурсивные решения обычно более понятны, но менее оптимальны. Например, рекурсивная реализация этой задачи почти в два раза короче нерекурсивной, но занимает O(n)…

Физический движок: взгляд изнутри. Часть 2

Это вторая часть статьи о физических 2D движках. Сегодня мы рассмотрим виды физических тел. Поговорим о том, как лучше найти баланс между реалистичностью ваших игр и невозможностью играть в них.

Вакансии

Обложка поста

Быстрый старт со Scala для начинающих и не очень

Scala – строгий статически типизированный JVM-based язык, успешно совмещающий парадигмы объектно-ориентированного и функционального программирования. В языке есть классы, функции высшего порядка, анонимные функции, обобщенное программирование. Использование Java-кода из Scala не…

Обложка поста

С чего лучше начинать новичку? В какой вуз пойти? Какой язык выбрать? По каким материалам учиться?

В нашу рубрику «Вопросы к экспертам» поступило очень много вопросов от школьников о том, что им делать, если они хотят стать программистами. Мы задали этот вопрос экспертам и собрали для…

Напишите функцию, меняющую местами значения переменных, не используя временные переменные

Это классическая задача, которую любят предлагать на собеседованиях, и она достаточно проста. Пусть a0 — это исходное значение a, а b0 — исходное значение b. Обозначим diff разницу а0 –…

Обложка поста

Как ускорить работу Ubuntu — 9 советов

SHITTY CONTENT ALERT Это устаревшая статья. Возможно, вы найдёте тут что-то полезное для себя, но местный домовой советует не вставать на этот скользкий путь. Вот свежая статья по той же…

Обложка поста

Надежность UDP протокола

UDP – это передача данных без установления соединения, которое не имеет подтверждения связи и, таким образом, не дает никаких гарантий относительно доставки или порядка получения пакетов.  Но что это означает…

Обложка поста

Физический движок: взгляд изнутри. Часть 1

В этой статье мы рассмотрим использование физики для имитации броска снарядов (да, прямо как в Angry Birds). Мы обратим внимание на основы использования 2D физики, а также на создание физических…

Как минифицировать вашу HTML5 игру для соревнования Js13kGames

Слышали ли вы что-нибудь о соревновании под названием js13kGames? Это мероприятие ориентировано на разработчиков игр, использующих возможности HTML5. Основное требование для участия — размер игры не должен превышать 13 КБ.

Почему деструктор базового класса должен объявляться виртуальным?

Давайте разберемся, зачем нужны виртуальные методы. Рассмотрим следующий код: class Foo { public: void f(); }; class Bar : public Foo { public: void f(); } Foo *p = new…

HTML5 Notifications — это просто: делаем уведомления одной строкой, как в GMail

Наверняка все, кто пользовался почтой от Google, хоть раз видели уведомления вроде этого: Эти уведомления называются HTML5 Notifications, и они видны, даже если перейти в другую вкладку или вообще свернуть…

Обложка поста

Стакан воды на вращающемся диске

Вы поставили стакан воды на диск проигрывателя виниловых пластинок и медленно увеличиваете скорость вращения. Что произойдет раньше: стакан сползет в сторону, стакан опрокинется, вода расплескается? Этот вопрос задавали ранее в…

Обложка поста

Почему числовые типы данных в C имеют такой размер?

Каждый программист, которому приходилось писать на C или C-подобных языках, наверняка сталкивался с тем, что размер переменных одного и того же типа на разных машинах может быть различным. Немного разобравшись…

Обложка поста

Факты из истории компьютерного оборудования

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

Обложка поста

Типы языков программирования

Для погружения в программирование нужно всего 3 вещи: Решить, с какого языка/технологии вы хотите начать. Решить, на каком ресурсе вы хотите обучаться. Выделить время на само программирование. Звучит просто, однако…

Алгоритм, выводящий все корректные комбинации пар круглых скобок

Под корректными комбинациями пар будем понимать правильно открытые и закрытые скобки. На вход подаётся число пар скобок, на выходе должны быть все возможные их комбинации в виде набора строк. Первая…

Обложка поста

11 навыков, которыми вы должны овладеть, чтобы зарабатывать по $100 тысяч в год, будучи инженером в Google

Инженеры в Google очень востребованы, и им платят соответственно. Так, например, стажеры в этой компании получают от 70 до 90 тысяч долларов в год, в то время как разработчики программного…

Идея и создание веб-приложения Br.Asst. — Browser assistant

В век постоянного и частого выхода обновлений для различных браузеров информационным системам нельзя от них отставать. Для контроля версий и регулярного обновления веб-обозревателей команда CHEERS! Unlimited решила создать Br.Asst…

asst

Величайшая программа из когда-либо написанных

Как вы думаете, какую из существующих программ можно назвать самой великой? Можете ли вы сказать про одну из своих программ, что она круче всех остальных? Есть мнение и, прямо скажем, далеко не…

Обложка поста

Алгоритм, который генерирует целое число, отсутствующее в файле

Дан входной файл, содержащий четыре миллиарда целых 32-битных чисел. Предложите алгоритм, генерирующий число, отсутствующее в файле. Имеется 1 Гбайт памяти для этой задачи. Дополнительно: а что если у вас всего 10 Мбайт?

Как обрабатывать JSON в командной строке

Какой-нибудь инструмент для работы с json в командной строке был бы удобен при отладке REST API. Можно делать запрос, получать ответ и сразу же разбирать его, выделяя нужные объекты и…

Самые типичные ошибки и вопросы, связанные с Git, и удобные способы их решения

Если вы хотите получше узнать те части Git, про которые раньше боялись спросить, то этот список для вас. Тут собраны наиболее типичные ситуации и способы их решения как из личного…

Обложка поста

Моделирование поведения жидкости в ASCII

Небольшая программка, моделирующая поведение жидкости в ASCII-режиме и терминале 80×25 символов.

Верблюжья нотация или нижние подчёркивания: научный подход

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

Обложка поста

Логическая задача на расставление костей домино на шахматной доске

Дана шахматная доска размером 8×8, из которой были вырезаны два противоположных по диагонали угла, и 31 кость домино; каждая кость домино может закрыть два квадратика на поле. Можно ли вымостить…

Обложка поста

«Магия. Не трогать», — и другие забавные комментарии, которые встречались в реальном коде

“Когда я писал этот код, только Бог и я понимали, что он означает. Теперь понимает только Бог.” По поводу авторства этой цитаты проводилось целое расследование. “Посвящаю этот код и всю мою…

Обложка поста

20 самых непопулярных вопросов на StackOverflow

Не все вопросы на StackOverflow находят поддержку. Иногда люди сами не понимают, что спрашивают, временами задают отвлечённые вопросы, а порой просят решить простую студенческую задачку или просто спрашивают глупости. Список вопросов…

8cc — компилятор языка C

8cc — это компилятор для языка С. Он поддерживает все особенности С11 и вместе с тем его код настолько небольшой и простой, насколько это возможно. Исходный код есть на GitHub, или…

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

Евгений Брикман – ведущий разработчик Play Framework для LinkedIn сказал в видео-презентации, записанной на JaxConf 2013, что большие кодовые базы труднее поддерживать, если они написаны на динамических языках. На одном…

Forbes: список лучших языков, чтобы познакомиться с ними за месяц

8 вариантов провести месяц с пользой и встать на путь к своему будущему Месяц программирования принесёт огромную пользу независимо от того, какой язык выбрать. Но с учётом ваших интересов, попробуйте один из следующих:…