NetHogs is a small ‘net top’ tool. Instead of breaking the traffic down per protocol or per subnet, like most tools do, it groups bandwidth by process.
В GUI утилите это делается элементарно одним кликом по заголовку столбца с скоростью передачи для сортировки. В CUI приходится страдать с over 9000 утилит выполняющих одну и туже задачу но немного по разному.
Всем насрать на гуй. Админы админят через ssh, а мониторят вообще через всякие забиксы. Кому твой гуй там всрался
И в итоге все равно генерят отчеты через какую-нибудь кибану. А большинство смертных имеют единственный сервер, для которого гуй очень даже неплох — у них нет ни желания, ни ресурсов городить целую инфраструктуру сбора данных через Zabbix или EKL только для того, чтобы заадминить файлопомойку.
Так что бы смернтым не собраться, не взять сорцы nethogs и не приделать его выхлоп ко всем гуёвым таск манагерам? Лучше сидеть на жопе, ныть на лоре и ждать, когда сишники-небожители запилят? Когда автору nethogs понадобился монитор он пошел его и, %ля, сделал.
Так что бы смернтым не собраться, не взять сорцы nethogs и не приделать его выхлоп ко всем гуёвым таск манагерам?
Зачем? Я, например, хоть и использую гном, всегда запускаю htop, когда мне надо такая информация;
Скорее всего гноморазработчики пошлют такого самаритянина подальше, потому что у них СВОЕ ВИДЕНИЕ. Вряд ли они не приделали эту информацию, потому что не могут.
Так что бы смернтым не собраться, не взять сорцы nethogs и не приделать его выхлоп ко всем гуёвым таск манагерам? Лучше сидеть на жопе, ныть на лоре и ждать, когда сишники-небожители запилят? Когда автору nethogs понадобился монитор он пошел его и, %ля, сделал
Если мне нужно будет, то я сделаю себе гуй. Правда, я не уверен, что я его кому-то опенсорсну. Не только лишь все помнят, что гуй пишут простые смертные при помощи самого обычного софта. Просто, нынче писать код стало немодно, все в основном занимаются переделкой копипасты со стаковерфлоу. А гуй? Пусть его энтерпрайз архитекторы пишут.
Зато когда система встаёт раком — виндовый админ остаётся с носом, ибо ни в соседнюю tty убежать, ни по SSH подключиться, только по прожорливому RDP ;)
Ну эта штука со спермёрки только появилась, да и запускали её пару раз от силы ;) Соединения мониторили COMODO Firewall’ом, плюс в Safari для Windows был удобный монитор загрузки страниц, всё в одном окне с деревом вкладка→ресурсы.
Шо, неужто у гномосеков хотя бы диспетчер задач внезапно не убожество с полутора кнопками?
Убожество конечно, но кое чего есть.
ps/top/htop же ;)
да я именно про сеть, остальные ресурсы местами лучше мониторятся, тот же аффинити или дерево потоков найти в настройках htop гораздо проще проще чем в диспетчере задач. Но справедливости ради - они там есть в отличии от того же систем монитора гномячьего.
C-то тоже говно мамонта почти без развития, но жив ;)
Go настолько же похож на Си, как и на паскаль
Go занял пустующую промежуточную нишу между чисто компилируемыми языками и рантаймщиной/скриптухой, поэтому переучивать было особо некого. Rust же метит только в существующие ниши, ну за исключением блокчейн-технологий разве что, но и там специализированных конкурентов навалом.
потому что это безальтернативная среда выполнения
Во-первых, был VBScript, который почему-то не стали тащить в не-IE, как и большинство IE-специфичных технологий (но при этом упёрли favicon и XHR, ага). Во-вторых — браузерные плагины, с закапыванием которых сильно поспешили, не успев довести WA до готовности — посему таки можно сказать, что JS временно безальтернативный, но к истории его становления (и обучения вебмакак, таким образом) это отношения не имеет: на ActionScript/Java/C# вебни настрогали тоже немало, кто хотели ;)
Современные браузеры уже умеют
Вот в этом-то и загвоздка: куча легаси ещё актуальна. Ну и современный React — это далеко не только VDOM ;)
Сравни это с Vue
Vue-то давно достойный конкурент React, в чём проблема? Вот от Angular как-то пованивать начинает, несмотря на потуги развития, Svelte мало распространён, а Vue часто встречается, особенно похапэшники его любят ;)
C-то тоже говно мамонта почти без развития, но жив
Скорее мертв, чем жив. На Си новых проектов не пишется. Собственно, именно таким, в виде наследия юникса, он и был всегда.
Go занял пустующую промежуточную нишу между чисто компилируемыми языками и рантаймщиной/скриптухой, поэтому переучивать было особо некого
Видать, ты не в курсе, что когда-то давно эту самую нишу занимал паскаль. Правда, называть ее скриптухой — это черезчур. Go тоже далек от скриптухи, он вполне себе компилируем и статически типизирован, но я понял о чем ты.
Rust же метит только в существующие ниши, ну за исключением блокчейн-технологий разве что, но и там специализированных конкурентов навалом
Это огромнейшая ниша высокопроизводительных приложений без сборки мусора, которая, в общем-то, скорее пуста, чем занята, потому что большая часть индустрии ушла в сторону PHP/Python/JS/Java/C#/Go.
Во-первых, был VBScript, который почему-то не стали тащить в не-IE, как и большинство IE-специфичных технологий (но при этом упёрли favicon и XHR, ага). Во-вторых — браузерные плагины, с закапыванием которых сильно поспешили
Нативный код всегда можно исполнить. А вот переносимая технология только одна — это JS. Жаву и флеш плеер закопали, но жава была дерьмищем с самого начала, а флеш по своей сути мало чем отличается от HTML5.
Вот в этом-то и загвоздка: куча легаси ещё актуальна
Ты про поддержку старых проектов? Ну да, они еще будут жить. Но у меня есть смутные предположения, что кучу новых стартапов клепают на React абсолютно бездумно (что значит предположения? Я видел такие стартапы).
ну за исключением блокчейн-технологий разве что, но и там специализированных конкурентов навалом
Это огромнейшая ниша высокопроизводительных приложений без сборки мусора, которая, в общем-то, скорее пуста, чем занята, потому что большая часть индустрии ушла в сторону PHP/Python/JS/Java/C#/Go.
Во-первых, был VBScript, который почему-то не стали тащить в не-IE, как и большинство IE-специфичных технологий (но при этом упёрли favicon и XHR, ага). Во-вторых — браузерные плагины, с закапыванием которых сильно поспешили
Нативный код всегда можно исполнить. А вот переносимая технология только одна — это JS. Жаву и флеш плеер закопали, но жава была дерьмищем с самого начала, а флеш по своей сути мало чем отличается от HTML5.
Вот в этом-то и загвоздка: куча легаси ещё актуальна
Ты про поддержку старых проектов? Ну да, они еще будут жить. Но у меня есть смутные предположения, что кучу новых стартапов клепают на React абсолютно бездумно (что значит предположения? Я видел такие стартапы).
Vue часто встречается, особенно похапэшники его любят
Ух ты, так я, оказывается, востребованный фронтенд программист на Vue? А я то думал, что целый год изучал какое-то бесполезное говно — большинство вакансий ведь на реакте.
С другой стороны, как кодер на Vue со стажем, я скажу: у Vue есть много проблем и отвратительные архитекторы у руля, и то, как они организовали работу с компонентами, ни в какие ворота не лезет: это и объединение разрозненных сущностей с разделением объединенных, и кривая парадигма передачи реактивных значений между компонентами, которая эту самую реактивность нарушает, и, самое главное, отсутствие механизмов взаимодействия с чистым JS и просто выходом из реактивности, из которой ты вывалишься в любом случае из-за ограничений JS.
Я хз даже, на чем бы я посоветовал писать SPA. Скорее посоветовал бы не писать SPA. Сам Facebook в итоге по этому пути и пошел, перейдя на создание нативной, но кроссплатформенной среды выполнения. К сожалению, архитектор — редкий зверь, так что не каждая контора решится пойти по пути фейсбука. Хотя тот же Qt усиленно сокращает дистанцию с противоположной стороны, создавая среду для JS на крестах.
Это огромнейшая ниша высокопроизводительных приложений без сборки мусора
Для которой уже есть C/C++. На скриптуху свалили из-за ускорения разработки; Rust эту проблему не решает, наоборот — компилятор долго и упорно бьёт разработчика по рукам там, где сишечка уже как-нибудь со внезапными сегфолтами и некритичными утечками бы поехала.
А вот переносимая технология только одна — это JS
Она была переносимой до ES6. Сейчас у смельчаков, выкидывающих транспилляцию, уже можно нарваться на Syntax error и полностью нерабочий сайт. Дальше будет только хуже.
Но у меня есть смутные предположения, что кучу новых стартапов клепают на React абсолютно бездумно
Ну у стартапов своя атмосфера, там что угодно в рот тащат, особенно если разработчики «свои», а не хайрятся ;)
большинство вакансий ведь на реакте
Большинство — да. Речь о том, что оно не подавляющее, а есть здоровая конкуренция. В отличие от каких-нибудь Ruby=RoR, или Tcl=Tk ;)
но кроссплатформенной среды выполнения
Угу, только кроссплатформенностью у них нынче называется iOS/Android — всё.
Хотя тот же Qt усиленно сокращает дистанцию с противоположной стороны
Мы тоже читаем их прилетающие на почту агитки про убийцу HTML5, а вот роста вакансий что-то не замечаем ;)
А теперь придумай мне, как сделать сборку мусора в языке, в котором не существует ссылок? То-то. Ниша у него была портируемого языка виртуальной машины для прикладных программ — именно та, где сейчас находятся Java/C#/Go.
Это огромнейшая ниша высокопроизводительных приложений без сборки мусора
Для которой уже есть C/C++
Вот потому я и пишу, что она пустует — потому что C/C++ не подходят для написания ответственного кода, например, веб-браузера. То, что на крестах браузеры таки пишут и генерируют бесконечные удаленные выполнения кода — это особая тема, давай не будем о грустном.
Она была переносимой до ES6. Сейчас у смельчаков, выкидывающих транспилляцию, уже можно нарваться на Syntax error и полностью нерабочий сайт. Дальше будет только хуже
Ну, так а кто тебе запрещает использовать транспиляцию?
Угу, только кроссплатформенностью у них нынче называется iOS/Android — всё
Там разрабатывается и винда, и мак, и веб, но основное направление — да, игрофоны.
Мы тоже читаем их прилетающие на почту агитки про убийцу HTML5, а вот роста вакансий что-то не замечаем
Потому что JS-макаку нанять проще, чем кодера на крестах, или хотя бы знакомого с QML.
А, ну тут да. В принципе в свежих версиях винды кстати вроде как добавили полноценный tty, и даже openssh(или не open) из коробки есть, нативный а не минигнутый или из всяких wsl. Я не то чтобы хвалю, прост из соображений объективности. Понятно что в онтопике оно 100500 лет. Но это примерно как сравнивать anbox который до сих пор в глубокой бетте хотя стартанул ещё 5 лет назад, и новая перделка от мелкомягких которая в 2021 по идее уже в проде будет.
Для которой уже есть C/C++. На скриптуху свалили из-за ускорения разработки; Rust эту проблему не решает,
Если сравнивать с Си то вполне решает, у раста намного больше средств для построения высокоуровневых абстракций. Вот с C++ в этом он уже тяжело конкурирует, там этих средств как бы и не больше.
Плюс на расте вполне можно писать и в стиле скриптухи, везде сплошное копирование и счетчики ссылок, понятно что производительность кода просядет, но скорость разработки будет намного выше.
Ну и надо учитывать что производительность для скриптушного кода очень сильно зависит от легкости подключения и использования сторонних библиотек, а в этом раст даст фору и большинству скриптух, а с си и С++ и сравнивать нельзя.
наоборот — компилятор долго и упорно бьёт разработчика по рукам там, где сишечка уже как-нибудь со внезапными сегфолтами и некритичными утечками бы поехала.
Это если разработчик только начинает писать на раст или пишет на нем редко с большими перерывами, любого более менее опытного компилятор бьет только в очень редких случаях.
как сделать сборку мусора в языке, в котором не существует ссылок?
А зачем?
Ниша у него была портируемого языка виртуальной машины для прикладных программ
И в этой нише он по-прежнему на высоте. Покажите нативный UI на Java/C#/Go под все поддерживаемые платформы из единой кодовой базы. А Delphi/Lazarus это могут.
потому что C/C++ не подходят для написания ответственного кода, например, веб-браузера
Десятилетиями писали (и пишут!), а тут вдруг не подходят, потому что мозилловские агитаторы напели, понятно ;) Есть пруфы на уменьшение количества CVE в жирнолисе после начала переписывания на Rust?
и генерируют бесконечные удаленные выполнения кода
Запускать на своей машине содержимое хрен пойми откуда — это by design ССЗБизм, о чём давно вещают столлманутые, но кто их слушает? ;) Не все сорта уязвимостей упираются в C-шные недочёты, напортачить ещё в куче мест можно. Более того, эти ваши спектромельдонии наглядно продемонстрировали, что предугадать уязвимости и защититься от них нельзя, только в бункере сидеть, потому что эксплоитить можно даже совершенно тривиальные и необходимые вещи.
Ну, так а кто тебе запрещает использовать транспиляцию?
Нам и на ES5 писать никто не мешает ;) Речь-то о других. А также выходит, что эти нововведения в JavaScript уже нельзя обозвать JavaScript, ибо они неполифиллимо ломают совместимость и посему не подлежат применению в дикой природе. Чем они в таком случае отличаются от всяких TypeScript/CoffeeScript/JSX/etc., которые за пределы сборочного пайплайна высовывать и не предполагается?
Там разрабатывается и винда, и мак, и веб
Речь не о них. Речь о том, что мобильных платформ, мягко говоря, больше, но лет 5 уже как чуть менее чем все забили на что-либо кроме iOS/Android. И даже там на старые версии часто забивают. Вебня в теории должна работать везде, но на практике по вышеозначенным причинам не работает.
Потому что JS-макаку нанять проще, чем кодера на крестах, или хотя бы знакомого с QML.
Ну не факт, нас вот в универе культям учили (правда, конкретно Мы лабы по ним не делали, ибо вызвались вместо на этого на альтернативное задание, о чём теперь жалеем ;)). Думаете, редко такое встречается?
Как это с WDDM сочетается? Сделали что-то типа онтопиковой фреймбуферной консоли, вместо родного текстового режима видеокарты, поддержку которого окончательно выкинули ещё в NT6.2 (из-за чего, в том числе, Мы с винды и свалили)?
Ну в плюсах тоже есть эти ваши рефпоинтеры и прочее. Да и интерпретаторы всякой скриптухи, с GC, на сишечке обычно пишутся, и что? ;) В языках с GC GC принудительный ко всему.
у раста намного больше средств для построения высокоуровневых абстракций
Они и в библиотеках для сишечки есть, разницы особой нет.
Плюс на расте вполне можно писать и в стиле скриптухи
Мы пробовали — нельзя ;) Даже если забить на всё то, чему учили в TRPL, и просто хреначить говнокод — компилятор оттрахает мозги знатно. Да и сам факт того, что надо ждать компиляции, ставит Rust в заведомо проигрышное состояние (впрочем, эти ваши шебпаки и WAR тоже ждать нужно нынче).
легкости подключения и использования сторонних библиотек
Ну с одной стороны, они маленькие и модульные (как и в скриптухе), зато к C/C++ если уж чего подключить, так там инструментарий на все случаи жизни ;)
любого более менее опытного компилятор бьет только в очень редких случаях
Пока опытный надрючится, в язык натащат новых плюх и опять пляска по граблям начинается. Молодой ведь язык, развивающийся ;) Не то что жабка какая-нибудь, где из завезения лямбд сделали событие эпохальной величины ;) Помнится, один жабист Нас в 2014-м пытались удивить конкатенацией строк через + в Java, типа Мы в JS её не видали ;) — и при том, что это непроизводительный бэдпрактис.
как сделать сборку мусора в языке, в котором не существует ссылок?
А зачем?
Вот именно: отсутствие ссылок привело к отсутствию сборщика мусора. Низкая гибкость такого подхода в конце-концов привела к появлению указателей. Решения для сборки мусора есть и под паскаль, и под C/C++, но они непопулярны по одной причине — отсутствие четко прописанного в языке понятия ссылки на объект. Не указателя в вакууме, а ссылки на конкретный объект четкой структуры. К слову, в том же D проблема исправлена, в результате чего первая реализация была с GC.
И в этой нише он по-прежнему на высоте. Покажите нативный UI на Java/C#/Go под все поддерживаемые платформы из единой кодовой базы. А Delphi/Lazarus это могут
Ты переоцениваешь его способности. Последние версии VCL так себе работают даже под виндой. Сейчас они перешли на FireMonkey, которая по сути представляет собой подражание WPF. Последнему, в общем-то, много чего другого подражает, в том числе UWP и JavaFX, но эти решения относительно непопулярны. Впрочем, я не могу сказать, что писание приложений на FireMonkey сильно популярно.
Десятилетиями писали (и пишут!), а тут вдруг не подходят, потому что мозилловские агитаторы напели, понятно
Десятилетиями и ОС писали на Си, а потом внезапно выяснилось, что теперь их пишут на крестах. По той же причине: потому что Си предоставляет слишком, слишком мало путей для инструментальной гарантии корректности работы кода. Крестовые контейнеры позволили устранить факторы вроде «вышел из функции и забыл вызвать код высвобождения ресурсов» или «высвободил ресурсы, но после этого продолжаю их использовать в коде финализации». Самое страшное в обоих этих языках — это то, что ошибки, когда они все-таки совершаются, очень тяжело отследить, порой сложно даже просто заметить последствия ошибки, не то что найти саму ошибку. В том числе это происходит из-за смешения стэка вызовов с данными — это и есть то самое необходимое условие для удаленного выполнения кода. Нужно либо изолировать стэк вызовов, либо гарантировать безупречно корректную работу с ним — по последнему пути пошли многие языки, в том числе Java/C#/Go, и Rust.
Причем, C/C++ настолько проел всем мозги, что люди, в том числе ты, на полном серьезе думают «ну да, у нас удаленное выполнение кода, бывает». Но неужели ты не понимаешь, что программу с потенциальным удаленным выполнением кода в принципе нельзя допускать к сетевой среде! Да-да, написание сетевых компьютерных систем на C/C++ недопустимо — именно это я имею в виду. Сам юникс стал лучшим доказательством этому, когда в нем спустя годы все-таки появилась сеть и студенты начали из шалости выносить целые институты компов на юниксах через многочисленные дыры в юниксовых сервисах. Как полагается, вместо затыкания дыр в их фундаменте, власти решили решать проблему через введения законов и карание несогласных.
Сидящие тут ньюфаги и не слышали о таком, они на полном серьезе думают, что дырявость — это винда, они не в курсе, первым дярявым и завирусованным друшлагом был именно Unix, а винда уже унаследовала это свойство вместе с языком Си. Как и линукс, впрочем, но к этому времени, как я уже сказал, все привыкли, потому отвечали «ну есть уязвимости, и ладно, выпустят патчи».
Запускать на своей машине содержимое хрен пойми откуда — это by design ССЗБизм, о чём давно вещают столлманутые, но кто их слушает?
И что ты собрался тогда делать на машине? На одни пинги отвечать? Дал пользователю SSH — считай что дал ему права рута.
Не все сорта уязвимостей упираются в C-шные недочёты, напортачить ещё в куче мест можно
Самый главный фундаментальный сишный недочет, которого, как ни странно, не было в паскале, не было в коболе, в фортране, в бейсике — это возможность менять код программы при ошибке работы с данными. Даже когда данные и код, казалось бы, вообще не пересекаются и в программе нет ни одного указателя на функцию. Да, можно сделать ошибку в алгоритме, да, испортятся данные, да, программа будет неправильно работать. Но чтобы программа при ошибке работы с данными начала эти данные выполнять? Это же бред, вы сумашедшие, как вам могло прийти в голову писать такую программу? Да еще и в сеть ею светить!
Более того, эти ваши спектромельдонии наглядно продемонстрировали, что предугадать уязвимости и защититься от них нельзя
Это проблема процессора, который некорректно выполняет программы. С этим тяжело что-то сделать, и ни один язык тут напрямую не виноват.
Нам и на ES5 писать никто не мешает ;) Речь-то о других. А также выходит, что эти нововведения в JavaScript уже нельзя обозвать JavaScript, ибо они неполифиллимо ломают совместимость и посему не подлежат применению в дикой природе. Чем они в таком случае отличаются от всяких TypeScript/CoffeeScript/JSX/etc., которые за пределы сборочного пайплайна высовывать и не предполагается?
А ES5 откуда взялось? У тебя почему-то не возникает вопроса «а что если браузер поддерживает только ES4?». Вот так же будет с ES6.
Речь о том, что мобильных платформ, мягко говоря, больше, но лет 5 уже как чуть менее чем все забили на что-либо кроме iOS/Android. И даже там на старые версии часто забивают. Вебня в теории должна работать везде, но на практике по вышеозначенным причинам не работает
Это проблема в принципе индустрии, и она никак не решена. Нельзя запустить десктопный электрон на мобилке, нельзя запустить приложения под React Native на десктопе и надеяться, что оно будет безупречно работать. Это в принципе два очень разных мира, потому про кроссплатформенность можно говорить только в контексте «кроссплатформенный фреймворк для игрофонов» и «кроссплатформенный фреймворк для пек».
У меня сейчас как раз такой проект, в котором руководство еще не дошло до этой простой мысли, и на полном серьезе считает, что сможет сделать один проект сразу под игрофоны и пеки. А я просто выполняю ТЗ и надеюсь, что свалю до выпуска проекта в релиз, когда станет очевидно, что этот вебсайт в кордове налазит на игрофон, как сова на глобус, и при этом на ПК недостаточно утилизирует доступные ресурсы, заставляя раскошеливаться на повышенную нагрузку сервачков бэкэнда. Примерно по этому сценарию громко и под фанфары умирает проект мессенжера Slack, который тратит сотни миллионов долларов в год на сервера. А теперь сравни это со старым Skype, который почти не создавал нагрузку на сервера, за исключением платных услуг IP телефонии.
Ну не факт, нас вот в универе культям учили (правда, конкретно Мы лабы по ним не делали, ибо вызвались вместо на этого на альтернативное задание, о чём теперь жалеем ;)). Думаете, редко такое встречается?
У меня тут под боком есть такие экземпляры, что я удивляюсь их способности выкатывать что-то рабочее даже на JS. Правда, не всегда получается рабочее. А кресты с их опасным кодом? Забей просто, можно даже не пытаться. Вопрос как бы не в том, чтобы что-то просто написать на языке — вопрос в том, как заставить это работать, и на JS заставить работать проще.
Плюс на расте вполне можно писать и в стиле скриптухи, везде сплошное копирование и счетчики ссылок, понятно что производительность кода просядет, но скорость разработки будет намного выше
Хм-м-м, а это интересный тезис. Есть примеры, которые подтвердят твои слова? Потому что я абсолютно точно знаю, что так нельзя писать в Си, потому что неизбежно упрешься в повреждения памяти. На крестах может быть и можно, но подобных библиотек под кресты я не знаю, а стандартные либы делают мозги уже под крестами, про раст можно даже не начинать.
Зловредный код меняет указатель возврата на произвольную функцию, также попутно прописывая в стэке параметры для вызова этой самой функции, и вуаля — мы вызываем произвольную функцию с произвольными аргументами, хотя, казалось бы, в системе есть запрет на выполнение данных. Конечно, писать исполняемый код в стэк было еще веселее, но это уже прошлый век.
Это проблема процессора, который некорректно выполняет программы. С этим тяжело что-то сделать, и ни один язык тут напрямую не виноват
А что за проблема?
Проблема в том, что процессоры становятся чудовищно переусложнены, их создатели срезают углы, порой ломая работу старого кода, а порой создавая уязвимости. Багов в процессорах на самом деле очень много, но простая публика редко интересуется ими. Вот, в последний раз meltdown/spectre взбудоражило публику, но только потому, что все новые процессоры повально оказались уязвимы, а не только какой-то отдельный проц.
Зловредный код меняет указатель возврата на произвольную функцию, также попутно прописывая в стэке параметры для вызова этой самой функции, и вуаля — мы вызываем произвольную функцию с произвольными аргументами, хотя, казалось бы, в системе есть запрет на выполнение данных.
То бишь устанавливают необходимые привилегии и меняют флаг страницы?
То бишь устанавливают необходимые привилегии и меняют флаг страницы?
Ссылки на проекты, где обеспечивается динамическая загрузка и выполнение кода не подскажете?
Хотелось бы вместо jit попробовать такой способ загрузки и выполнения кода.
Ссылки на проекты, где обеспечивается динамическая загрузка и выполнение кода не подскажете?
Хотелось бы вместо jit попробовать такой способ загрузки и выполнения кода.