Мир не стоит на месте. На смену многим мужским профессиям, что были актуальны полвека назад, приходят новые и более современные. Если раньше нас сковывали рамки малоразвитых технологий и выбор будущей профессии был невероятно мал, то сейчас есть где разгуляться. В преддверии праздника всех мужчин я задумался, а какие профессии, мы мужчины 2023 года, выбираем. Как известно, столица всегда отличалась от периферии и уровнем развития, и доходом, и мне стало интересно, чем наш выбор в данных городах отличается. Отслеживать резюме я решил на сервисе по поиску работы, из столичных городов взял Москву и Санкт-Петербург, в регионе Тверь и Иваново. Анализ я провел в программе по аналитике данных своей компании, загрузив туда данные из резюме. На первом этапе я выделил самые популярные профессии в Москве и Санкт-Петербурге, ими стали водитель, менеджер, инженер, специалист, кладовщик, юрист, администратор, шеф-повар, управляющий и замыкает десятку профессия начальник участка.
Новости
О Книгах
Основные тезисы о книгах будет написаны для справочников, технической, научной и научно-популярной литературы. Художественные книги рассмотрены не будут, но часть пунктов применительны и к ним.
Разгон игры «Fred» для ZX Spectrum
История о том, как я вернулся к любимой игре своего детства, немного узнал о том, как она работает, сделал так, чтобы играть в неё было приятнее и интереснее. Маленький кусочек ретро-археологии.
Зачем в Hoff Tech архитекторы или как мы строим и описываем ИТ-ландшафт
Мы последовательно внедряем архитектурный подход в давно работающей компании, буквально на ходу — это напоминает починку работающего двигателя. Здесь неизбежны некоторые особенности, о которых стоит поговорить.
Спойлер: процесс идет, мы набили шишки и выработали подходы, которые хочется показать и обсудить с коллегами. Этот пост — первый из серии статей, где я изложу свое видение работы архитектора и пошагово расскажу, как мы внедряли и практикуем архитектурный подход.
Истории
Какой датчик лучше подходит для хлопкового выключателя KY — 038 или GY — MAX9814?
За последнее время я нахожу множество статей и видио про самодельные хлопковые выключатели поэтому я решил провести исследование темой которого является изучение сигнала и сравнение датчиков GY - MAX9814 и KY - 038 , так как данные датчики довольно популярны у радиолюбителей.
GAN: убийство двух зайцев одним выстрелом для синтеза табличных данных
Аннотация
Синтез табличных данных получил широкое внимание в литературе. Это связано с тем, что доступные данные часто ограничены, неполны или не могут быть легко получены, а конфиденциальность данных становится все более актуальной. В этой работе мы представляем обобщенную структуру генеративной состязательной сети (GAN) для табличного синтеза, которая сочетает в себе состязательное обучение и регуляризацию при отрицательной логарифмической плотности обратимых нейронных сетей. Предлагаемая структура может быть использована для достижения двух различных целей. Во-первых, мы можем далее улучшить качество синтеза, уменьшив отрицательную логарифмическую плотность реальных записей в процессе состязательного обучения. С другой стороны, увеличивая отрицательную логарифмическую плотность реальных записей, можно синтезировать реалистичные поддельные записи таким образом, чтобы они не были слишком близки к реальным записям и снижали вероятность потенциальной утечки информации. Мы провели эксперименты с реальными наборами данных для классификации, регрессии и атак на конфиденциальность. В целом, предлагаемый метод демонстрирует наилучшее качество синтеза (с точки зрения оценочных показателей, ориентированных, например, на задачи F1) при уменьшении отрицательной логарифмической плотности во время состязательного обучения. При увеличении отрицательной плотности журнала результаты наших экспериментов показывают, что расстояние между реальными и поддельными записями увеличивается, повышая устойчивость к атакам на конфиденциальность.
Статический анализ. PHPStan
Цель статьи - помочь разработчикам которые много слышали про статический анализ, но пока что так и не поняли что это такое и с чем его едят.
Статический анализ
Анализ программного обеспечения, производимый без реального выполнения исследуемых программ, процесс выявления ошибок и недочетов в исходном коде программ. Список языков для которых существуют статические анализаторы кода достаточно велик - Си, Си++, C#, Java, Ada, Fortran, Perl, Ruby и т.д. Компиляторы различных языков программирования во время своей работы так же запускают статические анализаторы (как правило усеченные версии) которые находят ошибки. Т.о. использование статичского анализа, в поисках ошибок, приравнивает (а может даже и превосходит, все зависит от используемого анализатора и стиле написания приложения) PHP к компилируемым языкам программирования.
Сообщество PHP прикладывает значительные усилия в сторону развития статического анализа, так типы mixed и never были добавлены для лучшего анализа программами статического анализа.
Необходимость статического анализа
Статический анализ позволяет найти уйму различных проблем в коде, начиная от неправильного использования конструкций языка, заканчивая опечатками. При проведении code review позволяет сосредоточиться на просмотре реализации логики программы, а не на поиске синтаксических ошибок, опечаток, ошибок в данных, мертвый код и т.п.
Поиск и устранение повреждений данных
Это выдержка из восьмой главы книги Rodney Landrum: «SQL Server Tacklebox», в которой описывается, как DBA может устранить последствия повреждения данных. Будут продемонстрированы инструменты и сценарии, необходимые для своевременного поиска и устранения повреждений данных и предотвращения их попадания в резервные копии.
Типизируй с нами, типизируй, как мы…
Сказ о том, как я каррирование типизировал
Первая бесплатная модель перевода с русского на китайский язык и обратно
Представляю вашему вниманию, первую бесплатную offline модель по переводу с русского языка на китайский и обратно.
Ранее, я писал, как можно достаточно легко обучить свою модель по машинному переводу на примере перевода с английского на русский.
В этот раз я решил, реализовать, модель перевода с китайского языка, так как давно хотел и о чем заявлял в комментариях к предыдущей своей статье.
Обработка исключений в Java с использованием сопоставления с образцом (pattern matching)
Обработка исключений в Java с использованием сопоставления с образцом (pattern matching).
Данная статья является логическим продолжением статей
- Обработка исключений в Java в функциональном стиле и
- Обработка исключений в Java в функциональном стиле. Часть 2.
В данной статье рассмотрим способы обработки исключений Java при помощи pattern-matching, как это делается в других FP языках.
Пример на других языках
В функциональных языках программирования существуют удобные средства для работы с исключениями. В Kotlin и Rust это класс Result, в Scala и Haskell — Try. Обработка успешного результата или ошибки может производится при помощи pattern-matching как на примерах ниже.
Scala
val result = divideWithTry(10, 0) match {
case Success(i) => i
case Failure(DivideByZero()) => None
}
Rust
let greeting_file_result = File::open("hello.txt");
let greeting_file = match greeting_file_result {
Ok(file) => file,
Err(error) => panic!("Problem opening the file: {:?}", error),
};
Использование pattern-matching является естественным (idiomatic) в функциональных языках. А как дело обстоит в Java?
Текстовый Инпут с возможностью выделять отдельные слова
Как, вроде бы, простая задача превратилась в головную боль.
С полным ПО-пакетом: каким требованиям должен соответствовать офисный софт для бизнеса
За последние несколько лет офисные программы проделали большой путь от десктопных редакторов со сложным интерфейсом до многопрофильных платформ с функциями управления командой, совместного редактирования и обмена данными. При этом офисных программ стало настолько много, что выбрать подходящую из десятков опций теперь непросто. В этой статье попробуем разобраться, какими характеристиками должны обладать современные офисные пакеты для бизнеса.
Как не потерять всю переписку в Slack? Подробная инструкция, что можно сейчас сделать
В конце февраля Slack разослал владельцам пространств из России письма, где кому‑то объявил о блокировке пространства, а кому‑то о полном отключении тех. поддержки с 21 марта. День Х все ближе, поэтому рассказываем, как сохранить свои данные и как/куда их можно перевезти.
Какой сервис сетевой связности использовать: глобальный роутер Selectel, Direct или Global Connect?
Существует много способов, как организовать инфраструктуру. Например, можно объединить on-premise с сервером или облаком провайдера. Или собрать географически распределенную инфраструктуру в нескольких регионах.
Но как объединить разные серверы и проекты в одну сеть? Какую услугу использовать: глобальный роутер Selectel, Direct или Global Connect — и в чем разница? С такими же вопросами к нам приходят клиенты. Поэтому мы постарались дать гайд по выбору услуги. О том, что из этого получилось, рассказываем под катом.
Эволюция алгоритма фильтрации модификаций товаров в Авито
Всем привет! Меня зовут Денис Колпаков, я бэкенд-инженер в юните Core Services Авито. Долгое время я был овнером критически значимого для бизнеса сервиса форм, а последний год занимаюсь каталогами и каталогизацией.
Я расскажу, как мы решали продуктовую задачу — искали способ отфильтровать модификации товаров из базы данных.
Что нового в Chrome 111?
Давайте погрузимся внутрь и посмотрим, что нового ждет разработчиков в Chrome 111.
Почему UserStory и ныне там?
Когда в коллегах согласья нет,
На лад проект их не пойдет,
И выйдет из него не profit, только cost.
Однажды Бэкендер, Фронтендер да Аналитик
Везти с тасками US взялись,
И вместе трое все в него впряглись;
Из кожи лезут вон, а US всё нет ходу!
Таски для них казались и легки:
Да Фронт рвется в Cloud-решения,
Бэк пятится назад, а Аналитик тянет в воду.
Кто виноват из них, кто прав, - судить не нам;
Да только UserStory и ныне там.
Уверен, многие узнали всем известную басню про трёх товарищей, которые пытаются затащить одну общую хотелку (некий воз). Только вот каждый тянет эту задачу в свою сторону, игнорируя усилия других. Сегодня я поделюсь с моими любимыми читателями примером, как сделать так, чтобы работа над задачей между тремя нашими героями шла дружно и эффективно.
Как мы попробовали Yatagan
У нас в проекте с незапамятных времён для DI используется Dagger. И в целом он нас всем устраивает. Ну, разве что кроме одного маленького пунктика — скорость сборки с kapt. Он прилично увеличивает время сборки. Казалось бы, смирись, страдай, прими ситуацию. Но относительно недавно Yandex представили библиотеку для Dependency Injection. Имя ей Yatagan. У неё есть две важных особенности — она спроектирована быть похожей на Dagger по API, и одна из её целей — меньше влиять на время сборки. Меньшее время сборки — это всегда хорошо, а значит, стоит её как минимум попробовать.
Python, Django и немного защиты кода
Привет, Habr! Компания, в которой я работаю, занимается системами умного дома и видеонаблюдения. Услуга работает по форме SaaS. Но недавно было решено продавать и локальное решение. За основу «коробки» было решено взять облако, немного его переделать и вот готов новый продукт…
С переездом с облачных «рельс» возник ряд вопросов. Один из них в том, что весь проект написан на Python‑ язык интерпретируемый на лету и не защищенный от копирования от слова совсем. Второй момент, что в проекте используется Django. Фреймворк со своими зависимостями, которые еще аукнулись нам в процессе поиска решений. То с чем мы столкнулись и к чему пришли далее в статье.