All streams
Search
Write a publication
Pull to refresh
16
0
Send message
Попробуйте использовать механизм panic — recover. Практически тот-же try — catch, только привязанный к границам функций.
Мне и самому любопытно, подготовлю для вас пару микросхем.
Заказывали производство в Китае. Сталкивался с тем, что микросхема MAX1555 — драйвер зарядки батареи, в китайских экземплярах устройств греется так, что обжигает при прикосновении. А при замене на микросхемы купленные в России работает нормально.
Недавно наткнулся на видео одного физика, где он очень хорошо, доходчиво и с юмором раскрывает затронутые в этом посте вопросы.
Обычно в лазерных проекторах каждый гальванометр управляется своим драйвером (устройством). Это что-то наподобие усилителя с сильной обратной связью, поэтому такие моменты обрабатываются аппаратно, более того — аналогово. А на драйвер просто подается сигнал с цифро-аналогового преобразователя. Каждый драйвер калибруется под свой гальванометр по тестовой картинке, обычно можно подрегулировать смещение сигнала, обратную связь на разных частотах.
Но в пределе вы правы, каждый сканер (два канала гальванометр+драйвер) имеет предельные характеристики, выше которых он не потянет.
Основная характеристика лазерных сканеров — скорость, количество точек в секунду при угле отклонения (тут могу ошибаться) до 15 градусов. В Китае можно приобрести относительно дешево сканер до 20 kpps, а в профессиональных системах используются сканеры 60 kpps.
Эту штуку можно попробовать использовать на кораблике.
У меня складывается все более стойкое ощущение, что современные стандарты C++, это не «C++», а «C» с костылями… Хотя некоторые возможности действительно полезны.
Если не ошибаюсь, инфракрасное излучение скорее опасно для слизистой глаза и наружных покровов, чем для сетчатки. Конечно, ожог роговицы так же опасен. Википедия
Всегда думал, что пивовар должен разбираться в пиве. Выходит что либо я чего-то не понимаю, либо этот парень знает толк в пиве, что тоже абсурдно.
Всех с праздником!
Интересно, но некоторые люди думают, будто этот праздник отмечается каждый год одного и того же числа. Некоторые, по аналогии с прошлым годом, поздравили меня еще 12 числа.
Это можно легко реализовать, после вызова Reborn(), примерно так:
if syscall.Getuid() == 0 {
    if err := syscall.Setgid(GID); err != nil {
        log.Println(err)
    } else {
        if err := syscall.Setuid(UID); err != nil {
            log.Println(err)
        }
    }
}
Благодарю, хороший вопрос.
В статье я не упоминал механизмы мониторинга и перезапуска демона в случае сбоя. Да, для этой задачи надо использовать инструменты вроде monit или fscd во FreeBSD.
А задачи разные, на тот момент я писал сервер для gsm трекера. И использовать systemd или подобные решения я не мог, так как требования диктует заказчик, он бы не обрадовался дополнительным зависимостям и экспериментами на боевом сервере. Если я точно знал, что написав демона, System V init скрипт и скрипт инсталляции, и они прекрасно заработают на любом дистрибутиве (с небольшой корректировкой скриптов и перекомпиляцией демона, при необходимости), то не факт, что заказчик захочет или сможет настроить systemd.
К тому же, хотя это и парадокс, доступ к своему серверу мне давать никто не собирался (хотя мои скрипты и ПО они на нем запускали без вопросов). Да и иногда требуют поддержки нескольких дистрибутивов, например недавно нужно было написать сервис, который бы работал на Debian и FreeBSD. Насколько мне известно не существует порта systemd для FreeBSD, поправьте если это не так.
Да и по моему скромному мнению, киллер фича systemd — скорость загрузки, что в первую очередь важно для десктопных систем, а не для серверов, которые работают без перезагрузки по нескольку месяцев.
Благодарю, исправил
Если я вас правильно понял и вы имеете ввиду service <daemon> {start|stop|status}, то обычно это реализуется с помощью init.d скрипта и механизмов вроде start-stop-daemon, и моя библиотека не поддерживает этого в чистом виде.
Извините, промахнулся, это ответ на коментарий habrahabr.ru/post/187668/#comment_6523268
2

Information

Rating
Does not participate
Location
Барнаул, Алтайский край, Россия
Date of birth
Registered
Activity