Pull to refresh
48
0
Дмитрий Л. @DVLev

PHP/JS developer

Send message

История о том, как Google подсматривал за нашим сайтом и галлюцинировал

Level of difficulty Easy
Reading time 5 min
Views 29K

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

Читать далее
Total votes 343: ↑341 and ↓2 +339
Comments 128

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Reading time 37 min
Views 81K

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Total votes 88: ↑87 and ↓1 +86
Comments 27

Стартап-визы и визы удаленных работников: актуальное на сегодня

Reading time 6 min
Views 70K

Если вы в свете недавних событий окончательно приняли решение эмигрировать, то возможно мой опыт поможет в этом. Я получал стартап-визы в три страны - Италию, Францию, Испанию, так что считаю, что немного понимаю в теме и имею моральное право дополнять ссылки на официальные требования своим субъективным кратким обзором-мнением. Надеюсь это будет полезно.

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

Важно: я не визовый помогала и я строго за то, что иммиграционные процессы нужно проходить самостоятельно.

Наверное важно упомянуть, что я пишу именно про получение резиденции в странах (или начале пути к ней), а не просто физическом пребывании в качестве туриста на птичьих правах. Это довольно очевидный факт, но его почему-то не все рассматривают. А без ВНЖ зачастую сложно получать госмедстраховку, визы в другие страны на месте (!), отдавать детей в школу и др.

🇮🇹 Италия: Стартап-виза, получал в 2018. Официальная информация: Italia Startup Visa. Программа была приостановлена в 2021, но в январе возобновили прием заявок. Дедлайн 17 марта. Шансы получить - 80-90%. В ближайшие дни я подробно напишу про наш процесс, выложу заявку, переписку с комитетом стартап-визы и тд. Писал подробно об этом год назад:

Читать далее
Total votes 111: ↑105 and ↓6 +99
Comments 76

Паника на российской бирже: почему ETF продают по искаженной цене

Reading time 9 min
Views 50K

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

Читать далее
Total votes 127: ↑117 and ↓10 +107
Comments 112

Стилизация однофайловых Vue компонентов

Reading time 6 min
Views 16K

Если у вас есть опыт написания однофайловых Vue компонентов, вы, вероятно, сталкивались с написанием CSS в своем компоненте. Они позволяют разработчикам группировать код более логическими способами, а не разбивать компоненты по используемому языку (HTML, CSS или JavaScript). Возможность группировать стили компонентов непосредственно рядом с HTML-кодом, к которому он применяется, является одним из основных преимуществ Vue, включая возможность применять CSS к компоненту, чтобы он не влиял на другие части пользовательского интерфейса.

Однако есть ряд функций взаимодействия Vue с CSS, с которыми вы, возможно, не знакомы, например, применение стилей непосредственно к элементам со слотами или новейшие функции, доступные в Vue 3.2. Давайте рассмотрим некоторые из этих других способов стилизации однофайловых Vue компонентов и их преимущества для ваших приложений.

Читать далее
Total votes 14: ↑13 and ↓1 +12
Comments 14

Chrome DevTools: Хитрости при отладке

Reading time 7 min
Views 44K

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

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

Под катом:

— Как отладить popup-ы, которые исчезают при потере фокуса
— Как убить повисший JS-цикл, не убивая вкладку
— Различные нюансы работы с breakpoint-ми
— Методы ведения войны с sourceMaps
— Перехват network-запросов
— Как отладить race-condition
— Почему стоит опасаться галочки "disable cache"
— Что делать если у вас не Hi-DPI экран?

Подробнее
Total votes 50: ↑49 and ↓1 +48
Comments 41

Разрабатываем чат на React с использованием Socket.IO

Reading time 18 min
Views 62K


Доброго времени суток, друзья!

Хочу поделиться с вами опытом разработки простого чата на React с помощью библиотеки «Socket.IO».

Предполагается, что вы знакомы с названной библиотекой. Если не знакомы, то вот соответствующее руководство с примерами создания «тудушки» и чата на ванильном JavaScript.

Также предполагается, что вы хотя бы поверхностно знакомы с Node.js.

В данной статье я сосредоточусь на практической составляющей совместного использования Socket.IO, React и Node.js.

