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

Все потоки

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

Сервис проверки пользовательских файлов «powered by pytest»: нужно повозиться, но оно того стоит

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

Возникла задача проверки нескольких типов пользовательских документов Excel. Проверка должна покрывать такие аспекты как корректность шаблона (наличие ожидаемых страниц, колонок таблиц) и корректность данных (присутствие обязательных значений, корректность значений точки зрения форматов, отсутствие дубликации, итд).

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

Эта задача - про качество данных и очень напоминает тестирование. Так почему не использовать фреймворк тестирования pytest, и не написать тесты на каждый проверяемый аспект и для каждого типа файлов? Однако, есть небольшое "но". проверка должна быть реализована в качестве сервиса, чтобы встраиваться в более широкий процесс обработки пользовательских документов.

Давайте посмотрим, как заставить pytest работать внутри сервиса. Это не так тривиально, как может показаться на первый взгляд.

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

Новости

Недооцененный паттерн «Спецификация» в связке с паттерном «Репозиторий»

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

Использование спецификации открыло для меня новый мир в создании приложений.

Репозитории предоставляют удобное решение для доступа к данным.

Однако за многолетний опыт разработки, побывав в нескольких компаниях, сменив кучу проектов я НЕ ВСТРЕЧАЛ паттерн "Спецификация" совместно с паттерном "Репозиторий".

Читать далее
Рейтинг 0
Комментарии 6

Смогут ли 10 менеджеров вкрутить лампочку за час

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

— Ты должен вкручивать по 10 лампочек в минуту! Зачем иначе наша компания закупила подписку на LightGPT? Мы потратили 20 ср*ных долларов на человека! Мне кажется, я сам бы быстрее вкрутил, чем весь ваш отдел…

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

Майнинг на кастомном асике на базе Antminer s9

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

Я бы хотел поделиться своим опытом майнинга на кастомном (обрезанном) асике, который косплеит игровой компьютер.

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

Истории

Удивительная история поиска самых совершенных чисел в мире

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

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

В одной из таких загадок, как в зеркале, отражается вся история математики. Эта загадка связана с рядом чисел, которые ещё в глубокой древности называли «совершенными». Последующие поколения математиков добавляли в копилку знаний человечества новые числа этого ряда. Процесс ещё не окончен, поиски продолжаются. Кроме того, с совершенными числами связано много тайн и неразрешённых до сих пор загадок. Что же в них такого особенного?

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

Охотник за инопланетянами: нашел ли Ави Леб из Гарварда доказательства внеземной жизни?

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

Астрофизик, профессор любит дразнить гусей – и говорит, что его критики просто завидуют. Он обсуждает НЛО, межзвездные объекты и риски его всепоглощающих поисков.

29.11.2023, Дэниел Лавель, The Guardian

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

Компоновка аннотаций в Spring

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

Привет Хабр! Совсем недавно, в процессе разработки на Spring я столкнулся с невероятным количеством бойлерплейт-кода в аннотациях. Решение сделать с этим что-то было принято мгновенно и вот что из этого вышло...

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

Копирайтеры пишут для редакторов. Редакторы правят для редакторов. Заказчикам важен результат — а кто читает тексты?

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

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

Выплеснуть гнев в комментариях!
Всего голосов 7: ↑3 и ↓4 -1
Комментарии 4

Исследователи заставили ChatGPT процитировать данные, на которых он учился

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

Несколько похожая, но иная атака от @andrewmccalip

Научная работа «Scalable Extraction of Training Data from (Production) Language Models» (arXiv:2311.17035) анализирует извлечение данных датасетов обучения из различных языковых моделей. Исследователи проверили как локальные модели, так и коммерческое решение от OpenAI. С помощью атаки на выравнивание удалось заставить ChatGPT процитировать данные, на которых обучали GPT-3.5.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 5

TypeScript: операции Union и Intersection в свете теории множеств

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

Недавно мне задали вопрос «почему пересечение в TS работает не как в теории множеств, а совсем наоборот?»

Озадачился, задумался и стал разбираться, как согласуются, и согласуются ли вообще операции «объединение» и «пересечение» в TypeScript и в теории множеств? И действительно ли пересечение в TS работает прямо противоположно?

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

HappyX vs Karax: что проще?

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

Хотите узнать, как с помощью Nim создавать клиентские веб-приложения?

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

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

Будущее AI в разработке ПО – интервью с CPO GitHub

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

Два дня назад вышло интересное интервью с CPO GitHub Инбал Шани от Ленни Рачински. Так как GitHub со своим Copilot для разработчиков – один из лидеров внедрения инноваций в кодинг, захотелось законспектировать основные мысли.

Итак, вот они:
Всего голосов 5: ↑1 и ↓4 -3
Комментарии 19

1С-Битрикс. Ядро d7 в работе с элементами инфоблоков

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

