Pull to refresh
35
0.8

NodeJS, Rust, финтех и https://pavlovfinance.com/

Send message

Почему JWT — не панацея: разбор проблем сессий и безопасности

Level of difficultyMedium
Reading time6 min
Views25K

JWT для сессий: удобство или головная боль?

JSON Web Token (JWT) приобрёл популярность как удобный способ аутентификации и передачи данных между клиентом и сервером. Его ценят за простоту, stateless-подход и гибкость. Однако большинство гайдов рассказывают только о плюсах, забывая о недостатках.

В этой статье мы разберём основные проблемы использования JWT для хранения пользовательских сессий и обсудим более надёжные альтернативы.

Читать далее

Математическая продлёнка. Про НОД, НОК и суперсилу

Level of difficultyEasy
Reading time10 min
Views7.7K

Продолжаю делиться с вами своими заметками для занятий математического кружка. Эта статья носит пятничный характер, и представляет опыт лёгкой болтовни на глубокие математические темы. Именно такие беседы с моим папой, а потом с учителями в новосибирской ФМШ когда-то привели меня в науку, и именно они оставляют у учеников ощущение прикосновения к чему-то большому и стройному, что популярные ныне стоики называли словом Логос.

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

Читать далее

Как мы уменьшили размер нашего Javascript монорепозитория в Git на 94%

Reading time5 min
Views9.2K

Это не кликбейт. Мы и правда сделали это! В Microsoft мы работаем с очень большим монорепозиторием, который между собой называем 1JS. Недавно мы достигли 1000 активных пользователей в месяц, около 2500 пакетов и ~20 млн строк кода! Последнее клонирование репозитория вернуло невероятные 178 ГБ.

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

Вопрос в том, как это вообще произошло?!

Читать далее

PostgreSQL Antipatterns: устраняем вложенные интервалы

Level of difficultyEasy
Reading time5 min
Views7.7K

Недавно попался на глаза запрос, которым хотели отобрать в таблице (очевидно, для последующего удаления) все id записей интервалов, которые полностью перекрыты каким-то другим интервалом того же owner'а.

Но self-JOIN показал себя не лучшим образом...

Как сделать эффективнее?

Передайте менеджерам: почему брендированные иллюстрации в блоге вашей компании — пустая трата денег

Level of difficultyEasy
Reading time5 min
Views3.7K

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

Читать далее

Самые дикие налоговые проблемы, в которые встряли уехавшие из России айтишники в 2024

Reading time10 min
Views66K

Попытка налоговой отхватить 6% с продажи квартиры в Грузии у налогового нерезидента РФ, двойное налогообложение заработанной крипты от российской ФНС, а также штраф 30% за сдачу в аренду недвижимости в Германии – в этой статье мы собрали самые жуткие истории из жизни, с которыми налоговые юристы сталкивались на практике.

Читать далее

Как я превратил обычный бизнес в IT компанию, читая книги

Level of difficultyEasy
Reading time14 min
Views10K

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

Я готовился к настоящему валу звонков, ведь никто ничего похожего не предлагал.

Казалось бы, что могло пойти так?

Запросы двойной надежности

Level of difficultyMedium
Reading time9 min
Views6.4K

Отправляем запрос на 20 000 000 евро, на перестановку 900 ордеров на бирже. Что может пойти не так? 

Сегодня я расскажу, как не терять пару миллиардов клиентских денег, когда уж очень нужно что-то массово сделать на бирже. Этот текст про неявную и, казалось бы, незаметную проблему, которая ждет нас в недрах работы с любыми запросами, которые могут исполниться не до конца – в частности, с HTTP-запросами. Удивительно, как мало об этой проблеме думают и насколько мало инструментов для её решения. 

Задача была такова – реализовать массовое управления биржевыми ордерами, причём не только в рамках одной биржи, а в целом по всей планете. И чтобы оно точно отработало. 

В повествовании будут клиенты, серверы и котики. С котиками всегда интереснее.

Читать далее

Что есть истина в последней инстанции или какие добавки действительно работают?

Level of difficultyMedium
Reading time88 min
Views7.4K

