Pro WEB & IT – Telegram
Pro WEB & IT
1.29K subscribers
87 photos
6 videos
1 file
340 links
Про IT в целом, WEB технологии, программирование и не только. Разбираю вопросы с собеседований и IT головоломки. Для тех, кто хочет найти работу по душе: https://news.1rj.ru/str/geekjobs
Download Telegram
Тем, кто пытал­ся работать с HTML из shell-скрип­тов, зна­кома боль от попыток пар­синга с помощью регуля­рок. Для вас сущес­тву­ет xj — ути­лита, которая кон­верти­рует HTML-стра­ницу в JSON для даль­нейшей обра­бот­ки. Обра­баты­вать JSON из скрип­тов очень удоб­но с помощью jq:


$ wget -qO- https://geekjob.ru | xj | jq '..|select(.noscript?)[][]' "geek"


Прек­расная вещь для прос­тых пар­серов, ког­да по каким‑то при­чинам не хочет­ся прог­рамми­ровать.

https://idiomdrottning.org/xj
👍7🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Cкрипт outrun - поз­воля­ет ­вынес­ти вычис­ления за пре­делы сла­бого тон­кого кли­ента на мощ­ный удален­ный сер­вер. Для работы нужен уста­нов­ленный outrun на обо­их хос­тах (и на локаль­ном, и на уда­лен­ном), при­чем с наличи­ем прав root (исполь­зует­ся chroot).

Как самый оче­вид­ный при­мер, при­веден­ный авто­рами outrun, — мож­но запус­тить локаль­ный видекон­вертер­ FFmpeg, с исполь­зовани­ем ресур­сов сер­вера. На гиф­ке замет­на весь­ма зна­читель­ная раз­ница во вре­мени выпол­нения.

Ус­тановить мож­но пря­мо из pip.
pip3 install outrun

По­том мож­но запус­тить тре­буемую коман­ду на уда­лен­ной машине:
outrun srv4.local neofetch

Фай­ловая сис­тема будет дос­тупна, буд­то локаль­ная, и резуль­таты работы коман­ды тоже будут записа­ны в текущую пап­ку на локаль­ном ком­пе.

https://github.com/Overv/outrun
🔥3👍1👏1
Linux Journey — инте­рес­ный сер­вис для про­кач­ки и про­вер­ки сво­их зна­ний о Linux. Этот бес­плат­ный гид по Linux мне в свое вре­мя мог бы неп­лохо помочь. Воз­можно, при­годит­ся тебе или кому‑то из тво­их зна­комых!

https://linuxjourney.com/
👍5🔥41
Ресурс с раз­нооб­разны­ми однос­троч­никами — эта­кая биб­лиоте­ка команд на все слу­чаи жиз­ни.

https://linuxcommandlibrary.com/basic/oneliners.html
3👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
С помощью Webify мож­но вывод прак­тичес­ки любой коман­ды тран­сли­ровать как веб‑сер­вис. Хорошее решение для прос­того шерин­га кон­соли: запус­каете Webify со сво­им сер­висом, а дру­гой человек берет бра­узер или curl и вза­имо­дей­ству­ет с вашим при­ложе­нием.

https://github.com/beefsack/webify
👍2🔥21
TTYgames — кол­лекция кон­соль­ных игр. Хотя и выг­лядит это в XXI веке как анах­ронизм, но почему нет?

https://ttygames.wordpress.com/
2👍2🔥1
Ssh-tools — это неболь­шой набор ути­лит для тех, кто мно­го работа­ет по SSH. Самыми полез­ными из них кажут­ся эти:

ssh-ping — про­пин­говать SSH-сер­вис (не машину, а имен­но демон SSH);
ssh-diff — срав­нить фай­лы на раз­ных машинах;
ssh-facts — нем­ного информа­ции об уда­лен­ной сис­теме;
ssh-force-password — про­пус­тить авто­риза­цию по клю­чу и залоги­нить­ся по паролю (если сер­вер поз­воля­ет);
ssh-keyinfo — информа­ция о клю­чах.

Все ути­литы из это­го набора пар­сят ~/.ssh/config, так что мож­но исполь­зовать уже нас­тро­енные име­на хос­тов отту­да.

https://github.com/vaporup/ssh-tools


На­бор есть в репози­тори­ях всех популяр­ных дис­три­бути­вов — можешь прос­то ста­вить пакет ssh-tools.

https://repology.org/project/ssh-tools/versions
👍32👏1
Ес­ли ты пос­тоян­но работа­ешь в тер­минале — порой тебе быва­ют нуж­ны изо­лиро­ван­ные песоч­ницы. Некото­рые дела­ют их через Docker, соз­давая кон­тей­нер с ОС и копируя туда‑сюда фай­лы прог­раммы, дру­гие соз­дают chroot-окру­жение и работа­ют в нем. Оба спо­соба тре­буют боль­шого количес­тва шагов и наличия root, так что при­менять их неудоб­но.

