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

На связи @OBogolyubskaya_official
Присоединяйтесь к нам: https://career.kryptonite.ru/
Download Telegram
Пятничная задачка. Сможете решить?

Разность четырёх суперпростых чисел равна нулю. Каждое из них можно записать одним байтом. Назовите эти числа. Ждём ваши ответы в комментариях🖤 Решение дадим позже там же.

📌Другие наши задачи вы можете найти по тэгу #задачки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня мы на фестивале RUNIT: бежим марафон, дарим мерч и проверяем с помощью умной видеоаналитики, на какого спортсмена похожи участники! 😄

А вы любите бегать? С какой максимальной дистанцией справлялись?
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие особенности у С++ ? Начинаем новый цикл обзоров языков программирования.

🔵С++ — это универсальный язык в плане семантики, но чаще он используется как объектно-ориентированный — с наследованием, интерфейсами и так далее.

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

🔘Обычно среди сильных сторон упоминают кроссплатформенность, но её нет «по умолчанию».

Это не Java, программы на которой транслируются в байт-код и запускаются в виртуальной машине. В C++ нужно сразу писать код под все планируемые архитектуры и операционные системы, учитывать зависимые библиотеки, это требует значительных усилий.

🔵Традиционно философией С++ было дать программисту полную свободу действий, чтобы он мог использовать только самое необходимое и не платить потерей производительности за остальное. К сожалению, не всегда программисты пользуются этой свободой правильно.

С++ вам не нянька! Делайте, что хотите, но виноваты будете сами. Например, если выделяете память, то не оставляйте её без присмотра. Синхронизация доступа к разделяемым ресурсам — за этим тоже нужно следить самому.

📌Есть у нас тут разработчики, которые пишут на С++? Что бы из особенностей вы ещё добавили? #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Суммирующая машина Леонардо да Винчи. Что это такое? #история_математики

👁‍🗨В 1492-1493 годах итальянский изобретатель и художник Леонардо ди сер Пьеро да Винчи нарисовал эскиз механизма, который позже стал называться «суммирующая машина».

Её изображение было найдено среди коллекции рукописей итальянского скульптора XVI века Помпео Леони. Оно было включено в первый том сборника «Мадридский Кодекс», который с конца XVII века считался утерянным и был найден только в 1967 году.

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

❗️Без сомнения остаётся только принцип работы устройства: это система зубчатых колёс, каждое из которых насчитывает десять зубцов. Колёса изображены двух размеров: малые и большие. Они расположены попарно на 13 осях, причём большое колесо на одной оси всегда входит в сцепление с малым на другой.

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

📌В 1968 году инженер Роберто Гуателли (Roberto Ambrogio Guatelli) по заказу фирмы IBM создал действующий образец суммирующей машины Леонардо да Винчи, которая успешно прошла испытания в Массачусетском университете.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Несмотря на то, что лето в самом разгаре, мы активно ищем специалистов в департамент разработки «Криптонита»👨‍💻

Ловите большую подборку вакансий, переходите по ссылкам, откликайтесь и передавайте друзьям!🔥

🔹Руководитель направления Scala-разработки
🔹Scala Team Lead
🔹Scala Developer / Senior Scala Developer

🔹Python Team Lead (Backend)
🔹Senior Rust Developer
🔹DevOps Engineer/Senior DevOps Engineer
🔹Frontend Developer

🔹Senior Data Engineer
🔹Data Engineer

#вакансии_Криптонит
Please open Telegram to view this post
VIEW IN TELEGRAM
А вы знали, что в честь Эйфеля названа не только башня, но и язык программирования? Рассказываем о нём и о его создателе, который сейчас преподаёт в российском Университете Иннополис.

👁‍🗨В 1985 году французский специалист в области программной инженерии Бертран Мейер представил язык программирования Eiffel, ориентированный на создание ПО для критически важной инфраструктуры.

Этому способствовала его прежняя работа главой отдела программных разработок в компании Électricité de France, управляющей атомными электростанциями по всей Франции. Тогда Мейер поставил своей целью написание максимально строгого и безопасного языка.

❗️Название Eiffel было дано в честь Александра Гюстава Эйфеля, построившего в Париже знаменитую башню. Аналогия призвана показать, что язык «Эйфель» также надёжен, как Эйфелева башня, и позволяет быстро создавать сложные конструкции из стандартных компонентов без ущерба безопасности.

В основу языка Eiffel легла концепция контрактного программирования — подхода к проектированию ПО, ранее описанного Мейером. Этот подход требует написания формальных утверждений корректности и призван реализовать строгую модель взаимодействия всех программных элементов.

❗️Синтаксис в Eiffel тоже непривычно строгий и призван облегчить читаемость кода. Сокращения не приветствуются, все классы и процедуры комментируются, зарезервированные слова набираются жирным шрифтом, а идентификаторы — курсивом.

Хотя сам язык не чувствителен к регистру, переменные в нём принято писать строчными буквами, а константы — начинать с прописной. Если допустить вольности в оформлении, компилятор выдаст ошибку, как если бы она была в коде.

📌По современной классификации Eiffel относится к объектно-ориентированным языкам программирования со строгой статической типизацией и встроенной поддержкой параллельных вычислений.

Он был написан с заимствованием синтаксиса и ряда подходов из «Алгол-60» и Планкалкюль, а после стандартизации в ISO и ECMA оказал влияние на Java, C# и другие современные языки программирования.

