Рубрика «Программирование» - 703

Дайджест последних достижений в области криптографии. Выпуск нулевой - 1

Привет!
Хотелось бы в одной статье вкратце рассказать о достижениях математиков, которыми мы уже пользуемся или скоро будем.
Начнем Читать полностью »

Как вам известно, вчера завершился очередной чемпионат ACM ICPC. Поздравляем студентов МФТИ, ИТМО, УрФУ и ННГУ с отличным выступлением, ребят из СПбГУ — с 1-м местом. Теперь мы приглашаем всех желающих принять участие в Яндекс.Алгоритме 2016. В этом году финал чемпионата пройдет в Минске.

image

В этом году впервые помимо традиционных призов победители получат возможность попасть на стажировку в Яндекс. 22 мая регистрация закроется и останется только следить за другими участниками в отборочных раундах. Квалификационный раунд продлится в этом году двое суток — с 21 по 22 мая. Раунды вновь будут оцениваться по системе TCM/Time. Для тех, кому интересно, какой сложности задачи их ждут, мы разобрали тур прошлогодней квалификации. Также у вас есть возможность потренироваться на нем.
Читать полностью »

Удаляйте свой мертвый код - 1

Пост «Удаление кода» Неда Бэтчелдера (Ned Batchelder) недавно появился на HN, хотя изначально он был написан в 2002 году. Здесь я хочу повторить несколько мыслей Неда, и занять более решительную, чем он, позицию: удаляйте код, как только вы замечаете, что он больше не нужен, без лишних вопросов. Я также предложу некоторые советы из окопов, как определять кандидатов в мертвый код.

То что мертво умереть не может!

Это не просто «очень умная» и своевременная отсылка к поп-культуре. Мертвый код, то есть код, который никогда не выполняется в вашей программе — это реальная помеха для поддержки вашей кодовой базы. Сколько раз вы не могли добавить что-то, что казалось простой функцией или улучшением, только потому что были поставлены в тупик сложностью кода, который должен работать рядом с этой функцией? Насколько приятнее была бы ваша жизнь, если бы добавить новую функцию или исправить ошибку было бы так же просто, как вы предполагали, когда планировали свою работу?
Читать полностью »

Как вы, вероятно, догадываетесь, изрядная часть нашей работы связана с программированием. Ну просто потому, что это самый простой из известных нам методов создания программного обеспечения. Основная разработка ведется на С++, и так уж совпало что у нас работают довольно сильные С++ программисты. Товарищи они общительные и периодически желают поговорить с умными людьми. Казалось бы, у нас их немало, могли бы и друг с другом поговорить. Но нет. Им интересно общение и с другими программистами. Поэтому мы решили собрать большую встречу, на которой С++ разработчики могли бы пообщаться друг с другом, послушать пару интересных докладов, поделиться опытом.

Встреча будет проходить в рамках программы CoLaboratory, вечером 24 мая, в нашем московском офисе. На этот раз мы решили поделиться со всеми желающими опытом применения статического анализа и организации тестирования производительности программ. О чем и расскажут наши эксперты Никита Какуев и Николай Дьяконов — весьма увлеченные своим делом личности.

Читать полностью »

image

Первое место — СПбГУ.
Второе место — Шанхайский университет транспорта.
Третье место — Гарвардский университет.

Четвертое место — МФТИ.
Седьмое место — ИТМО.

Восьмое место — УрФУ.
Десятое место — ННГУ.

Поздравляем соотечественников с победой!
Читать полностью »

Это моя первая статья, потому не буду многословным и постараюсь как можно короче описать разработку клавиатурного шпиона на Делфи. Использовать мы будем функцию WinApi (getasynckeystate), осуществляющую глобальный перехват нажатия клавиш клавиатуры.

Описание: function GetAsyncKeyState(Key: Integer): Integer;
Опpеделяет состояние виpтуальной клавиши.
Параметры: Key: Код виpтуальной клавиши.
Возвращаемое значение: Если установлен стаpший байт, клавиша Key находится в нажатом положении, а если младший, то клавиша Key была нажата после пpедыдущего вызова функции.