Conty дела­ет запуск песоч­ницы лег­ким и быс­трым. Для запус­ка кон­тей­нера не тре­бует­ся root, а фай­лы пос­ле выхода из песоч­ницы сох­раня­ются.

Все­го один исполня­емый файл. Никакой обвязки — ска­чал и работа­ешь. Соб­ран на базе Arch Linux, то есть сра­зу содер­жит акту­аль­ные вер­сии драй­веров. Не тре­бует root-прав для запус­ка. Со­дер­жит Vulkan и OpenGL, то есть под­ходит для игр. Ра­бота­ет без овер­хеда — это не вир­туаль­ная машина.
Изо­лиру­ет ФС хос­та, но обес­печива­ет удоб­ное вза­имо­дей­ствие песоч­ницы с хос­том. Для работы необ­ходимо все­го ничего: tar, fuse2, coreutils и bash.

https://github.com/Kron4ek/Conty
👍52🔥1👏1
Бес­плат­ные SSL-сер­тифика­ты мож­но получить не толь­ко у Let’s Encrypt! Ребята из ZeroSSL дают аль­тер­натив­ный сер­вис, где мож­но получить все те же сер­тифика­ты на те же 90 дней. Исполь­зовать мож­но ста­рый доб­рый ACME. Если по каким‑то при­чинам искали замену ­­Let’s Encrypt — вот она

https://zerossl.com/

Про­цеду­ра выпус­ка сов­сем нехит­рая: ука­зыва­ешь поч­ту и пароль и под­твержда­ешь вла­дение доменом через DNS или заг­рузкой на него задан­ного фай­ла. Через нес­коль­ко минут сайт сге­нери­рует сер­тификат и пред­ложит его ска­чать.
🔥51👍1
Eget — это клас­сная ути­лита, с помощью которой мож­но уста­нав­ливать софт из репози­тори­ев GitHub, где авто­ры раз­мести­ли релизы с бинар­никами.

Ес­ли бы eget мож­но было уста­новить с помощью eget, то дос­таточ­но было бы написать

eget zyedidia/eget

Ес­ли же eget у тебя еще нет, при­дет­ся вос­поль­зовать­ся готовым ре­лизом или скрип­том‑уста­нов­щиком:

curl https://zyedidia.github.io/eget.sh | sh
👍32🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Gping - кра­сивый инс­тру­мент в твою копил­ку «псев­догра­фичес­ких свис­топер­делок» — ping с визу­али­заци­ей пря­мо в окне тер­минала.

https://github.com/orf/gping
👍31🔥1👏1
Ncdu (NCurses Disk Usage) — это про­качан­ная вер­сия du, которая показы­вает занятое мес­то в кра­сивом псев­догра­фичес­ком интерфей­се.

С ncdu ты можешь не толь­ко смот­реть, сколь­ко занима­ют фай­лы в каком‑то катало­ге, но и лег­ко переме­щать­ся меж­ду ними, а если решишь уда­лить что‑то ненуж­ное, то дос­таточ­но будет нажать кноп­ку d. Естес­твен­но, по слу­чай­ному нажатию прог­рамма ничего не уда­лит — в нее встро­ен новей­ший телепа­тичес­кий ана­лиза­тор, который про­верит твои намере­ния, зап­росив под­твержде­ние.

Ус­танов­ка прос­та как два доллара:

sudo apt install ncdu

При запус­ке ncdu прос­каниру­ет текущую пап­ку и выдаст резуль­таты. Путь для ска­ниро­вания мож­но ука­зать пер­вым аргу­мен­том:

ncdu /

Ути­лита работа­ет с впе­чат­ляющей ско­ростью, чем немало раду­ет.

https://dev.yorhel.nl/ncdu
🔥42👍2
Uptime Kuma — прос­той self-hosted-инс­тру­мент для соз­дания стра­ниц, поз­воля­ющих отсле­живать работос­пособ­ность сер­висов и монито­рин­га, ког­да не нуж­но деталь­но ана­лизи­ровать сис­темные парамет­ры на наб­люда­емых машинах.

https://github.com/louislam/uptime-kuma
👍5
LibreSpeed — самый прос­той скрипт для орга­низа­ции тес­тирова­ния ско­рос­ти на сер­вере. Уста­нав­лива­ется одной коман­дой через Docker:


docker run -e MODE=standalone -p 8080:80 -it adolfintel/speedtest


https://github.com/librespeed/speedtest
👍21👏1
Если кто-то пропустил, то недавно релизнулся Vim9. Как по мне одна из главных его фишек: это новый скриптовый язык программирования: vim9noscript

Создатели решили сделать его похожим на что-то среднее между Python и JS/Typenoscript

Примеры кода:


def SomeFunc()
var func_var = noscript_var
if cond
var block_var = func_var
endif
enddef

var Lambda = (arg) => ({key: 42})


Ну те писать расширения и расширять возможности теперь будет интереснее и больше функциональности можно добавить, кмк.

