Pull to refresh
27
0
Михаил Мельник @mike114

User

Send message

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

Reading time6 min
Views19K

«The quick brown fox jumps over the lazy dog» — эту фразу на английском знают почти все, кто так или иначе имеет отношение к компьютеру.

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

Читать далее

Микросервисы глазами аналитика

Reading time14 min
Views39K

Расскажу про системы с микросервисной архитектурой (MSA). Как они устроены, как я их анализировала, какие увидела проблемы и преимущества.

Статья не раскрывает лучшие практики использования микросервисов и не разоблачает их излишнюю популярность. Основная цель - описать технологию и процесс работы с ней с точки зрения системного аналитика.

Читать далее

Доллары в глазах: сравниваем российские и американские зарплаты

Reading time7 min
Views116K

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

Данный материал будет полезен разработчикам, Product Manager-ам, аналитикам, тестировщикам, Data Scientist-ам, HR-ам, опытным специалистам уровня middle+, а также всем-всем-всем мечтающим релоцироваться в США.

Читать далее

Шо, опять?

Reading time10 min
Views48K

В работе с гостевыми Wi-Fi сетями столкнулся с неприятной проблемой. Много устройств Apple iPhone и iPad отключается от Wi-Fi при затухании экрана (блокировка) и, при отсутствии мобильного интернета, сообщения из мессенджеров не приходят и гости эмоционально реагировали: «не в АйФоне же дело!? Дома всё в порядке на домашнем роутере!»

Дело почти дошло до «замены шлюза с встроенным контроллером точек доступа», управляющего десятками точек доступа, но ведь у Андроидов и Windows-устройств всё в порядке было...

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

Читать далее

Flutter: как мы выбирали навигацию для мобильного приложения?

Reading time11 min
Views25K

Flutter вышел в стабильной версии в 2018 году. Все это время он активно развивался: появилась поддержка Null safety, расширились возможности по темизации и локализации приложений, добавилось огромное количество новых виджетов. Одно из таких нововведений — Navigator 2.0, выпущенный Flutter осенью 2020 года. Это гибкий инструмент для решения непростой задачи навигации в мобильных приложениях. Разработчики начали применять Navigator 2.0, но столкнулись с трудностями и проблемами, о которых говорили команде Flutter в официальном репозитории, предлагая упростить использование инструмента. Самым подробным материалом по новому подходу является статья в блоге Flutter, но и ее мало для того, чтобы начать работать с Navigator 2.0 в продакшен-приложениях.

Хочу знать больше

CloudReady: личные впечатления от облачной ОС

Reading time5 min
Views29K