🟢Язык Eiffel продолжает развиваться, а Бертран Мейер с 2014 года преподаёт в российском Университете Иннополис, где ведёт курсы «Введение в требования и спецификации программного обеспечения», «Методология и методы научного исследования» и другие. #ИЯП
Please open Telegram to view this post
VIEW IN TELEGRAM
🧮А мы к вам с новой задачей! Ждём ваши варианты решений в комментариях❤️ #задачка

Дано шестизначное число. Запишем его как ??????

Если разбить эту запись на два трёхзначных числа (??? ???), то их сумма будет равна 999.

Если же разбить запись на три двузначных числа (?? ?? ??), то их сумма будет равна 99. Что это за число?
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем разбираться с С++. В этом посте смотрим, где используют этот якобы мёртвый язык💀 (на самом деле это не так) #языки_программирования

🧠В мире существует огромное наследие кода на C++ и тысячи масштабных проектов, которые нужно поддерживать. Разработчики использовали его до Rust, Golang и других новомодных языков.

С++ использовали, когда одновременно важны и производительности, и «близости к железу». Он как раз обеспечивал сочетание высокоуровневого языка и возможность использования низкоуровневых функций.

❗️И хотя говорят, что С++ — «мёртвый язык», это не так. Его популярность сохраняется на высоком уровне даже на фоне появления более простых в освоении языков. В ближайшие годы от С++ точно не откажутся.

Сам язык продолжает использоваться и развиваться. Раз в 3 года выкатывают обновление стандарта и дополнительный функционал. Сейчас мы в «Криптоните» используем в разработке продуктов C++ стандарта 2020 года и с интересом следим за нововведениями в готовящийся стандарт C++23.

На С++ пишут всё, что устроено сложно, а должно работать быстро:
▪️игровые движки, включая Unreal Engine и Unity;
▪️Microsoft Office, продукты Adobe (Photoshop, Premiere, Lightroom, After Effects, Illustrator);
▪️браузерный движок Chromium — основа большинства современных интернет-браузеров;
▪️серверные бэкенды.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как заставить себя работать в такую жару?!🥵Спросили у сотрудников «Криптонита» — их советы в карточках.

А вы что думаете? Как оставаться эффективным, когда на улице +30°C?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Новая задача, у которой только один верный ответ. Ждём ваши решения в комментариях!

🧮 Это простое число Чена (Чэня) также является кубическим и суперпростым. С ним сталкивался каждый, кто программировал 8-битные компьютеры. Что это за число? #задачки
Please open Telegram to view this post
VIEW IN TELEGRAM
Вам кажется, что ваш ноутбук медленный и слишком тяжёлый? Да вы просто посмотрите на предшественника всех портативных компьютеров — Osborne 1. Это первая коммерчески успешная версия «компьютера в чемодане», появившаяся в 1981 году. #история_математики

❗️Как гласила реклама: «Всего 12 кг! Он настолько лёгкий, что его может нести один человек, и настолько маленький, что вы можете взять его в самолёт!». В начале восьмидесятых сама идея носить с собой компьютер был поистине революционной.

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

Микрокомпьютер Osborne 1 стоил почти вдвое дешевле сравнимых по характеристикам устройств от других производителей — $1500-$1795. Он был основан на 8-разрядном процессоре Zilog Z80A частотой 4 МГц и обладал ОЗУ объёмом 64 Кб.

🔵Этого было достаточно, чтобы загружать с двух дисководов формата 5,25” операционную систему CP/M, а затем выводить на 5-дюймовом чёрно-белом экране интерфейс текстового редактора (WordStar), электронных таблиц (SuperCalc), СУБД (dBase II), бизнес-ориентированных приложений (Sales Ledger, Purchase Ledger, Nominal Ledger) и самому писать программы на BASIC.

На первом «Осборне» создавались будущие корпорации, так что не спешите винить свой многоядерный лэптоп в медленной работе😄
Please open Telegram to view this post
VIEW IN TELEGRAM
Так в чём же минусы С++? Он теряет привлекательность, потому что появляются языки с более низким порогом вхождения. Например, чтобы начать писать телеграм-ботов на Python, достаточно взять гайд из интернета и кодить по нему.

❗️В С++ не уедешь далеко без понимания того, как устроена память, логика указателей, как компилируется программа и так далее.

По сравнению с более молодыми языками, C++ требовательнее к программисту и не допускает вольностей. Например, в нём нет «динамической типизации». Это статически типизированный язык. Даже когда вы пишете что-то вроде «auto var = 5», переменная var сразу имеет не «какой-то неизвестный», а совершенно точно определённый тип, в данном случае — int.

📌В С++ нет сборщика мусора, поэтому за памятью нужно следить самостоятельно. Это тоже дисциплинирует, заставляет тщательнее продумывать алгоритм.

🔴Пожалуй, главный минус — скудная стандартная библиотека. Например, в std даже нет библиотеки для работы c JSON. Всегда разработчики на C++ были вынуждены сами писать различные вспомогательные утилиты и библиотеки.

🟢Просто надо знать инструмент, с которым работаешь. При достаточном уровне понимания он даёт огромную мощь. Когда производительность менее важна, можно писать высокоуровневый абстрактный ООП код, а когда надо максимально ускориться — то обратиться к низкоуровневым возможностям языка. #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM