@spbpython

Страница 726 из 785
Diana
23.05.2018
09:32:48
Привет, я делаю примерно то что тебе надо, сам конечно не профи, но думаю тебе поможет: придется разобраться со стороны питона с asyncio, websockets(я использую библиотеку которая так и называется websockets и она на основе asyncio), sqlite3 - бд для записи данных с датчиков, со стороны веба понадобиться слегка разобраться с JS и как минимум с библиотеками d3.js или попроще например plotly.js чтобы рисовать красивые графики. И еще вместо ардуино лучше возьми esp8266 или esp32 с прошивкой micropython
Спасибо за развёрнутый ответ! Ардуино у меня как данность, которая уже есть в проекте (их там даже две, к одной идёт обращение с распберри и управление второй ардуино, а вторая уже общается с датчиками и выполняет простые действия типа вкл/выкл каких-то элементов). Пока с ними особо не взаимодействую, но возможно, буду и с ардуино разбираться и программировать. Но я спрошу у ребят про esp, спасибо :)

Google
Dmitry
23.05.2018
09:47:33
triggered

Andrey
23.05.2018
10:02:24
ну оба сразу то зачем

Sergey
23.05.2018
10:03:30
>Н — надёжность FTFY

Dmitry
23.05.2018
13:35:18
была здесь пара человек)

Я пользовался, практическая польза не обнаружена

это было аж вот как давно: https://t.me/spbpython/33611

короче в истории можешь поискать)

лично считаю что проперти-бэйзд тесты это клёво!

а тебе зачем?)

Michael
23.05.2018
13:46:28
Ну тебе тут ADT прийдется описывать

в целом норм но хз, может с тайпингом они прокуачают его

Dmitry
23.05.2018
13:48:07
может тебе нужен фаззинг?

хотя Hypothesis вроде умеет в него

Google
Aleksandr
23.05.2018
14:07:16
Важно понимать что гипотезы не про фазинг, а про анализ какого то инвариантного относительно входа и, внезапно, выхода свойства. Раз свойство инвариантно, то вход можно генерить из говна и палок (фазить т.е.) а аутпут вообще не важен, важно только некоторое свойство аутпута или того как эти аутпуты коррелируют друг с другом.

Фазинг тут скорее допустимая имплементация

Скажем тестишь ты очередь с приоритетом - вход, да и выход на аппенд и поп не важны, важно только что приоритет с каждым попом падает

