Обновить
1
0
Константин@ConstOrVar

Разработчик мобильных приложений

Отправить сообщение

Вам стоит написать своего агента

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9.6K

Некоторые концепции легко усвоить абстрактно. Кипящая вода: греем её и ждём. Другие нужно попробовать самому. Вы думаете, что знаете, как работает велосипед, пока не попробуете покататься на нём.

В вычислительных системах есть большие идеи, которые легко понять. Например, AWS S3 API — самая важная за последние двадцать лет технология хранения данных, и она похожа на кипящую воду. Для понимания других технологий нужно сначала покрутить педали.

К ним относятся и LLM-агенты.

Мнения о LLM и агентах невероятно разнообразны. Но даже если это мошенничество, это серьёзная идея. Они не обязаны вам нравиться, но вы должны быть правы относительно них.

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

Читать далее

Диагностика неполадок в Linux: эти 4 шага помогут исправить 99% ошибок

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели15K

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

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

4 шага диагностики

О правильной и аккуратной остановке потоков в Linux

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели9.6K

Предположим, вы пишете многопоточное приложение для Linux, которое рассчитано на длительную работу. Может — это СУБД или какой-нибудь сервер. Представим ещё, что ваша программа не рассчитана на какую-нибудь среду выполнения кода (скажем — на JVM, Go или BEAM), которая берёт на себя управление низкоуровневыми вещами. Вы сами управляете порождением потоков (thread), прибегая к системному вызову clone. Когда пишут на C — потоки создают с помощью pthread_create, а в C++ применяется std::thread. (1)

Читать далее

JVM + Память + GC без боли: моя шпаргалка для собесов в Java. Часть 2

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.9K

Всем привет!

Работая Senior Java Developer в одном из банков, я успел пройти уйму собеседований, столкнуться с десятками каверзных вопросов и понять, сколько усилий требует подготовка. И каждый раз убеждаюсь в одном: тема JVM, память и GC — одна из самых недооценённых и одновременно самых частых на Java-собесах. Многие знают об этом “что-то где-то слышал”, но как только разговор заходит про Heap, Metaspace, JIT, Safepoint или разные типы GC — начинаются проблемы.

Поэтому эта статья — вторая часть моей шпаргалки по подготовке к Java-собеседованиям. Здесь я собрал всё самое важное о работе JVM и управлении памятью простым, человеческим языком, без боли и академической зауми. Разберём архитектуру JVM, устройство памяти, JIT, GC, типы ссылок и самые частые вопросы, которые любят спрашивать на интервью.

В профиле уже есть первая часть для подготовки — Многопоточность без боли.

Читать далее

Принц Древнего Египта, который очень любил свою кошку⁠…

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели15K

В глубинах Египетского музея в Каире, среди других предметов Нового царства, хранится один из самых необычных и трогательных артефактов — саркофаг любимой кошки принца Тутмоса, старшего сына великого фараона Аменхотепа III. Этот изящный предмет из известняка, инвентарный номер JE 30172, не просто погребальный ларец, а настоящее произведение искусства.

Читать далее

Обнаружена первая фигура, не способная пройти через саму себя

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели20K

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

Возможно, ваш инстинкт подсказывает вам: «Конечно, нет!» Если да, то вы не одиноки. В конце 1600-х годов неизвестный человек заключил пари на эту тему с принцем Рупертом Рейнским. Руперт — племянник Карла I Английского, командовавший роялистскими войсками в Английской гражданской войне — провёл свои последние годы, изучая металлургию и стеклоделие в своей лаборатории в Виндзорском замке.

Руперт выиграл пари. Математик Джон Уоллис, рассказывая эту историю в 1693 году, не уточнил, написал ли Руперт доказательство или проделал отверстие в реальном кубе. Но сам Уоллис математически доказал, что если проделать прямой туннель по одной из внутренних диагоналей куба, его можно сделать достаточно широким, чтобы пропустить другой куб. Ему там будет довольно тесно: если сделать второй куб всего на 4% больше, он уже не пройдёт.

Читать далее

Мобильная разработка за неделю #610 (10 — 16 ноября)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.6K

В этом выпуске Optional в Swift, которые всех сбивают с толку, актуальные практики работы в фоне и стартапы в Дубае, ИИ простыми словами, партнерская программа для мини-приложений в App Store, смягчение ограничений на загрузку сторонних приложений в Android и многое другое. Заходите!

Читать далее

Многопоточность без боли: моя шпаргалка для собесов в Java

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели21K

Всем привет!

Я работаю Senior Java Developer в одном из банков, и за последние годы мне пришлось пройти не одно собеседование, услышать десятки каверзных вопросов и потратить уйму времени на подготовку. И вот что я понял: многопоточность — это одна из самых сложных и любимых тем на Java-собеседованиях, независимо от уровня кандидата.

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

Читать далее

Вводная глава учебника по матанализу нового типа

Уровень сложностиПростой
Время на прочтение51 мин
Охват и читатели25K

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

Я здесь, чтобы сказать вам: дело было не в вас.

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

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

«Напиши учебник. Тот самый, который мы заслужили».

Что ж, это он. Глава первая. Забудьте всё, что вы знали. Мы начинаем с нуля.

