Как стать автором
Обновить
985.38

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Худший путь в IT

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 114

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

С начала своей трудовой деятельности я работал в очень уважаемой (всесторонне) профессии. Как и многие другие профессии, с развитием «демократии» в нашем империализме, наша профессия стала работать не на благо, а вопреки. Многие, которые соблюдали определенный кодекс своей нравственности, начали уходить в другие профессии. Кто то в такси, кто то в охрану и т. д. В общем работать за еду.

У меня был хороший знакомый, который на момент 2019 года работал в IT компании devops инженером. Не смотря на мой путь (который даже боком не приближается к IT), он мне предложил заняться переподготовкой на топовые специальности в IT сферу.

«Ну да ладно» — подумал я. Закончил когда то техан по электронике на твердую 4. Что то там понимаю по устройству ЭВМ и могу решать линейные уравнения. Ну вроде пойдет для старта.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Новости

Как реализовывается WebAssembly в Rust: кратко

Время на прочтение 4 мин
Количество просмотров 508

Привет, Хабр!

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

з.ы: предполагается, что читатель знает основы webassembly и про что-то из rust

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Несколько советов как новичкам не забросить изучение IT

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2.5K

Я создаю IT-курсы уже 6 лет, являюсь руководителем направления обучения Бэкенд-разработке в онлайн-школе и даже развиваю свои собственные курсы по программированию на Python. Еще веду корпоративные обучения, работаю в универе и провожу консультации о построении пути в IT.

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

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

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

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Комментарии 18

Zod умер. Да здравствует ajv-ts

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 2.5K

TLRD: zod не подходил в проекте и решили сделать свой builder с помощью ajv в zod-like API. Поскольку гугление не показало никаких вменяемых результатов - было решено сделать свои костыли решения.

Если стало интересно - прошу под кат!

стало интересно, посмотрим что там!
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 4

Истории

Apache Maven — введение в автоматизированную сборку проектов (часть 1)

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 1.1K

Добрый день Хабр, в данной статье мы разберём один из сборщиков проектов Apache Maven. Начнём с установки, настройки и сборки нашего первого проекта.

Apache Maven - это фреймворк по автоматизации и сборки Java-проектов. Обычно просто называют Maven.

Самую подробную информацию вы всегда можете найти на официальном сайте Maven.

А также центральный репозиторий Maven где собрано всё самое необходимое для работы с Maven.

Читать далее
Всего голосов 9: ↑0 и ↓9 -9
Комментарии 0

Сервис для блокировки ботов, домашняя бухгалтерия и онлайн-комиксы: 5 идей для pet-проектов

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 2K

Чтобы чему-то научиться, нужно постоянно практиковать свои навыки. Например, применять их в создании pet-проектов. Но что делать, если желание есть, а вдохновения нет?

В этом материале собрали новую подборку интересных проектов сотрудников Selectel. Черпайте идеи и делитесь своим опытом в комментариях!
Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 3

Передавать пустые срезы между Rust и C/C++ на удивление сложно

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 4.9K

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

В общих чертах она выглядит так:

  • В правила работы с указателями и memcpy в С не заложены грамотные способы представления пустого среза памяти.
  • В С++ с правилами указателей проблем нет, но поведение memcpy здесь аналогично её поведению в С.
  • Интерфейс внешних функций (Foreign Function Interface, FFI) в Rust не лишён накладных издержек. Rust использует несовместимое с C/C++ представление срезов, требуя их преобразования при передаче в обоих направлениях. При этом о преобразовании очень легко забыть.
  • Срезы в Rust также несовместимы с арифметикой указателей, что создаёт проблемы в работе итератора срезов стандартной библиотеки. (Обновление от 2024-01-16: похоже, над этой проблемой работают).

Поскольку проблемы FFI касаются нескольких языков, я писал статью в качестве общей справки, описывающей их несогласованность.
Читать дальше →
Всего голосов 43: ↑38 и ↓5 +33
Комментарии 20

Делаем двоичные файлы Rust меньше по умолчанию

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.8K

Вы когда-нибудь пробовали компилировать program helloworld на Rust в режиме --release? Если да, то видели, какой размер двоичного файла получается? Достаточно сказать, что он не очень маленький. Или, по крайней мере, не был таким до недавнего времени. В этом посте я расскажу, как узнал об этой проблеме и попытался устранить её в Cargo.

Читать далее
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 10

Spring Data JPA и Hibernate: решаем проблему динамически изменяемого запроса к базам данных

Время на прочтение 6 мин
Количество просмотров 3K

Привет, Хабр! Меня зовут Николай Пискунов, я ведущий разработчик в подразделении Big Data. В блоге beeline cloud мои коллеги уже знакомили вас с SOLID, заглядывали под капот Python. Я же расскажу о том, как с наименьшими затратами получить динамически изменяемый запрос к БД, используя Spring Data JPA и Hibernate. 

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

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Комментарии 14

Управление устройствами умного дома Яндекс своими скриптами

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 5.1K

В статье пойдёт речь о самом базовом управлении устройствами умного дома Яндекс - а именно функции включения/выключения, т.к. ничего больше мне не нужно, но из базы довольно легко с помощью документации, научиться управлять и другими свойствами. Может этот материал не на статью вовсе, но вот захотелось поделиться. За код не ругайте сильно - я не настоящий программист. Код будет на простейшем PHP.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 8

