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

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

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

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

Простой скрипт на Python для управления личными финансами

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

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

Читать далее
Всего голосов 18: ↑8 и ↓10 -2
Комментарии 6

Новости

Расширение PVS-Studio для Visual Studio Code: поиск ошибок в Java-коде

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

Java-разработчик и предпочитаешь работать в VS Code? Для тебя есть хорошая новость! Теперь ты можешь писать ещё более надёжный код вместе с расширением PVS-Studio, которое помогает находить ошибки в Java-проектах и не только.

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

Разработка и применение систем разграничения доступа на базе атрибутов

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

Привет! Меня зовут Михаил, в Positive Technologies я руковожу бэкенд-разработкой метапродукта MaxPatrol O2. В этой статье я расскажу, зачем нам в компании понадобилось разграничение доступа на основе атрибутов. Его еще называют ABAC (attribute-based access control). Рассмотрим, чем ABAC отличается от других способов разграничения доступа, как это реализуется и что мы в итоге сделали у себя.

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

ИБ и ИТ, давайте жить дружно. Вот как это возможно

Уровень сложности Сложный
Время на прочтение 14 мин
Количество просмотров 3K
Безопасность во многих компаниях стоит особняком. Вместо того чтобы беспокоиться о качестве вашего продукта, безопасники твердят о ГОСТах и ISO, о разных сертификациях и авторизационных протоколах — вещах важных, но вне фокуса основного архитектора. При этом их деятельность «подрывает» производительность, debugability, да вообще все.

image

Однако есть способы сделать безопасность своим союзником на пути к качеству. В этой статье — о дихотомии разработки и безопасности. О том, что, вообще говоря, миры информационной безопасности и архитектуры ИТ-систем не столь далеки друг от друга, как может показаться. И что на самом деле практики безопасности пересекаются с практиками повышения качества кодовой базы, а ПО можно сделать безопасным без потери качества. Поскольку я сама довольно долго занималась системной разработкой, после чего ушла в безопасность и сейчас работаю в команде собственной микроядерной операционной системы «Лаборатории Касперского» KasperskyOS, то отлично знаю, что хотела бы услышать еще тогда, когда ИБ была для меня другой стороной :)

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

Истории

Айтишник женился на девушке, с которой общался ChatGPT. А как научить бота общаться с клиентами?

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

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

Если вкратце, парень рассказал о том, что женился на девушке, с которой общался не он, а ChatGPT. И это было не просто пару сообщений, а поставленная на поток схема, где чат-бот искал, общался и звал на свидания тысячи девушек из Тиндера. Пока не нашел ту единственную, на которую перенастроил бота. А потом, слава Богу, начал общение самостоятельно. На других же девушках он зарабатывал реферальным путем (приводя их в разные компании). What a story, Mark!

История хоть и интересная, но в целом непонятно, зачем о ней писать здесь… Или не совсем? Давайте разбираться.

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

Где новичкам самостоятельно изучать программирование или как обойтись малой кровью

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

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

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Комментарии 3

Ветераны IT: Как найти программистов прошлых поколений языков

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

При словосочетании «Ветераны IT» вы наверное представили себе сразу же старичков в пиджаках с нашивками из микросхем и шумным стационаром. Но это не совсем то, что мы подразумеваем под Ветеранами IT.


Читать далее
Всего голосов 8: ↑3 и ↓5 -2
Комментарии 17

MyBatis «на минималках»

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

Привет, Хабр! Меня зовут Пётр Гусаров, я Java‑программист в CDEK. В этой статье расскажу про не очень распространённый фреймворк MyBatis.

Почему MyBatis? Потому что мы в CDEK используем его в большинстве проектов, и в деле он весьма неплохо себя показал. Немного сложен и непривычен на этапе входа, но все эти минусы перекрываются его гибкостью. «Да есть Hibernate, Jooq, JDBC и еще что‑то», — скажут бывалые. Есть, но в данной статье речь пойдёт о MyBatis.

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

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

Краткий обзор TinyML

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

TinyML сам по себе означает внедрение ml в маломощные микроконтроллеры и встроенные системы. Это устройствам IoT выполнять задачи обработки данных и машинного обучения непосредственно на самом устройстве, минимизируя таким образом необходимость в постоянном подключении к интернету или внешним вычислительным ресурсам. Основная цель TinyML - сделать ии или простые модельки доступным для самых маленьких устройств

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

Книга «Software Dynamics: оптимизация производительности программного обеспечения»

Время на прочтение 11 мин
Количество просмотров 1.1K
image Привет, Хаброжители!

Программное обеспечение — начиная с мобильных и облачных приложений, заканчивая видеоиграми и системами управления автономным транспортом — становится все более и более ограниченным по времени. Оно должно обеспечивать надежные результаты плавно, последовательно и практически мгновенно. Неспособность гарантировать это приведет к недовольству потребителей, а в некоторых случаях даже может создать риск для человеческих жизней. Когда комплексное ПО работает плохо или дает сбой, инженерам необходимо выявить и исправить первопричины. Задача непростая, и для ее решения существовало не так уж много инструментов. Ричард Л. Сайтс, эксперт по анализу производительности, решает задачу напрямую, предлагая действенные способы и профессиональные инструменты для выявления динамики сложных, ограниченных по времени программ, а также для повышения надежности и устранения проблем с производительностью.

