Криптонит. Разработка, наука, шифрование
1.74K subscribers
650 photos
31 videos
383 links
Канал IT-компании «Криптонит».
Рассказываем про:
•работу с Big Data на основе AI, ML, шифрования
•разработку и языки программирования
•математику и криптографию

На связи @OBogolyubskaya_official
Присоединяйтесь к нам: https://career.kryptonite.ru/
Download Telegram
Сегодня расскажем о самом (не)благозвучном языке программирования — Brainfuck🤯 #ИЯП

🧠Его придумал швейцарский студент Урбан Мюллер в 1993 году, вдохновившись идеей минимализма. Он разработал свой язык, начисто лишённый абстракций, и написал для него компилятор в машинных кодах.

После преобразования в двоичный файл первая версия компилятора занимала всего 296 байт, а вторая и вовсе ужалась до 240 байт.
С таким талантом Мюллеру писать бы прошивки для спутников и прочей аппаратуры с жёстко ограниченными ресурсами, но гиков редко интересует практическая ценность их идей.

🟢За мозговыносящий синтаксис, больше похожий на топтание кота по знакам препинания, Brainfuck и получил своё название. Для примера напишем программу, которая будет выводить слово KRYPTONITE в ASCII кодах (75 82 89 80 84 79 78 73 84 69).

Вот один из вариантов её реализации:
++++++++++[>+++++++>++++++++<<-]>+++++.>++.+++++++.<+++++.++++.-----.-.-----.>-----.<----.

Как легко увидеть, здесь используется цикл и три ячейки памяти. Мы записываем в нулевую ячейку "10" как начальное значение счётчика. В конце каждого цикла оно уменьшается на единицу, пока не станет равным нулю. В первую ячейку записываем "7", а во вторую — "8".

🔵После завершения цикла значения в первой и второй ячейках увеличатся в десять раз. В них будут записаны значения, удобные для дальнейших преобразований: в первой ячейке сохранится "70", а во второй — "80". Без использования цикла нам пришлось бы писать 70 и 80 плюсиков подряд.

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

❗️Например, буква «К» получается добавлением пяти (+++++) к значению "70" из первой ячейки, а буква «R» — добавлением двух (++) к значению "80" из второй ячейки.

Если захотите чего-то мозговыносящего, попробуйте оптимизировать эту программу, задействовав меньше операторов и/или ячеек.
Please open Telegram to view this post
VIEW IN TELEGRAM
В воскресенье День Военно-морского флота! В преддверии этого решили рассказать о шифрах, который использовал Пётр I и его полководцы в годы Северной войны.

Они использовали шифры подстановки: в нём буквы и слова заменяются на другие символы. Расшифровать такие сообщения можно только с помощью ключа — списка символов и их значений.

❗️Интересно, что у каждого адмирала или князя был собственный ключ! Зашифровывали тайные послания не специально обученные люди, а лично Пётр I и руководители войск.

На первой карточке зашифровано послание, как говорят, самого князя Долгорукого, посла в Польше и Дании во время Северной войны. Попробуйте расшифровать фразу с помощью его ключа(первый столбик)! Ждём ответ в комментариях🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ищем ML-инженеров в лабораторию больших данных и статистики «Криптонита»⚡️

Команда разрабатывает системы видеоаналитики и решения по распознаванию речи и аудио.

➡️ Cпециалист-исследователь в области NLP
Задачи:
🟦поддерживать и расширять набор NLP-технологий: выделять информацию из текста/транскрипций, изучать возможности LLM;
🟦исследовать современные подходы, например, мультимодальные модели или LLM.
🟦следить за свежими статьями и SOTA по NLP-технологиям и делиться с командой.

➡️ Computer Vision Engineer
Задачи:
🟦встраивать решения в области компьютерного зрения в продукты компании;
🟦реализовывать пользовательскую логику в видеоаналитических продуктах компании;
🟦взаимодействовать с командами инфраструктуры, внедрения и разработки;
🟦участвовать в разработке архитектуры продуктов;
🟦формировать предложения по повышению надёжности и производительности продуктов и внутренних инструментов.

➡️ Инженер MLOps
Задачи:
🟦встраивать ML-моделей в продукт, участвовать в запуске продуктов в эксплуатацию, обрабатывать и анализировать инциденты, заниматься валидацией моделей;
🟦взаимодействовать c командами инфраструктуры, внедрения и разработки;
🟦участвовать в проектировании и разработке архитектуры продуктов;
🟦формировать предложения по повышению надёжности и производительности продуктов и внутренних инструментов.

Переходите по ссылкам, чтобы узнать подробности и откликнуться, и передавайте друзьям🫶

#вакансии_Криптонит
Please open Telegram to view this post
VIEW IN TELEGRAM
«Все мальчишки в начале 90-х хотели компьютер для игр. Моим товарищам покупали "Спектрум", на котором игры были цветные. У моих родителей не было таких денег. Поэтому они, скрепя сердце, купили мне старый компьютер без модуля цветной псевдографики. Назывался он "Партнер 01.01», как сейчас помню».

