Как стать автором
Обновить
11
0
Karassev D. S. @Skerrigan

Java EE, QA-engineer

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

Ещё один шаг в сторону оптических наушников

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

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

Дело в том, что мне не сильно нравится обилие электромагнитных полей вокруг нас, а в последнее время ещё и существенно усугубившееся. Эволюция человеческого тела занимала миллионы и миллионы лет, чтобы приспособиться к возникающим изменениям, исходя из этого, было бы странно ожидать, что человеческое тело быстро приспособится к лавинообразному росту электромагнитного излучения, увеличившегося буквально за десятилетия. Тут, конечно, критики наверняка захотят меня «поддёрнуть», что свет тоже является электромагнитной волной, но я сейчас не об этом, а о более проникающих излучениях, среди которых: сотовая связь, разнообразные беспроводные устройства и прочее, прочее, прочее.
Читать дальше →
Всего голосов 61: ↑52 и ↓9+43
Комментарии97

Marshmallow vs. Pydantic: две лучшие библиотеки для сериализации и валидации данных на Python

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

Сериализация и десериализация данных — это преобразование между необработанной структурой данных и экземплярами классов для их хранения и передачи. Например, преобразование объектов Python в JSON-представление. Мы рассмотрим две популярные Python-библиотеки Marshmallow и Pydantic, которые помогут нам справиться как с преобразованием, так и с валидацией данных. Сначала я представлю вам каждую библиотеку, используя небольшие примеры, а потом мы сравним их и разберем различия. Я также расскажу, чего вам стоит избегать при работе с обеими библиотеками.

Читать далее
Всего голосов 33: ↑33 и ↓0+33
Комментарии3

Как я случайно превратила свой сокращатель ссылок в приманку для мошенников

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

Пару месяцев назад я запустила сервис y.gy, навороченный сокращатель URL. Вызвано это было личной нуждой: в другом моём проекте, getwaitlist.com, используется множество реферальных ссылок, а доступные сервисы сокращения url не внушали мне доверия. В итоге я решила создать собственный инструмент, который наверняка окажется полезен не только мне.

Я разработала лучший в своём роде сокращатель со всеми возможными примочками, начиная с обширной кастомизации и заканчивая хорошей аналитикой трафика. Это всё, что мне было нужно. По аналогии со многими аналогичными инструментами я разместила интерфейс «Shorten Link» по центру домашней страницы. Регистрация для использования сервиса не требуется. Я сделала доступ бесплатным и неограниченным, опираясь на принцип: «бесплатность – лучшая маркетинговая стратегия». Закончив с настройкой, я без громких заявлений сделала релиз и начала потихоньку продвигать свой проект.
Читать дальше →
Всего голосов 146: ↑142 и ↓4+138
Комментарии70

Тормозящая виртуализация на x86. Небольшая попытка разобраться. Часть 3: Hyper-V

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

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

Часть 3. Что из этого следует, и как устроен планировщик нормального человека в Hyper-V. Тут не будет ничего нового для тех, кто открывал документацию про корневой раздел (root partition)

Читать далее
Всего голосов 38: ↑27 и ↓11+16
Комментарии5

Обезл***вание д***ных — это не просто рандомизация

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


В банке есть проблема: нужно давать доступ к базе данных разработчикам и тестировщикам. Есть куча клиентских данных, которые по PCI DSS требованиям Центробанка и законам о персональных данных вообще нельзя использовать для раскрытия на отделы разработки и тестирования.

Казалось бы, достаточно просто поменять всё на какие-нибудь несимметричные хеши, и всё будет хорошо.

Так вот, не будет.

Дело в том, что база данных банка — это множество связанных между собой таблиц. Где-то они связаны по ФИО и номеру счёта клиента. Где-то по его уникальному идентификатору. Где-то (тут начинается боль) через хранимую процедуру, которая вычисляет сквозной идентификатор на основе этой и соседней таблицы. И так далее.

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

То есть прежде чем всё это обезличить, сначала надо разобраться в базе данных.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии24

Ультразвуковая ванна. Часть 1

Время на прочтение10 мин
Количество просмотров84K
Хомяки приветствуют вас, друзья.

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



Прежде чем начать растворять свои пальцы в ультразвуковой ванне, давайте разберем как же возникают механические колебания на более простых системах. Одним из примеров таких колебательных механизмов являются магнитострикторы, которые под воздействием магнитного поля могут сжиматься или растягиваться. Такими параметрами обладает обыкновенный феррит от старого дедовского приемника, который наверняка у каждого валяется где-то в гараже.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии35

Как и зачем красть деревья в git

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

trees


В этой статье я расскажу об одном полезном, но малоизвестном приеме работы с git — как можно легко создать коммит, используя дерево из другого коммита. Проще говоря, как получить нужное состояние проекта на какой-либо ветке, если это состояние уже когда-то и где-то было в репозитории раньше. Будет приведено несколько примеров того, как это позволяет элегантно решать некоторые практические задачи. И в частности я расскажу о найденном мной методе, который позволяет значительно упростить исправление множественных конфликтов при rebase. Кроме того, эта статья — отличный способ понять на практике, что из себя представляет коммит в git-е.

Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии20