Как можно получать элементы инфоблоков в 1С-Битрикс в ядре d7?

У \CIBlockElement::getList(), на первый взгляд, есть свои преимущества, она задокументирована, о ней много статей на форумах. Её дебагинг уже разобран подробно за время существования CMS. Замечу, что существует ряд задач, для решения которых она не годится. Эта функция в нынешних реалиях разработки встретится даже начинающему программисту довольно быстро. Но какие есть альтернативы?

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

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

Краткий обзор техник векторизации в NLP

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

Как переводчик-редактор, я интересуюсь темой NLP и автоматизации рутины бюро переводов. Изучая вопрос того, как смысл слов превращается в векторы, наткнулся на эту обзорную статью. Статья мне показалась изложенной доступно, поэтому я перевел ее для удобства других коллег. Работоспособность большей части кода проверял, вроде работает (см. Jupiter Notebook). Надеюсь, будет полезно.

===

Технологии NLP — Natural Language Processing, обработки естественного языка — позволяют компьютерам обрабатывать человеческий язык, понимать его значение и контекст, а также связанные с ним эмоциональную окраску и намерения, и далее, использовать эти данные для создания чего-то нового.

Как сделать слова понятными для компьютеров? Используется векторизация. Рассмотрим несколько техник такой векторизации.

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

Искусственный интеллект GPT и скрипты Микротик

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.2K
Я не профессиональный программист и не специалист IT, но увлекался программированием с юности, когда мы писали на Бейсике и Ассемблере для первого советского персонального компьютера ПЭВМ АГАТ и даже умудрились оставить определенный след в его истории.

С того времени утекло много воды, я получил другую профессию, но увлечение своё полностью не оставил (я стал врачом и работаю по специальности с 2000 г., но оно помогает мне в работе всю жизнь). В 2013 году возникла необходимость «провести интернет» в загородный дом. Тогда то, я и познакомился впервые с роутерами Микротик. В сетевых технологиях я, на то время не знающий что такое IP-адрес (условно), возможно, не сильно продвинулся выше начального уровня (да и не было необходимости в сложных настройках Микротик), а вот программирование на скриптовом, Lua-подобном, языке Роутер ОС почему-то захватило меня целиком, даже временно в ущерб основной работе в каких-то аспектах. Конечно, до профессионального уровня я, самоучка, не дошёл, но написал за это время немало полезных и достойных по сложности скриптов для Микротик (неполный список моих работ представлен здесь).
Читать дальше →
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 2

Очередной взгляд на собеседования. Часть 1

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

Регулярно мы видим в интернетах множество размышлений или криков души на тему содержания собеседований в IT. Мол, и интервьюировать не умеют, и задачи дают не релевантные, и вопросы бессмысленные, и, вообще, собесы в IT это ритуал и карго-культ. Сидит там интервьюер и думает: «чего бы такое ещё спросить», самоутверждается, а решение принимает в итоге наобум и по первому впечатлению. 

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

Если коротко, то я тоже считаю, что среднестатистический собес – это бессмысленный трэш, и сам я иногда провожу их неудачно.  Раньше вообще проводил «как все» – то есть отвратительно. Затем, задумался.  А что, если я постараюсь осмыслить, зачем я провожу интервью и почему задаю те вопросы, которые задаю? Может быть, мне будет проще отбирать релевантных кандидатов? Или я хотя бы смогу сэкономить немного времени, убрав из процесса что-то лишнее?

Добрый день. Меня зовут Михаил Толстой. Я работаю ведущим руководителем проектов в Ozon Tech и пишу в телеграм-канал «М-м-м, Толстой».

Вагона терпения описывать в один присест всё-всё-всё, что я пробовал, у меня нет (и едва ли у вас было время столько разом читать) – поэтому ловите сперва разбор самого одиозного из элементов технического интервью – live-кодинга. 

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

Новые проклятия: руководство по ncurses

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

HTOP, midnight commander... Как же они построили довольно красивый и удобный псевдографический интерфейс?

Все благодаря библиотеке для C/С++ под названием new curses ("новым проклятиям" дословно) или же NCURSES.

Но как ее установить и работать с ней?

Вперёд!
Всего голосов 10: ↑5 и ↓5 0
Комментарии 6

Как я заработал 500 000 рублей, сделав доступ к ChatGPT. Мои 6 выводов по итогу проекта

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

Пишу в продолжение прошлой статьи "Как я заработал 500 000 рублей, сделав доступ к ChatGPT. А потом Яндекс убил SEO и всё (почти) закончилось". В прошлый раз я рассказывал о запуске проекта на базе ChatGPT, а сейчас будут выводы и мысли, к которым я пришёл по ходу разработки проекта.

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

Разработка с помощью Yocto

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

Привет Хабр! Недавно принял участие в достаточно интересном воркшопе и хотел бы поделиться приобретенными навыками.

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

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