Как стать автором
Обновить

Технотекст

Python как дзен: Пелевин и разработка

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

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

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

Читать далее

Послеоперационные шрамы (рубцы) и их последствия для внешности и здоровья

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.9K
Сейчас все реже можно встретить человека, у которого не было бы шрамов. У меня их два: после кесарева сечения, и еще один – следствие недавней операции. Недавно я прочитала на Хабре статью 2021 года «Сложно избежать рубцов, но можно значительно их уменьшить». Мне показалось, что информации по теме недостаточно.

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


Мои фото до и после работы со швом (35 лет и 43 соответственно, работаю уже лет 5)
Читать дальше →

Про́клятый огонь, или магия препроцессора C

Время на прочтение18 мин
Количество просмотров31K

Задавались ли вы когда-нибудь вопросом, можно ли полноценно программировать при помощи директивы #define в языке C? Полнота по Тьюрингу шаблонов C++ известна весьма широко, например, люди пишут трассировщики лучей, делающие все вычисления во время компиляции (вместо времени исполнения). А как обстоят дела с препроцессором C? Вопрос оказался сильно нетривиальнее, и эта история является, на мой вкус, отличным анекдотом для курса лекций по теории компиляторов, что я готовлю в данный момент. В частности, для лучшего понимания происходящего здесь, рекомендую ознакомиться со второй статьёй, которую я опубликовал параллельно этой: лексер и парсер.

Чтобы не было обманутых впечатлений, предупрежу сразу, что рейтрейсера не будет, но про́клятый код будет очень даже! Итак, поехали. Для начала, почему я вообще задался этим вопросом? Если обычный код компьютерной графики вам скучен, следующий раздел можно пропустить, перематывайте до последней картинки.

Читать далее

Опыт разработки на доработанном pgTap

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.2K

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

pgTap – это расширение PostgreSQL для разработки юнит-тестов. Сами тесты, как, собственно, и pgTap, пишутся на plpgSQL, что означает низкий порог вхождения для разработчиков PG.

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

Читать далее

Как написать худшую статью на Хабре

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

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

Читать далее

Руководство по тестированию push-уведомлений

Время на прочтение13 мин
Количество просмотров12K

Представьте себе страшный сон тестировщика и в целом вашей команды – пользователи пишут в поддержку, что пуши не приходят, сообщения не доходят, а вы никак не можете воспроизвести проблему и у вас даже нет понимания: а как это воспроизводить, от чего вообще зависит доставка пушей?

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

Поэтому эта статья перед вами!

Читать далее

Слишком уж «Быстрый вход» в приложение Т-Банк на Android

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

Последние несколько лет я являюсь клиентом Т-Банка (в девичестве Тинькофф Банк) и использую их Android-приложение, наверное, каждый день. В декабре я обновил его из Huawei AppGallery, и что-то изменилось в моём пользовательском опыте… Мне стало казаться, что меня стали как-то слишком редко спрашивать отпечаток или PIN после запуска приложения тапом по иконке или по уведомлению. Так произошло раз, два, пять, и я невольно обратил на это внимание. А поскольку моя работа связана с информационной безопасностью, я решил немедленно настучать на плохое поведение разработчикам, тем более у них есть программа bug bounty.

Сказано – сделано. Это было кринжевато, так как я не был на 100% уверен в своих словах, но я всё же написал о том, что меня как-то редко стали спрашивать отпечаток/PIN. У меня была включена опция «Быстрый вход», которая в приложении объяснена так: «Если вы используете отпечаток пальца или скан лица, у вас будет 5 минут, чтобы зайти в Т-Банк без авторизации». Без этой опции поведение было ожидаемым: каждое открытие приложения просило отпечаток/PIN, а вот с ней… Когда я думал, что отпечаток/PIN не нужен, то он не был нужен; когда я думал, что он нужен, он обычно почему-то был не нужен.

Стал я экспериментировать, чтобы у меня был более членораздельный отчёт. Мой телефон разблокировался по отпечатку пальца или PIN, и внезапно оказалось, что «Быстрый вход» в приложении Т-Банка означает не то, что я думал. Я-то, наивный, рассуждал просто: залогинился в приложение – можешь его закрыть, но в течение 5 минут тебя пустят обратно без вопросов (кэширование аутентификации в рамках приложения). Мне казалось, что приложение раньше всё время так и работало, примерно до декабря. А теперь я наблюдал своими глазами нечто иное: если ты предъявил отпечаток для разблокировки телефона, то внезапно приложение Т-Банка будет пускать тебя внутрь без вопросов в ближайшие 5 минут!

Что скажут безопасники?

Отрицание, гнев, торг: как дизайну и разработке найти общий язык

Время на прочтение17 мин
Количество просмотров11K

Привет, Хабр! Я Женя, ведущий продуктовый дизайнер в Ozon, и за 10+ лет в дизайне повидала всякого: ошибок в макетах (своих и чужих), недостаточно полных спецификаций, неучтённых корнер-кейсов, сотни сообщений в тредах с разработкой и переносы релиза из-за досадных багов. 

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

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

Осторожно, количество мемов в статье зашкаливает  

Читать далее

Выращиваем тимлидов в домашних условиях

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

Привет! Я Леонид — технический руководитель направления Публикации вакансий в hh.ru.

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

Узнать!

Карантин UI-тестов в iOS

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.6K

Всем привет! Я Тимур — iOS разработчик в платформенной команде hh.ru. Сегодня я расскажу о нестабильных UI-тестах в iOS, и как мы с ними справляемся.

Мы уделяем массу внимания UI-тестам, ведь именно они обеспечивают качество и стабильность в наших iOS-приложениях. Сейчас у нас включено около 600 UI-тестов: они гоняются утром, вечером и на каждом PR в develop. О том, как мы обеспечиваем качество мобильной разработки есть отдельная статья.

