LINUX.ORG.RU

Кто возьмется сделать православный мониторинг для dwm?=)

 , ,


6

5

Появилась мысль сделать кикстартер проект. Сформировать всем месте ТЗ по этому проекту и вложиться деньгами(скажем по $1-2 с человека). По результатам выложить это на suckless, чтобы у всех у нас был хороший гибкий мониторинг. Вообще, такой proj хорош тем, кто хочет поднять свой скилл на си, но если таких не найдется, давайте соберемся шекелями и пусть нам запилят мониторинг

В общем есть у меня скрипт на питоне, который имеет конфиг:

data = {
    'item0':
    {
        'job': 'myout',
        'type': 'system',
        'timeout': 2,
        'state': 'enable',
    },
    'item1':
    {
        'name': '',
        'bracket': '',
        'job': 'internet',
        'type': 'function',
        'timeout': 5,
        'state': 'enable',
        'result': 'UP:LOAD'
    },
    'item2':
    {
        'name': '',
        'bracket': '',
        'job': "weather",
        'type': 'function',
        'timeout': 300,
        'state': 'enable',
        # 'result': '☔:0'
        'result': 'W:0'
    },
    'item4':
    {
        'name': '',
        'bracket': '',
        'job': 'traffic',
        'type': 'function',
        'timeout': 1,
        'state': 'enable',
        'result': 'D:0B    U:0B   '
    },
    'item5':
    {
        'name': '',
        'bracket': '||',
        'job': 'disk',
        'type': 'function',
        'timeout': 60,
        'state': 'enable',
        'result': 'RH:-1,-1,-1'
    },
    'item6':
    {
        'name': '',
        'bracket': '',
        'job': "day",
        'type': 'function',
        'timeout': 15,
        'state': 'enable',
        'result': 'Дн.'
    },
}

Скрипт обходит все item, парсит что это «функция», берет имя функции, и выполняет функцию с указанным таймаутом. Далее пишет информацию в общий массив и отдельный тред берет весь массив и пишет информацию в xsetroot -name. Но в целом всё это я так бы сейчас не написал. Это не православно. Православно как?

делаем конфиг в yml вида:

- item1
   - path: /some/script.py
   - timeout: 15
   - state: enable
   - result: 'UP:LOAD'

Далее в сишке обходим все item, запускаем скрипты с заданным таймаутом и пишем в какой-то общий массив. И с таймаутом 2 секунды запускаем xsetroot и подставляем всю инфу. Таким образом мы можем в мониторинг добавлять свои скрипты хоть на питоне, хоть на луа, хоть на sh и мониторинг будет забирать от них выхлоп. Было бы круто:)

А то некрасиво это:

ps_mem |grep monitoring.py

17.3 MiB + 241.5 KiB =  17.5 MiB       monitoring.py

ps_mem |grep dwm

1.3 MiB + 199.5 KiB =   1.5 MiB       dwm

Сам мониторинг занимает больше памяти, чем wm, лол

Кто возьмётся написать православный monitoring на си для dwm? =)

★★★★

Последнее исправление: bryak (всего исправлений: 5)
Ответ на: комментарий от bryak

В смысле портить? Это просто возможность, хочешь используй её, хочешь нет.

Чем so удобны

Молниеносно быстры и не требуют спавна командной оболочки и вытекающее из всего этого микроскопическое потребление памяти и процессора.

anonymous
()
Ответ на: комментарий от anonymous

Так это ж не вм, можно прибивать его сколько хочешь раз. Этот мониторинг про удобство, а не про микроскопическое потребление памяти)). Чтобы можно было удобно было добавлять в мониторинг модули и чтобы всё по-человечески было

bryak ★★★★
() автор топика
Ответ на: комментарий от anonymous

Если у тебя нет потребностей следить за состоянием чего либо то это не значит что это не нужно. Просто у тебя не было такой практики

Да почему, я тоже обвешивался торсмо, коньками и statusd_* в ионе когда-то. Потом попустило. Все это суета.

bread
()
Последнее исправление: bread (всего исправлений: 1)
Ответ на: комментарий от bryak

Коньки в тайлинге не видны будут

Коньки емнип тоже умеют выводить строку текста в root окно.

bread
()
Ответ на: комментарий от bryak

