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

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

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

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

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

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

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

Читать далее
Всего голосов 55: ↑53 и ↓2 +51
Комментарии 22

Опыт использования AI для QA: тестировщикам приготовиться на выход?

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

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

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

Русский LLM-помощник (saiga) с кэшем, используя RAG (Retrieval-Augmented Generation)

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

Используя технику Retrieval-Augmented Generation ("Поисковая расширенная генерация"), мы настроим русскоязычного бота, который будет отвечать на вопросы потенциальных работников для выдуманного свечного завода в городе Градск.

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

Делаем 10-минутную задачу за 2 часа с помощью ChatGPT

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

Все мы видели много статей, где с помощью AI-инструментов за минуты выполняется работа, на которую раньше мог легко уйти день. Особенно впечатляют примеры, где работа (успешно) идет вне зоны компетенции человека (т.е. когда AI позволяет делать то, что человек в принципе один сделать не мог бы). Но сегодня у меня получился несколько другой случай:

Читать далее
Всего голосов 74: ↑70 и ↓4 +66
Комментарии 35

Истории

Изучаем Q#. Статистическое сравнение двух последовательностей чисел

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

Добро пожаловать в новый мир новых технологий вычислений!

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

Так и в математике - когда мы смотрим на последовательностей чисел, мы пытаемся понять - похожи ли они или нет, и насколько они похожи.

Одним из таких критериев "похожести" является совпадение частотных характеристик этих последовательностей.

Рассмотрим вопрос, как реализовать такую проверку с использованием квантовых вычислений и напишем программку-тест на Q-sharp для проверки этих рассуждений.

Для понимания данного туториала вам потребуются базовые знания по

теории вероятности

алгебре

булевым функциям

свёртке, корреляции, скалярному произведению

квантовым вычислениям (кубиты и трансформации)

программированию на Q-sharp

Добро пожаловать, дорогу осилит идущий ...
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 3

Пишем графический ASCII-калькулятор с помощью стандартной библиотеки Си

Уровень сложности Сложный
Время на прочтение 17 мин
Количество просмотров 14K

Программа calculator.c родилась как школьный проект в рамках Student Innovation Scholarship. Сперва я решил написать простой инструмент для построения графиков функций с помощью символов ASCII, но после завершения первого прототипа понял, что задача намного сложнее, чем предполагалось. Вернувшись к проекту год спустя, я увидел, что в нём есть много неочевидных нюансов. Поэтому предлагаю разобрать весь процесс разработки моего графического калькулятора с нуля.


Читать дальше →
Всего голосов 77: ↑76 и ↓1 +75
Комментарии 25

Почему ты не станешь программистом

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

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

Читать далее
Всего голосов 99: ↑85 и ↓14 +71
Комментарии 316

Событийное логирование для аналитики и мониторинга работы телеграм-бота

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

Привет, Хабр! Меня зовут Артем.

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

В этой статье мы рассмотрим как реализовать событийное логирование для телеграм-бота.

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

Какой длины должны быть классы — когда «чистый» код на самом деле не так уж и хорош

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

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

Наши коллеги из beeline cloud подкинули интересную статью для перевода про разработку на PHP, плохие практики и не только. Это история о том, как правила чистого кода могут подорвать его фактическое качество. Материал содержит много рассуждений на эту тему и будет полезен всем, кто только начинает свой путь в разработке. Приятного чтения!

Иду читать
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 27

Приглашаем на онлайн-митап «Гетерогенность, или Деплой JavaScript туда и обратно»

Время на прочтение 1 мин
Количество просмотров 1.1K
В четверг, 26 октября, в 17:00 состоится онлайн-митап, посвященный JS-разработке: «Гетерогенность, или Деплой JavaScript туда и обратно».

На ивенте расскажем, как мы в «Лаборатории Касперского» развернули несколько веб-приложений в совершенно разных средах на единой кодовой базе, разберем построение В2В единой консоли — комплексного, сложного приложения; единую модель деплоймента для cloud-native-разработки и on-premise; а также разработку в распределенных командах (фича-тимы).

image

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

Изучаем Q#. Алгоритм Гровера. Не будите спящего Цезаря

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

Криптохомячкам посвящается ...


Алгоритм Гровера представляет собой обобщённый, независящей от конкретной задачи поиск, функция которого представляет "чёрный ящик" f: {0,1}^n to {0,1}^n, для которой известно, что EXISTS!w:f(w)=a, где a — заданное значение.


Считаем, что для f и заданного a можно построить оракул Uf: { |w> to |1>, |x> to |0> if |x> != |w> }


Алгоритм Гровера достаточно прост


  1. Задаём в регистре (массиве кубитов) начальное значение H|0>
  2. Повторяем несколько раз (исходя из оценки) пару трансформаций над регистром
    • Отражение от решения Uw: { |w> to -|w>, |x> to |x> if |x> != |w> } или Uw = I-2|w><w|
    • Отражение от s=H|0> Us = 2|s><s|-I
  3. Забираем нужное решение из регистра (с большой долей вероятности, что оно правильное)

