Задать вопрос
  • Аналог Inkscape под Mac OS X?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А, дьюди, такая же проблема! Под OSX он совсем не нативный и работает через ж.., упс, через ХеОкна11, страх и ненавись. Я для себя эту проблему решил по другому, установил в пареллелях Ubuntu и ненарадуюсь обладанию inkscape. Собственно и в винде под параллелями тоже хорошо работает.
    Ответ написан
    2 комментария
  • Как реализовать multicast в интернете?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ответ - никак, правильный. Если мы про мультикаст. Ну а если про интернет, то есть такая весчь как DNS, почему ей не воспользоваться?
    Ответ написан
  • Разыскивается асинхронный фреймворк/идея под python 3.4+?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А чем twisted не угодил? Тут только могу erlang и scala предложить. Хотя и java8 со spring-boot очень сексуальная стала.
    Ответ написан
    Комментировать
  • Как заставить процесс использовать swap?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, маллока мало! желательно еще и обратиться по адресу аллокированной памяти, так как в линуксе имеется ленивая инициализация. А вот calloc() в цикле самое оно, проверено!
    Ответ написан
    Комментировать
  • Минимальное устройство для dhcp?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Да хоть руками пишите на микроконтроллере (ARM32/AVR, далее везде). Вот пример реализации - we.easyelectronics.ru/electro-and-pc/podklyuchenie...
    Ответ написан
    Комментировать
  • Как спроектировать базу данных в предметной области «Погода»?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Здесь как минимум нужно немного залезть в предметную область и ответить себе на вопросы (до таблиц и полей):
    - что такое "погода", чем она измеряется, какие у нее характеристики, есть ли табличные данные: типа привязки к местности (город, район и т.д.), таблицы комфорта (комфортно не очень, не комфортно) или влажности (сухо, влажно, мокро и т.д.)?
    - тоже самое расписываем для прогноза.
    - теперь по отчетам, какие типы отчетов планируются ( за день по местности, пелевантность по прогнозу и т.д.).
    Что касается отчетов, то они бывают (обычно) двух типов.
    Одни формируются простой выборкой из базы данных с агрегацией - это простые агрегированные отчеты (средняя температура за час, или минимум/максимум за период по местности). Для таких отчетов обычно не нужно создавать таблиц и хранить промежуточные данные, если только не для ускорения предоставления и не в целях архивации (например подсчет и сохранение средней температуры день/ночь ежедневно по окончании суток).
    Вторые - аналитические. Например средняя ошибка в прогнозах за одинаковые периоды по местностям. Это те отчеты, которые требуют агрегации нескольких выборок, здесь приходится создавать промежуточные таблицы с результатами выборок, и уже по ним формировать выходные данные ( как нахождение второй и третьей производных функций).
    В общем, сначала описываете СЛОВАМИ что у вас есть на входе по погоде и температуре, и какие отчеты хотелось бы получить. А уже из этого делаете модель данных под простые отчеты, и в самом конце занимаетесь аналитикой. Также сразу позаботьтесь об объемах данных, вдруг их придется шардировать, архивировать и т.д..
    Наводящие вопросы я задал. Отвечайте, двинемся дальше.
    Ответ написан
    9 комментариев
  • С чего начать в unit-тестировании для микроконтроллера и стоит ли?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Собственно ничего сложного нет. Пишем такие же unit-тесты, а результаты assert-ов складываем в отдельную область памяти. Её потом легко просматривать на наличие единиц (можно сделать даже битовым сдвигом). Другими словами, нам нужно только написать функцию assert, которая сравнивает два своих аргумента и результат заносит в следующий бит (или байт) в выделенной области памяти (0 - хорошо, 1 - плохо). По позиции в памяти вычисляем сбойный ассерт. Если памяти много, то можно еще добавить аргумент с номером теста к ассерту, тогда у нас будет один байт номер теста, второй - результат.
    Ну, кстати, так и логиваться можно прямо в режиме работы, только нужно в ассерте еще и циклический буфер сделать и указатель на текущий элемент.
    А собственно, я в свое время так и отлаживался. Подходит для отладки очень быстрых процессов!!!!
    Ответ написан
    6 комментариев
  • В каком порядке разрабатывается сайт?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    В соответствии с уровнем команды выбирается язык (или языки) программирования (php, python, java, scala, perl, erlang). Далее Архитекторами выбирается:
    - архитектура приложения (приложений): фронтэнт, бекэнд, базы данных, кеши, очереди сообщений и т.д., CMS или CMF или фреймворк/фреймворки.
    И так, у нас есть команда, что, как и на чем делать.
    После этого Дизайнер делает графические файлы и передает их Верстальщику.
    В этот момент Программисты вполне могут делать основную машинерию сайта, выписывать взаимодействие с базами, фронтэндом/бекэндом, создавать ORM и запросы, делать прототипы документов и бизнес-логику.
    Как только от Верстальщиков с Дизайнерами поступают куски разметки, то их натягивают на уже существующую машинерию.
    При этом Тестировщики непрерывно в режиме continius integration белают функциональные и нагрузочные тесты.
    Далее этапы наступают этапы тестирования и исправления ошибок всей командой по кругу.
    Как только Менеджер доволен получившейся работой, то отдают Заказчику. А далее - этапы тестирования и исправления ошибок всей командой по кругу, пока Заказчик не будет доволен.

    Ну а по хорошему, так как двух одинаковых проектов практически не бывает, то все работы можно прорисовать в диаграмме Ганта. Тогда сразу будет видно, кто и что параллельно делает в данном проекте - infineconomics.blogspot.ru/2014/04/gantt-chart-in-...
    Ответ написан
    Комментировать
  • Как реализовать защиту/верификацию флешь памяти микроконтроллера при включении?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А в чем сложность? Проходим всё адресное пространство flash и кладем её CRC-сумму в самый конец. Если это делать при прошивке, то можно на этапе сборки делать в каком нибудь блоке, например сразу за таблицей прерываний. Если это делается внутри контроллера, то CRC лучше класть отдельно в EEPROM и защитить от изменения хешем самого CRC. Если флеш разбита на блоки, которые например прошиваются на лету по время работы (обновление чего-нибудь), то опять же храним CRC блока и защищаем его хешем. Хеш нужен, если вдруг кто-то сменил блок и CRC.
    Ответ написан
  • В чем отличие сервисной шины предприятия(ESB) от брокеров сообщений (например RabbitMQ)?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Простым языком. ESB помогает связать кучу разрозненных приложений в единое целое. Например. Есть старый ftp, email серверы и новое приложение j2ee. Нужно, по приходу файла на ftp сообщить об этом по email и обработав, залить через REST в j2ee приложение. ESB будет сканировать папку на ftp, сообщит об этом по email, отпарсит файло и пульнет результат по http в j2ee.
    В нутрях у ESB обычно прячется MQ, но не всегда.

    MQ, собственно, занимается умной доставкой сообщений, и только, предоставляя пару тройку API для этого.

    Другими словами, ESB не подразумевает внедрения нового кода в старые приложения, MQ требует использовать во всех приложениях совместимый API.
    Ответ написан
    6 комментариев
  • Какой софт использовать для анализа изображений?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, простого, боюсь, что нет. Есть на питоне замечательные библиотеки - scikit-image.org и как основа scipy.org c NumPy в придачу.

    Вот на почитать - scipy-lectures.github.io/advanced/image_processing
    Ими можно достаточно легко отсечь шумы и выбелить объекты, но нужно будет как-то распознать символы.
    Ответ написан
    Комментировать
  • Как устранить тормоза виртуальной машины под OS X 10.10?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Не хочу разводить холивары, купите параллели, все работает как надо и винды и линуксы. С VirtualBox в плане производительности не подружился ни в линуксе (KVM пользую везде.), ни в винде (только в виртуалке её и вижу теперь), ни в OS X (пользую параллели).
    Ответ написан
    7 комментариев
  • Как управлять LPT портами через Python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я не совсем понимаю эту фразу
    "как видеть(получить адреса) именно тех lpt портов, к которым подключены какие-либо устройства."

    Параллельный порт - просто набор TTL-линий GPIO, возможно с прерываниями. Никакого протокола для определения устройств у него нет и быть не может по определению! Это не USB.
    Может быть поможет вот это - logix4u.net/parallel-port/15-a-tutorial-on-paralle...

    Ну а на счет программирования под питон рекомендую попробовать pyserial, там есть модуль для параллельного порта (но я его не пробовал). Сам программирую через эту библиотеку серийные порты и устройства на них. pyserial.sourceforge.net/pyparallel.html
    И да, очень внимательно прочитайте Note!
    The lp(4) module must be unloaded, rmmod lp. lp claims exclusive access to the port and other programs won’t be able to use it.
    The ppdev(4) module needs to be loaded, modprobe ppdev. When udev is in use, (default with 2.6 kernels) this will create a /dev/parport0.
    The user needs to have write permissions to /dev/parport0. Many distributions have an lp group that owns the device; the simplest is to add the user account to this group. Simply changing permissions on the device is not the best strategy as they will be reverted to their defaults next time the driver is loaded.
    Ответ написан
    Комментировать
  • Почему Debian стал съедать всю оперативную память?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если сервер физически недоступен, то Для начала включит фаерволл и отключить на нем исходящие соединения, да и входящие тоже, кроме ssh.
    Затем посмотреть, какие процессы жрут память. Убить родителя. Посмотреть скрипты запуска на наличие вредоносов.

    Если сервер в физическом доступе, то загрузиться с СД например и пройтись по файловой системе..
    Ну и не сказали, что стоит на сервере..
    Если не подобран рутпароль, то скорее всего сломаны php скрипты (дырявая CMS).

    А вообще-то фаерволы с закрытием клиентских коннектов рулят от таких ситуаций. Даже если сломали, то выйти за пределы сервера сложно. На firehol делается в 3 строчки, рекомендую, настоятельно!

    Ну а по делу, отключайте сначала почту, затем веб-сервер, затем крон и так далее, пока не найдете причину. Ну и смотреть на выдачу top, кто и какие пользователи жрут память и процессы плодят.
    Ответ написан
    Комментировать
  • Как лучше реализовать мониторинг доступности нескольких серверов друг для друга?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Достаточно просто. Установите на все серверы collectd. В нем есть плагин https://collectd.org/wiki/index.php/Plugin:Ping
    В конфигурации плагина устанавливаете пинги на все ваши серверы.
    Результат отдаете в нагиос через например https://collectd.org/documentation/manpages/collec... (я не пробовал!!!)

    Также результат можно лить и в mongo и в redis и в rabbitmq. Ну а плагинами нагиоса достанете отовсюду, благо они пишутся за 5 минут.
    Или радикальнее, ставите graphite (у нас было) или unfluxdb+grafana (теперь) и туда льете данные с серверов collecd.

    PS. Бонусом установки collectd получите быстрый и не ресурсоемкий сбор практически любой статистики.
    Ответ написан
  • Развалится ли рейд после сброса пароля биос?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Испортиться не должен. В крайнем случае, отключите диски и восстанавливайте спокойно пароль.
    Ответ написан
    Комментировать
  • Методы синхронизации в байтовом потоке?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    book.itep.ru - в самом верху кнопочка INDEX, это на полное оглавление, учитаться...
    Ну а вообще-то для этого используют преамбулу, ищут маркер, например семь байт 0xAA подряд, и пытаются вычислить контрольную сумму заголовка. Если всё совпадает, то считаем, что это таки пакет. Например как в ethernet - book.itep.ru/4/41/eth_4111.htm
    Ответ написан
    Комментировать
  • Какой инструмент выбрать для автоматизации работы с VT100?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Bombus, сначала вы делаете библиотеку, чтобы выдавать команды VT100 (это со стороны контроллера), а затем ищете решение отрендерить посылки VT100 в картинку и отслеживать изменения областей экрана. Я правильно понимаю?! Что-то это мне напоминает...

    Если по хорошему, сделайте со стороны контроллера переключение режимов - данные/визуальный.
    В визуальном режиме работайте посылками VT100 - красиво, наглядно, можно подключиться терминалом... В режиме данных обменивайтесь данными, хоть по modbus - надежно, машиночитаемо и т.д.
    Для переключения режимов можно использовать какую нибудь текстовую последовательность, например ++++====++++=1 переход в визуальный режим, и ++++====++++=2 переход в режим данных.
    Если режим данных у нас не основной, то из него можно выходить по какому нибудь таймауту, например после 5 минут без ответа на посылки. Ну и наоборот тоже...

    И да, многие старые программы типа kermit подобным образом и переключали режимы работы...
    Ответ написан
  • Какую технологию выбрать для асинхронной передачи данных?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Поддержу про торнадо, но еще более рекомендую посмотреть на cyclone.io
    Это торнадо переписанный под twisted, который как нельзя лучше вам подойдет (это я про https://twistedmatrix.com/ ). У меня так система работает, вся обработка делается в twisted, а отдаю через cyclone по ajax (вебсокетов на клиентах, увы у меня нет :-( )
    А технология называется comet. Реализуется в разных вариантах, у которых есть плюсы и минусы. Смысл в том, что браузер тем или иным образом (comet, websocket, ajax, ajaxp, longframe, longpooling и т.д.) подключается к серверу и ждет прихода события от сервера. Само событие может содержать кучу данных, которые обновились.

    Я бы рекомендовал сделать следующим образом. Поставить сервер очередей типа rabbitmq, а через торнадо/cyclone подключаться к очереди через ajax/ajaxp и/или websockets.

    Ну а если просто нужно слушать очереди сообщений (без хитрой обработки на web-сервере), то можно просто обойтись rabbitmq-stomp.

    В принципе, в циклоне есть несколько примеров:
    - https://github.com/fiorix/cyclone/tree/master/demo... - очереди на основе redis
    - https://github.com/fiorix/cyclone/tree/master/demo... - собственно websocket
    - https://github.com/fiorix/cyclone/tree/master/demo... = чистый ajax
    Ответ написан
    Комментировать
  • Из-за чего интернет работает через кабель на техникумовских компьютерах и не работает подключении к моему ноутбуку !?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я бы, как администратор сети, поступил бы просто. В сети сделал бы несколько VLAN (для библиотеки, студентов, преподавателей, уборщиц, алхимиков, космологов, зеленых человечков, доярок и пастухов). Установил бы сервер авторизации типа FreeRadius. На коммутаторах и wifi-точках доступа настроил бы авторизацию по 802.1x. Раздал бы всем сотрудникам логины/пароли к сети.
    А всех остальных, неавторизованных студиозов, пускал в гостевой VLAN, где отключил бы всё и оставил бы RDP и сетевой диск для заливки диссеров преподам.

    Собственно, как пишут в одной операционной системе: "При наличии проблем с сетью, обратитесь к сетевому администратору".

    PS. И, похоже, у вас появился нормальный сетевой инженер в институте (упс, техникуме)!
    Ответ написан
    Комментировать