Наш коллега Сергей, ведущий Java-разработчик Нижегородского подразделения «Криптонита», вспоминает, как именно он решил изучать Java и рассказывает про этот язык без прикрас.

💬Читайте большой материал про Java у нас на Хабре💬

🟩«Java — язык общего назначения, большей частью он используется в серверной разработке, особенно в энтерпрайзе (банки, телеком, ритейл и т.п.). Также Android SDK использует язык Java в качестве основы для приложений Android».

🟩«Когда у меня был выбор купить курс или учиться самому, я выбрал второе и ни разу не пожалел. Если выражаться грубо, преподавать на них курсах будет человек, который "пережёвывает пережёванное". На мой взгляд, лучше обращаться сразу к первоисточникам».

🟩«Языки программирования тем и хороши: как минимум, основа языка базируется на логике. Поэтому, если у тебя всё в порядке с логическим мышлением, до некоторых вещей ты дойдёшь сам».

🟩«Из плюсов Java — строгая типизация, большое количество разнообразных библиотек и фреймворков. Нам не нужно каждый раз изобретать велосипед. Как правило, основной код инфраструктуры энтерпрайз-приложений базируется на крупных фреймворках, например, Spring. Они ускоряют разработку и уменьшают общее количество типового кода».
Please open Telegram to view this post
VIEW IN TELEGRAM
Помните задачу про шумных соседей и дрель? Решили вместе с Василем Беляевым, руководителем группы разработки интерфейсов в «Криптоните», показать, как можно быстро её решить!

А заодно разобрали ещё одну непростую задачу про тессеракт — её могут предлагать как тест на собеседованиях. Поэтому обязательно смотрите видео!

💬Смотрите ролик на нашем YouTube-канале или в VK Видео💬

Если понравилось, обязательно ставьте 🖤 — будем продолжать показывать, как решать непростые задачи! #задачки
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну вот и последний месяц лета... Кто-то заметил, как оно пролетело?

👨‍💻— Нееет, как уже август!?
👍— Давайте уже быстрее осень
Please open Telegram to view this post
VIEW IN TELEGRAM
У нас сегодня короткая задача с единственно верным ответом.

На какой вопрос является ответом пятое число Каталана?

Ждём ваши варианты в комментариях! И пусть Тотально-Воззренческий Вихрь поможет вам найти ответ🔥#задачки
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠Как выучить С++? Помогут ли в этом курсы? н̶е̶т̶ . Сегодня заканчиваем серию постов про этот язык программирования.

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

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

🔴Среди обучающих курсов довольно много инфоцыганщины, ведь реальные разработчики заняты в реальных проектах, а кто и чему там учит — это дискуссионный вопрос.

При этом есть бесплатные образовательные проекты. Как правило, их ведут идейные люди.

🔹Взгляните на блог гика многопоточного программирования Дмитрия Вьюкова.

🔹Также в качестве практики можно решать задачки на leetcode. Оптимально получить некоторую базу, а потом заниматься практикой и самостоятельным развитием.

🔹Традиционной площадкой для поиска ответов на вопросы разработчиков является Stack Overflow, а ещё обратите внимание на cppreference.com. Его можно использовать в качестве документации к стандартной библиотеке.

📌Спасибо за помощь в подготовке постов этой серии Андрею Никитину, ведущему инженеру-разработчику направления системного программирования Нижегородского подразделения компании «Криптонит».
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня расскажем о необычной модели машинного обучения, которая анимирует мимику 3D-аватаров на основе аудиозаписей голоса. #нейрословарь

🧠Audio2photoreal — это фреймворк для создания фотореалистичных виртуальных персонажей, которые артикулируют и жестикулируют в соответствии с речевой динамикой.

В его основе лежит объединение двух методов: векторного квантования (VQ) и диффузии. Первый точнее передаёт движения, а второй повышает детализацию.

Процесс анимации состоит из трёх частей:
🔹моделирования мимики;
🔹предсказания динамики позы;
🔹отрисовки движений тела.

На выходе получается анимированная со скоростью 30 кадров/с реконструкция говорящего человека.

📌Реалистично говорящие аватары востребованы в компьютерных играх, системах телеприсутствия, виртуальной и дополненной реальности, а также в разработке роботов, имитирующих эмоции.

На GitHub доступна реализация Audio2photoreal на Pytorch3D. С её помощью вы можете сгенерировать говорящих аватаров, используя в качестве входных данных речевые аудиозаписи.
Please open Telegram to view this post
VIEW IN TELEGRAM
Алгоритм Чена — новая квантовая угроза? Разбираем риски раскрытия данных с криптографами компании «Криптонит».

В материале хронология развития дискуссии вокруг алгоритма Чена и мнения наших коллег.

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

🔹«В качестве примера возьмём нашумевшую этой весной публикацию "Квантовые алгоритмы для задач на решётках", обсуждение которой в криптографическом сообществе продолжается до сих пор. По мере разбора препринта экспертами, отношение к целой группе постквантовых механизмов менялось от "всё пропало!" до "они снова выдержали суровое испытание"».