Здравствуйте, уважаемые читатели!

Сегодня я хотел бы поговорить о том, какие пищевые добавки, а если говорить точнее, эргогенные средства, действительно работают и дают результат, даже учитывая факт того, что, по сути, между эргогенными средствами и пищевыми добавками нельзя напрямую поставить знак “=”.

В силу того, что тема БАДов популярна в СМИ, о ней регулярно говорят различного рода эксперты, и она неоднократно рассматривалась в том числе на Хабре (см. Рисунок 1 ниже), я хотел бы поставить точку в данном вопросе, при этом, что самое важное, предоставив читателям методологию, которая позволит отделить зёрна от плевел, или, другими словами, истинное от, в лучшем случае, бесполезного, а в худшем – вредоносного.

Читать далее

Курс «PostgreSQL для начинающих»: #3 — Сложные SELECT

Level of difficultyMedium
Reading time12 min
Views54K

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В этой лекции углубимся в расширенные возможности команды SELECT : как можно "сложить" и "вычесть" выборки (UNION/INTERSECT/EXCEPT), или запомнить и использовать в рекурсивных запросах (CTE), что дают оконные функции (WINDOW) и соединения (JOIN).

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

Читать далее

Разворачиваем веб-приложение в Kubernetes с нуля

Level of difficultyEasy
Reading time31 min
Views59K

Современные веб-приложения, даже простые на вид, часто подразумевают нетривиальную архитектуру, состоящую из многих компонент. В статье «Делаем современное веб-приложение с нуля» я рассказал, как она может выглядеть, и собрал для демонстрации простейшую реализацию на стеке из нескольких популярных технологий. В неё вошёл бэкенд, фронтенд, воркер для асинхронных задач и аж два хранилища данных — MongoDB как основная база и Redis как очередь задач. В «Делаем поиск в веб-приложении с нуля» я показал, как можно добавить полнотекстовый поиск, и подключил третье хранилище — Elasticsearch.

Всё это время для простоты разработки и отладки компоненты приложения запускались локально через Docker Compose. Но как развернуть такое приложение в настоящем продакшн-окружении? Как обеспечить горизонтальное масштабирование? Как раскатывать новые релизы без простоя? 

В этой статье мы разберёмся, как разворачивать многокомпонентное веб-приложение в кластере Kubernetes на примере его локальной реализации — minikube. Мы поднимем виртуальный кластер прямо на рабочем ноутбуке, разберёмся с основными сущностями Kubernetes, запустим и соединим между собой компоненты демо-приложения и обсудим, какие ещё возможности Kubernetes пригодятся нам в суровом энтерпрайзе. Если вы занимаетесь разработкой и слышали о Kubernetes, но ещё не имели возможности пощупать его руками — добро пожаловать под кат!

Скорее к YAML-инженерии

Самые распространённые логические ошибки

Level of difficultyEasy
Reading time12 min
Views84K

Изучение логических ошибок помогает в развитии критического мышления, необходимого во всех сферах жизни. School of Thought проделала отличную работу, описав 24 наиболее распространенные логические ошибки.

Читать далее

Регрессия к среднему — невидимая рука хаоса

Reading time9 min
Views11K

Что объединяет израильских лётчиков, лечение сомнительными методами и твою жизнь? Сегодня поговорим про регрессию к среднему. Это явление порождает огромное количество заблуждений везде, где мы с ним сталкиваемся, потому что наш мозг очень любит истории и не очень любит статистику. Его неправильное понимание приводит к ошибкам в политике, медицине, науке и бизнесе.

Проявить любопытство

Что делает ChatGPT… и почему это работает?

Level of difficultyMedium
Reading time75 min
Views167K

То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).

Читать далее

Какую видеокарту лучше брать в 2023 году?

Level of difficultyEasy
Reading time5 min
Views199K

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

Читать далее

Всё, что вы НЕ хотели бы знать о сервисах онлайн знакомств… [много букОв и иллюстраций + регулярно дополняется]