Тестирование ПО как увлекательная игра

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.8K

Привет, Хабр! Я Светлана Цой,  руководитель направления тестирования в Первой грузовой компании.

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

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

Тестирование программного обеспечения – неотъемлемая часть разработки. Оно позволяет находить ошибки и недочеты в программе, обеспечивая ее надежную работу. Однако, часто это воспринимается как скучная и монотонная задача. Но что, если мы посмотрим на тестирование с другой стороны? Что, если мы рассмотрим данный процесс как увлекательную игру? В этой статье мы рассмотрим тестирование как интересное и захватывающее занятие, которое помогает нам находить ошибки и повышать качество продукта.

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 3

Действительно ли C++ — лучший язык, чтобы выстрелить себе в ногу?

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 20K
В 2023 году одной из главных IT-новостей стала публикация гайда от Агентства национальной безопасности (NSA) США, в котором языки С/C+ признавались «опасными» и требующими перехода на «безопасные» C#, Go, Java, Ruby и Swift.

В этой статье я с позиции Security Champion в KasperskyOS, собственной микроядерной операционной системе «Лаборатории Касперского», расскажу, так ли плохо обстоят дела с безопасностью в С++ на самом деле, а также разберу различные подходы к митигации описанных проблем, которые современная индустрия предлагает для решения данного вопроса.
Читать дальше →
Всего голосов 40: ↑32 и ↓8 +24
Комментарии 80

Как создать 100 серверов в облаке за минуту? Базовая работа с OpenStack клиентом

Время на прочтение 8 мин
Количество просмотров 2.8K

Для управления облачной инфраструктурой в индустрии накопилось достаточно много инструментов: terraform, pulumi, ansible, управление через SDK или напрямую через REST API.

При этом, часто упускают из виду CLI инструменты в связке с shell-автоматизацией. А зря! Они помогают экономить время, которое тратится на ручное создание серверов или изучение сложных инструментов.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 3

Ближайшие события

Основы многопоточности в Rust

Время на прочтение 7 мин
Количество просмотров 4.2K

Привет!

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

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

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Комментарии 6

Топ необходимых bash-команд для разработчика [Шпаргалка]

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 12K

Bash - самый распространенный командный интерпретатор в UNIX-подобных системах, предоставляет возможность выполнения практически любого действия через терминал. Не все операции можно выполнить через графический интерфейс, в то время как Bash дает возможность полного контроля над системой.

Ознакомление с командами Bash становится крайне важным в повседневной работе, поскольку многие задачи эффективнее и быстрее выполнять через команды Bash в терминале. Например, поиск файлов по содержимому, изменение файлов, их копирование и перемещение и т.д.

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

Цель этой статьи - ближе познакомить пользователей с Bash, рассмотреть основные команды, которые разработчики используют в повседневной работе.

Читать далее
Всего голосов 27: ↑17 и ↓10 +7
Комментарии 31

Cache API — кэшируем данные на стороне клиента

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.7K

Cache API - сравнительно старый API для управления хранилищем кэша, доступный уже во всех современных браузерах и являющийся частью ServiceWorker.

Разберемся, как мы можем его использовать, сравним с другими методами организации кэша на стороне клиента, а также реализуем новостную ленту с применением Cache API.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 13

Kustomize в Kubernetes

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.3K

Привет, Хабр! 👽

Если вы когда-либо сталкивались с вызовами управления множественными и сложными Kubernetes конфигурациями, то Kustomize — это то, что может очень круто упростить вашу жизнь.

Чем больше масштаб, работы Kubernetes, тем более витиеватыми становятся конфигурации. И здесь очень помогает Kustomize, он позволяет "конфигурировать конфигурации", управлять сложностью и делать процесс более понятным.

Читать далее
Всего голосов 9: ↑5 и ↓4 +1
Комментарии 0

Фильтр Блума – вероятностная структура данных для проверки принадлежности элемента множеству

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 4.7K

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

Вероятностные структуры данных предоставляют постоянную временную и пространственную сложность за счет предоставления недетерминированного ответа. Примером вероятностной структуры данных является фильтр Блума.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 5

Сколько еще протянут мануфактуры?

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 6K

Сотрудник надомной мануфактуры мисье Жибер доходчиво объясняет, в каком положении он оказался, когда увидел сколько ткани выпускает недавно построенная неподалеку фабрика

Читать далее
Всего голосов 10: ↑3 и ↓7 -4
Комментарии 16

Управление загрузкой с помощью PostgreSQL и pg_headerkit

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2K

Привет, Хабр!

Supabase – это крутой open-source аналог Firebase, с его помощью можно организовать крутые штуки вроде ограничения скорости запросов.

Supabase – это инструмент, который дает возможность создавать масштабируемые серверные решения, используя PostgreSQL. С его помощью можно легко управлять базами данных, аутентификацией, хранением данных и реальным временем, но без всяких vendor lock-ins.

Rate Limiting контролирует поток запросов, чтобы ваш сервер не ушел в нокаут от перегрузки. Это спасает сервера от DDOS-атакти помогает обеспечить более равномерное распределение ресурсов среди пользователей.

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 0

Вклад авторов