Каждый из нас хоть раз в жизни сталкивался с плохой работой светофора на перекрестке: неравномерное движение трафика по нему, слишком долгие интервалы переключения и т. д. Всё это из‑за наивного способа переключения «зеленого» и «красного»: светофоры просто работают по расписанию, а где‑то за ними даже присматривают люди, чтоб вовремя переключить. Выглядит как проблема, которую надо решать. Поэтому наша команда поставила перед собой цель разработать «мозг» для светофора, где будут приниматься эффективные решения о переключении его сигналов.
Java EE, QA-engineer
Очень простая и даже местами детская задача — во что она превратилась
Сепараторы, вид сверху
Сначала в карьере что-то бахает, потом мы дробим осколки породы на более мелкие части — примерно 5,7 мм. Наша задача — вынуть из руды все магнитные компоненты. Это мы делаем в магнитно-гравитационных сепараторах. Сначала большие дробилки превращают булыжники руды в гальку, потом — в зерно. Валковые прессы ещё больше истирают руду, которая затем идёт в шаровую мельницу, где она измельчается до стадии, когда магнитные составляющие практически полностью отделяются. В шаровой мельнице используется вода, 95 % которой добавляется на разных этапах. В итоге эту воду всё равно надо как-то «отжимать», и её удобно использовать как среду для мокрой магнитной сепарации.
Сепараторщик — человек с очень хорошим цветовым зрением. Время от времени он смотрит на цвет жидкости в МГС и «на глаз» определяет статус процесса: цвет от светло-бежевого до коричневого говорит о нормальной работе сепаратора. А если цвет становится более тёмным — это значит, что сепаратор начинает «хвостить» и пора вмешаться.
Поскольку отличить на глаз #996512 от #BF6009 легко, а вот от #88551F довольно сложно, на производстве предложили прикрутить к сепаратору колориметр. Это спасло бы от того, что они «хвостят», то есть подняло бы КПД на пару процентов и защитило от излишнего износа в нерасчётных режимах работы.
Современная адаптация матрицы Ансоффа. Матрица рынок-технологии
Темпы изменений внешней и внутренней среды компаний высоки, поэтому стратегия должна быть простой, быстрой и соответствовать современным технологиям. Все больше стратегий разрабатывается и управляется с использованием Agile-подхода. Однако доклады про Аджайл хорошо звучат на конференциях, в реальности компании, особенно из IT-сектора, продолжают использовать каскадный подход, основанный на анализе и расчетах.
Несмотря на необходимость быстрых решений и гибкого подхода к тактическим задачам, стратегия все равно важна, так как руководители компании сталкиваются с проблемой высокой энтропии. Потребность управленцев определить основные направления работы и планировать будущее не исчезла.
Стратегию не выкинуть, но она становится более технологичной, гибкой и учитывает человеческий фактор. В этой статье мы рассмотрим инструменты для создания первого, портфельного, уровня стратегии.
Введение в технологическую стратегию для ИИ-стартапа
Запуск стартапа всегда сопряжен с множеством вызовов и неопределенностей. В интернете можно найти множество советов по запуску стартапа с точки зрения бизнеса, но редко кто освещает этот процесс с позиции технического директора (CTO). Эта статья - начало серии, в которой я буду делиться лучшими практиками из своего опыта.
Как понять, что сайт был загружен из кэша
Не так давно потребовалось узнать, что сайт был загружен из кэша — для просмотра и сравнения скорости “холодного” старта и скорости повторной загрузки, когда статические ресурсы уже закэшированы браузером.
Сначала казалось, что это простая задача, которую можно решить быстрым и надежным способом (и, скорее всего, есть готовые статьи на эту тему), но оказалось, что хороший способ найти не так просто, так же, информации на эту тему не особо много.
Эта статья показывает способы, с помощью которых можно узнать, был ли загружен ваш сайт из кэша или нет.
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит
Освоив предыдущие части этой серии материалов, вы узнали о том, что такое bash-скрипты, как их писать, как управлять потоком выполнения программы, как работать с файлами. Сегодня мы поговорим о том, как добавить скриптам интерактивности, оснастив их возможностями по получению данных от пользователя и по обработке этих данных.
Ещё один шаг в сторону оптических наушников
История эта началась достаточно давно, и внизу будет некоторый результат моих исследований этой темы. Возможно, кто-то тоже захочет двигаться в таком же направлении. Итак…
Дело в том, что мне не сильно нравится обилие электромагнитных полей вокруг нас, а в последнее время ещё и существенно усугубившееся. Эволюция человеческого тела занимала миллионы и миллионы лет, чтобы приспособиться к возникающим изменениям, исходя из этого, было бы странно ожидать, что человеческое тело быстро приспособится к лавинообразному росту электромагнитного излучения, увеличившегося буквально за десятилетия. Тут, конечно, критики наверняка захотят меня «поддёрнуть», что свет тоже является электромагнитной волной, но я сейчас не об этом, а о более проникающих излучениях, среди которых: сотовая связь, разнообразные беспроводные устройства и прочее, прочее, прочее.
Marshmallow vs. Pydantic: две лучшие библиотеки для сериализации и валидации данных на Python
Сериализация и десериализация данных — это преобразование между необработанной структурой данных и экземплярами классов для их хранения и передачи. Например, преобразование объектов Python в JSON-представление. Мы рассмотрим две популярные Python-библиотеки Marshmallow и Pydantic, которые помогут нам справиться как с преобразованием, так и с валидацией данных. Сначала я представлю вам каждую библиотеку, используя небольшие примеры, а потом мы сравним их и разберем различия. Я также расскажу, чего вам стоит избегать при работе с обеими библиотеками.
Как я случайно превратила свой сокращатель ссылок в приманку для мошенников
Пару месяцев назад я запустила сервис y.gy, навороченный сокращатель URL. Вызвано это было личной нуждой: в другом моём проекте, getwaitlist.com, используется множество реферальных ссылок, а доступные сервисы сокращения url не внушали мне доверия. В итоге я решила создать собственный инструмент, который наверняка окажется полезен не только мне.
Я разработала лучший в своём роде сокращатель со всеми возможными примочками, начиная с обширной кастомизации и заканчивая хорошей аналитикой трафика. Это всё, что мне было нужно. По аналогии со многими аналогичными инструментами я разместила интерфейс «Shorten Link» по центру домашней страницы. Регистрация для использования сервиса не требуется. Я сделала доступ бесплатным и неограниченным, опираясь на принцип: «бесплатность – лучшая маркетинговая стратегия». Закончив с настройкой, я без громких заявлений сделала релиз и начала потихоньку продвигать свой проект.
Тормозящая виртуализация на x86. Небольшая попытка разобраться. Часть 3: Hyper-V
Для лиги лени. Какая-то заумь про то, что не нужно, потому что все равно у нормальных людей все приложения давно в облаках на микросервисах, и прекрасно работают.
Часть 3. Что из этого следует, и как устроен планировщик нормального человека в Hyper-V. Тут не будет ничего нового для тех, кто открывал документацию про корневой раздел (root partition)
Обезл***вание д***ных — это не просто рандомизация
В банке есть проблема: нужно давать доступ к базе данных разработчикам и тестировщикам. Есть куча клиентских данных, которые по PCI DSS требованиям Центробанка и законам о персональных данных вообще нельзя использовать для раскрытия на отделы разработки и тестирования.
Казалось бы, достаточно просто поменять всё на какие-нибудь несимметричные хеши, и всё будет хорошо.
Так вот, не будет.
Дело в том, что база данных банка — это множество связанных между собой таблиц. Где-то они связаны по ФИО и номеру счёта клиента. Где-то по его уникальному идентификатору. Где-то (тут начинается боль) через хранимую процедуру, которая вычисляет сквозной идентификатор на основе этой и соседней таблицы. И так далее.
Обычная ситуация, что разработчик первой версии системы уже десять лет как умер или уехал, а системы ядра, запущенные в старом гипервизоре внутри нового гипервизора (чтобы обеспечить совместимость) ещё в проде.
То есть прежде чем всё это обезличить, сначала надо разобраться в базе данных.
Ультразвуковая ванна. Часть 1
Сегодняшний пост будет посвящен созданию ультразвуковой очистительной ванны в основе которой лежит пьезокерамический излучатель Ланжевена мощностью 60 Вт. В процессе мы рассмотрим из чего состоит устройство, как его настроить чтобы ничего не сгорело и в конце лицезреем очистительные способности, которые по своему действию превосходят Мистера Пропера и всех его знакомых. Ультразвуковая ванна имеет много сфер применения и перечислить все практически невозможно, так как большинство из них будет зависеть только от вашего воображения.
Прежде чем начать растворять свои пальцы в ультразвуковой ванне, давайте разберем как же возникают механические колебания на более простых системах. Одним из примеров таких колебательных механизмов являются магнитострикторы, которые под воздействием магнитного поля могут сжиматься или растягиваться. Такими параметрами обладает обыкновенный феррит от старого дедовского приемника, который наверняка у каждого валяется где-то в гараже.
Как и зачем красть деревья в git
В этой статье я расскажу об одном полезном, но малоизвестном приеме работы с git — как можно легко создать коммит, используя дерево из другого коммита. Проще говоря, как получить нужное состояние проекта на какой-либо ветке, если это состояние уже когда-то и где-то было в репозитории раньше. Будет приведено несколько примеров того, как это позволяет элегантно решать некоторые практические задачи. И в частности я расскажу о найденном мной методе, который позволяет значительно упростить исправление множественных конфликтов при rebase. Кроме того, эта статья — отличный способ понять на практике, что из себя представляет коммит в git-е.
Git Rebase: руководство по использованию
Теория
Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.
Проверка б/у макбука перед покупкой — чек-лист
Данный чек-лист — компиляция нескольких источников, я его делал для себя, когда в конце 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 — это тоже хороший вариант, особенно если он базируется на нормальном четырехядерном процессоре.
Ещё 5 дерзких тренировочных проектов для разработчика (Layer, Squoosh, Калькулятор, Website Crawler, Music Player )
Как заговорить на английском через месяц. 9 простых и проверенных шагов
Меня зовут Марина Могилко, я кофаундер онлайн-платформы LinguaTrip.com.
Мы с командой помогаем людям выучить язык и поступить в зарубежный университет. Я знаю, что за месяц английский не выучишь, но иногда бывают ситуации, когда надо срочно подтянуть язык — предстоит поездка за рубеж или намечается работа в англоязычном проекте. А возможно, просто нет больше сил учить язык и хочется уже начать на нём разговаривать. Для таких случаев мы подобрали простые шаги, которые доступны любому работающему человеку с часом свободного времени в день.
Все советы рассчитаны на тех, кто уже обладает минимальным уровнем английского — учил его в школе или на курсах. Но заговорить через месяц смогут и те, кто только знакомится с языком, правда, им будет труднее. В статье не будет рекомендаций типа «учите язык вместе с носителем языка» или «погрузитесь в языковую среду». Это действенные методы, но они не всегда подходят.
Итак, начинаем! Осторожно: под катом мини-словарик на все случаи жизни.
Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 1
Начнем с того, что создадим простейшее приложение на Spring Boot + JPA (Hibernate). В этом нам поможет Spring Initializr. Из зависимостей выбираем JPA, MySQL и Web. Liquibase тоже можно подключить на этом шаге, но для лучшего понимания мы это сделаем далее вручную.
После Мосигры
Я тут 10 лет писал про Мосигру и обещал рассказать, чем кончилась история. Итак, после продажи Мосигры в мае 2019 действующая на тот момент команда слегка подразбежалась. Спецы по рознице остались в сети, я полгода выходил из операционки, плюс была куча ограничений на то, что не всем можно работать друг с другом — и чтобы мы не занимались настолками, консалтингом по настолкам и пропагандой настолок — это набор стандартных условий для того, чтобы мы не объединились за углом и не создали Мосигр~2, чтобы эффективно конкурировать с Мосигр~1. А, зная слабые места своей же конструкции, искушение могло бы быть велико.
Но мы бы не стали. Потому что второй раз в настольно-розничный бизнес уже не полезли бы. Разве что для развлечения на потребу чёрной душе. Правда, именно это было бы опаснее всего для конкуренции, потому что сеть в своё время так и начиналась. Чисто по приколу.
Дело вот в чём: в какой-то момент возникло ощущение такого огромного монолита, который проще выбросить и переписать с нуля, чем медленно рефакторить. Каждый день росло ощущение, что мы что-то делаем неправильно, но исправить это не можем, поэтому надо просто постараться жить в огне. Говорят, такое происходит с почти каждой компанией по мере роста. В биологии, говорят, именно это причина появления рестарта жизни, потому что чем это всё разгребать в текущем организме, дешевле заделать с десяток новых.
Мы примерно так и сделали.
Java logging. Hello World
Вступление
Думаю, ни для кого не секрет, что такое логгеры и для чего они нужны. За время существования java было создано немало фреймворков логгирования. Среди самых известных можно выделить:
- JUL — java.util.logging
- log4j
- JCL — jakarta commons logging
- Logback
- SLF4J — simple logging facade for java
В данной статье будет рассмотрен каждый из указанных выше фреймворков на уровне «hello world». Будут приведены простые примеры использования основного функционала и конфигурирования. Статья не преследует цель сравнения логгеров между собой и выявление лучшего из них, эту возможность автор оставляет за вами, уважаемые читатели. В конце статьи будут приведены источники, где можно получить более детальную информацию по каждому фреймворку. Также перед прочтением данной статьи рекомендую ознакомиться с публикацией «Java Logging: история кошмара», где описана история развития систем логгирования в Java.
Information
- Rating
- Does not participate
- Location
- Томск, Томская обл., Россия
- Date of birth
- Registered
- Activity