Git Rebase: руководство по использованию

Время на прочтение8 мин
Количество просмотров795K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


Читать дальше →
Всего голосов 122: ↑121 и ↓1+120
Комментарии169

Проверка б/у макбука перед покупкой — чек-лист

Время на прочтение6 мин
Количество просмотров222K
Статья доработана с учетом ценных комментариев, дополнен список источников.
Данный чек-лист — компиляция нескольких источников, я его делал для себя, когда в конце 2019 года покупал 13" б/у макбук 2015 года, последний из имевших нормальную клавиатуру и набор портов, перед тем как Apple перешла на клавиатуру-бабочку и usb-с порты.

Какую модель б/у макбука стоит брать? Вместо введения


На этот вопрос нет однозначного ответа, поскольку все зависит от ваших задач. Для начала 2020 года и задач «офисной» работы и серфинга я бы сформулировал ответ так — можно брать любой мак от 2014 и более позднего года выпуска, на полноценном процессоре (m5 и m7 брать скорее нежелательно). Macbook pro таким образом предпочтительнее macbook air, поскольку у последних процессор и система охлаждения обычно проигрывает в сравнении.

Оптимальный выбор, который проработает еще несколько лет без проблем — это модели с четырехядерным процессором (не путать с четырехпоточным!), такие ставили обычно в 15" модели. Оперативки не менее 8 Гб, SSD лучше 256 Гб и больше, хотя на 128 с определенными неудобствами жить тоже можно. Батарея оптимально с менее чем 500 циклами перезарядки.

Стоимость 13" макбуков 2014-2016 годов колеблется от 40 до 55 тыс. рублей, причем варианты в хорошем состоянии около 40-45 тыс. мне кажутся наиболее выгодными с точки зрения дилеммы «взять б/у или доложить и взять новый».

Надо иметь ввиду, что все модели 2013-2015 года включительно очень ограничены с точки зрения апгрейда, а апгрейд моделей с 2016 и более поздних вовсе невозможен, поэтому берите сразу конфигурацию, которой вам хватит на ближайшие 2-3 года.

Моделей с клавиатурой-бабочкой (2016-2019 гг) не то что бы надо избегать, но надо отдавать себе отчет, что они требуют радикально более бережного к себе отношения, чтобы клавиатура проработала дольше. Сейчас полно предложений продажи mac mini — это тоже хороший вариант, особенно если он базируется на нормальном четырехядерном процессоре.
Читать дальше →
Всего голосов 76: ↑70 и ↓6+64
Комментарии67

Ещё 5 дерзких тренировочных проектов для разработчика (Layer, Squoosh, Калькулятор, Website Crawler, Music Player )

Время на прочтение2 мин
Количество просмотров14K
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии18

Как заговорить на английском через месяц. 9 простых и проверенных шагов

Время на прочтение8 мин
Количество просмотров389K
Хабр, привет!

Меня зовут Марина Могилко, я кофаундер онлайн-платформы LinguaTrip.com.

Мы с командой помогаем людям выучить язык и поступить в зарубежный университет. Я знаю, что за месяц английский не выучишь, но иногда бывают ситуации, когда надо срочно подтянуть язык — предстоит поездка за рубеж или намечается работа в англоязычном проекте. А возможно, просто нет больше сил учить язык и хочется уже начать на нём разговаривать. Для таких случаев мы подобрали простые шаги, которые доступны любому работающему человеку с часом свободного времени в день.

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

Итак, начинаем! Осторожно: под катом мини-словарик на все случаи жизни.

image
Всего голосов 99: ↑64 и ↓35+29
Комментарии184

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 1

Время на прочтение5 мин
Количество просмотров87K
В этой статье я разберу использование утилиты Liquibase в Spring Boot приложениях для версионирования структуры реляционной БД и миграции этой структуры с одной версии на другую. В первой части разберем базовый пример, а во второй поговорим об использовании liquibase-mave-plugin для отката изменений и автоматической генерации скриптов через сравнение структур БД.

Начнем с того, что создадим простейшее приложение на Spring Boot + JPA (Hibernate). В этом нам поможет Spring Initializr. Из зависимостей выбираем JPA, MySQL и Web. Liquibase тоже можно подключить на этом шаге, но для лучшего понимания мы это сделаем далее вручную.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии40

После Мосигры

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


Я тут 10 лет писал про Мосигру и обещал рассказать, чем кончилась история. Итак, после продажи Мосигры в мае 2019 действующая на тот момент команда слегка подразбежалась. Спецы по рознице остались в сети, я полгода выходил из операционки, плюс была куча ограничений на то, что не всем можно работать друг с другом — и чтобы мы не занимались настолками, консалтингом по настолкам и пропагандой настолок — это набор стандартных условий для того, чтобы мы не объединились за углом и не создали Мосигр~2, чтобы эффективно конкурировать с Мосигр~1. А, зная слабые места своей же конструкции, искушение могло бы быть велико.