Так это ж не вм, можно прибивать его сколько хочешь раз.

  • 1 Да это может (и сейчас является) отдельной программой, но даже в этом случае прибивать её не надо, в этом нет смысла, всё что она запускает не блокирует ничего изменение конфига перезагружает все items.

  • 2 Кто-то захочет именно встроить патчем этот мониторинг в сам dwm что-бы была монолитность. В dwm монолитность это вообще вся суть его существования, поэтому там и конфиг в виде заголовочного файла.

Чтобы можно было удобно было добавлять в мониторинг модули

Так как наличие возможности написать в качестве исполняемой единицы gettime.so вместо gettime.py этому мешает? Один модуль это у тебя lua скрипт, другой python, третий a.out, четвёртый .so либа. Это человек для себя на месте решает что ему удобно, тебе удобно на python делать, мне удобно so либы делать и то и то можно указать как исполняемое и всё.

Или у тебя религиозные прения? Но тут как бы дёргать so либы будет даже более каноничнее чем скрипты

anonymous
()
Ответ на: комментарий от anonymous

Посмотри на все мониторинги на саклесс, там все они отдельно идут, а не монолитом в двм. Потому что мониторинг - не часть вм. Он никак не может повлиять на его работу. Это просто штука, которая пишет в xsetroot. Ее пихать в двм - глупость кмк

bryak ★★★★
() автор топика
Ответ на: комментарий от anonymous

Тогда уж обмазываться вяйлендом

Вяленд не готов.

либо на худой конец овсом

Вот когда появится навороченный standalone-композитор (а не эти ваши убожества типа комптона или что там сейчас вместо него), в идеале интегрированный с WM, чтобы всякие анимации, фильтры и прочее можно было скриптовать — тогда и предлагайте всякие свои задротоWM вместо Compiz :P

mertvoprog
()
Ответ на: комментарий от mertvoprog

Плюсую, все «суперсовременные» композиторы и wm-встроенные ничтожество по сравнению с Compiz который был написал уже можно сказать в бородатых годах.

anonymous
()
Ответ на: комментарий от mertvoprog

fork не осилили

Зачем? Лучше падать всем вместе с dwm, если никому ненужный монитор упадет.

anonymous
()
Ответ на: комментарий от anonymous

Ну падайте, только не жалуйтесь потом, что XEmbed в простое без WM ломается ;)

mertvoprog
()
Ответ на: комментарий от mertvoprog

Ты какую то херню несёшь. Хоть через fork, хоть через exec, хоть через popen, да хоть через system с записью в файл и его потом чтением. У меня дяди нет над душой, как хочу так и делаю, а хочу не делаю. Ты можешь предложить что угодно, спасибо. Модуль в виде *.so будет всё равно экономичнее любого варианта, а ведь с претензий к нему и началось, а ты подхватил и в какое то не то русло завёл. Ну камон, я не злопамятный, но ты откровенно наезд делаешь. Причём тут Rust? На нём к слову уже есть полноценная программа для dwm именно для мониторинга, есть и есть. Кому то надо, кому то нет.

anonymous
()
Ответ на: комментарий от mertvoprog

А зачем нужен композитор, тем более навороченный? Ты гедонюка штоле, любитель извращений?

anonymous
()
Ответ на: комментарий от anonymous

Модуль в виде *.so будет всё равно экономичнее любого варианта

Шо, даже патча? Расширять dwm кроме как через патчи некошеґно :P

На нём к слову уже есть полноценная программа для dwm именно для мониторинга

A Наша и не для dwm, она для xfce4-panel, ну и в консольку ещё можно выводить без разметки. Хотя можно и прочие форматы вывода прикрутить.

mertvoprog
()
Ответ на: комментарий от bryak

Всё норм, промежуточные я более не буду выкладывать. Ведь даже стартовая микро-портянка вызвала NULL эмоций =) Но у меня на всё про всё неделя где то есть времени, вернее пол часа/час в день на это. То есть в сумме примерно 1 рабочий день. Если к тому времени будет по моему всё если не ок, но терпимо хоты бы то выложу тут сразу, а там уж дальше сами. Если будет не терпимо то отложу до момента когда у меня появится ещё время.

Но в целом склоняюсь к философии Debian то есть появится тогда когда будет готово. Пока что склоняюсь, а не склонен уже.

anonymous
()
Ответ на: комментарий от mertvoprog

Шо, даже патча?

Смотря какого, но так то нет. Но мы про «модули» внешние в этом треде речи ведём

Расширять dwm кроме как через патчи некошеґно :P

Специфика темы этого треда иная. Сам мониторинг можно патчем, а вот внешнее как дрыгалость в xsetroot так и будет.

