Как стать автором
Поиск
Написать публикацию
Обновить
26
0
Андрей Родин @AndreyRodin

Разработчик

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

Поворотный стол. Часть 2

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

Привет, Хабр! В предыдущей статье я рассказывал о наших продуктах – поворотных столах для круговой фотосъёмки. За прошедшее время нам удалось серьёзно продвинуться вперёд и разработать новые устройства на базе Ардуино с использованием коллекторных и бесколлекторных двигателей.

Поворотный стол не такое уж простое техническое изделие как может показаться на первый взгляд. Например, в автоматическом режиме стол поворачивается на нужный угол, выдерживает паузу для того чтобы предмет съёмки смог успокоиться и стать неподвижным, автоматически делает снимок с фотоаппарата, затем некоторое время ожидает окончания экспозиции и переходит к следующему шагу. Так стол совершает полный оборот, и получается серия снимков предмета со всех сторон. Есть и другие режимы работы.

Мы выпускаем столы разных размеров. Самые ходовые – с диаметром столешницы 400, 600 и 900 миллиметров. Столы способны вращать довольно приличный груз, например, стол 600 выдерживает 150 кг, а стол 900 – 250 кг. Как-то приходилось делать по спецзаказу стол диаметром 2700 миллиметров, выдерживающий груз до 700 кг.

Как мы разрабатывали новый стол

Про поворотный стол, или Релейная логика глазами дилетанта

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

Попросили меня как-то друзья помочь с программированием контроллера поворотного стола для фотографирования. Эти столы используются для круговой съёмки. Часто результат такой съёмки можно видеть в интернет-магазинах, когда товар можно покрутить и рассмотреть с разных сторон.

Как сделать фото 360°? Можно поставить объект на поворотную платформу, затем вручную перемещать её на определённый угол и щёлкать затвором фотоаппарата. Но лучше этот процесс автоматизировать.

Друзья мои давно занимаются этим бизнесом, сами разрабатывают и делают автоматизированные поворотные столы разных размеров на основе шагового двигателя с контроллером. Раньше у них применялся контроллер, работающий под управлением компьютера. Потом производство этих контроллеров прекратилось, и потребовалось написать программу для нового автономного контроллера.

Дело для меня совершенно новое. Я никогда не занимался АСУ, с релейно-контактной логикой незнаком, про ПЛК не слышал. Ну что ж, тем интереснее будет разобраться, что такое релейная логика и что представляют из себя языки LD (Ladder Diagram) и IL (Instruction List).

Читать далее

Как я ЖКХ-платежи автоматизировал

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

Если у вас есть возможность оплачивать все коммунальные счета из одного приложения, я вам завидую. А уж если у вас стоят умные счётчики, то вы просто счастливчик.

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

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

Под катом рассказ о том, что у меня из этого получилось.

Читать далее

Мягкое удаление в REST API

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

Чтобы пользователь не чувствовал боли от безвозвратно утерянных данных, стоит задуматься о мягком удалении. При мягком удалении запись не удаляется из базы физически, а лишь помечается как удалённая. Это позволяет легко восстановить данные путём сброса флага.

Недавно я реализовал мягкое удаление в одном из наших REST-сервисов. Тех, кому интересно, что у меня получилось, приглашаю под кат.
Читать дальше →

Параллельное обновление данных в ASP.NET Web API

Время на прочтение3 мин
Количество просмотров4.6K
Хочу рассказать, как мы организовали фоновое обновление данных во время запроса к REST-сервису.

Задача следующая: система хранит данные о пользователях. Cервис работает изолированно и не имеет прямого доступа к базам с этими данными. Для работы сервису необходимо иметь в своей внутренней базе имена и фамилии пользователей. Их можно получить из Identity текущего пользователя во время запроса. Требуется добавлять или обновлять имена во время каждого запроса. Желательно осуществлять это в отдельном потоке, чтобы эта работа не влияла на время выполнения основного запроса.
Читать дальше →

Дневник разработчика или Плохие решения

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



С завтрашнего дня начинаем жить по-новому. Будет у нас Скрам и будет счастье. Полная демократия: никаких начальников, команда сама решает, что ей делать, бюрократия отменяется, главное – сделать заказчику хорошо.

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

Ну-ну. Поживём-увидим.



Начинаем новый проект. Ну, слава богу!

А то я уже мхом покрылся от сидения над легаси кодом. Сил моих больше нет, не могу я совладать с этим великим макаронным монстром. Я вон как-то попробовал передвинуть кнопку в форме входа, так у меня ошибки из почтового модуля посыпались. Вот и думай, где тут связь…
Читать дальше →

Нужен ли метод OPTIONS в REST-сервисах?

Время на прочтение5 мин
Количество просмотров67K
Согласно стандарту HTTP/1.1 метод OPTIONS может быть использован клиентом для определения параметров или требований, связанных с ресурсом. Сервер также может отправлять документацию в удобочитаемом формате. Ответ на запрос OPTIONS может содержать список допустимых методов для данного ресурса в хедере Allow.

То есть этот метод мог бы стать отличным средством для документирования наших REST-сервисов с одной стороны, и быть существенным дополнением к архитектурному ограничению HATEOAS с другой.

А теперь давайте отвлечёмся от страшных слов типа “HATEOAS” и зададимся вопросом: а есть ли какая-нибудь практическая польза от использования метода OPTIONS в веб-приложениях?
Читать дальше →

Авторизуем ресурсы в REST-сервисе

Время на прочтение11 мин
Количество просмотров8.7K
В мире ASP.NET существуют мощные и гибкие механизмы авторизации. Например, ASP.NET Core 2.0 предоставляет разработчику возможность использования политик авторизации, обработчиков и т.д.

Но как реализовать метод GET, возвращающий список ресурсов? А если этот метод к тому же должен возвращать не все ресурсы, а лишь специфицированную страницу? Каждый пользователь должен видеть только те ресурсы, к которым у него есть доступ. Можно получать из базы каждый раз полный список и затем фильтровать его на основе прав текущего пользователя, но это будет слишком неэффективно – количество ресурсов может быть очень велико. Предпочтительно решать вопросы авторизации и разбиения на страницы на уровне запроса к базе данных.

В этой статье описывается подход к решению проблемы авторизации в REST сервисе на базе ASP.NET Web API 2 с использованием Entity Framework.
Читать дальше →

Информация

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