Marco
23.05.2018
14:18:06
Привет :) Подскажите, пожалуйста, что почитать и какие технологии лучше выбрать (никогда ничего подобного не делала, бэграунд базовый курс на степике по питону), если нужно сделать такое: поднять сервер на raspberry, который должен выполнять функции: * отправка управляющих команд дальше на arduino (пока что это просто отправка строки json), * уметь запрашивать показания датчиков с ардуино с заданной периодичностью и принимать их (посредством также, отправки и получении json строки), * работа с БД: запись полученных данных в БД, считывание при запросе * взаимодействие с пользователем через веб-страницу: ввод каких-то изначальных данных пользователем, которые дальше формируются уже в запрос для ардуино); отображение данных, отображающее текущее состояние ардуино, составление и отображение графиков на основе данных с датчиков. Нагуглила python-eve, но не уверена, что это вообще то, что нужно. Да и какого-то общего представления, как такое делать нет, буду рада, если направите в нужную сторону)) Саму веб-страницу тоже нужно написать (можно ли это делать посредством питона, типа какого-то фреймворка, который всё странслирует в js? или лучше с самим js разобраться, и делать на нём?)
Задача довольно типичная (неоднократно брал такие проекты), но есть несколько моментов, на которые нужно обратить внимание: - Подключаться лучше через ttl serial, а не через usb. Это упрощает взаимодействие и избавляет от лишних задержек (недетерминированных) при передаче данных. - Распбери 3.3v, ардуино - 5v. Для согласования уровней можно использовать logic level converter, но проще взять голую ATmega328P, залить на неё бутлодер ардуино, и запитать от 3.3v. - Земля у распбери и ардуино обязательно должна быть общая, т.к. ttl не имеет гальванической развязки. - Ардуино - это realtime окружение, распбери - нет. Опрос датчиков нужно производить на самой ардуино (с заданной периодичностью), и слать все результаты на распберри. Если требуется незамедлительная реакция (сигнализация или изменение состояния других устройств) это тоже нужно делать на ардуино. - В пакеты данных при передаче между ардуино и распбери нужно добавлять контрольную сумму и проверять её на другом конце. Иначе иногда, вследствие помех или плохого контакта, будут появляться искажённые показания или происходить неправильная реакция на команды. Желательно немного усложнить протокол - добавить подтверждение доставки. Повторная отправка битых пакетов в некоторых случаях требуется, но при этом существенно возрастает сложность отладки, поэтому лучше просто протоколировать ошибки и уведомлять администратора о сбоях. - Распбери в качестве веб-сервера и сервера баз данных - это плохая идея. Лучше вынести эти функции на VPS в датацентре. SD карты при регулярной записи данных быстро изнашиваются и дохнут в самый неподходящий момент. Процессор довольно слабенький, память медленная, сетевая карта висит на usb 2.0 - всё это добро может упасть в случае наплыва посетителей. Если распбери не грузить, она работает довольно стабильно. - Альтернатива атмеге - stm32. Они лучше по всем позициям кроме более высокого порога входа. Если возможностей атмега хватает, я бы взял именно её - проще будет находить разработчиков для поддержки / внедрения новой функциональности. - Вместо распберри можно использовать Ethernet Shield, TTL UART to Ethernet Module, или TP-Link TL-MR3020 / TL-WR902AC (с прошивкой openwrt / lede, подключившись через usb или подпаявшись к gpio), но если распбери уже используется в проекте, то пусть используется и дальше. Весь проект можно условно разделить на следующие части: - протокол взаимодействия между ардуино и распбери - прошивка ардуино - скрипт на raspberry, который будет отправлять команды на ардуино, принимать показания датчиков, и пересылать их на VPS - rest api между веб сервером и raspberry - django или flask на VPS

Serge
23.05.2018
14:45:41
ой In [4]: pow(pow(pow(10, 10), 10), 10) --------------------------------------------------------------------------- OverflowError Traceback (most recent call last) <ipython-input-4-9a9fd5e0f2a8> in <module>() ----> 1 pow(pow(pow(10, 10), 10), 10) OverflowError: math range error

Хыиуду
23.05.2018
14:48:24
ой In [4]: pow(pow(pow(10, 10), 10), 10) --------------------------------------------------------------------------- OverflowError Traceback (most recent call last) <ipython-input-4-9a9fd5e0f2a8> in <module>() ----> 1 pow(pow(pow(10, 10), 10), 10) OverflowError: math range error
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. »> pow(pow(pow(10, 10), 10), 10) 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ЧЯДНТ?

Маша
23.05.2018
14:51:56
гуголплекс!

Хыиуду
23.05.2018
14:53:26
Не, не он

Это по факту 10^1000. А гуголплекс - это 10^(10^100)

Serge
23.05.2018
15:02:49
а если сделать перед этим from math import pow, то будет переполнение
>>> import math >>> type(pow(10, 10)) <class 'int'> >>> type(math.pow(10, 10)) <class 'float'> парам-парам-пам

Serge
23.05.2018
15:08:09
и что тебя удивляет?
ничего, всё на своих местах;)

и что тебя удивляет?
вообще, многое. одинаковые названия, одинаковое назначение, разные результаты

одно сохраняет тип, другое всегда приводит к float.

удобно. очень удобно и всё логично

Aleksandr
23.05.2018
15:10:15
более того >>> type(pow(1.2, 2)) <class 'float'>
вот это зашкварыч кстати