A Наша и не для dwm

Ну и хорошо

ну и в консольку ещё можно выводить без разметки. Хотя можно и прочие форматы вывода прикрутить.

Прикрутить можно всё к чему угодно. Яж ни слова против вашего мониторинга не сказал, есть альтернатива и это хорошо, есть из чего выбрать. В чём проблема то я не пойму?

Нооооо, одно я против всё же скажу, у вас всё прибито гвоздями wlan0 вхардкожен к примеру. Да и сами мониторинги всего и вся явно прописаны в самом коде. Не, я не вникал, может это задумка такая что бы всё описывалось именно внутрях. Но у меня и по этому треду иное, у вас явный мониторинг конкретного, у меня просто пускалка внешних программ по таймеру и всё. Хотя пока не готово я шибко то брюзжать не буду не комельфо.

А тебе бы по добрее надо быть наехал на ровном месте, хотя я выше просил срачку в треде в принципе :D

anonymous
()
Ответ на: комментарий от kogoth

Просто транспилируй из питона в си, делов-то.

Дешевле начисто переписать, чем разбирать невнятные конструкции

Oberstserj ★★
()
Ответ на: комментарий от anonymous

может это задумка такая что бы всё описывалось именно внутрях

Именно так. Там в одном проекте binary crate (limonbin) и library crate (limonlib). limonbin — готовый монитор для Наших нужд, и одновременно пример, он всего несколько строчек занимает. Остальное — limonlib, который состоит из кучи независимых «плагинчиков», реализующих единый интерфейс; каждый достаёт какую-то информацию, некоторые могут её между собой шарить, чтобы не дёргать несколько раз. Можно этот интерфейс даже во внешних крейтах реализовать, и limonlib распилить на части потом.

mertvoprog
()

Так выглядит простой конфиг

format: [ 🔈️$sound ❱ ⏲️ $time ❱ 📶 $network ]

module
   modname:  sound
   modpath: ~/.executor/soundstat.sh
   timeout: 1
   enabled: true  
module
   modname:  time
   modpath: ~/.executor/timestat.py
   timeout: 60
   enabled: true  
module
   modname:  network
   modpath: ~/.executor/networkstat.lua
   timeout: 1
   enabled: true 

Примерно так сейчас выглядят юзкейсы

#строка формата
#является необязательной без неё выводу будет в порядке следования модулей в конфиге
#с ней порядок в конфиге игнорируется и следует строке этого формата
#если модуль есть в конфиге и он активен и есть строка формата в котрой он не укзаан
#то он будет автоматически добавлен в правый конец при выводе, вне зависимости от того где
#он находится к конфиге по отношению к другим, если таких модулей несколько то они будут все 
//выведены в конце 
--впорядке с верну в низ 
# символ `$` отмечает имена модулей 
# [начало и конец формата]
format:  [ 𐇑 $mem < 🖸($disk) < 🔊($4) < 🎮($gpu) < 🌵$time ] #тут формат и иконки от балды 

#this is mem stat commentary
module
   modname:  mem   # имена модулей не обязательны
                   # но нужны если нужно указать расположение относительно
                   # других в строке формата
   modpath: ./memory.sh
   timeout: 6000
   enabled: true
module
   modname: gpu
   modpath: ./gpu-load.py
   timeout: 10
   enabled: false
   
/* commentary старт
   произвольное место можно закоментировать многострочным комментарием 
   вместе или по отдельности с комментариями типа '#' или '//' или '--' 
   /**/ - для сишников
   #    - для shell писатилей
   //   - для сишников с99 и выше
   --   - для lua няшек
   
module  # эта метка разделяет модули
   modname: disk
   modpath: ./disk.lua
   timeout: 30
   enabled: true
module
   modname: time
   modpath: ./time.so
   modpath: ./time2.so  #повторное указание опции перезапишет предыдущую
                        #при этом time.so не будет загружен, обработка конфига
                        #и инициализация разделены.
   timeout: 1 #значаение в секундах, как с нулём и минусом поступать пока не знаю
--   enabled: true 
 конец */

//this is commentary с неименованным модулем
//так как он не задан в строке формата, но включён
//его вывод будет автоматически внесён в право после всех 
module
   modname:  
   modpath: ./a.out
   timeout: 1
   enabled: true
   
-- валидно создавать пустые модули
module 
module
module