У каждого взрослого самостоятельного человека имеется в хозяйстве как минимум один кот древний ноутбук, который продать за вменяемые деньги невозможно, а выкинуть — жалко. У меня это Acer Aspire One с процессором AMD C50 и гигабайтом оперативки. Ноут настолько тормозной, что на нем ворочается с трудом даже довольно «легкий» Linux с XFCE. После долгих и мучительных поисков операционки, способной работать на этом агрегате без лагов, я услышал о проекте CloudReady (https://www.neverware.com/freedownload#home-edition-install), который, как обещали его создатели, «способен вдохнуть вторую жизнь в старое железо». Что ж, попробуем, — решил я. Тому, как прошли эти «пробы», посвящена сегодняшняя заметка.
Читать дальше →

Легко ли собрать выжигатель мозгов? История электромагнитных полей в медицине

Reading time19 min
Views15K

Электромагнитные поля - загадочные и интересные. Мы давно покорили их и они несут нам верную службу во всех областях науки и техники. Но и по сей день главным вопросом, который больше всего всех волнует остаётся их влияние на человеческий организм. В основном это следствие того, что мы знаем о нашем теле наверное даже меньше чем о самих полях, что даёт просто огромный простор для спекуляций. Эта статья прольёт немного света на данную тему (Ахтунг! Много трафика!).

Погоди, где моя шапочка из фольги

Страшные стоматологические истории: от 70-х годов — к нормальной медицине

Reading time12 min
Views33K
image
Рабочее место врача-стоматолога конца XX века. Музейный экспонат.

Стоматология раньше была весьма специфична. Специфична настолько, что вырастила не одно поколение пациентов-стоматофобов, которые натурально падают в обморок от вида инструментов.

Я реально рад, что современные дети не застали этот особый аромат гвоздичного масла, йодоформа и бесконечные ряды пыточных установок УС-30 в одном большом зале. За всей этой красотой даже без намёка на ширмы бдительно надзирала пожилая медсестра, которую время от времени звал кто-то из врачей кодовой фразой: «Люся, давай». И Люся бежала замешивать на стекле шпателем Унифас-цемент, который выглядел как плохо пахнущая строительная субстанция для затирки швов. Работал он примерно так же.

Сегодня будет немного воспоминаний о том, какой стоматологии мы лишились и к чему пришли сегодня. Поговорим про свистящие турбинные наконечники, кипячение шприцов, введение слепочной массы в полости пациента и вообще всё то, что меняет мир к лучшему.
Читать дальше →

C#: Автоматизация Android без посредников (adb)

Reading time6 min
Views18K

Часто приходится автоматизировать то или действие, андроид приложения не являются исключениями.Конечно, все в этом случае прибегают к различным фреймворкам - Appium, Detox, UI Automator, Ranorex, но все эти приложения созданы для тестирования, соответственно потребляют больше ресурсов и их скорость оставляет желать лучшего.Однако есть выход - автоматизировать приложения напрямую с adb, для этого я и дописал эту библиотеку. Она ничем не уступает по возможностям этим фреймворкам , но при этом является достаточно простой и легко разворачиваемой на любой машине. Об этой библиотеке и пойдет речь в статье.

Читать далее

Небинарный *ngIf

Reading time3 min
Views7.2K

Вам когда-нибудь хотелось отобразить состояние загрузки, пока ngIf ждет ответа от async-пайпа? Или, может, вы мечтали передать в ngFor шаблон для пустого массива? Возможно, вы бросили это, потому что вам не хотелось реализовывать базовую логику этих директив самому. На самом деле в этом нет нужды! Один и тот же селектор может подцепить несколько директив, что позволяет расширить функциональность встроенных директив дополнительной логикой.

Читать далее

Запускаем PostgreSQL в Docker: от простого к сложному

Level of difficultyEasy
Reading time12 min
Views642K

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее

Blazor WebAssembly: динамическое создание компонентов по JSON описанию

Reading time4 min
Views5.1K

В заметке описан способ динамического добавления на страницу компонентов по JSON-описанию с помощью DynamicComponent из ASP.NET Core 6.0 (в настоящее время в статусе Preview).

Динамическое создание компонентов пригодится например при реализации конструктора форм:

• Форма описывается JSON-ом;

• Элементы (или контролы) формы не ограничены предустановленным набором. Контролы можно добавлять, в том числе подгружать из других dll-библиотек.

Читать далее

Тестовая ферма из Android-устройств: как собрать, отладить и не взорвать офис

Reading time11 min
Views13K


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

Я Павел Щеваев, CTO студии BIT.GAMES, которая является частью международного игрового бренда MY.GAMES. Вы можете знать нас по RPG «Гильдия Героев», а ваши мамы — по «Домовятам» в Одноклассниках. Да, это были мы. :) Но сегодня речь пойдет о нашем новом проекте Storyngton Hall. Это головоломка «три в ряд» с сюжетом, по которому красивые леди разгадывают загадки, декорируют комнаты, примеряют платья, устраивают балы, и, в конце концов, выходят замуж.
Читать дальше →

Рождение, жизнь и смерть европейской пчелы

Reading time16 min
Views19K

Она не помнит тот момент, когда смогла увидеть мир в красках, ибо, скорее всего, она родилась такой же беззащитной, безглазой, и безногой гусеницей, как и её покойные ныне сёстры-принцессы, вылупившиеся из яиц в улье дупла старого дерева, примерно в третий день своего развития. Яйца с ними были отложены в ячейки специальных сот (маточников) матушкой-королевой, ныне тоже уже покойной.

Читать далее

Ищем логику в «американских горках» графика заражений Covid

Reading time30 min
Views9.6K

Рисунок 1

Пики и падения, сжатия и растяжения, волна за волной всплесков и снижений: в течение полутора лет я ежедневно наблюдал за движениями этой кривой. График фиксирует количество новых обнаруженных случаев Covid-19 в США за каждый день с 21 января 2020 по 20 июля 2021 года. Это 547 дней, или ровно 18 месяцев. Бледные тонкие вертикальные полосы на фоне обозначают сырые ежедневные данные; ярко-синей линией обозначены суммарные средние значения за семь дней. (Другими словами, количество случаев за каждый день усредняется с количеством за шесть предыдущих дней.)

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


Рисунок 2

Моя воображаемая эпидемия была намного проще реальной! Количество ежедневных заражений увеличивается, а затем снижается. Оно не колеблется, как нервный график фондовой биржи. У него нет сезонных всплесков и падений.