Наш чат будет иметь следующие основные возможности:

  • Выбор комнаты
  • Отправка сообщений
  • Удаление сообщений отправителем
  • Хранение сообщений в локальной базе данных в формате JSON
  • Хранение имени и идентификатора пользователя в локальном хранилище браузера (local storage)
  • Отображение количества активных пользователей
  • Отображение списка пользователей с онлайн-индикатором

Также мы реализуем возможность отправки эмодзи.

Если вам это интересно, то прошу следовать за мной.

Для тех, кого интересует только код: вот ссылка на репозиторий.

Песочница:

Total votes 6: ↑6 and ↓0 +6
Comments 1

5 библиотек для Vue.js, без которых мне не обойтись

Reading time 10 min
Views 30K
Опытные разработчики знают о том, что иногда, пытаясь сэкономить время и решить какие-то задачи своего проекта с помощью пакета, созданного кем-то другим, можно, в итоге, потратить больше времени, чем было сэкономлено. Библиотеки, жёстко регламентирующие реализацию неких механизмов и не позволяющие решать с их помощью необычные задачи, выходящие за рамки того, что кажется правильным их авторам, заставляют нас, буквально сразу же после их установки, жалеть о том, что мы вообще решили их попробовать.



Хотя со мной такое случалось довольно часто, у меня, всё же, есть небольшой список любимых библиотек, которые я использовал во множестве проектов, и которые за долгое время доказали свою крайнюю полезность. Я испытал множество подходов к решению тех задач, которые решают эти библиотеки. На мой выбор повлияло удобство работы с библиотекой, разнообразие её возможностей, хороший внешний вид того, что получается при её применении. В итоге у меня и появился тот список, которым я хочу с вами поделиться.
Читать дальше →
Total votes 45: ↑43 and ↓2 +41
Comments 26

Школы юнит-тестирования

Reading time 9 min
Views 13K

Существуют две основные школы юнит-тестирования: классическая (ее также называют школой Детройта, или Чикаго) и лондонская (ее также называют мокистской школой, от слова mock).

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

Читать далее
Total votes 20: ↑20 and ↓0 +20
Comments 48

Добавить две кнопки — почему так дорого?

Reading time 7 min
Views 44K

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

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

— Два месяца? На простейший функционал? Это неприемлемо! — вы пытаетесь давить, пугать, просить, торговаться; разработчики явно нервничают, но сроки не двигают. В итоге вы приходите к какому-то компромиссу, который не нравится никому, злые и недовольные. 

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

Читать далее
Total votes 95: ↑90 and ↓5 +85
Comments 168

Уехать нельзя остаться: ключевые вопросы о карьере за рубежом

Reading time 26 min
Views 14K

На этой неделе наших соцсетях выступит Алина Вербенчук, основательница Verbetcetera.

Алина училась в НГУ, СПбГУ, а также в Hong Kong University of Science and Technology. Работала и жила в 7 странах. Занимается запусками новых продуктов для создателей контента в лондонском офисе YouTube, а также помогает с карьерными вопросами в tech разработчикам, менеджерам продукта, дизайнерам и другим специалистам.

Делимся с вами расшифровкой эфира и записью.
Total votes 43: ↑37 and ↓6 +31
Comments 43

«Группа смерти» изнутри: люди, которые играют в опасные игры

Reading time 40 min
Views 128K


Помните, сколько было разговоров о подростковых суицидальных группах типа «синий кит»? Широкая огласка и моральная паника способствовали тому, что на ВКонтакте и ряде других площадок такие группы научились оперативно находить и блокировать. Но чем активнее родители и педагоги вели «профилактическую работу», предупреждая об игре и выясняя, не участвуют ли в ней дети, тем больше детей узнавало, что есть такая запретная, таинственная, опасная игра. Последствия этого были вполне естественны — дальнейшее распространение игры уже не требовало участия взрослых. «Синий кит» занял особое место в подростковой культуре, где-то рядом с зацепингом и играми с перебеганием перед движущимся транспортом. Как в Мафии, здесь есть разные роли. Кто-то выбирает для себя роль игрока, кто-то — куратора, кто-то — спасателя, волонтера.