Level of difficultyEasy
Reading time60 min
Views341K
Компьютерные сети изменили мир и подарили нам возможность не выбирать «меньшее из зол» из ограниченного числа сложившихся по жизни контактов, а найти по-настоящему любимого человека, даже если он прячется от нас на другом материке. Разумеется, мы можем отказаться от этой возможности и пойти по воспетому российской эстрадой садистско-мазохистскому сценарию «слепила из того, что было, а потом, что было, то и полюбила». И все будут только рады, если у нас всё получится. Но, если мы подведем статистику известных нам счастливых пар, сложившихся по этому сценарию, и трезво оценим вероятность успешного исхода, то, вероятно, путь поиска своего счастья в мировой паутине покажется нам более перспективным. И в этой статье я хочу рассказать вам о тех проблемах с которыми на этом пути можно столкнуться.
Читать дальше →

Как я создавал эргономичное рабочее место для себя и теперь предлагаю другим. Часть 1

Reading time12 min
Views104K

Привет, Хабр! Меня зовут Денис Захаров. Я занимаюсь разработкой веб приложений на протяжении уже 14 лет, но история будет не об этом. Расскажу о том, как и почему я создавал эргономичное рабочее место, которое в последствии превратилось в проект E-station (EasyWorkStation). Эта штука уже несколько лет полностью заменяет мне и еще нескольким десяткам пользователей привычное компьютерное кресло и рабочий стол.

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

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

А теперь ретроспектива

Налоговый и валютный резидент РФ —последствия приобретения и утраты статусов — полный FAQ с примерами

Reading time27 min
Views32K

Друзья, всех приветствую и предлагаю ознакомиться, как мне кажется с довольно полным FAQ по теме налогового и валютного резиденства РФ. По ходу материала есть некоторые примеры, а внизу вопросы & ответы.

Читать далее

150+ хакерских поисковых систем и инструментов

Reading time11 min
Views113K

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

Пост состоит из 8 объемных разделов:

1. метапоисковики и поисковые комбайны;

2. инструменты для работы с дорками;

3. поиск по электронной почте и логинам;

4. поиск по номерам телефонов;

5. поиск в сети TOR;

6. поиск по интернету вещей, IP, доменам и поддоменам;

7. поиск данных об уязвимостях и индикаторов компрометации;

8. поиск по исходному коду.

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

Читать далее

Spore: не выученные уроки

Reading time10 min
Views10K

Еще в подростковом возрасте я совершил ошибку, которую не должен повторять ни один геймер: я поверил в ту фантастическую картину, которую намалевали разработчики в своих обещаниях перед выходом игры. В тот раз речь шла о Spore. И вот, час X, я скачал из локалки городского провайдера свеженький репак и, припрыгивая от радости, запустил этап «Клетка». Не буду врать – начало игры было очень веселым. Да, это довольно примитивный двухмерный геймплей, но там присутствовало ощущение, что твой дизайн клетки хоть на что-то влияет (во всей остальной игре этого попросту нет). Из весьма ограниченного инструментария можно было выжать какое-то разнообразие: шипы, в зависимости от расположения, могли быть как оружием, так и защитой, поставил травоядную и плотоядную пасть одновременно – стал всеядным еще до поднятия «хоботка», убрал обычный хвостик и поставил гидромет – управление и движение заметно изменились вместе со стилем игры. Конечно, этого развлечения хватит не более, чем на 15-20 минут (сколько и длится этап), но дальше же нас ждет развитие этой идеи, правда ведь? Правда?..

Уже на этапе «Существо» меня ждал полнейший облом: дизайн животного перестал на что либо влиять. Нацепленные (на любое случайное место по вашему выбору и в любом количестве) органы давали лишь изменение численных параметров и виды атаки, из-за чего этап походил на какой-то недоделанный прототип RPG. Этапы «Племя» и «Цивилизация» признаются многими игроками как самые скучные и являются прототипами RTS. Один отечественный журналист, пройдя первые два этапа игры, заявил, что игра слишком сырая, а механики – примитивны, её слишком рано отдавать на растерзание игрокам. Знал бы он тогда, что Spore такой и выйдет в релиз.

Читать далее
1

Information

Rating
2,758-th
Registered
Activity