module
   modname: super-puper 
   modname: super puper # puper будет проигнорированно,
                        # значения опций должны быть целой строкой без пробелов и переносов строк
                        
                        
module
   modname:  foobar
   modpath: ./a.out --get-bla  #--get-bla будет проигнорированно из за '--'
   timeout: 1
   enabled: true  
   
 module
   modname:  foobar
   modpath: ./a.out get-bla  #get-bla будет проигнорированно из за ' '
   timeout: 1
   enabled: true   

/*
Исполняемый модуль должен быть самодостаточным и не требовать указания опций
*/


Критикуй

anonymous
()
Ответ на: комментарий от mertvoprog

Ну для тех кому надо сразу всё основное сразу что-бы готовое было, сеть, звук, диск то норм чё. Но тогда раз так мы делаем немного разные вещи как и я выше говорил, у меня просто пускалка и конкатенатилка строк, ничего про мониторинг она не знает, у тебя конкретно мониторинг. Но вот кто шибко в расте не в курсе потеряется если захочет что-то своё добавить, расширить. Описали бы где то от и до типа «добавляем новый монитор» от идеи до готовности. Мож люди потянутся.

anonymous
()
Ответ на: комментарий от anonymous
  1. Лучше заюзать yml, чем такой формат конфига

format: [ 🔈️$sound ❱ ⏲️ $time ❱ 📶 $network ]

  1. а если я время без иконки хочу вывести?
  2. Лучше format перенести в секцию module
  3. Ты бы на гитбах/битбакет выложил линк, чтобы видеть процесс твоего творчества + можно там issues сформировать или предложение какое
bryak ★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)
Ответ на: комментарий от bryak

Лучше заюзать yml, чем такой формат конфига

В чём отличие? Тут нужно просто ключ=значение и всё в ином случае реализовать ямл? https://yaml.org/spec/1.2/spec.html или тащить либу в зависимости? Иначе это не ямл.

а если я время без иконки хочу вывести?

Удали иконку и всё, указав только имя модуля $time

Лучше format перенести в секцию module

Тогда порядок вывода будет равен порядку в конфиге. Если ты про иконки то в module можно добавить pre/postfix которые будут вставляться к выводу.

Ты бы на гитбах/битбакет выложил линк

Ненужно

чтобы видеть процесс твоего творчества

Процесс важен только для меня, лишние вопросы типа «а зачем ты» мне не нужны и отвечать на них нет времени

можно там issues сформировать или предложение какое

Предложения можно тут написать, а если там поднимать обсуждения то в итоге я только писать в обсуждениях и буду, а не код =)

Так или иначе

1 - Я пишу даже не для себя, а просто так взбрело в голову и всё 2 - При этом учитываю внешние пожелания 3 - Не гарантирую что приму ибо пункт 1 4 - Кому надо переделают исходя из пункта 3 5 - Лицензию не выбрал Public Domain или WTFPL поэтому заранее исходники показывать моветон без лицухи 6 - Нет никаких гарантий и обязательств, меня завтра может машина сбить.

Раз/Два в день читаю тред. Основная мысля у тебя в шапке, остальное мелочи.

Возможно по итогу от готовых исходников можно будет проблеваться и начать писать самому.

И тд и тп.

anonymous
()
Ответ на: комментарий от anonymous

Описали бы где то от и до типа «добавляем новый монитор»

Ну это ближе к релизу же, вдруг API поменяем ещё ;) Там вот два выходных поля надо добавить ещё как минимум.

mertvoprog
()
Ответ на: комментарий от mertvoprog

Ну тогда иди и пиши_код_****.jpg :) ХРЮ

Мы такую штуку на Rust пилили

пилили

init committed 27 May 2019

last committed on 25 Aug 2020

Зобросил штоле? Допиливай. Зарелизим вместе, оба скинем код и ссылки на донаты. Пасмотрим кто дороже Rust или C. Донаты через что-то публичное типа донаталертс чтобы можно было ссылку на лайв дать с прогресс барами. Твой и мой. =)

anonymous
()
Ответ на: комментарий от anonymous

В чём отличие? Тут нужно просто ключ=значение и всё в ином случае реализовать ямл? https://yaml.org/spec/1.2/spec.html или тащить либу в зависимости? Иначе это не ямл.

