Pull to refresh
11
0
Karassev D. S. @Skerrigan

Java EE, QA-engineer

Send message

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

Level of difficulty Medium
Reading time 10 min
Views 14K
Картинка Freepik

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

Дело в том, что мне не сильно нравится обилие электромагнитных полей вокруг нас, а в последнее время ещё и существенно усугубившееся. Эволюция человеческого тела занимала миллионы и миллионы лет, чтобы приспособиться к возникающим изменениям, исходя из этого, было бы странно ожидать, что человеческое тело быстро приспособится к лавинообразному росту электромагнитного излучения, увеличившегося буквально за десятилетия. Тут, конечно, критики наверняка захотят меня «поддёрнуть», что свет тоже является электромагнитной волной, но я сейчас не об этом, а о более проникающих излучениях, среди которых: сотовая связь, разнообразные беспроводные устройства и прочее, прочее, прочее.
Читать дальше →
Total votes 60: ↑51 and ↓9 +42
Comments 97

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

Reading time 10 min
Views 36K

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

Читать далее
Total votes 33: ↑33 and ↓0 +33
Comments 3

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

Level of difficulty Medium
Reading time 7 min
Views 57K

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

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

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

Level of difficulty Hard
Reading time 3 min
Views 7.9K

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

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

Читать далее
Total votes 37: ↑26 and ↓11 +15
Comments 5

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

Reading time 7 min
Views 27K


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

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

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

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

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

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

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

Reading time 10 min
Views 84K
Хомяки приветствуют вас, друзья.

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



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

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

Reading time 15 min
Views 26K

trees


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

Читать дальше →
Total votes 35: ↑35 and ↓0 +35
Comments 20

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

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

Теория


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


Читать дальше →
Total votes 122: ↑121 and ↓1 +120
Comments 169

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

Reading time 6 min
Views 221K
Статья доработана с учетом ценных комментариев, дополнен список источников.
Данный чек-лист — компиляция нескольких источников, я его делал для себя, когда в конце 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 — это тоже хороший вариант, особенно если он базируется на нормальном четырехядерном процессоре.
Читать дальше →
Total votes 76: ↑70 and ↓6 +64
Comments 67

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

Reading time 2 min
Views 14K
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 18

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

Reading time 8 min
Views 385K
Хабр, привет!

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

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

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

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

image
Total votes 99: ↑64 and ↓35 +29
Comments 184

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

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

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

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

Reading time 12 min
Views 28K


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

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

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

Мы примерно так и сделали.
Читать дальше →
Total votes 215: ↑211 and ↓4 +207
Comments 74

Java logging. Hello World

Reading time 14 min
Views 288K

Вступление


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

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

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

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

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

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

Reading time 6 min
Views 31K

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

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

Читать далее
Total votes 58: ↑35 and ↓23 +12
Comments 58

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

Reading time 5 min
Views 12K

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

Поехали!
Total votes 56: ↑56 and ↓0 +56
Comments 109

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

Reading time 8 min
Views 3K

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

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

Читать далее
Total votes 23: ↑23 and ↓0 +23
Comments 4

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

Reading time 10 min
Views 58K
image

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

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

Reading time 9 min
Views 106K

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


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

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

Information

Rating
Does not participate
Location
Томск, Томская обл., Россия
Date of birth
Registered
Activity