Распознавание порно по фото
Хочу упростить модерирование путем автоматизации: автоматическое распознавание половых органов, голых частей тела и т.д. Первое что приходит какие то облака с AI, но не знаю есть ли такой сервис?
Хочу упростить модерирование путем автоматизации: автоматическое распознавание половых органов, голых частей тела и т.д. Первое что приходит какие то облака с AI, но не знаю есть ли такой сервис?
Есть ли такое в одном корпусе? Нужна плата или микроконтроллер, который бы имел выход в интернет через ethernet и wifi (желательно бы ещё и через gprs). Сейчас нашел только разные модули w5500(ethernet) и esp8266 (wifi). Если такого не производят, то на ум приходит только разместить эти два модуля на одной печатной плате и связать их через другой микроконтроллер посредством UART\SPI\ХЗ. Я в этом дилетант, посоветуйте по какому пути идти.
Нужно спроектировать макетную плату со следующими функциями
WiFi, Ethernet, Gprs etc (нужен tcp/ip стек для настройки устройства).
Порты ввода (будут подключаться датчики)
Порты вывода (будет подключаться нагрузка, например реле)
Подобрать популярные комплектующие, которые есть на aliexpress
По сути arduino, только нужно сделать компактней и на одной монтажной плате
Грубо говоря, в идеале, хочу плату размером в спичечный коробок, которая бы питалась от ааа батарейки и работало месяц и стоило 1000 руб. Понятно, что нереал, но отталкиваться от этого нужно.
Нужна больше консультация на первом этапе. Потом посмотрим что и как
Пока что готов заплатить 1000 руб. за небольшой ликбез в телеге, кто даст вводную. Дальше, если сойдемся, больше, по нарастающей
Здравствуйте!
Занимался тут летом всякими датчиками на arduino, сейчас решил возобновить тему. Решил отказаться от компа-шлюза и сделать полноценное устройство с выходом в интернет.
Прототип задачи в том, чтобы собрать устройство, подключить к нему датчик и чтобы управлялось оно через интернет. То есть, соединялось с удаленным сервером и принимала от него команды. Интернет хочу в идеале Wifi+Ethernet
Нашел
WiFi
Ethernet
УЗ Датчик
Я как понимаю мне ещё нужна «базовая» плата, к которой бы все это подключалось?
Нашел также Плату с WIFI на борту. Не совсем понимаю, это Arduino UNO? Что это за комплект по такой цене..?
В общем, я запутался, дайте пинка в нужном направлении.
Установил новый сервер, на нем raid1. Хочу raid0, чтобы больше места было.
Что было
cat /proc/mdstat
md127 : active raid1 sdb1[0] sdc1[1]
3141632 blocks super 1.2 [2/2] [UU]
mdadm /dev/md127 --grow --level=0
mdadm: level of /dev/md127 changed to raid0
cat /proc/mdstat
md127 : active raid0 sdc1[1]
3141632 blocks super 1.2 64k chunks
mdadm /dev/md127 --add /dev/md127 /dev/sdb1
mdadm: /dev/md127 not large enough to join array
fdisk -l
Disk /dev/sdb: 3 GiB, 3221225472 bytes, 6291456 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4f86955
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 6291455 6289408 3G 83 Linux
Disk /dev/sdc: 3 GiB, 3221225472 bytes, 6291456 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4e1043f4
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 6291455 6289408 3G 83 Linux
Disk /dev/sda: 10.6 GiB, 11380449280 bytes, 22227440 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6cc04202
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 20226047 20224000 9.6G 83 Linux
/dev/sda2 20228094 22226943 1998850 976M 5 Extended
/dev/sda5 20228096 22226943 1998848 976M 82 Linux swap / Solaris
Disk /dev/md127: 3 GiB, 3217031168 bytes, 6283264 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
//Переход на raid0, но будет 1 диск всего
mdadm /dev/md0 --grow --level=0
mdadm: level of /dev/md0 changed to raid0
//Увеличить размер массива и добавить 1 диск
mdadm /dev/md0 --grow --raid-devices=2 --add /dev/sdb1
mdadm: level of /dev/md0 changed to raid4
//тут будет делаться reshape, долго, в зависимости от объема
//потом перейдет снова на raid0
mdadm: level of /dev/md0 changed to raid0
//Далее нужно увеличить размер ФС, если без параметров, то увеличивается автоматом до всего доступного размера
resize2fs /dev/md0
Копаюсь тута в virtualbox, шаманю с жестким диском, колдую в общем. Сама проблема в том, что на реальном сервере в некоторые моменты времени очень большая задержка отправки\приема с rabbitMQ сервера. Тама отваливаются некоторые службы из-за этого по таймауту (можно конечно выставить большие тайауты, но хочу все же оттюнинговать диск и проблему решить в корне, если получится). То есть послал сообщение в rabbitMQ, тебе ответ пришел, обычно это занимает миллисекунды, но в некоторые моменты доходит аж до 3-6 сек! Графики(zabbix) показывают iowait 5%\48% (средн.\макс. значения за месяц). В связи с этим я пришел к выводу, что причина и узкое место на сервере это I\O и из-за него такие лаги с rabbitMQ.
Потом я начал грешить на raid1. Ядренный процесс jbd (в моем случае это jbd2/md2-8) который отвечает за журнализацию ext4, постоянно, без остановки, чем то занят, iotop этого процесса постоянно скачет 5..10...99%! Хотя, по сути, должен отрабатывать каждые 15 сек., ибо в параметрах монтирования raid1 я указал commit=15. То есть каждые 15 сек. должен записывать в журнал. Ещё я заметил, что если отключить zabbix-server, то процесс этот запускается как положено через каждые 15 сек. Почему так?
Посмотрел iotop ещё раз, нет других процессов с большим %, ну mysql промелькивает 0.05%, nginx и прочие потроха.
Что пробовал (три раза запуск)
dd if=/dev/zero of=/tmp/output.img bs=16k count=30k
838860800 bytes (839 MB, 800 MiB) copied, 1.05715 s, 794 MB/s
838860800 bytes (839 MB, 800 MiB) copied, 0.442051 s, 1.9 GB/s
838860800 bytes (839 MB, 800 MiB) copied, 9.11132 s, 92.1 MB/s
dd if=/dev/zero of=/tmp/output.img bs=16k count=70k
1174405120 bytes (1.2 GB, 1.1 GiB) copied, 6.25328 s, 188 MB/s
cat /etc/fstab
/dev/md3 / ext4 commit=15,errors=remount-ro,relatime 0 1
/dev/md2 /boot ext4 errors=remount-ro,relatime 0 1
/dev/sda4 swap swap defaults 0 0
/dev/sdb4 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts defaults 0 0
mount | grep "/dev/md3"
/dev/md3 on / type ext4 (rw,relatime,errors=remount-ro,commit=15,data=ordered)
cat /proc/mdstat
md2 : active raid1 sdb2[1] sda2[0]
523200 blocks [2/2] [UU]
md3 : active raid1 sdb3[1] sda3[0]
1952461760 blocks [2/2] [UU]
bitmap: 15/15 pages [60KB], 65536KB chunk
unused devices: <none>
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 1.8T 1.4T 312G 83% /
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 772M 7.1G 10% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/md2 487M 23M 435M 5% /boot
overlay 1.8T 1.4T 312G 83% /var/lib/docker/overlay2/29d42b8f520821ac9c12919a53c6eb7f4b1cf25c63cd03fe7f2a3341e547a42f/merged
shm 64M 0 64M 0% /var/lib/docker/containers/c1d856a4dce5aeb0d0e67e4bdb1e2123a1a2fbecfbb4c4fdfe91b1d75bf0b8a8/mounts/shm
Total DISK READ : 68.09 K/s | Total DISK WRITE : 9.27 M/s
Actual DISK READ: 68.09 K/s | Actual DISK WRITE: 594.86 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
313 be/3 root 0.00 B/s 426.44 K/s 0.00 % 73.82 % [jbd2/md3-8]
13682 be/4 bib 0.00 B/s 215.01 K/s 0.00 % 43.27 % nginx: worker process
15381 be/4 mysql 0.00 B/s 3.58 K/s 0.00 % 0.61 % mysqld
15396 be/4 mysql 0.00 B/s 3.58 K/s 0.00 % 0.02 % mysqld
15401 be/4 mysql 0.00 B/s 7.17 K/s 0.00 % 0.02 % mysqld
13678 be/4 bib 0.00 B/s 630.70 K/s 0.00 % 0.00 % nginx: worker process
13679 be/4 bib 0.00 B/s 3.58 K/s 0.00 % 0.00 % nginx: worker process
13680 be/4 bib 0.00 B/s 207.84 K/s 0.00 % 0.00 % nginx: worker process
13681 be/4 bib 64.50 K/s 731.03 K/s 0.00 % 0.00 % nginx: worker process
13684 be/4 bib 0.00 B/s 111.09 K/s 0.00 % 0.00 % nginx: worker process
13685 be/4 bib 0.00 B/s 723.87 K/s 0.00 % 0.00 % nginx: worker process
11076 be/4 root 0.00 B/s 3.58 K/s 0.00 % 0.00 % python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
В настройках nginx стоит
fastcgi_read_timeout 3s;
fpm соединение принудительно закрывается, но mysql запросы, которые были отправлены ранее, продолжают выполняться, потому что соединение не было закрыто в конце скрипта как положено. Я как понимаю в коде никак нельзя определить что тебя грохнул nginx? Хотелось бы закрывать соединение, прежде чем... Или в самом mysql что подкрутить? Пока что на ум приходят всякие wait_timeout...max_execution_time(которое не работает в сессии и глобально)
Хочу потестировать сайт на дос-атаку. Нужно как то симулировать много запросов с разных IP(для проверки всяких limit модулей ngix, iptables и самого сайта). Пока что делаю черех ab(apache bench).
Сейчас на ум приходит только добавить на интерфейс много (ну, хотелось бы хотя бы 5000) IP, но как потом заставить ab брать случайные IP...
Да, делаю это с той же машины с которой тестирую... Хотя идеально с удаленной, но тогда нужны реальные IP
Стартую процесс exec, proc_open или через Symfony\Process, но пых запускает его всегда через оболочку (в моем случае это sh -с ffmpeg). Собственно проблема в том, что когда сам пых процесс завершается или убивается через kill, то дочерний процесс (если он работает), не убивается. Да, можно определять дочерний ПИД и гасить его, но хотелось бы без лишнего гемора. Помню на 7.0 версии, оболочка эта не создавалась, запускался напрмяую, но обновил до 7.4 и снова стало такое. хочу понять зачем пых запускает оболочку. Гугление ничего не дало, тема давняя
По теме
https://github.com/symfony/symfony/issues/5030
Если перез командой написать exec(«exec ffmreg») то оболочка не создается и все нормально завершается. Как бы такое сделать по умолчанию
Внезапно пропал доступ к серверу по сети. Зашел через KVM, смотрю ifconfig, а адреса то нет IPv4. Просто пропал, исчез сам по себе. Остался только IPv6. Ничего не пойму куда копать. Ну первое что на ум приходит это dhcp. Но такого никогда не было на других серверах у этого провайдера(OVH). Что может быть ещё?
Debian 11
Помогло только
/etc/init.d/network restart
Но боюсь ещё раз слетит
/etc/network/interfaces.d
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet dhcp
accept_ra 0
Хочу измерять температуру в бане, пока что просто воздуха, а в дальнейшем хотелось бы в самой топке, чтобы можно было бы узнать когда подкидывать дрова, ну типа топка остыла, подан звуковой сигнал, пошел подкинул
Сейчас хочу просто получить температуру воздуха, с помощью термистора (NTC MF52 10K). Подключаю в аналоговый порт arduino (verba), делаю как написано тут. Подключаю по схеме делителя напряжения
Фото схема (желтый +5, корич. - GRN, зеленый - анал. вход)
https://ibb.co/1ZCS6kK
// к какому аналоговому пину мы подключены
#define THERMISTORPIN A0
// сопротивление при 25 градусах по Цельсию
#define THERMISTORNOMINAL 10000
// temp. для номинального сопротивления (практически всегда равна 25 C)
#define TEMPERATURENOMINAL 25
// сколько показаний используем для определения среднего значения
#define NUMSAMPLES 5
// бета коэффициент термистора (обычно 3000-4000)
#define BCOEFFICIENT 3950
// сопротивление второго резистора
#define SERIESRESISTOR 10000
int samples[NUMSAMPLES];
void setup(void) {
Serial.begin(9600);
analogReference(EXTERNAL);
}
void loop(void) {
uint8_t i;
float average;
// сводим показания в вектор с небольшой задержкой между снятием показаний
for (i=0; i< NUMSAMPLES; i++) {
samples[i] = analogRead(THERMISTORPIN);
delay(10);
}
// рассчитываем среднее значение
average = 0;
for (i=0; i< NUMSAMPLES; i++) {
average += samples[i];
}
average /= NUMSAMPLES;
Serial.print("Average analog reading ");
Serial.println(average);
// конвертируем значение в сопротивление
average = 1023 / average - 1;
average = SERIESRESISTOR / average;
Serial.print("Thermistor resistance ");
Serial.println(average);
float steinhart;
steinhart = average / THERMISTORNOMINAL; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro)
steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
steinhart = 1.0 / steinhart; // инвертируем
steinhart -= 273.15; // конвертируем в градусы по Цельсию
Serial.print("Temperature ");
Serial.print(steinhart);
Serial.println(" *C");
delay(1000);
}
average = 1023 / average - 1;
average = 1023.0f / (average - 1.0);
Хочу сделать, чтобы автоматически включался обогреватель, теплый пол и может быть ещё кое-что. Управление удаленное, через интернет. По расписанию, например в 5 утра каждый день, либо вручную через команду. Ну купил arduino платку (verba) за 800 руб.На выход подключил реле 5 вольтовое 10 ампер. На плате нет сети и даже часов, поэтому накидал программку на c++, в которой вся логика (http сервер для удаленных команд, включение по расписанию и т.д.). Общатся программа с arduino через serial порт.
В общем то все работает, но чувствую, что есть лишнее звено. По сути, ардуино нужно только для включения реле, логики там никакой нет. Хочу выкинуть плату и сделать все через комп.
Как я могу в компе активировать какую-либо ножку на плате, чтобы на ней появилось напряжение 5 вольт? LPT порт? Там есть DATA ножки, их можно использовать для подключения нагрузки (реле)? Или ещё как?
У меня есть nodejs-скрипт, запущенный около месяца и он в один момент начал «течь» (rss ~ 6GB). Хочу понять что там за данные накопились в нем. Возможно какой то массив\объект растет или ещё что-то.
Вытащил (gdb --pid 343 ... dump memory...) для начала через GDB сырые данные запущеного процесса в папку.
Что теперь с ними делать не понимаю. Погрепал эти файлы, ничего от этого не получил.
Каким образом код в скрипте трансформируется в память, в байты\биты?
Например есть в коде
class Abc{
constructor() {
this.prop = "abc"
}
}
У меня на сервере 32 гига памяти. Хочу подсчитать какие процессы занимают память
Делаю сначала
ps -o pid,user,rss,comm ax | sort -k3 -n | awk '{sum+=$3; } END{print "Total mem usage: " sum;}'
34218336
Пришло письмо от maxmind
Dear GeoLite User,
In order to maintain compliance with US sanctions against certain Russian entities, MaxMind is exercising its right to terminate your free access to the GeoLite2 Databases or Web Services per Section 10.(b) of the GeoLite2 End User License Agreement.
Пишут, что бесплатное обновление для «определенных российских организаций» прекращено
Вопроса 2
1) Как они определили что я являюсь российской организацией? Я использую базу для своего сайтика
2) Как теперь обновлять базу? Как вы обновляете? Платить 25 бачей в месяц, а главное КАК их платить? VISA\Master не работает.
Хочу уменьшить в размерах и ускорить в 100 раз исходный mp4(h264) 640x480. Собственно хочу сделать версию для быстрого предосмотра всего файла.
Делаю по офф. инструкции | Speeding up/slowing down video
Делаю так
ffmpeg -i input.mp4 -vcodec libx264 -vf "scale=300:-2,setpts=0.01*PTS" -an xxx.mp4
[mp4 @ 0x4d04a80] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 0x4ce7e80] MB rate (25650000) > level limit (16711680)
[libx264 @ 0x4ce7e80] profile High, level 6.2
Есть файл A.js и есть B.js
В A require(«B»)
В B require(«A»)
Получается бред. Что делать? Разве A не может пользоваться функциями из B и наоборот?
Нужна инфа о том, сколько сервер отдал\принял байтов за месяц. Есть статистика Zabbix, но там данные собираолись только по скорости (bits per sec), а вот в абсолютных величинах нет. Где бы мне взять из ifconfig строки (RX bytes, TX bytes), с датой месяц назад? В логах может каких или из /proc? Или не реал уже?
Подскажите где найти сервер в рф по нормальной цене. Основное требование безлим скорость 1gbps, на крайняк можно 500mbps. Пока что нашел 100mbps безлим и 1gbps, но там 30 терабайт лимит в мес. потом 200р за каждый тер. Выходит от 30 000р. в моей конфигурации, самой простецкой. Это очень дорого. Сейчас арендую в европе, там безлим гигабит. Выходит 50-80 евро, но вот настала полная ж%%%па с оплатой. Сервер невозможно продлить с картой рф, paypal тоже не работает. Оформлять карту в европе? А как ее пополнять - тоже не понятно.
Может в китае есть какая аренда, кто в курсе?
Пробую делать HTTPS GET запрос на сервер, асинхронно, сразу 10. Соединение бесконечное, качается mp4 файл бесконечно. Браузер открывает 6 соединений, а остальные 4 находятся в состоянии pending. Если открыть окно браузера в режиме инкогнито или запустить другой браузер (проверял в Chrome|Opera|FF) и там открыть ещё 10 соединений, то откроются также только 6. Если открыать просто новую вкладку, то ни откроется ни одно соединение, т.к. в соседней вкладке уже висят эти 6 соединений. Если закрыть активное соединение, то откроется соединение, которое было в состоянии pending.
Проверял через скрипт node, там все нормально, хоть 20 хоть 30 одновременно открывается
В логах nginx все чисто, вижу только 6 соединений (ну когда завершаются их видно в access.log со статусом 200). Остальные соединения нигде не регистрируются, ни в error.log ни в access.log, нигде их не видно.
Потом начал tcpdump смотреть на предмет SYN
tcpdump -i eth0 -n tcp and port 443 and src my_remote_ip and "tcp[tcpflags] & (tcp-syn) != 0"
keepalive_timeout 0;
user gobot;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 0;
types_hash_max_size 2048;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
#cache off
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;
gzip on;
gzip_disable "msie6";
}
| ← назад | следующие → |