Также нам понадобиться функция GetForegroundWindow — возвращает дескриптор приоритетного окна (окна, с которым пользователь в настоящее время работает). Система присваивает немного более высокий приоритет потоку, который создает приоритетное окно, чем тот, который она дает другим потокам.

Я думаю, этого достаточно для базового понимания того, как мы собираемся всё это дело реализовать. Преступим к созданию формы и написанию кода.

Начнём по порядку: открываем Делфи, заранее сохраняем наш проект, заходим в обработчик событий нашей формы вкладка Events и находим событие OnShow, два раза щёлкаем левой клавишей мыши на событие и пишем код.
Читать полностью »

«Это началось как желание, стало приключением, а закончилось как уникальное дорожное путешествие.»
— к/ф «Трасса 60»

«Хакеры и Художники». Как мы 13 лет всем рунетом Пола Грэма переводили - 1

Пол Грэм написал книгу «Hackers and Painters» (оригинал в PDF на английском) когда еще был больше программистом, чем инвестором. С тех пор некоторые моменты устарели (да и arc не взлетел), но большинство мыслей остались актуальными (роль и место ботанов «хакеров» в современном мире, свободомыслие, критическое мышление, способность бросать вызов большим системам и пр). Лично я планирую перечитать всю книгу еще пару раз.

Спасибо Байраму Аннакову за «наводку» на Пола Грэма и Николаю Кононову, который подтвердил, что я на правильном пути.

Содержание

Глава 1 Why Nerds Are Unpopular — За что не любят ботанов.
Глава 2 Hackers and Painters — Хакеры и художники.
Глава 3 What You Can't Say — О чем вы не можете сказать.
Глава 4 Good Bad Attitude — Слово «хакер».
Глава 5 The Other Road Ahead — Другая дорога в будущее, Другая дорога в будущее, продолжение.
Глава 6 How to Make Wealth — Как стать богатым.
Глава 7 Mind the Gap — Осторожно, разрыв.
Глава 8 A Plan for Spam — План для спама.
Глава 9 Taste for Makers — Вкус — созидателям.
Глава 10 Programming Languages Explained — Языки программирования «в разрезе».
Глава 11 The Hundred-Year Language — Языки программирования через сто лет.
Глава 12 Beating the Averages — Lisp: побеждая посредственность.
Глава 13 Revenge of the Nerds — Месть ботанов 1, 2, 3.
Глава 14 The Dream Language — Быть Популярным, часть 2.
Глава 15 Design and Research — Проектирование и исследование.

Под катом хронология переводов и благодарности.
Читать полностью »

RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)

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

WRN устройство

Устройство получило наименование WRN от составляющих его подсистем:

  • Аппаратный сторожевой таймер, работающий с watchdog демоном;
  • Генератор истинно случайных чисел;
  • Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.

В этой части статьи будет рассмотрено как взаимодействовать с последовательным портом из пространства ядра (kernel space) и как организовать работу с несколькими подсистемами устройства через RS232 в Linux.

Читать полностью »

Создаем новую OS. Действительно новую, реально операционную, и правда – систему - 1

О создании новой операционной системы в последнее время говорят немало, особенно в России. В сумме размер всех публикаций по данной теме наверняка превышает размеры исходного кода любой операционной системы. Так что остается только одна проблема – от этих разговоров никаких новых OS не появляется. Всё, что предъявляется публике (и на что тратятся бюджетные деньги), на поверку оказывается кастомизированными сборками OS семейства Linux, а значит, не содержит ничего принципиально нового. Но, если о чем-то не говорят, это не значит, что его не существует.
В этой статье – проект принципиально новой OS, созданный в нерабочее время одним из ведущих сотрудников (Principal Engineer) российского подразделения Intel.
Читать полностью »

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

4 пути юного регионального разработчика, которые я прошел в студенческие годы - 1

Но в 13 лет родители купили мне компьютер, и жизнь начала меняться: я быстро стал местным эникейщиком, у которого взрослые дяди и тети спрашивали, как установить “виндоус на процессор”. В 15 я задался вопросом, как написать свою игру. Спросил двоюродного брата, который уже стал “уважаемым человеком” и делал сайты в Москве. Брат привез учебник Лафоре по C++ и сказал: “Осваивай программирование”.

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js