Сегодня мы попробуем увидеть происходящее глазами рядовых участников — не тех, для кого в конечном итоге все кончилось плохо, а того подавляющего большинства, которое играло, а потом продолжило жить.
Читать дальше →
Total votes 343: ↑332 and ↓11 +321
Comments 345

Systemd для продолжающих. Part 2 — Триггеры на различные события

Reading time 5 min
Views 15K

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

Попробовать стащить сыр!
Total votes 48: ↑48 and ↓0 +48
Comments 31

Наркоз и седация в стоматологии: это безопасно? А детям?

Reading time 13 min
Views 40K
image
Аппарат со всем необходимым для проведения наркоза у детей.

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

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

Короче, будем говорить о наркозе у детей. А ещё — про современные варианты с закисью азота, пропофолом и севофлураном. Они очень хорошие, но помните, что самостоятельные эксперименты с ними могут закончиться встречей с Куртом Кобейном.
Total votes 59: ↑55 and ↓4 +51
Comments 62

Это не легаси-код, это PHP

Reading time 5 min
Views 17K


За последний год разработчики Vimeo писали код бэкенда на множестве языков — PHP, Go, Ruby, Python, NodeJS, Java, C, C++ и немного на Rust.

В 2004 году мы начинали всего с одного: PHP. Это был идеальный язык для новых стартапов наподобие Vimeo. Интерпретатор PHP позволял предпринимателям быстро разрабатывать прототипы и имел большую стандартную библиотеку, позволявшую избавиться от мороки с повседневными задачами типа отправки писем и доступа к базам данных.

Большинство стартапов развалилось, однако некоторые из них, взявшие за основу PHP, по-прежнему были живы спустя десяток лет. Немногие из них добилась резкого роста, а в дальнейшем кое-кто из этих стартапов (самым заметный пример — это Facebook) решил, что PHP является узким местом, и начал мигрировать с него. Для этого исхода было две серьёзные причины: производительность PHP и сложность поддержки больших кодовых баз PHP.
Читать дальше →
Total votes 64: ↑61 and ↓3 +58
Comments 106

Как египетский фараон Аменхотеп основал христианство, и почему оно стало идеальным мемом

Reading time 14 min
Views 55K

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

Я вырос в абсолютно нерелигиозной семье. Среди моих знакомых и друзей тоже почти не было религиозных людей. Поэтому с самого детства меня мучал один вопрос: почему существуют религии? Заметьте, вопрос состоял не в том, почему люди верят в Бога, хотя это тоже было мне не совсем понятно, а именно почему существуют религии с их нелепыми ритуалами и ограничениями. Раньше я считал их дремучими пережитками прошлых времен, простой картиной мира для глупых людей и удобным способом для властей управлять людьми. Но потом узнавая все больше и больше, я начал сомневаться. Факт, который в дребезги разбивал любые мои аргументы о том, что религия - это плохо: у всех когда-либо существовавших цивилизаций и обществ на нашей планете была своя религия. Это значило, что без религии цивилизация не может существовать. Но я все еще не мог понять почему. И вдруг совсем недавно я нашел простой и логичный ответ на этот вопрос в совершенно неожиданном месте.

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

Читать далее
Total votes 184: ↑128 and ↓56 +72
Comments 749

Заповеди тимлида Авито

Reading time 6 min
Views 23K

Мы уже публиковали свои внутренние документы с ожиданиями от инженеров и менеджеров продукта в плейбуке на Гитхабе. Пришло время поделиться ещё одним — кодексом тимлида.


Читать дальше →
Total votes 80: ↑79 and ↓1 +78
Comments 33

Лучшие практики при написании безопасного Dockerfile

Reading time 9 min
Views 30K

В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.

Читать далее
Total votes 77: ↑75 and ↓2 +73
Comments 20

Москва — Берлин — Хельсинки — Копенгаген за 4 года

Reading time 11 min
Views 29K

За последние 4 года мы семьей (я, жена, дочь 6 месяцев на момент первого переезда, собака и в процессе еще + кошка) переезжали из одной страны в другую 3 раза. Последний переезд был в августе 2020 года. Давно уже хотел написать статью про впечатления о странах, где довелось пожить.

Подробнее под катом
Total votes 82: ↑78 and ↓4 +74
Comments 565

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity