Пользователь
100 промптов для ChatGPT
Не стоит ожидать, что в текущем виде ChatGPT способна проделать за вас работу, поскольку она еще слишком нова и наивна, хотя и учится и совершенствуется с каждым днем. При этом он вполне может помогать искать ошибки в коде и быстро сгенерировать простой код. Но для выполнения этих задач нужны правильные промпты, написать которые иногда не так просто, как кажется. В этой статье увидите, какие промпты можно использовать для работы с ChatGPT, а также в целом больше узнаете о том, с какими микрозадачами он может помочь.
Как контролировать задачи в MODX Revolution — делаем TODO виджет для админки
В CMF MODX Revolution изначально не предусмотрена возможность ставить задачи и привязывать их к ресурсам. Такое дополнение я тоже не нашел, да и было интересно разобраться в создании виджетов, поэтому придумал решение, как можно быстро реализовать такой функционал на своем сайте. Собственно, в этой статье хочу им поделиться.
Используем аннотацию @Transactional like a pro
Привет, Хабр! Меня зовут Никита Летов, я тимлид бэкенд-разработки мобильного приложения Росбанка для физических лиц. Этот пост входит в серию постов по разработке бэкенд-микросервисов на Java и Spring и является адаптацией моего доклада с JPoint 2022.
Также хочу предупредить, что данный пост не cookbook и не предоставляет идеально приготовленное решение какой-либо бизнес-проблемы. Это разбор одной технологии, которая при правильном использовании может помочь вам в решении реальной проблемы. А может и не помочь — всё зависит от ее природы.
Вы неправильно пишете животных
Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти
Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.
Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Микросервисная архитектура, ее паттерны проектирования и особенности
Микросервисная архитектура – одна из самых полезных архитектур в индустрии программного обеспечения. При правильном подходе она может помочь в создании лучших программных приложений. Из этой статьи вы узнаете, что такое микросервисная архитектура, какие шаблоны проектирования необходимы для ее реализации, а также почему стоит и почему не стоит использовать эту архитектуру для вашего нового программного обеспечения.
Mockito и как его готовить
О статье
Перед вами очередное руководство по Mockito. В нём я, с одной стороны, попытался описать функционал этой библиотеки так, чтобы незнакомый с нею читатель сразу получил возможность полноценно ею пользоваться, а не только общее представление о ней. С другой — я хотел сделать его достаточно компактным и структурированным, чтобы можно было быстро прочесть его целиком и быстро найти в нём что-то единожды прочитанное, но подзабытое. В общем, эта такая статья, какая бы пригодилась мне самому, когда я только столкнулся с этой библиотекой и не очень понимал, как она работает.
Полагаю, она и сейчас может пригодиться мне же — иногда я забываю что-то из этого, а вспоминать материал удобнее всего не по официальной документации или чужим статьям, а по собственному, скажем так, конспекту. Вместе с тем я старался построить текст так, чтобы он был удобен прежде всего для знакомства с Mockito с нуля, и кое-где подробно разбираю вроде бы очевидные вещи — не все из которых были для меня очевидными с самого начала.
Валидация параметров конфигурации Spring Boot при запуске
Одним из важных шагов для обеспечения возможности настройки программных приложений является эффективное управление конфигурацией. Современные платформы предоставляют готовые функции для вывода параметров конфигурации.
Для некоторых параметров конфигурации имеет смысл не запускать приложение, если они недействительны.
Spring Boot предлагает нам удобный способ валидации параметров конфигурации. Мы собираемся связать входные значения со @ConfigurationProperties и использовать Bean Validation для их валидации.
Какие английские слова IT-лексикона мы неправильно произносим чаще всего
Дальше я приведу несколько наборов слов, сгруппированных по типовым ошибкам. К каждому слову будет приложена транскрипция, приблизительная транскрипция на русском и ссылка на более детальную информацию в словаре. Так как большинство IT компаний все-таки работает с Северной Америкой, то транскрипции будут из US English.
О чем молчит EXPLAIN, и как его разговорить
Традиционный набор причин:
- неэффективный алгоритм
когда вы решили сделать JOIN нескольких CTE по паре десятков тысяч записей - неактуальная статистика
если фактическое распределение данных в таблице уже сильно отличается от собранной ANALYZE'ом в последний раз - «затык» по ресурсам
и уже не хватает выделенных вычислительных мощностей CPU, постоянно прокачиваются гигабайты памяти или диск не успевает за всеми «хотелками» БД - блокировки от конкурирующих процессов
И если блокировки достаточно сложны в поимке и анализе, то для всего остального нам достаточно плана запроса, который можно получить с помощью оператора EXPLAIN (лучше, конечно, сразу EXPLAIN (ANALYZE, BUFFERS) ...) или модуля auto_explain.
Но, как сказано в той же документации,
«Понимание плана — это искусство, и чтобы овладеть им, нужен определённый опыт, …»Но можно обойтись и без него, если воспользоваться подходящим инструментом!
Как «Историю игрушек 2» Pixar удалили дважды: сначала случайно, а потом из-за стремления к совершенству
«Тогда-то мы и заметили это впервые, на примере Вуди».
«Ларри Катлер зашёл в каталог и как раз говорил об установке исправления для Вуди или его шляпы. Он посмотрел в каталог, и там было около 40 файлов, потом заглянул ещё раз, а там осталось всего четыре».
«Затем мы увидели, что начали пропадать последовательности кадров, и подумали: „Боже мой!“»
«Я схватил телефонную трубку… „отключайте машину!“»
Так Орен Джейкоб, бывший главный технический директор Pixar, тогда работавший помощником технического директора Toy Story 2, вспоминает момент, когда они обнаружили, что фильм удаляется с серверов компании после выполнения ошибочной команды, уничтожая два месяца и сотни человеко-часов работы.
А это нормально вообще? Проблема нормы в психологии
Начать здесь нужно с того, что у этого слова может быть несколько разных значений. Одни и те же феномены могут быть «нормальными» с одной точки зрения и «ненормальными» – с другой.
Во-первых, мы можем понимать норму статистически. Многие психологические и психофизиологические характеристики вариабельны в широком диапазоне, и разброс их значений можно описать через нормальное распределение. Если мы будем исследовать какой-то вариант интеллекта (например, измеряя способность решать типовые задачи из тестов Айзенка), то мы увидим небольшое количество исключительно эффективных испытуемых, небольшое количество исключительно неэффективных и много промежуточных, средних результатов. Эти средние результаты мы можем считать нормативными, а краевые результаты, соответственно, интерпретировать как одаренность или, наоборот, интеллектуальный дефицит. Но тут сразу возникает резонный вопрос: если «колокольчик» нормального распределения имеет плавную форму, то что дает нам основание для выделения в нем качественно различных областей? На каком основании мы считаем то или иное значение характеристики пороговым, задающим границы нормы?
Мне нравятся картонные человечки
Леха – отличный парень. Хорошо работает, исполнительный, с идеями, перспективный. Сделали с ним пару отличных проектов. Но он бегает от уплаты алиментов на ребенка от первого брака. Прям приходит и просит, чтобы как-то скрыть его доход, и «платить ей поменьше».
Гена – нормальный менеджер. Веселый, разговорчивый, без понтов. Показатели в норме. Идеи по развитию и автоматизации есть. Но Гена – алкоголик. Начиная с пятницы он – другой человек. Бухает, бьет жену и детей, гоняет ночью пьяным на машине по городу, периодически попадает в нескучные истории.
Серега – нормальный программист. Сидит себе тихонько, разрабатывает. Можно и поговорить, он достаточно интересный собеседник, чувствуется большой жизненный опыт. Как разработчик – не плохой, но и не звезда. Крепкий середнячок. Но за пределами работы очень любит унижать людей, которые, в силу профессии, не всегда могут ему ответить. Продавцы супермаркетов, менеджеры салонов бытовой техники, мастера официальных автосервисов (те, что в костюмах, а не спецовке).
А я, когда всё это узнаю, думаю – ё ж твою через коромысло, вот нафига мне это знание?
Файл дескриптор в Linux с примерами
Конечно же я ответил, что посмотрю, чем занято это место и если возможно, то почищу место.
Тогда интервьюер спросил, а что если на разделе нет свободного места, но и файлов, которые бы занимали все место, ты тоже не видишь?
На это я сказал, что всегда можно посмотреть открытые файл дескрипторы, например командой lsof и понять какое приложение заняло все доступное место, а дальше можно действовать по обстоятельствам, в зависимости от того, нужны ли данные.
Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?
«окей», — ответил я, «мы можем выключить дебаг в конфиге приложения и перезапустить его».
Интервьюер возразил: «Нет, приложение мы перезапустить не можем, у нас в памяти все еще хранятся важные данные, а к самому сервису подключены важные клиенты, которых мы не можем заставлять переподключаться заново».
«ну хорошо», сказал я, «если мы не можем перезапускать приложение и данные нам не важны, то мы можем просто очистить этот открытый файл через файл дескриптор, даже если мы его не видим в команде ls на файловой системе».
Интервьюер остался доволен, а я нет.
Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
ООП, «святая троица» и SOLID: некоторый минимум знаний о них
Необходимое вступление
Я не гарантирую, что изложенные здесь трактовки общепринятых терминов и принципов совпадают с тем, что изложили в солидных научных статьях калифорнийские профессора во второй половине прошлого века. Я не гарантирую, что мои трактовки полностью разделялись или разделяются большинством IT-профессионалов в отрасли или научной среде. Я даже не гарантирую, что мои трактовки помогут вам на собеседовании, хоть и предполагаю, что будут небесполезны.
Но я гарантирую, что если отсутствие всякого понимания заменить моими трактовками и начать их применять, то код вами написанный будет проще сопровождать и изменять. Так же я прекрасно понимаю, что в комментариях мной написанное будут яростно дополнять, что позволит выправить совсем уж вопиющие упущения и нестыковки.
Столь малые гарантии поднимают вопросы о причинах, по которым статья пишется. Я считаю, что этим вещам должны учить везде, где учат программированию, вплоть до уроков информатики в школах с углублённым её изучением. Тем не менее, для меня стала пугающе нормальной ситуация, когда я узнаю, что собеседник мой коллега, причём работающий уже не первый год, но про инкапсуляцию «что-то там слышал». Необходимость собрать всё это в одном месте и давать ссылку при возникновении вопросов зрела давно. А тут ещё и мой «pet-project» дал мне изрядно пищи для размышлений.
Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.
Ася Патрышева: «Интернет — это уже не просто сеть. Это жизнь»
Ася Патрышева — первая девушка в Петербурге, получившая нодовый адрес Фидо, первая в истории российского интернета обладательница частного домена kenga.ru. Ася работала дизайнером в Nevalink, вебмастером в «Ситилайн», студии Артемия Лебедева и в Intel, затем основала ставший популярным российский информационный ресурс о туризме и путешествиях Travel.ru. Сейчас она помогает DataArt развивать платформу самопроверки для IT-специалистов Skillotron, а в интервью рассказала о романтическом периоде истории интернета, первых провайдерах и сообществе FidoNet.
Большое интервью с Клиффом Кликом — отцом JIT-компиляции в Java
Клифф Клик — CTO компании Cratus (IoT сенсоры для улучшения процессов), основатель и сооснователь нескольких стартапов (включая Rocket Realtime School, Neurensic и H2O.ai) с несколькими успешными экзитами. Клифф написал свой первый компилятор в 15 лет (Pascal для TRS Z-80)! Наиболее известен за работу над С2 в Java (the Sea of Nodes IR). Этот компилятор показал миру, что JIT может производить качественный код, что стало одним из факторов становления Java как одной из основных современных программных платформ. Потом Клифф помог компании Azul Systems построить 864-ядерный мейнфрейм с софтом на чистой Java, который поддерживал паузы GC на 500-гигабайтной куче в пределах 10 миллисекунд. Вообще, Клифф успел поработать над всеми аспектами JVM.
Этот хабрапост — большое интервью с Клиффом. Мы поговорим на следующие темы:
- Переход к низкоуровневым оптимизациям
- Как делать большой рефакторинг
- Модель стоимости
- Обучение низкоуровневым оптимизациям
- Практические примеры улучшения производительности
- Зачем создавать свой язык программирования
- Карьера перформанс-инженера
- Технические челленжи
- Немного про аллокацию регистров и многоядерность
- Самый большой челленж в жизни
Интервью ведут:
- Андрей Сатарин из Amazon Web Services. В своей карьере успел поработать в совершенно разных проектах: тестировал распределенную базу данных NewSQL в Яндексе, систему облачного детектирования в Лаборатории Касперского, многопользовательскую игру в Mail.ru и сервис расчёта валютных цен в Deutsche Bank. Интересуется тестированием крупномасштабных backend- и распределённых систем.
- Владимир Ситников из Netcracker. Десять лет работает над производительностью и масштабируемостью NetCracker OS — ПО, используемого операторами связи для автоматизации процессов управления сетью и сетевым оборудованием. Увлекается вопросами производительности Java и Oracle Database. Автор более десятка улучшений производительности в официальном PostgreSQL JDBC-драйвере.
Умный парсер числа, записанного прописью
Пролог
Добрый день, уважаемые читатели. В данной статье я расскажу о том, как распарсить число, записанное прописью на русском языке.
Умным данный парсер делает возможность извлечения чисел из текста с ошибками, допущенными в результате некорректного ввода или в результате оптического распознавания текста из изображения (OCR).
Для ленивых:
Ссылка на проект github: ссылка.
Закон Гей-Люссака, коллоидные растворы и сопромат для идеальных профитролей
Дополнение: В конце поста есть обновленные рекомендации.
Внесем легкую нотку научного безумия в традиционную кулинарию. Сегодня мы поговорим о некоторых следствиях из уравнения Менделеева-Клайперона и коллапсе газовых пузырей при изменении температуры. А еще затронем особенности молекулярных цепей крахмала и те коллоидные растворы, которые он образует. Просто ковыряться в уравнениях скучно, поэтому совместим приятное с полезным. Создадим идеальный профитроль. Сегодня у нас два основных объекта для изучения — заварное тесто и заварной крем со взбитыми сливками. Естественно, все это безобразие мы будем творить исключительно во славу науки. Ну и заодно разберемся в тех процессах, которые не описываются в кулинарных книгах.
В конце концов, зря я что ли потратил 28 яиц и пару недель на эксперименты?
Информация
- В рейтинге
- 3 561-й
- Откуда
- Россия
- Зарегистрирован
- Активность