Мы решили попробовать в Kaiten новый подход: прежде чем идти с вопросом к коллеге, спроси сначала у нейросети. И это сработало хорошо — взаимодействие в команде стало эффективнее, а точечное использование ИИ превратилось в системную практику. Про наш опыт с нейросетями — ниже.
Читать далееДелюсь, как мы спасли от гнили дом 1937 года и почему труба во время стройки резко вырастает с 50 тыс до 200 тыс. А ещё — как строители разводят заказчиков в договоре. И всё по закону.
Читать далееСегодня трудно представить жизнь без смартфона. Мы доверяем ему личную переписку, фотографии, платежные данные и доступы к финансовым и медицинским сервисам. Но задумываетесь ли вы, насколько надежно защищены ваши данные?
Ответ во многом зависит от операционной системы — именно она определяет уровень вашей безопасности. Ваши личные «сокровища» защищают две основные системы: iOS от Apple и Android от Google. Их принципы работы различаются, поэтому отличаются и слабые места, и способы защиты.
В этой статье мы не будем советовать, какой смартфон выбрать. Зато подробно сравним защиту iOS и Android по ключевым параметрам: от безопасности и удобства до экосистемы и функциональности.
Читать далееПродолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специфичных. Это девятая статья из серии, список предыдущих статей приведен в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Данная статья посвящена специальным функциям-членам.
В C++ жизненный цикл экземпляра класса/структуры/объединения (объект, представляемый в коде переменной) начинается с инициализации, то есть задания его начального состояния. Далее, почти всегда, объект копируется, выполняются присваивания или их перемещающие аналоги. Эти операции необходимы для работы функций, контейнеров, алгоритмов. Финальной точкой жизненного цикла объекта является его уничтожение. Именно для поддержки этих операций в C++ и предназначены специальные функции-члены.
Важная особенность специальных функций-членов — это то, что в их реализации принимает участие компилятор. Реализации специальной функции-члена частично (а в ряде случаев и полностью) может быть сгенерирована компилятором. Кроме того, во многих случаях программист не вызывает явно специальные функции-члены в своем коде, эти вызовы генерируются компилятором в определенном контексте.
Итак, попробуем рассказать о специальных функциях-членах максимально подробно.
Читать далееВ Ruby‑разработке ActiveRecord давно стал стандартом: он интуитивно понятен, встроен в Rails и позволяет быстро проводить CRUD‑операции. По мере роста проекта его «удобство» нередко начинает оборачиваться скрытыми проблемами.
Читать далееЛето уже давно позади, зима на носу, а значит — самое время начинать подготовку к следующему лету. Для многих это означает одно: попытку выбраться из состояния «тюленя» хотя бы в состояние «тюленя, который слегка похудел».
Чтобы совместить полезное с полезным, заодно соберём небольшое приложение — простой трекер веса и тренировок — и посмотрим, как на практике работает мультиплатформенная разработка на React с Expo. Спойлер: почти то же самое, что и обычная разработка на React — и, похоже, именно она окончательно забивает гвоздь в гроб Dart/Flutter и прочих попыток конкурентов сделать вид, что React — это страшный сон, который можно забыть.
Читать далееПривет, Хабр! На связи KozhinDev и ml-разработчик Приходько Александр. Это третья статья в цикле публикаций по теме борьбы с проблемой дисбаланса классов в машинном обучении. В первой статье мы обсудили актуальность данной проблемы в машинном обучении, а также сравнили методы борьбы с ним, без внесения изменений в сами данные: изменение весов классов и порога принятия решения моделью. Во второй статье мы сравнивали undersampling-методы, которые удаляли представителей частого класса.
В данной части мы протестируем методы балансировки данных методом oversampling из библиотеки imblearn. Суть данного метода заключается в том, что мы пытаемся бороться с дисбалансом классов генерируя данные для редкого класса. Мы рассмотрим разные способы генерации таких данных и протестируем их на синтетических данных.
Читать далееЭто схема, которая описывает типы объектов в вашей системе и возможные отношения между пользователями и этими объектами (ролями, функциями защиты и привилегиями).
Классическая ситуация:
«Я данные отправил!»
«А я не получил!»
«А они зависли где-то, потому что формат не тот!»
Пример из практики: комплексный проект по рефакторингу системы управления доступами. Интеграция приложения по управлению доступами на основе ролей и привилегий (это наша Новая система) с другими информационными системами (ИС) в контуре предприятия (например, управление учетными записями, авторизация пользователей и прочие).
Читать далее«Много говорят о пузыре ИИ, - отметил CEO Nvidia Дженсен Хуанг во время недавнего отчёта о прибылях за третий квартал. - Мы видим иную картину».
Легко понять, почему Хуанг так считает. В конце концов, этот отчёт был лакмусовой бумажкой для всей индустрии, и они с блеском прошли проверку. Их выручка взлетела на 62%, превзойдя прогнозы Уолл-стрит. Я уверен, что с вершины своей золотой горы Хуангу всё кажется прекрасным. И впрямь, похоже, мир согласился, что страхи о катастрофическом взрыве пузыря ИИ - не более чем паникёрство. Но я заявляю - это полная чушь, потому что это не гора золота, а карточный домик.
То, что все, кажется, упускают из виду, так это то, что спрос на кирки и лопаты вовсе не означает, что тюльпаномания или золотая лихорадка не готовы вот-вот лопнуть. Точно так же спрос на чипы ИИ, которые продаёт Nvidia, не означает, что нет пузыря, который вот-вот разрушительно схлопнется.
Вопрос закрыт. Но все также упускают из виду ужасающий контекст этого отчёта. Подобно тому, как, потянув за одну ниточку, можно распустить весь свитер, если проследить здесь за деньгами, то ужасающий масштаб пузыря ИИ предстанет во всей своей наготе.
Пристегните ремни - погружение будет глубоким!
Читать далееСистема быстрых платежей (СБП) существует достаточно давно, но бытовые переводы «по номеру телефона» всё ещё регулярно вызывают ошибки, путаницу и лишние действия.
Если открыть комментарии под любой статьёй на эту тему — гарантированно найдёшь реплики вида:
«Но ведь можно просто скопировать контакт? Или показать QR из банка. Зачем вообще что-то ещё?»
Проблема в том, что в инженерных рассуждениях мы часто видим идеальные сценарии, а в реальной жизни всё намного менее стерильно.
В этой статье — разбор, почему бытовые переводы по номеру на практике всё ещё далеки от идеала, с точки зрения UX, безопасности, разрозненности банковских реализаций и человеческого фактора.
И почему альтернативные способы (vCard, контакт, QR из приложений банков) не всегда закрывают эту бытовую рутину.
Здесь нет рекламы и нет призывов пользоваться каким-то конкретным инструментом.
Это исследование проблемы, которая всплывает каждый день у людей вне IT-пузыря.
Читать далееКогда-то давным-давно (то есть до C++20) мы форматировали вывод либо по-старинке через printf, либо используя громоздкие стримы ввода-вывода из <iostream>. Оба подхода, мягко говоря, не очень. printf работал шустро и лаконично, но требовал строгого соответствия типов, забудешь правильный %d или %s в формате, и получишь неопределённое поведение вплоть до падения программы. Компиляторы иногда предупреждают о несоответствиях, но полностью проблему не решают (особенно если форматируемая строка не литерал). Кроме того, printf не умеет выводить пользовательские классы, только примитивы.
Сейчас ситуация изменилась. В C++20 завезли библиотеку <format>, современный подход к форматированию строк, сочетающий лаконичность printf с безопасностью iostream. Инструмент называется std::format и объявлен в заголовке <format>. По сути, это адаптация популярной библиотеки fmt.
Читать далееПривет, Хаброжители! Овладейте искусством дизайна архитектур и станьте успешным архитектором решений. Книга, написанная опытными техлидами AWS Саурабхом Шриваставой и Ниланджали Шривастав, выходит за рамки традиционных руководств для подготовки к сертификации. В ней вы найдете подробную аналитику и описания передовых методов, предназначенных для удовлетворения конкретных потребностей клиентов и решения проблем, с которыми сталкиваются современные архитекторы решений.
Читать далееВсе вокруг спорят, станет ли крупная языковая модель субъектом.
Показывают скрины ответов, где модель рассуждает про себя, говорит что ей страшно или радостно, и делают выводы про зарождающееся сознание.Проблема в том, что на уровне инженерии там нет ни субъекта, ни траектории, ни устойчивого Я. Есть мощный условный распределитель по токенам. Все. В этой статье я разберу, почему так, что для субъектности не хватает и как это закрывает архитектура ENA как отдельный слой поверх LLM.
Прочитать статьюУ мошенников нет ничего святого! Хакеры взялись за Google: подделка подписей теперь не обязательна, ведь можно заставить Google подписывать фишинговые письма валидным DKIM самостоятельно. Если раньше опытный ИБ-специалист мог сходу разобраться, где фишинговое письмо, а где — нет, сейчас это сделать в разы сложнее. И дело вовсе не в популярных нейронках, изощренном социальном инжиниринге или слитых базах.
Несем вам горячий кейс о том, как мошенники научились злоупотреблять настройкой OAuth-приложений, используя официальные инструменты Google для отправки поддельных писем от no-reply@accounts.google.com.
Спойлер: хотя Google уже устранил возможность вставлять произвольный текст в название OAuth-приложений, сама техника повторного использования легитимной DKIM-подписи никуда не делась. На её основе по-прежнему можно реализовать сценарии, позволяющие обходить DKIM-аутентификацию.
Читать далееЧтобы транзакции в InnoDB работали предсказуемо, важно понимать внутреннюю логику InnoDB. Ошибки чаще всего возникают не из-за отсутствия транзакций, а из-за неверных ожиданий относительно уровней изоляции и работы блокировок.
В этой статье давайте разберём несколько распространенных заблуждений и на примерах посмотрим, как на самом деле работают транзакции.
Читать далееПривет, Хабр!
В беседах с коллегами я всё чаще замечаю, что многие не в курсе последних фишек CSS. Конечно, у каждого свои причины. Кто-то погряз в повседневной рутине. Кому-то просто неинтересно, что там нового происходит в мире CSS. А кто-то годами сидит на десятилетних подходах и чувствует себя прекрасно.
Честно говоря, как давнему фанату CSS, мне становится немного грустно. Сколько классных возможностей проходит мимо них! А ведь их код мог бы быть короче, надёжнее и понятнее. Именно поэтому я собрал несколько примеров, которые были популярны раньше, и переписал их, используя современные возможности CSS.
Давайте посмотрим, что у меня получилось.
Читать далееПривет, Хабр! Меня зовут Андрей Саранчин, и я разработчик СУБД Tarantool в VK Tech. Вот уже полтора года мы строим MemCS — новый колоночный движок Tarantool для HTAP. И вот парадокс: даже с индексами иногда не уйти от сплошного прохода таблицы. Поделюсь, почему мы не смогли миновать Sequential Scan и как мы смягчили эту проблему с помощью Data Skipping.
Эта статья написана по мотивам доклада для Saint HighLoad++ и отражает одну из проблем, которую мы затрагивали в этом докладе.
Читать далееПродолжение истории с 3D-таймлайном. Я допилил исходный слайдер из прошлой статьи, завёл его под React, добавил форму для настройки параметров в реальном времени и показываю, как встроить всё это в проект одной строкой.
Читать далееВсем привет! Я Катя, QA Tech Lead в MD Audit.
Я собрала пять промтов, которые экономят часы рутинной работы. И они настолько рабочие, что я использую их почти каждый день.
Список не про генерацию тест-кейсов или чек-листов — про это уже написаны километры текстов.
Сегодня поговорим о сценариях, которые редко обсуждают, но которые могут сразу и заметно улучшить вашу работу с ИИ.
Читать далееПриветствую всех!
Сегодня я расскажу об электронной книге Amazon Kindle Colorsoft Signature Edition. С устройством я провел около недели, и успел накопить впечатления. На последние пару дней я взял в пару к Kindle еще и PocketBook 700 Era Color– чтобы понять, какое из этих устройств предпочтительнее и для кого.
Читать далее