🐱🎨🙏🤖 10 самых странных языков программирования, о которых вы никогда не слышали
Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.
👉 Читать статью
👉 Зеркало
🔍 Скрытые коммиты GitHub и где они обитают
🤔 Было у вас такое, когда вы закоммитили то, что не должно было попасть в публичный репозиторий? Ну «секреты» там всякие, или еще что! «А в чем проблема?» — спросите вы. Дело в том, что перезаписать историю коммитов GitHub-репозитория можно, но старые коммиты физически не удаляются с серверов GitHub. Это означает, что хотя эти коммиты не отображаются в обычной истории коммитов и не клонируются с репозиторием, они все еще доступны через API.
🛠 GitHub API предоставляет информацию о различных событиях в репозитории, включая PushEvent. Даже если коммит был удален из истории, событие PushEvent, связанное с этим коммитом, все еще может быть доступно через API. Это позволяет определить хеш удаленного коммита и обратиться к нему. Читайте подробнее исследование на эту тему или воспользуйтесь Python-скриптом Github Secrets, чтобы проверить свои репозитории.
🤔 Вычислительная сложность алгоритмов: удобная шпаргалка
Понимание вычислительной сложности алгоритмов важно для разработчика. Как минимум, про это могут спросить на собеседовании, как максимум — это поможет улучшить ваш проект.
❓Что это такое?
Вычислительная сложность пытается ответить: как изменятся время исполнения алгоритма и объём занятой памяти в зависимости от размера входных данных? Тут вводится понятие асимптотической сложности. Это математическая модель, описывающая поведение ограничений на ресурсы (например, время выполнения или использование памяти) в пределе, когда размер входных данных стремится к бесконечности. Алгоритм с меньшей асимптотической сложностью является более эффективным для всех входных данных.
Для асимптотической сложности алгоритма используется следующая нотация: 𝑂
(«О»-большое), которое описывает верхнюю границу времени.
✍️ Категории алгоритмической сложности в 𝑂-нотации:
- Постоянное время: 𝑂(1)
Время выполнения не зависит от количества элементов во входном наборе данных.
- Линейное время: 𝑂(𝑁)
Время выполнения пропорционально количеству элементов в наборе.
- Логарифмическое время: 𝑂(log𝑁)
Время выполнения пропорционально логарифму от количества элементов в наборе.
- Линейно-логарифмическое время: 𝑂(𝑁log𝑁)
Время выполнения больше чем, линейное, но меньше квадратичного.
- Квадратичное время: 𝑂(𝑁^2)
Время выполнения пропорционально квадрату количества элементов в наборе.
🔗 Ссылка на отличную шпаргалку
🤩 Подборка случайных докладов на недавних конференциях (и не только) от известных специалистов в индустрии:
📺 Heisenbug: «AI: конкурент или помощник?» / Артем Ерошенко
📺 C++ Russia 2022: «Голый Rust» / Роман Проскуряков
📺 HolyJS 2023 Spring: «Telegram Web Apps: веб-приложения внутри Telegram» / Владислав Кибенко
📺 DotNext 2022 Autumn: «Best practices для разработки Application Layer» / Максим Аршинов, Андрей Парамонов, Андрей Цветцих, Денис Цветцих
📺 HighLoad++: «Авито Автозагрузка: как качать миллионы фотографий в сутки» / Евгений Толмачев
#матчасть
🏃 Самоучитель по Go для начинающих. Часть 8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
Ранее в уроке про типы данных мы познакомились со строками, рунами и байтами. В этой статье расширим наши знания об этих типах, рассмотрим пакет strings и подробно изучим хеш-таблицы.
👉 Читать статью
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
☕️📦 10 Java-библиотек, которые изменят твой код навсегда
Из этой статьи вы узнаете о ключевых возможностях 10 популярных библиотек для Java: работа с коллекциями, строками, JSON, логами, датами и временем и многое другое.
Читать статью
🎙️ Как выдержать критику от других разрабов? Чужие мнения и своя самооценка
Свой уровень очень-очень трудно оценить правильно. Особенно когда только чему-то учишься. Успехи окрыляют, а неудачи — обрушивают на дно.
Садишься за работу с мыслями — ну охренеть я сеньор всемогущий. Показываешь код лиду, и уходишь с ощущением, что только джунам кофе носить годишься. Дожить до момента, когда опыт станет твоей броней против любой критики, а ошибки не будут уничтожать самооценку — это ой как непросто. Но как-то надо.
В новом выпуске Доктора Кота ведущие обсуждают, как жить с тем, что про тебя постоянно говорят что-то нехорошее, справляться с критикой и адекватно принимать свои успехи и неудачи.
#подкасты #айтипсихология
Я и моя команда DevOps пытаемся устранить неполадки кластера Kubernetes в продакшене
#жиза
🐣Скоро начинается сезон праздников, а к ним лучше готовиться заранее
Именно поэтому мы запустили электронные подарочные сертификаты на курсы proglib academy:
🎁 Выбирайте удобные номиналы от 1 000 до 10 000 руб;
🎁 Отправляйте получателю сразу или в конкретную дату;
🎁 Сертификат действует в течении года с момента покупки.
🙌 Дарите друзьям, сотрудникам, коллегам или партнёрам возможность получить новые знания и возможность профессионального роста в IT-сфере – https://proglib.io/w/d831f55d
🆚 Традиционное управлением конфигурацией vs. IaC
Infrastructure as Code (IaC) — подход к автоматизации и управлению инфраструктурой с использованием кода. Вместо ручной настройки и обслуживания инфраструктуры, IaC позволяет управлять инфраструктурой с помощью программного кода, выполняя автоматическую установку, конфигурацию и деплой через различные инструменты, включая Ansible, Terraform, Puppet, Chef и другие.
👉 Источник
#инфографика
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.
В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги
👉Подписаться👈
👀 Итоги недели в мире ИИ и обзоры новых сервисов
У нас вышла интересная статья на 📰 по мотивам еженедельной рассылки про последние новости и тенденции в мире ИИ.
Ниже — небольшая подборка, а целиком читайте здесь 👈
💬Новости
▫️ Исследователи Стэнфордского университета обнаружили, что чат-боты склонны делать выбор в пользу насилия и ядерных ударов в военных играх.
▫️Разработчики приложения для знакомств Bumble протестировали новую AI-функцию Deception Detector, которая автоматически заблокировала 95% мошеннических аккаунтов.
▫️Google создала MobileDiffusion — мини-модель для супербыстрой генерации изображений на смартфонах.
🛠 Инструменты
▫️UserSketch — создаёт чат-бота на основе единой базы знаний с данными, собранными из любых документов, почты, мессенджеров, приложений для управления проектами и организации бизнес-процессов.
▫️Ytube AI — превращает YouTube-видео в SEO-оптимизированные статьи.
▫️ThreadScribe.ai — превращает сообщения из Slack в структурированную базу знаний, которой можно задавать любые вопросы и получать инсайты.
▫️Fooocus — бесплатная опенсорсная альтернатива Midjourney. Устанавливается локально.
⚙️ Сделай сам
Google выпустила инструмент localllm для запуска LLM локально или в облаке, на CPU вместо GPU. Подробный туториал по установке и настройке localllm — в блоге разработчиков.
🎓 Исследования
Исследователи из Технологического института Джорджии представили PokéLLMon. Возможности этого ИИ-агента сопоставимы с человеческими — он уже выиграл 56% боев против людей. Авторы также нашли способ избавиться от галлюцинаций и решили проблему панического переключения, когда при столкновении с сильным противником агент начинал хаотично переключаться между покемонами.
❓👨💻 Вопросы для подготовки к собеседованию по JavaScript. Часть 2
В первой части мы разобрали стрелочные функции, замыкания, промисы и async/await, методы работы с массивами и объектами, шаблонные литералы, особенности Map и Set, оператор расширения и клонирование объектов.
Во второй — продолжаем рассматривать вопросы для джунов: рассказываем о прототипном наследовании, цикле событий, методах сохранения данных в браузере, конструкторах, генераторах, функциональных выражениях, микро- и макрозадачах.
👉 Читать статью
👉 Зеркало
🤔 Остаться или уйти? Оптимальный срок работы на одном месте
Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?
Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.
Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?
👉 Расскажите о своём опыте в нашем новом опросе 👈
🐍 Итоги недели в мире Python и обзоры новых инструментов
У нас есть еженедельная рассылка о последних открытиях и тенденциях в мире Python. Мы опубликовали один из свежих выпусков на 📰.
Ниже — небольшая подборка, а целиком читайте здесь 👈
🔎 Поисковик на 80 строках кода
Публикация рассказывает, как сделать базовую поисковую систему буквально на 80 строках Python-кода. Автор реализовал все основные компоненты поисковика: краулер, инвертированный индекс, ранжировщик и интерфейс.
⭐️ Полезные библиотеки
▪️Web2PDF – CLI-инструмент для конвертации веб-страниц (по URL) в PDF-файлы.
▪️Rexi – инструмент для работы с регулярными выражениями в терминале.
▪️Django HTMX Components – набор готовых компонентов, которые можно скопировать и вставить в Django-приложение.
🕹 Управление зависимостями
Туториал, который рассказывает, как начать пользоваться Poetry.
🔥 Интересные проекты
▪️«Гарри Поттер и движок Elasticsearch» — это семантическая поисковая система на основе векторной базы данных с информацией о вселенной Гарри Поттера.
▪️Чат-бот, имитирующий стиль Эминема.
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.
В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями
👉Подписаться👈
🥤🛡️ Как сделать Flask-приложение неуязвимым: полное руководство по защите от хакерских атак
Лучшие практики по созданию надежного и безопасного Flask-приложения, включая защиту от XSS/CSRF и API, созданных с помощью Flask.
👉 Читать статью
👉 Зеркало
👩💻 PGlite — Postgres в WASM
Эта сборка упакована в клиентскую TypeScript-библиотеку, которая позволяет запускать Postgres в браузере, Node.js и Bun без необходимости устанавливать какие-либо другие зависимости. Занимает 3,7 МБ в сжатом виде.
👩💻 GitHub
👉 Playground
🛍 -50% на наш флагманский курс по вышмату + курс по machine learning в подарок
📣 В честь 23 февраля мы решили снизить цену на курс по математике и подарить курс по machine learning в подарок – https://proglib.io/w/7a2b9c4a
14 990 рублей 29 990 рублей до 29 февраля
⭐️ На курсе вы получите все необходимые знания для старта карьеры в DS или аналитике.
Что еще вас ждет на курсе:
🔹 Полугодовая программа от преподавателей ВМК МГУ;
🔹 150 практических заданий и 47 видеолекций;
🔹 Бессрочный доступ ко всем материалам курса;
🔹 Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
‼️ Переходите на сайт, читайте подробности и заходите на обучение по самым выгодным условиям – https://proglib.io/w/7a2b9c4a
🤔 Какой язык учить первым?
Если ознакомиться с популярными айтишными ресурсами по этой теме, формируется два вывода:
1️⃣ Первым надо учить Python/JavaScript (пробудить интерес к программированию) или C++ (программирование интересно само по себе и человек хочет развиваться как разработчик).
2️⃣ Первый язык нужен не для того, чтобы писать на нём проекты, а для изучения базовых принципов программирования => поэтому первым должен быть не язык, а учебник программирования.
А язык будет тем, который используется в этом учебнике для объяснения алгоритмов, — удобным именно для начального обучения (на начальном этапе достаточно псевдокода).
💬 А вы как считаете?
#холивар
💡 GraphQL в деталях
GraphQL — язык запросов и серверная среда для API с открытым исходным кодом. В отличие от REST API, GraphQL позволяет запрашивать именно те данные, которые необходимы, что делает возможным получение данных из нескольких источников с помощью одного запроса. Эта эффективность извлечения данных может привести к повышению производительности веб- и мобильных приложений.
GraphQL-сервер находятся между клиентом и бэкендом. Он может объединять несколько запросов в один, позволяет организовать ресурсы в граф, поддерживает мутации (применение изменений данных к ресурсам) и подписки (получение уведомлений об изменениях схемы).
➕ Преимущества GraphQL:
🔸 GraphQL более эффективен в получении данных
🔸 GraphQL возвращает более точные результаты
🔸 GraphQL имеет строгую систему типов для управления структурой сущностей, что снижает количество ошибок
🔸 GraphQL подходит для управления сложными микросервисами
➖ Недостатки GraphQL:
🔸 Повышенная сложность
🔸 Избыточное получение данных
🔸 Сложность кэширования
👉 Источник
#инфографика
🏃 Самоучитель по Go для начинающих. Часть 7. Массивы и слайсы. Append и сopy. Пакет slices
Рассмотрим реализацию массивов и слайсов в языке Go, разберем функции append и copy, изучим пакет slices и по традиции решим несколько занимательных задач.
👉 Читать статью
👉 Часть 1
👉 Часть 2
👉 Часть 3
👉 Часть 4
👉 Часть 5
👉 Часть 6
🤔 ФП vs. ООП
Дядя Боб считает (перевод), что споры сторонников функционального и объектно-ориентированного подхода не имеют смысла, так как эти парадигмы отлично уживаются вместе.
Более того, система, которая построена на комбинации принципов ООП и ФП максимизирует гибкость, поддерживаемость, тестируемость и простоту. Если убрать одно ради добавления другого, это только ухудшит структуру системы.
💬 А вы что думаете? Похоливарим?
#холивар
🐍⛓ Цепи Маркова: генерирование читабельной бессмыслицы за 20 строк на Python
В новой статье научимся генерировать осмысленные, но в то же время абсурдные фразы и предложения с помощью цепи Маркова.
🔗 Читать статью
🔗 Зеркало
📈 5 трендов в подборе ИТ-специалистов на 2024 год
Использование ИИ-алгоритмов становится трендом и в Human Resources. Такими инструментами пользуются и кандидаты, и работодатели.
🤖 Например, появляются Applicant tracking system (ATS) с ИИ, которые автоматизируют поиск и отбор кандидатов. А ещё есть Final Round AI — своеобразный помощник с искусственным интеллектом, который генерирует индивидуальные ответы на онлайн-интервью в режиме реального времени.
👉 О других трендах читайте в нашей новой статье 👈
🔗 Зеркало
🤔 Почему опыт разработчика важнее продуктивности?
🤯 Компании испытывают нездоровую одержимость поисками кейсов измерения продуктивности разработчиков. Это вполне понятно — руководители вынуждены добиваться результатов, одновременно извлекая выгоду из своих инвестиций в команды и технологии.
❗️Проблема в том, что продуктивность разработчиков невероятно трудно измерить, в результате чего организации тратят непропорционально много усилий и ресурсов, пытаясь найти волшебную меру.
🤩 Представьте себе возможности, если бы такое же количество времени и энергии было вложено в повышение производительности разработчиков, а не в попытки ее измерить. Несколько мыслей по теме из статьи на TechCrunch:
☑️ Счастливые разработчики — продуктивные разработчики. Удовлетворенность работой является ключом к продуктивности.
☑️ Факторы, влияющие на радость разработчиков: опыт разработчика (Developer Experience, DX) и инженерная культура.
☑️ Шаги к улучшению опыта разработчика: понимание текущего опыта, расширение возможностей «платформенной команды» и продвижение DX с помощью платформ разработчиков.
💆♂️ Под «платформенными командами» понимается внутренняя группа, сосредоточенная на предоставлении DX. Они предоставляют внутренние сервисы командам по доставке ПО, позволяя им работать автономно. Эти сервисы могут включать инфраструктуру, инструменты CI/CD, мониторинг и логирование, или облегчение понимания и соблюдения стандартов/практик компании.
🛠 Под платформой разработчиков понимается набор инструментов и сервисов, предоставляемых «платформенной командой», которые направлены на улучшение DX.
🔥 Один из разработчиков nginx Максим Дунин создал собственный форк веб-сервера
📝 В своём письме Максим рассказал, что не работает в F5, владеющей nginx, с 2022 года, с тех пор как компания закрыла офис в Москве. После этого он договорился с руководителями, что будет продолжать разработку веб-сервера в качестве волонтёра.
🤯 Теперь, по его утверждениям, новые нетехнические менеджеры начали вмешиваться в разработку nginx, думая, что они лучше знают, как разрабатывать опенсорсные проекты. В частности, управление пытается вносить изменения в политику безопасности веб-сервера. При этом мнение разработчиков не учитывается.
🤷♂️ В ответ на всё это Дунин заявил, что больше не будет участвовать в разработке nginx. Вместо этого он создал FreeNginx, форк проекта, к которому приглашает присоединиться других разработчиков.
⚡️ Недавно было опубликовано мини-интервью Максима, которое позволит узнать историю из первых уст.
💡 Гайд для начинающих по Content Delivery Network: что это и как работает
📌 Основные понятия для погружения в гайд:
🔸 CDN — географически распределённая сетевая инфраструктура, обеспечивающая быструю доставку контента пользователям веб-сервисов и сайтов. Входящие в состав CDN cерверы географически располагаются таким образом, чтобы сделать время ответа для пользователей минимальным.
🔸 Origin — сервер, на котором хранятся исходные файлы или данные, раздаваемые через CDN.
🔸 Point of presence (точка присутствия) — кэширующий сервер в составе CDN, расположенный в определённой географической локации. Для обозначения таких серверов также используется термин edge.
🔸 Динамический контент ― контент, генерируемый на сервере в момент получения запроса (либо изменяемый пользователем/загружаемый из БД).
🔸 Статический контент ― контент, хранимый на сервере в неизменяемом виде (например, бинарные файлы, аудио- и видеофайлы, JS и CSS).
👉 Читайте гайд на Medium или в PDF (файл в комментариях)
🤖 Несколько недавних новостей, но очередной важный прорыв в мире искусственного интеллекта!
1️⃣ Команда OpenAI представила text-to-video модель Sora.
☝️ Приведённое выше видео получено из следующего промта: Beautiful, snowy Tokyo city is bustling. The camera moves through the bustling city street, following several people enjoying the beautiful snowy weather and shopping at nearby stalls. Gorgeous sakura petals are flying through the wind along with snowflakes.
2️⃣ V-JEPA — модель от Meta* как симметричный ответ про обучение моделей на видео с целью улучшения понимания нейронками мира.
3️⃣ В Google анонсировали Gemini 1.5. Вот три главных фичи:
✔️ Увеличение длины контекста до миллиона токенов
✔️ Улучшение метрик Pro 1.5 до Ultra 1.0
✔️ Внедрение микстуры экспертов
*организация, деятельность которой запрещена на территории РФ
#чтопроисходит
⛩️ 6 способов нестандартно войти в Айти
Стандартный способ вхождения в профессию программиста — через универ. Все, что отличается от него, уже считается нестандартным способом. Разбираем несколько необычных способов входа в ИТ-сферу и то, какие преимущества они дают:
🛤 Роадмапы
👨💻 Знакомые айтишники
💬 Комментарии
🙌 Менторинг
🕹 Игры
⌨️ Стажировки