Не будите спящего Цезаря!


Применим этот алгоритм для решения задачи нахождения ключа шифра Цезаря ...

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

Проектирование архитектуры для микросервисов с использованием gRPC

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

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

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

gRPC – высокопроизводительный и мощный инструмент для построения микросервисных систем.

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

Как устроен PassMark. Воспроизводим тесты из машинного кода

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

На сегодняшний день существуют сотни программ для оценки производительности вычислительных устройств, но абсолютным лидером среди них несомненно является PassMark - "Industry standard benchmarking since 1998", - как его позиционирует сам разработчик, и вдобавок предоставляющего обширную публичную базу оценок производительности разнообразных устройств по всему миру для возможности их сравнения между собой. Все это делает PassMark выбором №1 для всех, кто не только желает оценить производительность своего устройства, но и сравнить его с любым другим устройством в мире.

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

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн

Как потратить дни, чтобы сэкономить секунды: продвинутые коммиты в GitLab

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

Коммит изменения в GitLab — фоновый и рутинный процесс, на который никто не закладывает рабочего времени. Но в нем есть действия, которые съедают 18 секунд при каждом коммите. 10 коммитов — уже 3 минуты за день и 15 — за неделю. Да, немного, но на это тратится внимание. К тому же, за эти 15 минут можно сделать что-то полезное или просто выпить кофе и дать мозгу отдохнуть.

Мы в Selectel нашли способ, как упростить коммиты в GitLab и добавить им информативности — описания прямиком из Jira. Любите автоматизировать рутинные задачки? Тогда добро пожаловать под кат.
Читать дальше →
Всего голосов 36: ↑34 и ↓2 +32
Комментарии 17

15 ресурсов по Git. Что почитать/посмотреть?

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

Всем привет! В этот раз собрали подборку вспомогательных материалов для изучения Git. Удобство и гибкость сделали Git стандартом для большинства современных IT-компаний. Поэтому умение работать с ним критично для любого программиста.

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

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

Простые шаги к эффективному code review

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

Всем привет! Меня зовут Владислав Шиханов, я ведущий программист в CDEK. В нашей компании работает 500+ IT-специалистов, именно мы создаём продукты и сервисы, из которых и состоит СДЭК. Моя команда разрабатывает сервисы для автоматизации процессов продаж и запуска новых продуктов.

Однажды мы столкнулись с тем, что процесс проверки кода начал задерживать выполнение задач и требовал слишком много усилий от участников. На ретро мы договорились повысить приоритет этого процесса и сделать доклад с best practices. В этой статье я решил поделиться главными выводами и лучшими практиками, которые помогли нам существенно упростить проверку кода.

Читать далее
Всего голосов 26: ↑24 и ↓2 +22
Комментарии 4

Моделируйте будущее или Теория Вероятности в действии (по мотивам статьи Joel Spolsky)

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

Из опыта работы в "Кровавом Enterprise" плечом к плечу с Менеджером Продукта, перед поступлением очередной задачи в работу, у меня интересовались, сколько на нее уйдет времени (внезапно). Это, можно сказать, напрягало тем, что такая оценка должна затрагивать все возможные факторы "торможения". Соберу в список некоторые из них и покажу вариант решения на вебе.

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

[sobjectizer] Релиз версии 5.8.1: реализация пожеланий пользователей и исправление недочетов

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

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

Для тех же, кто ни разу не слышал про SObjectizer, очень кратко: это относительно небольшой C++17 фреймворк, который позволяет использовать в С++ программах такие подходы, как Actor Model, Publish-Subscribe и Communicating Sequential Processes (CSP). Основная идея, лежащая в основе SObjectizer, — это построение приложения из мелких сущностей-агентов, которые взаимодействуют между собой через обмен сообщениями. SObjectizer при этом берет на себя ответственность за:

доставку сообщений агентам-получателям внутри одного процесса;

управление рабочими нитями, на которых агенты обрабатывают адресованные им сообщения;

механизм таймеров (в виде отложенных и периодических сообщений);

возможности настройки параметров работы перечисленных выше механизмов.

Составить впечатление о этом инструменте можно ознакомившись вот с этой обзорной статьей.

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

Я мыслю MOV EAX, 1

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

Чем больше усилий ты прикладываешь, тем лучше это у тебя получается. Программирование не исключение, и чтобы с уверенностью сказать: "Я могу написать это" нужно много работать. Эта статья о том с какого языка начать путь в программировании и о том как понять принципы работы компьютера на низком уровне.

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

Как Guidance выводит ИИ на новый уровень: инструмент для эффективного управления моделями

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

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

И вот недавно компания Microsoft представила Guidance - язык управления, предназначенный для контроля над большими языковыми моделями. По нашему мнению, этот инструмент может существенно изменить процесс разработки приложений на основе возможностей AI. 

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

Приглашаем к прочтению!

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

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