Но мы бы не стали. Потому что второй раз в настольно-розничный бизнес уже не полезли бы. Разве что для развлечения на потребу чёрной душе. Правда, именно это было бы опаснее всего для конкуренции, потому что сеть в своё время так и начиналась. Чисто по приколу.

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

Мы примерно так и сделали.
Читать дальше →
Всего голосов 215: ↑211 и ↓4+207
Комментарии74

Java logging. Hello World

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

Вступление


Думаю, ни для кого не секрет, что такое логгеры и для чего они нужны. За время существования java было создано немало фреймворков логгирования. Среди самых известных можно выделить:

  • JUL — java.util.logging
  • log4j
  • JCL — jakarta commons logging
  • Logback
  • SLF4J — simple logging facade for java

В данной статье будет рассмотрен каждый из указанных выше фреймворков на уровне «hello world». Будут приведены простые примеры использования основного функционала и конфигурирования. Статья не преследует цель сравнения логгеров между собой и выявление лучшего из них, эту возможность автор оставляет за вами, уважаемые читатели. В конце статьи будут приведены источники, где можно получить более детальную информацию по каждому фреймворку. Также перед прочтением данной статьи рекомендую ознакомиться с публикацией «Java Logging: история кошмара», где описана история развития систем логгирования в Java.
Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии14

Allure-Framework. Работа с кодом

Время на прочтение11 мин
Количество просмотров106K
Продолжая серию публикаций о возможностях Allure-framework, сегодня мы поговорим о работе с кодом. Под катом разбираем, что такое шаг теста, как выводить информацию в отчет при выполнении шагов и какие бывают категории дефектов. Кроме того, расскажем об аннотациях Allure. Дальше еще интереснее!
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии5

Почему вам следует полностью переходить на Kotlin

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

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

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

Читать далее
Всего голосов 58: ↑35 и ↓23+12
Комментарии58

Калькулятор производства пластиковых корпусов для приборов

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

Сейчас я расскажу, сколько будет стоить разработать и произвести пластиковый корпус для устройства, от 1 до 200 000 штук. Все максимально по делу — в сад лирику, только слайды цифры.

Поехали!
Всего голосов 56: ↑56 и ↓0+56
Комментарии109

Danger. Автоматизируем ревью на CI и пишем свой плагин

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

Привет, я Татьяна Родионова, Android-разработчица в Lamoda. Как-то раз передо мной появилась задача упростить ревью пул-реквестов с помощью Danger. Я решила добавить автоматическую проверку код стайла, используя ktlint. Но оказалось, что Danger не поддерживает такое решение, поэтому я добавила такую проверку сама :) 

Моя статья поможет разобраться в том, как настроить Danger и как заставить его выполнять задачи немного сложнее тех, которые есть в официальном туториале.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Вымой руки. Радиоактивный инцидент в Гоянии

Время на прочтение10 мин
Количество просмотров58K
image

Помимо находящихся у всех на слуху печально известных радиоактивных аварий вроде Чернобыля или Фукусимы, произошло огромное количество инцидентов, не так широко известных (но, тем не менее, смертоносных). Например, «Дом-убийца» в Краматорске, в стене которого случайно оказалась пропавшая 10 лет назад капсула с цезием-137. Или случай в Хуаресе, когда капсула с кобальтом-60 попала в груду металлолома, из которого потом понаделали радиоактивной арматуры. Все эти инциденты объединяет одна простая вещь — безалаберность. Если человек не знает, что он держит в руках предмет, способный убить десятки человек, то и обходиться с ним он будет соответственно. Похожий случай и произошёл в Бразилии, когда два человека с сомнительным социальным статусом решили поковыряться в честно украденном оборудовании.
Читать дальше →
Всего голосов 150: ↑148 и ↓2+146
Комментарии181

Радиоактивные предметы среди нас

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

Длинный пролог


13 сентября 1987 года в жарком бразильском городе Гойяния произошла мелкая кража. Двое мужчин по имени Роберто Алвес и Вагнер Перейра, воспользовавшись отсутствием охраны, пробрались в заброшенный больничный корпус. Разобрав на металлолом странную медицинскую установку, они погрузили детали в тачку и покатили ее домой к Алвесу. Никто не знал, что это начало самого пугающего инцидента с радиоактивными материалами в гражданской сфере.

Да, сотрудники Гойянского Института радиотерапии были в курсе, что при переезде в новое здание установленный в 1977 году громоздкий аппарат лучевой терапии остался на прежнем месте. Но собственник здания открыл имущественный спор с организацией. В дело вступили страховщики, при поддержке полиции запретившие вывозить оставшееся оборудование. На это один из совладельцев Института, Карлос Фигуеиредо Безеррил, только сказал напоследок, что на президенте страховой компании Лисио Боргесе будет лежать ответственность за то, что произойдет с «цезиевой бомбой».
Читать дальше →
Всего голосов 120: ↑117 и ↓3+114
Комментарии345
1
23 ...

Информация

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