За плечами автора несколько десятков лет практической работы и обучения профессиональных разработчиков. Он знакомит читателя с принципами и техниками, которые применимы в любой среде, начиная со встраиваемых устройств и заканчивая дата-центрами, и подкрепляет их примерами на основе подключенных по Ethernet систем x86 и ARM под управлением Linux. Опираясь на полученную с помощью KUtrace информацию, читатели смогут использовать конкретные решения, а не просто перебирать техники, такие как отключение кэша или ядер.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Merlion Framework или как упростить работу с временными рядами

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

Единственная причина для существования времени — чтобы все не  случилось одновременно.

Альберт Эйнштейн

Привет! Меня зовут Дмитрий, я дата-инженер в SM Lab, и в этом посте хочу рассказать вам о Merlion Framework. В посте мы рассмотрим его архитектуру, полезные функции и отличия от аналогов, разберём пару практических примеров, а также посмотрим, как всё считать и на какие метрики стоит обращать внимание.

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

Временной ряд – это набор данных, описывающих изменения какой-либо переменной во времени. 

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

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

Java Digest #9

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

Всем привет! 👋 👋 👋 Мы Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки — и решили делиться этим не только с коллегами, но и со всем сообществом.

Читать девятый выпуск
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 1

Разобраться раз и навсегда: Task.WhenAll или Parallel.ForEachAsync в C#

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


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

Если быстро посмотреть на результаты, которые появляются в интернете при поиске советов по реализации подобных вещей, то можно увидеть, что есть как много похожих, так и различных предложений от различных программистов. В какой-то момент поиска вы, вероятно, столкнётесь с поиском идеей использования Task.WhenAll или Parallel.ForEachAsync.

При чтении некоторых из этих материалов будет видно много различных противоречивых ответов как на StackOverflow, так и по всему интернету. Сегодня я собираюсь сравнить эти два метода с помощью определённых бенчмарков, которые стравят их друг против друга, чтобы, наконец, выяснить применимость каждого из двух методов.
Читать дальше →
Всего голосов 38: ↑38 и ↓0 +38
Комментарии 18

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

One Day Offer от УЦСБ
Дата 17 февраля
Время 10:00
Место
Онлайн

Обзор языка Erlang и его синтаксиса

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

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

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

В этой статье кратко рассмотрим его синтаксис и основные возможности.

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

Создаем чат-бота на Python: Полное руководство

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

В этом полном руководстве от DataTech Community мы шаг за шагом рассмотрим процесс создания чат-бота на Python. Откройте для себя мощь NLTK и TensorFlow в обработке естественного языка и машинном обучении, чтобы создать интеллектуального помощника, способного общаться и отвечать на вопросы пользователей. Научитесь подготавливать данные, строить и обучать модель нейронной сети, а затем интегрировать ее в логику чат-бота для создания эффективного и интеллектуального виртуального помощника.

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

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

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

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

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

Люди не понимают ООП

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

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

Похоже, многим не нравится объектно-ориентированное программирование. Первое, что приходит в голову, когда слышишь эту трёхбуквенную аббревиатуру — это пример с автомобилем, наследование, геттеры, сеттеры и ObjectFactoryFactorySingleton.

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →
Всего голосов 124: ↑119 и ↓5 +114
Комментарии 320

Где-то в дороге мы забыли о мастерстве программирования

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

«Поставляй!»

«Мы теперь Agile, детка. Двигайся быстро и ломай вещи!»

«Мы оцениваем наших инженеров по тому влиянию, которое они оказывают!»

Где‑то по пути, в разгар agilification программного обеспечения или золотой лихорадки зарплат инженеров‑программистов, мы забыли о мастерстве.

Читать далее
Всего голосов 32: ↑27 и ↓5 +22
Комментарии 56

Миграция микросервисной архитектуры на API Gateway

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

Микросервисная архитектура Amediateka была спроектирована более 6 лет назад предыдущей командой разработки. С тех пор добавилось много новых микросервисов, но фундаментальная часть архитектуры осталась прежней. В этом году мы решили внедрить несколько глобальных изменений, одно из которых - API Gateway. Статья расскажет о том, что это такое, какие преимущества дает, как просто и безопасно мигрировать функционирующую систему на API Gateway и сделает обзор готовых решений.

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

Задача «Получить значение у N url из списка» с собеседования на Go

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

На данный момент нахожусь в активном поиске нового проекта, поэтому активно хожу на собеседования.

Решил поделиться своими мыслями о решении задачи, которую (как мне кажется) часто дают на собеседованиях.

Задача

Написать функцию, которая принимает несколько url адресов, а отдает сумму адресов и ошибку, если что-то пошло не так.

Интересно обсудить варианты решения?

Интересно Читать Далее
Всего голосов 17: ↑13 и ↓4 +9
Комментарии 36

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