🔹«Как отмечал сам Чен, потенциальная опасность в том, что после некоторой доработки его алгоритм может оказаться эффективным для взлома недавно победивших в конкурсе NIST постквантовых схем: инкапсуляции ключей Kyber и цифровой подписи Dilithium. Если это произойдёт, то они и некоторые другие постквантовые схемы на решётках окажутся ненадёжными».

🔹«В настоящее время алгоритм Чена, как и другие квантовые алгоритмы, не могут использоваться для ускорения подбора ключей шифрования. Однако принцип "щита и меча" будет существовать всегда: одни создают схемы шифрования, другие пытаются их взломать». #криптография
Please open Telegram to view this post
VIEW IN TELEGRAM
Остаток лета надо провести с пользой. Например, испытать удачу и попробовать победить в нашем летнем розыгрыше!

Свитшот, шахматы, кубик Рубика, книга «Занимательная математика» Якова Перельмана и другой наш мерч — всё это может стать вашим🔥

Чтобы получить наш летний пак подарков надо всего лишь:
▪️Подписаться на канал «Криптонит. Разработка, наука, шифрование» (и не отписываться)
▪️Нажать внизу поста на кнопку «Участвовать»

И всё! Двух победителей бот выберет случайным образом 16 августа в 15:00. Удачи❤️

Полные правила конкурса доступны по ссылке.
Разыскивается дата-инженер!🔎 🚨

Направление обработки данных «Криптонита» в поисках Tech Lead Data Engineer. Переходите по ссылке, чтобы узнать подробности и откликнуться📨

Что нужно делать:
🟦проработка High Level Design процессов загрузки данных на платформу;
🟦выполнение Code review и контроль правильности реализации принятых технических решений;
🟦формирование требований, декомпозиция задач;
🟦реализация процессов загрузки данных на платформу из различных источников (s3, hdfs, samba, sftp) в различных форматах (csv, parquet, json, xml);
🟦выбор подходящих СУБД и моделирование схем данных под нагрузку в соответствии с функциональными требованиями систем потребителей данных;
🟦анализ и устранение причин production-инцидентов;
🟦взаимодействие со смежными командами.

Стек:

🟦языки программирования: Scala (2.13+);
🟦хранение и обработка данных: Postgresql, ClickHouse, Scylla, ElasticSearch, S3, Kafka, Spark;
🟦мониторинг: Grafana, Prometheus;
🟦прочие технологии и фреймворки: Docker, Kubernetes(Openshift), Typelevel (Cats Effect, Circe, Doobie, Weaver), ScalaTest.

📌Откликайтесь сами или передавайте вакансию друзьям. А здесь вы можете познакомиться с командой «изнутри» 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Java — какие особенности у этого языка программирования? Начинаем новый цикл обзоров!

Итак, особенности Java.

🔹Полная независимость байт-кода от операционной системы и оборудования. «Write once, run anywhere» — такова философия Java.

🔹Гибкая система безопасности, исполнение программы полностью контролируется виртуальной машиной

🔹Динамические возможности во время выполнения кода, которые доступны не во всех традиционных компилируемых языках. Например — рефлексия. Это процесс, во время которого программа может модифицировать собственную структуру и поведение во время выполнения.

Есть у нас тут джависты? Что бы вы ещё добавили?

📌Спасибо за помощь в подготовки этой серии постов Сергею, ведущему Java-разработчику Нижегородского подразделения «Криптонита». #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Перед вами не ретро-клавиатура, а целый компьютер за 600 рублей! Рассказываем про него ниже. #история_математики

👁‍🗨В 1986 году на страницах «Науки и Техники» написали о первом серийно выпускаемом советском домашнем компьютере — «Электроника БК-0010» и программах для него.

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

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

❗️Расчёт удался: после выхода очередного номера «Науки и Техники» энтузиасты часто раскупали «БК-0010» ещё до того, как их выставят на прилавках магазинов «Электроника». Компьютер стоил 600 рублей, поэтому студенты иногда покупали его вскладчину.

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

🧮Схемотехника у него тоже была передовая. В то время как зарубежные процессоры для домашних ПК были преимущественно восьмибитными, у «БК-0010» везде использовались 16-разрядные машинные слова. Это позволяло выполнять более точные вычисления и адресовать больше памяти.

В качестве процессора применялась однокристальная микросхема К1801ВМ1, которую в СССР создали во многом самостоятельно — вдохновившись архитектурой PDP-11, но не копируя её.

Самые дорогие версии К1801ВМ1 выпускались в керамических корпусах с позолоченными контактами. Такие экземпляры удавалось разгонять с 3 до 6 МГц.

📌Среди записанных в ПЗУ программ у «БК-0010» вместо «Бейсика» был интерпретатор языка «Фокал», о котором мы скоро расскажем.
Please open Telegram to view this post
VIEW IN TELEGRAM