Serge
23.05.2018
15:11:03
вот это зашкварыч кстати
а как ты ожидал там целое?

Aleksandr
23.05.2018
15:11:04
питон говно какое то короче, ну что тут добавить

Google
Aleksandr
23.05.2018
15:11:30
от питона ничего не жду

всё очень плохо

на хаскеле писать нада, очевидно же

Некто
23.05.2018
15:13:08
Я ждала реплику про плюсы. Не угадала.

Dmitry
23.05.2018
15:13:41
у плюсов всего 2 плюса. а у хаскеля ...

Hot
23.05.2018
15:13:52
Смешно.

Некто
23.05.2018
15:14:00
Да

Dmitry
23.05.2018
15:14:14
языки похожи?

или там на нём пишут?

Aleksandr
23.05.2018
15:15:34
не знаю, не получается у меня связать азиатов и ленивое исполнение, как то наоборот

Некто
23.05.2018
15:16:33
не знаю, не получается у меня связать азиатов и ленивое исполнение, как то наоборот
За что ты так, ‘линивое’ мой мозг успел за 2 секунды сломаться разрываясь между ‘линейной’ и ‘ленивое’

Aleksandr
23.05.2018
15:17:02
китайцы которые не китайцы, лол

Dmitry
23.05.2018
15:17:31
гонконгцы

ужс

Admin
ERROR: S client not available

Некто
23.05.2018
15:18:07
Хотела найти грустный стикер, но есть только такие.

Dmitry
23.05.2018
15:21:57
посмотрел фото с гонконгского FP митапа - там они есть)

но на удивление там их 50%)

Aleksandr
23.05.2018
15:23:18
китайцы очень стремятся попасть в гк кстати, считается пристижным местом дофига

Google
Dmitry
23.05.2018
15:23:24
наверное там прикольно

Aleksandr
23.05.2018
15:23:25
наоборот неверно

я не был, жена говорит там нормас

я был в сингапуре - тоже нормас

Dmitry
23.05.2018
15:25:15
вроде Лёша говорил что в ГК нет налогов. или это в Сингапуре

Aleksandr
23.05.2018
15:25:45
я нинаю

знаю что раньше в сингапуре с налогами было очень просто - их считай не было для иностранных юрлиц

поэтому и экономика рывком развилась

Dmitry
23.05.2018
15:26:24
вот бы нам

Aleksandr
23.05.2018
15:26:50
ну хз, у нас вот валежник можно собирать

я считаю годный трейдоф

Dmitry
23.05.2018
15:27:17
мой коллега тоже радуется

Max
23.05.2018
15:31:06
А попадались кому клаудпровайдеры с широким bandwidth(ну кроме хетзнера) за разумные деньги по штатам/европпам?

Marco
23.05.2018
17:49:30
online.net - выделенные сервера с unmetered 1 Gbit/sec за ~€10/month
медуза на них крутится - https://www.youtube.com/watch?v=S4thMW8GgEY

А попадались кому клаудпровайдеры с широким bandwidth(ну кроме хетзнера) за разумные деньги по штатам/европпам?
это, конечно, не клауд, но можно взять пучок таких серверов и поднять на них своё облако

Артур
23.05.2018
18:12:04
вообще, многое. одинаковые названия, одинаковое назначение, разные результаты
А просто pow будет работать с любыми классами или только с числами? Если первое, то выглядит логично: билтин обобщённый, а библиотека math конкретно для чисел. Разве что одинаковые названия могут запутать, но это не такой сильный косяк

Артур
23.05.2018
18:47:36
Предположу, что math всегда работает с float. Опять же, не выглядит удивительно

Max
23.05.2018
19:15:40
это, конечно, не клауд, но можно взять пучок таких серверов и поднять на них своё облако
О, пасибки. А это случайно не тоже самое что scaleway? Я, кстати, пробовал атомы, под tls лажится только в лет, хз как медуза живёт на них

Страница 726 из 785