Про новый ЯП можно прочитать тут: https://vimhelp.org/vim9.txt.html#Vim9-noscript
👍4🤯2🤔1
Хочется общения и комьюнити. Особенно в нынешние времена это очень актуально, быть в комьюнити и находить единомышленников

А посему я запустил чатик: @hackdevclub

Хочу написать свою идеологию, которой я придерживаюсь

На сегодня Ит индустрия очень развита и разрослась до таких размеров, что почти все митапы и конференции - это тусы энтепрайзников, где все делятся опытом как команда фронтендеров из 20 человек строит воркфлоу взаимодействия с 30 бэкендерами и 10 дизайнерами, как во все это вовлекается отдел QA и девопсов...

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

Я в профессии с 2001 года, я олдфаг и я скучаю по первым версиям тусовок типа пхп клаба и им подобгным. Когда не было и мысли что есть отдел девопсов и тестировщиков, а все были ИТ инженерами. Бэкендеры умели хтмл и джаваскрипт, был популярен пхп и нестандартный подход к решению задач.

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

Поэтому добро пожаловать в клуб "Синяя изолента", он же Growth Hack Development Club

У меня давно есть мечта собрать свою миниконференцию-митапы на эту тему и сейчас ищу спикеров, собираю доклады

Read more...
👍4🔥3
Освобождаем удаленные файлы без перезапуска процесса
Н­е все про­цес­сы зак­рыва­ют фай­ловые дес­крип­торы (ука­зате­ли на файл на дис­ке) даже пос­ле уда­ления фай­ла. Тог­да du -hs такие фай­лы не най­дет, но при этом df -h покажет, что мес­то используется.

Ес­ли нет уве­ренности, что у тебя имен­но так, — про­верить это мож­но с помощью:
lsof | grep deleted | less

Са­мый прос­той спо­соб решить проб­лему — эле­мен­тарно переза­пус­тить про­цесс. Но если сде­лать это нель­зя, есть еще один вари­ант.

На­ходим, какие фай­лы уда­лены:
# find /proc/*/fd -ls 2> /dev/null | grep '(deleted)' | grep logstash

Очи­щаем файл(ы):
# truncate -s 0 /proc/path/2/file
👍3🔥2👏1
Quickemu приз­ван облегчить соз­дание дес­ктоп­ных вир­туаль­ных машин. Теперь боль­ше не нуж­но искать дис­три­бутив, ста­вить его в вир­туаль­ное окру­жение (которое час­то тре­бует­ся еще и нас­тро­ить перед этим), нас­тра­ивать гос­тевую ОС и толь­ко пос­ле это­го поль­зовать­ся — дос­таточ­но написать все­го две коман­ды и получить готовую сис­тему.

https://github.com/quickemu-project/quickemu

Мож­но прос­то в две коман­ды запус­тить любой дис­три­бутив:

quickget ubuntu focal
quickemu --vm ubuntu-focal.conf



Так же лег­ко мож­но пос­тавить, нап­ример, macOS:

quickget macos catalina
quickemu --vm macos-catalina.conf



Кро­ме Catalina, конеч­но, под­держи­вают­ся еще и high-sierra, mojave, big-sur и monterey. Более подробно о запус­ке macOS читай в репози­тории.

Ус­тановить мож­но даже новей­шую Windows 11!

quickget windows 11
quickemu --vm windows-11.conf
🔥4
Cockpit — это боль­шая веб‑кон­соль для управле­ния сер­вером.

Ус­танов­ка мак­сималь­но прос­та:

sudo apt update
sudo apt install cockpit
sudo systemctl enable cockpit
sudo systemctl start cockpit


За­тем нуж­но открыть порт 9090 на фай­рво­ле:

sudo ufw allow 9090/tcp


Даль­ше мож­но нас­тро­ить дос­туп через реверс‑прок­си nginx по име­ни хос­та с нор­маль­ными SSL-сер­тифика­тами и на при­выч­ных пор­тах.

На­чина­юще­му и не только DevOps'у это может здо­рово облегчить жизнь.
🔥3👍1
Miller — это ути­лита, которая уме­ет обра­баты­вать струк­туриро­ван­ные дан­ные в фор­матах CSV, TSV и JSON. Ука­зыва­ем исходный фор­мат, ука­зыва­ем нуж­ный нам фор­мат — и получа­ем резуль­тат в жела­емом виде.

https://github.com/johnkerl/miller

Ес­ли у тебя Ubuntu, miller уста­нав­лива­ется одной коман­дой.

sudo apt install miller

Ес­ли ты работа­ешь с таб­лицами из тер­минала, то это полез­ней­шая шту­ка!
👍6
Для того, чтобы научиться работе в VIM, можно использовать встроенные уроки vimtutor

Для того чтобы открыть их прямо в виме в сплит режиме, можно сделать так:
Запускаем vim и далее в командном режиме:

: vert term
$ vimtutor
<c-w>j
👍3