![](https://webcf.waybackmachine.org/web/20211121165810im_/https://habrastorage.org/getpro/habr/upload_files/ecb/7f4/260/ecb7f4260684a95a2ec8d02616e0b10c.png)
Начав изучать библиотеку Weka я обнаружила, что в Интернете очень мало информации о ней на русском языке – как с ней работать и как ее использовать. Эта статья будет вводной для знакомства с библиотекой.
Начав изучать библиотеку Weka я обнаружила, что в Интернете очень мало информации о ней на русском языке – как с ней работать и как ее использовать. Эта статья будет вводной для знакомства с библиотекой.
Всем привет!
Продолжаем дайджесты новостей и других материалов о свободном и открытом ПО и немного о железе. Всё самое главное про пингвинов и не только, в России и мире.
Главные темы нового выпуска:
И многое другое…
Здравствуйте, уважаемые читатели! Сегодня я расскажу вам об интересном эксперименте - измерении угла положения синус-косинусного вращающегося трансформатора с помощью микроконтроллера K1986BE92QI фирмы Миландр без применения каких-либо специализированных микросхем-контроллеров СКВТ!
Недавно мне на глаза попалось техническое описание советского комплектного электропривода "Размер-2М". Конструктивно это был самый настоящий сервопривод! В качестве датчиков обратной связи на двигателях шпинделя и подач были установлены синус-косинусные вращающиеся трансформаторы (СКВТ), или по-другому, резольверы. С помощью СКВТ помимо фактической скорости вращения определялся фактический угол поворота ротора и эмулировались сигналы инкрементальных энкодеров - двухфазные импульсы для передачи информации о перемещения в УЧПУ станка. Разрешающая способность была равна 10000 дискрет на один оборот ротора. При шаге винта в 10мм это означало что одна дискрета равна одному микрону - и всё это уже было в начале 1980-х! А у меня как нельзя кстати завалялся трофейный советский СКВТ ФВ67-12-008 от "Размера", доставшийся мне на опыты. И мне стало интересно, а как же в "Размере" определялось положение ротора СКВТ? Оказывается, конструкторы "Размера" применили довольно простой фазовый метод. Недолго думая, я решил воспроизвести "Размеровский" измеритель положения СКВТ в лабораторных условиях. Изначально вся затея с СКВТ была чистым экспериментом, который неожиданно дал хорошие результаты и вылился в небольшое исследование по повышению производительности программного кода для микроконтроллеров с ядром ARM Cortex-M3.
Всё началось с мема, который вы видите выше.
Сначала я посмеялся. А потом задумался: может ли быть так, что скриншот базы равноценен её снэпшоту?
Для этого у нас должно быть такое графическое представление базы, которое 1 к 1 отображает данные и структуру. Если сделать скриншот такого представления, из него можно восстановить базу.
Или... графическое представление и должно быть базой!
Не смотря на то, что Python был бы предпочтительным инструментом для исследовательского анализа, я хотел посмотреть, смогу ли я провести весь исследовательский анализ с помощью SQL-запросов. Моя цель - показать, насколько сильно может помочь SQL для рабочего процесса.
Хотя SQL имеет ограничения с визуализацией данных, всё равно, можно получить больше выгоды, быстро написав запросы и выведя результаты.
Являясь не Android разработчиком, но имея хорошие базовые знания в Java, мне выпала небольшая research задача под Android платформу, для решения которой нужно было интегрировать стороннюю с/c++ библиотеку в Android Studio проект. В данном статье будет:
Поиск по ключевым словам в русскоязычном сегменте интернета на удивление дал мало результатов на данную тему. Но нашлась единственная довольно подробная статья на хабре https://habr.com/ru/company/e-Legion/blog/487046/, с которой вы заметите как сходства, так и различия. Для сравнения подходов решил так же для примера использовать проект с открытым исходным кодом https://opus-codec.org, что и в указанной статье. Система на которой будут выполняться все эксперименты MacOS Big Sur имея на борту cmake версии 3.19.3.
Сразу хочу отметить, что не являюсь экспертом по CMake и Android. Все действия, описанные в статье, вы делаете на свой страх и риск и автор не несет никакой ответственности за ваше потраченное время.
Эта статья носит прикладное значение и не объясняет все подробности дифференциальной приватности. Цель статьи - познакомить читателя с библиотекой Opacus и показать, как изменять классификатор без потерь в эффективности обучения.
Анонимизация не всегда эффективна
Приватность - сложная вещь.
Как показала практика Netflix в соревновании Netflix Prize простой анонимизации набора данных недостаточно.
Мы разберем, как использовать библиотеку, на примере обучения модели классификации PyTorch набору MNIST с использованием DP-SGD.
Если вдруг поиск на вашем проекте начал тормозить, то самое время присмотреться к поисковым движкам.
Сегодня я расскажу как установить и настроить поисковой движок ElasticSearch на сервере под управлением Ubuntu и сделать авто импорт данных из MySql, а также мы настроим взаимодействие Yii с движком ES.
С чего начинается работа с приложением, ботом или сайтом?
Ответ прост — с регистрации пользователя в вашей системе.
В этой статье я расскажу, с какими неочевидными проблемами мы столкнулись при разработке регистрации в ботах, сайтах и приложениях. Простая на первый взгляд операция может принести существенные проблемы, если не учитывать некоторые нюансы.
Мне всегда нравилась История. История дает понять мотивацию и причины произошедших событий, она срывает покровы, обличая случайные успехи и спланированные крахи. Сегодня я попытаюсь проследить одну ветвь эволюции браузерных движков и показать — насколько велика связь в мире открытых технологий.
Недавно с такой темой я выступил на конференции Future Data*, организованной Sisu, и поскольку мыслю я в прозе, а не картинками в PowerPoint, мне пришлось написать пост, прежде чем собрать все слайды вместе. (*Речь о первой ежегодной конференции, которая состоялась осенью 2020 года — прим. переводчика) Немного времени мне потребовалось на то, чтобы всё это отшлифовать и опубликовать, и, надеюсь, для вас материал окажется ценным. Если хотите услышать выступление полностью, вы можете сделать это здесь.
Эта статья является переводом материала «Untangling Microservices, or Balancing Complexity in Distributed Systems».
Расцвет микросервисов закончился. Uber преобразовывает тысячи микросервисов в более управляемое решение [1]; Келси Хайтауэр предсказывает, что будущее за монолитами [2]; и даже Сэм Ньюман заявляет, что микросервисы никогда не должны быть выбором по умолчанию, а скорее крайним средством [3].
Что происходит? Почему так много проектов стало невозможно поддерживать, несмотря на обещание микросервисов простоты и гибкости? Или все-таки монолиты лучше?
В этом посте я хочу ответить на эти вопросы. Вы узнаете об общих проблемах проектирования, которые превращают микросервисы в распределенные большие комки грязи (distributed big balls of mud), и, конечно же, о том, как их избежать.
В этой статье я покажу очередь с приоритетом с использованием linked list. Алгоритм простой и позволяет получить приоритетные сообщения раньше, чем остальные сообщения.
Я сначала поискал в интернете реализацию такого алгоритма. Первое, что я нашел, это решение на c++ с обычными массивами. То есть создается шаблонный класс и в нем создается два массива, один для чисел, другой для приоритетности. Мне показалось, что решение не очень хорошее, потому что при добавлении нового числа, создается новый массив и из старого копируются данные в новый массив. Чем больше очередь, тем больше копирования каждый раз. Ещё проблема при использовании массива - это что нельзя использовать в другом потоке очередь, пока ты не выполнишь полностью функцию вставки данных в очередь, так как смениться указатель на массив и так далее.
Алгоритм - очередь с приоритетом достаточно простой, мы создаем структуру, я опять буду показывать пример кода на C, и входящие данные будут числа. итак.
В этой статье я покажу двоичное дерево без рекурсии. Я думаю что оно в некоторых случаях будет более удобно, нежели дерево с рекурсией.
Итак, начнем. Допустим есть задачка, получить много данных и вывести совпадения. Я нашел одно решение в интернете и понял как это сделать просто. Мне понравилось это решение, но мы знаем что рекурсия заполняет стек и если будет большая вложенность, то будет много выходов из функций. Я захотел попробовать сделать такой алгоритм, который не нуждается в рекурсии. Я буду писать на C, потому что это такой язык, который могут понять все.
Первым делом определим структуру.
Так уж получилось, что в последнее время я много и долго болею 🤒
Мой стандартный способ лечения "если простуду лечить — она пройдет за 7 дней, а если не лечить — за неделю" перестал работать (ох уж эта старость).
Пришлось обращаться к врачу и прибегать к особенному лечению.
Под особенным лечением — я имею ввиду гигантский список из таблеток, уколов и других препаратов со всякими особенностями.
Запомнить это все невозможно - поэтому пришлось визуализировать с помощью костылей и велосипедов.
В этой статье речь пойдёт про некоторые его преимущества, которые, на мой взгляд, наиболее важны для конечного пользователя.
Проектирование своего проекта по DDD последнее время становится всё более популярным. Сейчас не будем углубляться в данную методологию с её принципами, плюсами и минусами. Я хочу рассказать с какой проблемой столкнулась наша команда при использовании данной методологии на PHP, а именно внедрении Data Mapper’а Doctrine ORM.
Чтобы более понятно донести нашу проблему я буду использовать известный всем Агрегат Заказа (Order) и позиции заказа (OrderLine), которые являются коллекциями Dortrine ORM. Так же сильно упростим данный агрегат, чтобы фокусироваться на самой проблеме. И так начинаем!
Для начала мы создадим наш агрегат заказа.