Мы отправимся в путешествие к самым основам человеческого мышления. Мы увидим, как драма, начавшаяся 2500 лет назад с простого вопроса о летящей стреле, породила всю современную науку — от физики до нейросетей.

Пристегнитесь. Мы погружаемся.

Читать далее

Разбор задачи «Regular Expression Matching»

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели6.3K

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

Читать далее

Карты, деньги, два бага: погружаемся в программный взлом банкоматов

Время на прочтение25 мин
Охват и читатели8.7K

Всем привет! Вновь с вами аналитики из команды PT Cyber Analytics, и мы завершаем рассказ про исследование защищённости банкоматов. В первой части статьи мы подробно рассказали про устройство банкомата, принцип его работы и основные типы атак. Настало время перейти к самому интересному: логическим атакам.

За нами, читатель! Мы расскажем, как же всё-таки взламывают банкоматы без шума и пыли.

Читать далее

Что важнее: наследственность или воспитание?

Время на прочтение18 мин
Охват и читатели9.7K

Привет, Хаброжители!

В возрасте 97 лет ушел из жизни лауреат нобелевской премии Джеймс Уотсон, открывший структуру ДНК. Мы выражаем глубокие соболезнования семье и коллегам великого ученого.

В издательстве «Питер» была издана его книга «ДНК. История генетической революции», которую можно бесплатно скачать по ссылке в конце поста.

Предлагаем ознакомиться с отрывком «Что важнее: наследственность или воспитание?»

Читать далее

Хрупкий == надёжный? Идея «хрустального кода»

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели15K

Я расскажу о своём подходе к программированию под условным названием «хрустальный код», когда за счёт строгого следования спецификациям методов и путём минимизации проверок и валидаций мы создаём быстрое и надёжное ПО.

Читать далее

Как ускорить WebView в Android и доказать это цифрами

Время на прочтение7 мин
Охват и читатели9.2K

Как приручить WebView: пререндерим экраны заранее (AndroidX WebKit prerenderUrlAsync), меряем не ощущения, а TTVR — время до визуальной готовности — лёгким offscreen-детектором, шлём метрики в Grafana. Внутри — когда и что пререндерить, таймауты/отмена, cookie-политика и готовые сниппеты. На проде — до 2.5× быстрее и меньше «белых экранов».

Читать далее

Странности в исключениях JVM с точки зрения декомпилятора

Время на прочтение11 мин
Охват и читатели5.8K

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

На тот момент я полагала, что этот метод не составит труда расширить и на декомпиляцию потока управления, возникающего при обработке исключений — то есть, что ему будут поддаваться блоки try…catch. В ретроспективе признаю: следовало ожидать, что это будет не так просто. Оказывается, здесь возникает множество пограничных случаев, варьирующихся от странного поведения javac до последствий, отражающихся на самой структуре JVM и формате файлов классов. Всё это – серьёзные осложнения. В данном посте я разберу все эти детали, расскажу, почему простые решения не работают, и на каком подходе я в итоге остановилась.

Читать далее

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

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели14K

У каждого, кто работает с высоконагруженными системами, своя коллекция боевых шрамов. Знаете эти истории про инциденты, когда всё идёт совсем не по плану? У меня тоже есть такая — очень показательная. Правильные инструменты, лучшие практики, опытная команда — и всё равно куча проблем. Это хороший повод рассказать, почему даже самых продвинутых инструментов может быть недостаточно, когда не видишь всей картины.

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

Поехали!

Книга: «Кото-математика»

Время на прочтение3 мин
Охват и читатели21K

Привет, Хаброжители! Сегодня у нас открылся предзаказ на книгу «Кото-математика». Хотим вам рассказать про нее побольше в этом посте.

Мяу-математика? Именно! В своей книге Дэниел М. Лук превращает скучные числа в захватывающие приключения, где каждый урок ведет... кот!

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

Читать далее

Обратная связь без боли: как давать фидбэк, который не демотивирует

Время на прочтение9 мин
Охват и читатели6.2K

С 2021 года сотрудники в разных исследованиях всё чаще говорят: «я хочу регулярный, полезный фидбэк». В разных выборках от 80% до 96% респондентов отмечают пользу обратной связи и её влияние на мотивацию. Но статистика показывает ужасную разницу между желанием и реальностью: по данным Gallup и Happy Job, более 75% сотрудников не получают достаточно обратной связи, и лишь около 16% считают её действительно полезной.

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

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

Читать далее

Карты, деньги, два бага: из чего состоят современные банкоматы и как их атакуют хакеры

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели10K

Всем привет! Вновь на связи аналитики из команды PT Cyber Analytics. В этой статье хотим поделиться экспертизой, полученной в ходе наших исследований в области защищенности банкоматов.

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

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

Читать далее

Семь стадий зрелости программиста: от энтузиаста до архитектора-отшельника

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели24K

Когда-то ты спорил на форумах о том, что лучше — tabs или spaces, а теперь просто настраиваешь .editorconfig и идешь пить кофе. Этот текст — не про карьеру, не про зарплаты и не про мотивацию. Это про то, как постепенно меняется восприятие кода, ответственности и хаоса, когда годы коммитов превращают энтузиазм в инженерное спокойствие. Здесь не будет морали — только наблюдения, немного иронии и чуть-чуть боли.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность