Рассказываю, почему обложки к постам, заботливо отрисованные иллюстратором, вызывают даже больше отторжения, чем «непонятное нечто с фотостока» — и обходятся компаниям не в пример дороже.
NodeJS и финтех
Самые дикие налоговые проблемы, в которые встряли уехавшие из России айтишники в 2024
Попытка налоговой отхватить 6% с продажи квартиры в Грузии у налогового нерезидента РФ, двойное налогообложение заработанной крипты от российской ФНС, а также штраф 30% за сдачу в аренду недвижимости в Германии – в этой статье мы собрали самые жуткие истории из жизни, с которыми налоговые юристы сталкивались на практике.
Как я превратил обычный бизнес в IT компанию, читая книги
Началось с того, что я феерически прогорел при попытке создать IT компанию с нуля. Это произошло в дремучие года: у меня были длинные волосы, оранжевая рубашка, один из первых огромных смартфонов и белоснежный микро-ноутбук с большим черным модемом. Поэтому я мог сидеть в интернете прямо в Макдачной, что в те годы было реже, чем встретить Феррари на улице. И это почему-то приманивало ко мне разные интересные личности, они кидались ко мне чуть завидев издалека с кучей вопросов про компьютеры. И я почему-то решил, что было бы круто организовать телефонные консультации для пользователей компьютеров.
Я готовился к настоящему валу звонков, ведь никто ничего похожего не предлагал.
Запросы двойной надежности
Отправляем запрос на 20 000 000 евро, на перестановку 900 ордеров на бирже. Что может пойти не так?
Сегодня я расскажу, как не терять пару миллиардов клиентских денег, когда уж очень нужно что-то массово сделать на бирже. Этот текст про неявную и, казалось бы, незаметную проблему, которая ждет нас в недрах работы с любыми запросами, которые могут исполниться не до конца – в частности, с HTTP-запросами. Удивительно, как мало об этой проблеме думают и насколько мало инструментов для её решения.
Задача была такова – реализовать массовое управления биржевыми ордерами, причём не только в рамках одной биржи, а в целом по всей планете. И чтобы оно точно отработало.
В повествовании будут клиенты, серверы и котики. С котиками всегда интереснее.
Что есть истина в последней инстанции или какие добавки действительно работают?
Здравствуйте, уважаемые читатели!
Сегодня я хотел бы поговорить о том, какие пищевые добавки, а если говорить точнее, эргогенные средства, действительно работают и дают результат, даже учитывая факт того, что, по сути, между эргогенными средствами и пищевыми добавками нельзя напрямую поставить знак “=”.
В силу того, что тема БАДов популярна в СМИ, о ней регулярно говорят различного рода эксперты, и она неоднократно рассматривалась в том числе на Хабре (см. Рисунок 1 ниже), я хотел бы поставить точку в данном вопросе, при этом, что самое важное, предоставив читателям методологию, которая позволит отделить зёрна от плевел, или, другими словами, истинное от, в лучшем случае, бесполезного, а в худшем – вредоносного.
Курс «PostgreSQL для начинающих»: #3 — Сложные SELECT
Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".
В этой лекции углубимся в расширенные возможности команды SELECT
: как можно "сложить" и "вычесть" выборки (UNION/INTERSECT/EXCEPT
), или запомнить и использовать в рекурсивных запросах (CTE
), что дают оконные функции (WINDOW
) и соединения (JOIN
).
Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись.
Разворачиваем веб-приложение в Kubernetes с нуля
Современные веб-приложения, даже простые на вид, часто подразумевают нетривиальную архитектуру, состоящую из многих компонент. В статье «Делаем современное веб-приложение с нуля» я рассказал, как она может выглядеть, и собрал для демонстрации простейшую реализацию на стеке из нескольких популярных технологий. В неё вошёл бэкенд, фронтенд, воркер для асинхронных задач и аж два хранилища данных — MongoDB как основная база и Redis как очередь задач. В «Делаем поиск в веб-приложении с нуля» я показал, как можно добавить полнотекстовый поиск, и подключил третье хранилище — Elasticsearch.
Всё это время для простоты разработки и отладки компоненты приложения запускались локально через Docker Compose. Но как развернуть такое приложение в настоящем продакшн-окружении? Как обеспечить горизонтальное масштабирование? Как раскатывать новые релизы без простоя?
В этой статье мы разберёмся, как разворачивать многокомпонентное веб-приложение в кластере Kubernetes на примере его локальной реализации — minikube. Мы поднимем виртуальный кластер прямо на рабочем ноутбуке, разберёмся с основными сущностями Kubernetes, запустим и соединим между собой компоненты демо-приложения и обсудим, какие ещё возможности Kubernetes пригодятся нам в суровом энтерпрайзе. Если вы занимаетесь разработкой и слышали о Kubernetes, но ещё не имели возможности пощупать его руками — добро пожаловать под кат!
Самые распространенные логические ошибки
Изучение логических ошибок помогает в развитии критического мышления, необходимого во всех сферах жизни. School of Thought проделала отличную работу, описав 24 наиболее распространенные логические ошибки.
Регрессия к среднему — невидимая рука хаоса
Что объединяет израильских лётчиков, лечение сомнительными методами и твою жизнь? Сегодня поговорим про регрессию к среднему. Это явление порождает огромное количество заблуждений везде, где мы с ним сталкиваемся, потому что наш мозг очень любит истории и не очень любит статистику. Его неправильное понимание приводит к ошибкам в политике, медицине, науке и бизнесе.
Что делает ChatGPT… и почему это работает?
То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).
Какую видеокарту лучше брать в 2023 году?
В этой статья будет подборка лучших видеокарт по моему мнению, с учётом разных ценовых диапазонов и советы, какую же видеокарту выбрать на сегодняшний день.
Всё, что вы НЕ хотели бы знать о сервисах онлайн знакомств… [много букОв и иллюстраций + регулярно дополняется]
Как я создавал эргономичное рабочее место для себя и теперь предлагаю другим. Часть 1
Привет, Хабр! Меня зовут Денис Захаров. Я занимаюсь разработкой веб приложений на протяжении уже 14 лет, но история будет не об этом. Расскажу о том, как и почему я создавал эргономичное рабочее место, которое в последствии превратилось в проект Easyworkstation. Эта штука уже несколько лет полностью заменяет мне и еще нескольким десяткам пользователей привычное компьютерное кресло и рабочий стол.
Под катом поведаю, как профессия, проблемы со спиной и любовь мастерить руками довели меня до увольнения с работы, покупки сварочного аппарата и отнюдь не простого пути создания того, что вы видите на картинке.
Надеюсь, статья и блог, который планирую здесь вести, окажутся полезны тем, кто проводит много времени за компьютером. Будем разбирать особенности работы в положении сидя, полулежа, лежа. А также укажем нюансы, в целом связанные с работой в эргономичных позициях. Поговорим, о чем молчат разработчики подобных решений.
Налоговый и валютный резидент РФ —последствия приобретения и утраты статусов — полный FAQ с примерами
Друзья, всех приветствую и предлагаю ознакомиться, как мне кажется с довольно полным FAQ по теме налогового и валютного резиденства РФ. По ходу материала есть некоторые примеры, а внизу вопросы & ответы.
150+ хакерских поисковых систем и инструментов
Все таргетированные хакерские атаки начинаются с разведки. Социальные инженеры, красные команды и отдельные пентестеры также собирают информацию о своих целях перед тем, как перейти к активным действиям. Им помогают десятки инструментов и хаков. Под катом ссылки на некоторые из них.
Пост состоит из 8 объемных разделов:
1. метапоисковики и поисковые комбайны;
2. инструменты для работы с дорками;
3. поиск по электронной почте и логинам;
4. поиск по номерам телефонов;
5. поиск в сети TOR;
6. поиск по интернету вещей, IP, доменам и поддоменам;
7. поиск данных об уязвимостях и индикаторов компрометации;
8. поиск по исходному коду.
В этом списке собраны инструменты, которые члены нашей команды используют в работе. И все же, эта подборка пригодится не только пентестерам, но и разработчикам, журналистам, HR, маркетологам и всем, кто много ищет в интернете. Знания — это сила. Используйте их во благо.
Spore: не выученные уроки
Еще в подростковом возрасте я совершил ошибку, которую не должен повторять ни один геймер: я поверил в ту фантастическую картину, которую намалевали разработчики в своих обещаниях перед выходом игры. В тот раз речь шла о Spore. И вот, час X, я скачал из локалки городского провайдера свеженький репак и, припрыгивая от радости, запустил этап «Клетка». Не буду врать – начало игры было очень веселым. Да, это довольно примитивный двухмерный геймплей, но там присутствовало ощущение, что твой дизайн клетки хоть на что-то влияет (во всей остальной игре этого попросту нет). Из весьма ограниченного инструментария можно было выжать какое-то разнообразие: шипы, в зависимости от расположения, могли быть как оружием, так и защитой, поставил травоядную и плотоядную пасть одновременно – стал всеядным еще до поднятия «хоботка», убрал обычный хвостик и поставил гидромет – управление и движение заметно изменились вместе со стилем игры. Конечно, этого развлечения хватит не более, чем на 15-20 минут (сколько и длится этап), но дальше же нас ждет развитие этой идеи, правда ведь? Правда?..
Уже на этапе «Существо» меня ждал полнейший облом: дизайн животного перестал на что либо влиять. Нацепленные (на любое случайное место по вашему выбору и в любом количестве) органы давали лишь изменение численных параметров и виды атаки, из-за чего этап походил на какой-то недоделанный прототип RPG. Этапы «Племя» и «Цивилизация» признаются многими игроками как самые скучные и являются прототипами RTS. Один отечественный журналист, пройдя первые два этапа игры, заявил, что игра слишком сырая, а механики – примитивны, её слишком рано отдавать на растерзание игрокам. Знал бы он тогда, что Spore такой и выйдет в релиз.
Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации
Интро: почему я написал эту статью
Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого:
На своих серверах мы должны генерировать сотни миллионов уникальных страниц в сутки — это сложнее, чем просто отдавать одни и те же ресурсы. Генерация страницы не должна быть слишком требовательной к памяти сервера.
Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.
- Категории проблем с памятью
- Ограничения по памяти для разных типов данных
Heap
Buffer, TypedArray
String
Map, Set
Call stack
Типичные задачи, в которых можно наткнуться на ограничения по памяти - Soft-утечки
Пример из продакшена
Как получаются soft-утечки
Как их обнаружить
Как найти причину
1. Memory Allocation Timeline
2. Техника трёх снапшотов
3. queryObjects
Тренируемся находить утечки - Hard-утечки
Пример из продакшена
Как бороться - Нестандартные оптимизации памяти в Node.js
Исходный код
Module._pathCache
Несколько версий пакета в node_modules
require('./data.json') - Заключение
Типографская раскладка для 60-процентной клавиатуры
Оригинал фото: pxhere.com/ru/photo/1600961
Обычную часть раскладки я описывал в предыдущей статье. А сейчас расскажу о возможностях, которые превращают раскладку в типографскую: пробелы, тире, кавычки, апострофы, диакритические знаки.
7 причин почему вы не худеете. Ожирение, инсулинорезистентность и диабет простыми словами
С лишним весом я на ты. Со 115 кг я «сбросился» до 72, затем в течение 3-х лет вернулся обратно к 94-м, а сейчас опять худею (уже грамотно) и в данный момент вешу 88.7 кг (ещё 7 скину и остановлюсь). Таких историй много, поэтому об этом я не буду, а вот причины (биологические и поведенческие), по которым вы можете не худеть, не видел, чтобы кто-то описывал в полном объёме и понятным языком. Сегодня я постараюсь сделать это для вас, обобщив все свои знания о лишнем весе.
Искренне надеюсь, что этот материал может вынуть чью-то надоедливую занозу или пролить свет на новые пути решения старых проблем.
О производительности Javascript. Рейтинг Techempower
Почему Javascript входит в топ-2 techempower?
Недавно на github был задан этот вопрос, вызванный появлением новой платформы javascript, близкой к вершине промежуточного рейтинга Techempower. Эта платформа Just(js) является тем, над чем я работаю в качестве пет-проекта уже некоторое время. Здесь я попытаюсь дать краткий ответ на вопрос, а в ближайшие недели дам дополнительные подробности об этом и о самой платформе.