Тут вопрос объемный. Есть позиция минимализма, а есть позиция функциональности. Минимализм хорош, но в случае, если он не мешает функциональности. Если брать минимализм - то лучше внутри config.h сделать набор данных(items), но это не совсем удобно, ведь так? Удобно, когда есть файл конфига. Да, я согласен, что тут набор данных не очень сложный, но использование готовой либы(json или yaml - неважно) - это с одной стороны возможность этой самой либой валидировать конфиг(по меньшей мере валидный это json или yaml), с другой стороны удобный доступ к ключ значение, с третьей понятный не только тебе, а и другим принцип работы с конфигом. Я бы заюзал какую-то либу. Ничего в этом страшного нет. По крайней мере не нужно было бы писать код, который валидирует конфиг и удобно работать с ключ-значение

Удали иконку и всё, указав только имя модуля $time

Ок, чтобы была возможность использовать только значение. Кстати, иконку может отдавать модуль. Может не стоит это в конфиге делать?

Тогда порядок вывода будет равен порядку в конфиге. Если ты про иконки то в module можно добавить pre/postfix которые будут вставляться к выводу.

Это нормально. Порядок объявления итема равно порядок отображения. Ничего тут криминального нет. Хочешь поменять порядок вывода - перенеси итем в другое место

Процесс важен только для меня, лишние вопросы типа «а зачем ты» мне не нужны и отвечать на них нет времени

Хозяин-барин! Но лучше, если бы это было

Предложения можно тут написать, а если там поднимать обсуждения то в итоге я только писать в обсуждениях и буду, а не код =)

Да, ты прав

Возможно по итогу от готовых исходников можно будет проблеваться и начать писать самому.

Вот же и обсуждаем, чтобы это было похоже на нормальную тузлу

bryak ★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)
Ответ на: комментарий от anonymous

Допиливай.

Сейчас другие проекты в приоритете. Этот работает — и ладно, вывод кривой только. Когда-нибудь доберёмся, надеемся, что не через год опять ;)

типа донаталертс

У них условия анальные, надо постоянно донаты принимать, иначе неустойки какие-то. Оно для стримеров всяких годится, но не для редких штук. Да и как это выводить-то потом? Мы после ужесточения финмониторинга очкуем выводить что-либо на карточку. А крипта сама по себе бесполезна, с неё от силы телефоны пополнять можно.

Да и не особо охоча местная аудитория до донатов. На purple-metaprog вон от силы одно лицо вызвалось чего-то закинуть, какую-то маргинальную крипту LBRY; пока зарегали — Они уже передумали.

До этого ещё 7 лет назад Нам пытались на ЯД скинуть, который как раз незадолго до этого затребовал от пользователей извне РФ высылать копии документов, подтверждающих личность, бумажной почтой! В итоге транзакция тупо зависла и лишь через месяц вернулась, Мы даже отклонить её вручную не могли. Сейчас, попроще стало, местные посредники появились, которые верификацию делают за умеренную плату, но копейки, которые потенциально скинут, этого не окупят даже.

Проще вообще донаты не принимать. И спокойнее.

mertvoprog
()
Ответ на: комментарий от bryak

Ладн, посмотрим. Кастомную конфигурацию я в любом случае оставлю ибо она уже есть и тупо работает. А на счёт libyaml,jansson,libconfig и иже с ними подумаю и под конец прикручу МБ кому надо соберут с -D_USE_YAML -D_USE_JSON -D_USE_LIBCONFIG или тип того и используй чо хошЪ. Просто вся валидация тут это проверка чиселка чтобы была больше или равна нулю, проверка длинны PATH_MAX для пути до модуля и проверка длинны иных строк, хотя всё вообще остальное можно ограничить в 512 символов и всё, типа размер вывода, размер имени модуля и… да и собсна всё. Больше ничего и нет. Нам не нужны массивы, объекты, float значения,экспонентная запись, вложенность массивов в объекты и объектов в массивы. Это всё если только с прицелом на расширение там. Увидим в общем. Опять же текущий конфиг от ямла нихера и не отличается шибко, ну могу сделать минусики перед значениями :D будет 1 в 1. А более сложных конструкций и не надо ведь? Не ну серьёзно, допустим всё готово, но вдруг хочется нечто для чего нужны например массивы или объекты или вложенноть. Давай пример где в этой тулзе такое может понадобится, я вот прям сейчас пока пишу придумать не могу. Может я конеч не прав. Ладн, увидим. В любом случае сегодня я нихера не сделал по сути. Вернусь когда вернусь (пару/тройку дней) читать буду наверное, писать нет вероятно.

anonymous
()

А иксы сколько занимают? Метров 200 небось?