Рано или поздно большое количество UI-тестов скорее всего начнут тормозить разработку, потому что их стабильность зависит от множества факторов: стенды (API), инфраструктура (обновление Xcode, машин, СI), кодовая база. Даже из‑за проблем в самом XCUITest тесты могут начать выдавать аномалии.

Если хотите узнать про наш процесс — смело нажимайте "Читать далее".

Читать далее

Похоже, я придумал свой алгоритм поиска кратчайшего пути (upd: меня опередили...)

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров38K

Всем привет! Я реализовал, похоже, собственный алгоритм поиска кратчайшего пути с отрицательными ребрами графа.

Почему собственный? Я искал подобное решение, но не нашел, возможно, оно уже было реализовано, просто плохо поискал. Жду Нобелевскую премию =)

Додумался я до него путем модификации классического Дейкстры. Прошу адекватно отнестись к содержимому, ибо это моя первая статья, и, возможно, я ничего не придумывал и, вообще, этот алгоритм не работает вовсе (но по многочисленным тестам он работает правильно).

Читать далее

Как правильно делать тестовые задания на Python (flask, fastapi)

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

В этой статье я делюсь опытом, накопленным за годы помощи начинающим программистам. Мы в основном будем говорить про Python, но советы будут полезны для ТЗ на любом языке программирования, особенно на позицию Backend Developer.

Вы узнаете, как грамотно организовать структуру проекта, избежать типичных ошибок (например, Query N+1), подготовить своё решение так, чтобы оно выглядело профессионально. Дам советы, как не только выполнить задание, но и превзойти ожидания работодателя.

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

Читать далее

Хронология зарубежной научной фантастики

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

Опубликованный хронологический справочник содержит зарубежные литературные произведения научной фантастики, которые литературоведы и литературные критики относят к классике жанра. Хронология охватывает период со 160 года до 1 января 2025 года.

Читать далее

REST API на котиках

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров31K

Привет любителям котиков! Меня зовут Юля, я backend‑разработчик компании CDEK. Я сама не так давно изучала все эти сложные понятия в программировании, поэтому решила помочь и вам разобраться с одним из них.

С какой стороны IT вы бы не пытались войти — в какой‑то момент столкнётесь с понятием REST API. Эта статья создана, чтобы смягчить данное столкновение. Новые темы всегда легче воспринимаются на простых примерах, ну а если это примеры с котиками, то варианта не разобраться просто нет. Хочется обойтись без сложных научных определений, а рассказать самым простым языком. Поэтому, если вы любите сухие и точные формулировки, то вам нужна другая статья :)

Читать далее

Как я начал играть на хэндпане и почему это идеальное хобби для айтишника

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров22K

Привет! На связи Михаил Семёнов, лидер Platform V Pangolin. Это целевая СУБД в Сбере (здесь мы писали о том, как делаем Pangolin, а здесь — о том, как сами мигрировали с Oracle). Но сегодня я хочу рассказать не про разработку и не о продукте, а о том, что мне помогает делать его. Полтора года назад у меня появилось хобби. Я играю на хэндпане. Это перкуссионный (тот, на котором играют руками) барабан, похожий на НЛО. Когда я впервые услышал его, мне так понравилось звучание, что я полез на Авито искать инструменты и школу c уроками. Нашёл, затянуло, весной выступил на концерте для зала на 300 человек, и вот сейчас жду отпуск и поездку на фестиваль, где буду учиться играть все дни напролет.

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

Читать далее

Оценка рынка труда для технических писателей: Россия vs. США

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.9K

Разберём, как устроен рынок труда для техписов в России и США, вооружившись данными за 2023–2024 годы. Поговорим о зарплатах, условиях работы и трендах, которые определяют будущее профессии. Заодно выясним, почему спрос на специалистов по документации продолжает расти вместе с развитием технологий и какие перспективы открываются перед теми, кто готов учиться, адаптироваться и прокачивать свои навыки.

Вперед за фактами

Приключения с Xbox 360: долгий путь к RGH3

Уровень сложностиСредний
Время на прочтение36 мин
Количество просмотров19K

Несколько лет назад я подумал, что эра Xbox 360 прошла, исследования забиыты, и потихоньку начал избавляться от наследия студенческих времён - приставки продал, запчасти раздал, на форумы залезать перестал. Но у вселенной были совершенно другие планы, стоившие мне нескольких месяцев бессонных ночей…

Читать далее

Как начать писать на Java в VSCode

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

Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно интегрируется с Spring Framework и знает его особенности.

Тогда зачем пробовать что‑то другое?

Привет, Хабр! Меня зовут Константин Шибков, я Java‑разработчик в CDEK.

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

Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу — Visual Studio Code.

В статье делюсь опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».

Перейти на VSCode

Flutter. На пути к совершенству

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров7.7K

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

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

Запаситесь же попкорном из нулей и единиц, устройтесь поудобнее за своими многооконными экранами и готовьтесь к незабываемому путешествию!

Читать далее

От хаоса к порядку. Как мы внедряем стандарты в CDEK

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров6.1K

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

Статья будет полезна менеджерам проектов, разработчикам, тестировщикам, аналитикам и другим IT‑специалистам. Поговорим о способах выработки и применении стандартов, их влиянии на проектирование, разработку, тестирование и стабильность системы в целом. Для примера возьмем ERP CDEK, которая ежедневно обеспечивает работу десятков тысяч пользователей, нескольких сотен тысяч клиентов и позволяет нам обрабатывать до полумиллиона заказов в день.

Читать далее