График, отслеживающий истинную частоту заболеваний, не меньше дюжины раз сменяет направление, а также имеет множество мелких изгибов. Большая гора посередине имеет холмы по обеим сторонам, а также альпийские долины между крутыми вершинами. Меня озадачивает вся эта структурная картина. Является ли она чистым шумом — результатом случайных флуктуаций, или же у неё есть какой-то движущий механизм, который мы должны узнать, какой-то переключатель, включающий и отключающий процесс заражения каждые несколько месяцев?
Читать дальше →

Обработка русского языка на Java

Reading time4 min
Views12K

Рассказ пойдет об одной новой, общедоступной Java/Kotlin библиотеке, для работы с русским языком. Она позволяет получить исходные формы + морфологическую информацию для большинства слов русского языка. Статья предназначена для тех, кто создает ботов, обрабатывает сообщения и занимается поиском. Для справки, ключевое отличие лемматизации от стеммизации (урезания до нормализованной формы) состоит в том, что лемма удовлятворяет правилам языка, например для слова "яблоками" леммой будет "яблоко", а не просто урезанный корень. Лемма может быть и более сложной, например для слова люди, начальная форма – человек. В этой статье мы рассмотрим способ быстрого извлечения такой информации из морфологического словаря.

Запустить процесс

Обход блокировки РКН с помощью магии Service Worker'ов

Reading time6 min
Views24K


Приветствую, Хабр!

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

TL;DR


Суть способа в обыгрывании возможности Service Worker'ов проверять контент на подконтрольных ему страницам. Если воркер не находит определённого текста на странице — происходит редирект. Таким образом вместо заглушки провайдера о том, что сайт заблокирован пользователь переходит на незаблокированный домен.
Читать дальше →

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон

Reading time16 min
Views45K


Очередная история успеха после череды неудач. Расскажу, чего мне стоило получить офферы от Facebook*, Google, Amazon, JP Morgan в Европе, как я готовился, сколько собесов зафейлил перед тем, как удача повернулась ко мне правильной стороной.


TL;DR. Послал сотни резюме. Прорешал около 100 задач на Leetcode. Прочел книжку по архитектуре (не той, которая про дома, а той, которая system design). Прошел 9 интервью. Получил 4 оффера. Принял 1. Жил, пока что, не очень долго, но, вполне себе, счастливо в Лондоне.
Читать дальше →

Specification By Example – BDD для прагматиков

Reading time11 min
Views99K

На Хабре довольно много упоминаний о BDD. К сожалению, статьи, которые я читал, так и не дали мне ответа на вопрос «а зачем мне все это нужно?» Ответ пришел с неожиданной стороны. Когда я всерьез занялся вопросом автоматизации приемочного тестирования, мне под руку попалась книга Gojko Adzic (не уверен в транскрипции, поэтому не стал переводить имя автора) Specification By Example.
Читая ее, я не уставал удивляться: каждая новая глава описывала шишки, которые я набивал на своем личном опыте, и предлагала решения аналогичные или лучшие, чем те, к которым я приходил сам методом проб и ошибок.

Эта статья – первая в цикле «BDD для прагматиков». В ней описаны ключевые элементы наиболее эффективного, на мой взгляд, процесса разработки коммерческого ПО в современных условиях. Два продолжения будут посвящены работе со SpecFlow и автоматизации приемочного тестирования.
Часть первая - живая документация

Почему графику в видеоиграх по-прежнему так сложно создавать?

Reading time28 min
Views34K

Введение


В этом посте будут рассмотрены трудности и аспекты производства, которые нужно учитывать при создании новых методик и алгоритмов рендеринга/графики, особенно в контексте прикладных исследований рендеринга реального времени. Я буду рассказывать о своём личном опыте работы над Witcher 2, Assassin’s Creed 4: Black Flag, Far Cry 4 и God of War.

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

Я слышал вопросы типа «почему эта великолепная исследовательская методика X не используется в продакшене?» и от геймеров, и от коллег из научных кругов. На то всегда бывают очень веские причины!

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

Я вспоминаю об этой теме ещё и каждый раз, когда слышу дискуссии о том, что «фотограмметрия, трассировка лучей, нейронный рендеринг, [вставить любую другую новую тему] станет универсальным решением для рендеринга и заменит всё остальное!». Спойлер: этого не случится (по крайней мере, в ближайшее время).
Читать дальше →

Information

Rating
Does not participate
Location
New South Wales, Австралия
Date of birth
Registered
Activity