anonymous
()
Ответ на: комментарий от anonymous

Видишь, вроде ничего сложного в этом всём нет, а как дело до практической реализации доходит…

Ждем релиза)))

bryak ★★★★
() автор топика

А зачем это нужно? Чтобы мониторить локалхост? Заведи себе NewRelic бесплатный аккаунт или купи SignalFX, дешевле все равно будет

nikolnik ★★★
()
Ответ на: комментарий от nikolnik

состояние сети, время, сколько почты на почте вывести и тому подобное.

anonymous
()
Ответ на: комментарий от anonymous

Ну что там? Не успел на ДР мне подарок сделать ? =). Стабилизировал мониторинг или еще не написал ? xD

bryak ★★★★
() автор топика
Ответ на: комментарий от bryak

Я всё стёр мне не понравилось. Пишу по новой, но мне уже снова не нравится и хочу стереть. Я в целом не тороплюсь, там когда всего по прикидкам строк на 500 и всё нуууу может 1000, тоесть проблема не в написании, а втом что бы мне тупо понравилось или хотя бы «ну тип не бесит и ладно», с днём рождения конечно, счастья радости добра =) В день колгда я релизну на тебя не упадёт кирпич с крыши и ты останешься жив это можно будет считать вторым днём рождения вот и получишь в честь оно того самое. Гентушники имея готовое ебилды ждут? Ждут. Вот и ты жди :D

anonymous
()
Ответ на: комментарий от mertvoprog

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

anonymous
()
Ответ на: комментарий от anonymous

лучше 146% современного кинематографа

Лучше многого, да, даже на голову хотя по большей части плавает в одной выгребной яме. Но не лучше всего. Если для тебя это лучшее что ты видел в современности то ну не знаю расширяй кругозор что ль. Вычеркни ютуб из жизни хоть на месяц и мир засияет адекватными красками.

anonymous
()
Ответ на: комментарий от bryak

тебе бы давно уже сказали что так, а что не так

А то я сам не вижу. И да, сделай ты хоть всё идеально, но на 1000 строк найдётся 1000 человек которые в каждой строке скажу что тут вот не так, а можно «лучше». Нет уж, публикация чего либо в процессе разработки это ЗЛО сначала ты делаешь ровно так как ты задумаешь, затем ты смотришь на всё это со стороны и оцениваешь, после ты вносишь изменения частичные или архитектурные, думаешь о вариантах, подходе в целом и внутреннем так сказать ощущении того что ты делаешь, постепенно доводя всё до того состояния когда твои желания максимально воплощаются твоими возможностями, опытом и знаниями до готовой машины из мыслей. И уже тогда ты заводишь эту машину и вывозишь на улицу показать её ровно той которой ты её задумал. И уже будучи имея на руках законченное заезжаешь в гараж где уже с интересом слушаешь тех что твою машину разбирает на запчасти и указывает на что либо, на то в чём сам ты уверен и можешь принять лучшее или опровергнуть худшее и даже лучшее можешь если оно враг хорошего.

Скажи мастеру высечь в камне статую и вокруг него поставь 10 других мастеров и получишь глобус.

Не парься выложу я код. Причём вот сюда и выложу, ну моооооооооожет быть на гитхаб. После написания сопровождать у меня цели нет, кому надо подхватят и это ещё один момент так как благо софтинка мелкая, но написать её надо так что бы сопровождать её просто не нужно было бы.

Ещё раз, узбагойзя взё харазо. Просто ещё существует внешний мир, и чаще чем реже он отнимает до 20 часов в сутки, сорян, приходится ещё и спать =)

anonymous
()
Ответ на: комментарий от anonymous

да я не говорил что лучше всего. пожалуй самое годное что видел - apocalypse now, true detective, 12 monkeys, концовку блейд раннера. я уж не говорю про какие-то культовые вещи типа брата, криминального чтива, пригоршни баксов и.т.д. давай свой список, будем меряться, может чего годного посмотрю.

Вычеркни ютуб из жизни хоть на месяц

я пытаюсь, чет смотрю вообще уже полный трэш

anonymous
()
Ответ на: комментарий от anonymous

В целом ты прав. Думаю, что это норм. Первые две итерации обычно мусорные. Третья должна быть вполне

bryak ★★★★
() автор топика
Ответ на: комментарий от anonymous

Не забудь только добавить проверку от запуска дубликатов мониторинга. Чтобы 10 раз нельзя было запустить его, а только один раз

bryak ★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.