Машинное обучение поможет установить личность анонимного кодера по его стилю
Специалисты в области стилометрии (исследование стилистики, включающее статистический анализ) хорошо знают, что письмо – это уникальный процесс. Словарный запас, синтаксис и грамматика создают индивидуальный почерк, позволяя определить автора текста. Существуют даже автоматизированные системы, способные идентифицировать человека, написавшего сообщение или публикацию в интернете. А недавнее исследование показало, что стилометрию можно применить и к искусственным языкам (программирование). Как оказалось, кодеры точно так же имеют свой стиль, который можно распознать.
Исследователи Рэйчел Гринстадт (Rachel Greenstadt) из Дрексельского университета и Айлин Калискан (Aylin Caliskan) из Университета Джорджа Вашингтона пришли к выводу, что код, как и другие формы стилистического выражения, не является анонимным. Результаты своей работы они представили на конференции DefCon. В исследовании учёные использовали машинное обучение для выявления авторов образцов кода. Алгоритм сначала идентифицирует все особенности в примерах, затем это список сокращают до 50, оставив только те, которые отличают разработчиков. Таким образом Гринстадт и Калискан создают «абстрактные синтаксические деревья», отражающие базовую структуру кода.
Для данного метода необходимо как можно больше образцов кода, чтобы научить алгоритм сопоставлять их с авторами. В таком случае, достаточно небольшого фрагмента кода из репозитория GitHub, чтобы отличить одного кодера от другого с высокой точностью, утверждают авторы исследования.
Гринстадт и Калискан вместе с другими учёными показали, как можно деанонимизировать программиста, используя его скомпилированный двоичный код. Им также удалось декомпиллировать его обратно на C++, сохранив уникальный стиль. Это работает примерно так, как если бы вы перевели документ в Google Translate на другой язык – текст выглядит совершенно иначе, но он сохранил орфографию и синтаксис.
Новая работа исследователей может быть использована для определения плагиата, особенно для новичков, которые часто копируют куски кода, или для выявления разработчиков вредоносного ПО. Они также надеются, что в будущем им удастся получить ответы на многие интересующие их вопросы, например, какие факторы влияют на стиль программирования, что происходит, когда члены одной команды работают вместе над проектом, отличаются ли стили программирования людей из разных стран и так далее. К слову, уже на данном этапе их алгоритм смог различить образцы кода канадских и китайских программистов с точностью более 90%.
Источник: https://itc.ua/news/mashinnoe-obuchenie-pomozhet-ustanovit-l...
Rebranding программиста.
Сидим общаемся с коллегами по работе. Конторка у нас не большая и я единственный программист. Ну как программист... Скорее кодер, чем программист. Коллеги же между собой всегда говорят, что-то из серии: "Спроси у программиста", "Позвони программисту, он сделает" и т.д. и т.п. И вот сейчас:
- Товарищ программист, когда будет таймер доделан?
- Да какой я программист?
- Ну а кто ты?
- Скорее кодер.
- Кодер как то не очень... Давай мы тебя будем называть Кодя или Багодел?
Тут начальник снимает наушники и говорит:
- А если ты опять просрёшь дедлайн, и мне снова придётся выслушивать вайн клиентов, то ты будешь Кодило и Кодераст!
Поржали :D работаем дальше)
CodinGame опубликовала результаты исследований о современных игроделах
Компания CodinGame провела опрос среди 6128 разработчиков, чтобы создать стандартный портрет программиста и узнать, что на самом деле нужно кодерам. Участникам задавались разнообразные вопросы: от того, что они ценят в работе, до причин, по которым они все еще остаются в своих компаниях.
Несколько интересных фактов:
68 % разработчиков считают возможность получения новых знаний наиболее приоритетным критерием при выборе работы (даже по сравнению с зарплатой);55 % кодеров предпочитают делать отступы клавишей Tab;Машинное обучение — навык номер 1, которым хотели бы овладеть программисты в 2018 году;Девелоперы, задействованные в небольших компаниях, более удовлетворены рабочим процессом, чем члены крупных групп разработки.
Статистика
Судя по ответам, большая часть современных программистов — самоучки. Чуть меньше людей пришли в мир IT из школы или университета. При этом четверть кодеров начали заниматься разработкой в возрасте 25 – 29 лет.
Еще у большинства современных программистов есть высшее образование. И 59 % из них имеют научную степень в компьютерных науках.
По шкале от 1 до 5 в среднем программисты удовлетворены своей работой на 3,61. Уровень «счастья» определяется многими факторами, начиная от размера компании и заканчивая основным используемым языком программирования.
Самыми счастливыми оказались канадские разработчики. Российские программисты находятся на пятом месте в рейтинге удовлетворенных после кодеров из Испании, Германии и Румынии.
Источник: Яндекс.Дзен
ТЗ для кодеров
Необходимо разработать stand-alone приложение -- Graphical user interface (GUI) для обработки информации поступающей с элементов томографической сети. Томографическая сеть представляет собой 3 пространственно разнесённых автономных гидроакустических трансиверных систем (далее ATS). ATS – состоит из наземного и подводного блоков. Подводный блок – гидроакустический трансивер обеспечивающий приём и излучения гидроакустических сигналов подводой. Надводный блок включает в себя электронику обеспечивающую: генерацию сигнала, первичную обработку (фильтрацию, взаимную корреляцию с эталонным сигналом, определение времени распространения акустического сигнала и амплитуду пика корреляции), формирование сообщения содержащего первично обработанную информацию, отправку сообщения по радио каналу в центр обработки. Приложение разрабатывается для установки на компьютер/ноутбук центра обработки и должно обеспечивать:
1. Приём данных с Com-порта.
2. Форматирование и обработку принятых данных
3. Визуальное отображение результатов обработки в псевдо-реальном времени.
4. Сохранение всех принятых и обработанных данных в файлы на носитель.
Тип платформы и язык приложения
Платформа Windows,желательно XP и всё что выше (7, 8, 10) разрядность - х86 и х64. Язык написания приложения-- любой позволяющий решить поставленную задач.
Про оплату в личку.