FediScanner

#python

← Back

[Перевод] ESP32 + MicroPython + трубка Гейгера: как за вечер собрать детектор радиации

Радиация окружает нас повсюду – естественный радиоактивный фон присутствует всегда и везде. Имея под рукой плату ESP32 за 8 долларов, OLED-дисплей за 3 доллара, MicroPython и трубку Гейгера – Мюллера, можно без труда собрать полноценный детектор радиации. Он сможет не только выводить текущие показатели на экран, но и отправлять данные на GMCMap, в Home Assistant и другие сервисы. А в качестве бонуса в конце статьи я покажу несколько забавных научных экспериментов – например, как засечь радон у себя дома с помощью носка и обычного пылесоса.

habr.com/ru/companies/timeweb/

#ESP32 #Python #MicroPython #счетчик_Гейгера #трубка_Гейгера__Мюллера #радиация #Home_Assistant #timeweb_статьи_перевод

Show Original PostReport

Как я перенёс проверку цен с VPS на компьютеры пользователей — и зачем всё-таки оставил сервер

Сначала PriceTrack проверял страницы маркетплейса на VPS. Селекторы были корректными, но сервер вместо карточек товара получал 403. В итоге я перенёс браузер и извлечение данных на компьютеры пользователей, а сервер оставил управляющим контуром. В статье рассказываю, как устроена эта архитектура, зачем понадобились базовый профиль и локальный рецепт и какие проблемы появились с фоновыми проверками, треем и несколькими аккаунтами.

habr.com/ru/articles/1067564/

#архитектура_ПО #desktopприложение #Python #FastAPI #Playwright #парсинг #маркетплейсы #локальная_обработка #распределённая_система #Windows

Show Original PostReport

Archimedes spiral with #Python turtle graphics:

#!/usr/bin/env python3
from turtle import *
from math import *
color("blue")
speed(0)
down()
for i in range(200):
t = i*pi/20
r = 1+5*t
goto(r*cos(t), r*sin(t))
done()

Show Original PostReport

Calculate the nth prime with #Python

#!/usr/bin/env python3
import sys
import time; max=int(sys.argv[1]); n=1; p=1
t0 = time.perf_counter()
while n<=max:
f=0; j=2; s = int(p**0.5)
while f < 1:
if j >= s:
f=2
if p % j == 0:
f=1
j+=1
if f != 1:
n+=1;
#print(n,p);
p+=1
t1 = time.perf_counter()
print(f"n = {max}")
print(f"nth prime = {p-1}")
print(f"Elapsed time = {t1-t0:.6f} seconds")

Show Original PostReport

Задаём UserGate неудобные вопросы

Всем привет! Меня зовут Артем, я занимаюсь информационной безопасностью и иногда автоматизирую задачи, в которых ручная проверка требует слишком много времени и внимания. В одном из проектов такой задачей стал анализ политики NGFW: правил много, связанных объектов ещё больше, а определить, какие настройки действительно требуют внимания, нужно было без автоматического изменения конфигурации. Так появилась read-only утилита, которая получает данные через API, приводит их к единому виду, выполняет набор проверок и собирает результаты в удобный Excel-отчёт для администратора.

habr.com/ru/companies/gazpromc

#информационная_безопасность #ngfw #usergate_ngfw #автоматизация #python

Show Original PostReport