ուրեմն, ընկերներիցս մէկը տեսաւ ոնց ա gentoo֊ն բաներ շինում, ասաց՝ շատ հաւէս կը լինէր եթէ սէթի ժամանակ սա պրոյեկտուէր կամ սթրիմ լինէր։
մտածեցի՝ իսկապէս, պէտք ա փորձել։
տեղակայեցի obs։ ու obs֊ով կարողացայ դա անել։
բայց մի խնդիր կար՝ ես ունեմ գլոբալ USE ֆլագ՝ “-pulseaudio”։ ու pipewire էլ չունեմ։
նէնց չի որ նորութիւն ա։ նախկինում gnome֊ի esd֊ն ու kde֊ի arts֊ն էլ չէի օգտագործում։
միշտ միայն alsa էր։ աւելի ճիշտ՝ նախ դէ միշտ չէ, առաջ oss էր, նաեւ երբ արդէն alsa էր, եղել ա որ իմ սաունդ քարտը չի ճանաչել, ու ես oss էի շինել, որ աշխատի։ ու բնաւ չէի նեղւում oss֊ով։
հիմա էլ մտածում եմ՝ պէտք ա փորձել, գուցէ ինչ֊որ բան աւելի լա՞ւ աշխատի։
ինչեւէ, pulse բնականաբար չունեմ։
ու սթրիմն էսպէս ա աշխատում՝ butt ծրագիրը վերցնում ա ալսա֊ի նշուած մուտքից ու ուղարկում ա anonradio։
բայց հիմա աւելացել ա obs֊ը, ինքն էլ ա ուզում վերցնել։
ու պարզուեց՝ առաջինն ով վերցնում ա, սարքը իրան ա վերցնում նէնց որ ուրիշին չտայ։
ու եթէ butt֊ն եմ առաջինը միացնում՝ obs֊ը էլ ձայնը չի տեսնում, եթէ obs֊ն եմ առաջինը միացնում՝ butt֊ը էլ չի տեսնում։
սա լուծեցի էսպէս՝ ես ունեմ միշտ միացուած jack ֆլագ, ամէնը jack֊ի աջակցութեամբ եմ հաւաքում։
jack֊ը միացրի, իսկ ինքը սէնց հաւէս վահանակ ունի ուր մի ծրագրի ելքը կարող ես այլ ծրագրի մուտքին միացնել։ տէնց միացրի՝ եւ obs֊ին եւ butt֊ին, իսկ իրանց ասացի որ մուտքը jack֊ից վերցնեն՝ ու եղաւ։
բայց յետոյ միւս ընկերս ինձ գրեց՝ որ հա շատ հաւէս ա, բայց գիտես, դուրս չի գալիս որ էդ պատուհանը ուր վիդեօն ա, ինքը մի տեսակ ինտեգրուած չի քո դեսքթոփի հետ՝ առանձին վրայից դրուած ա։
ու ես մտածեցի՝ իսկապէս։
ապա նաեւ մտածեցի՝ չեմ ուզում է էս obs֊ը, կուզէի պարզապէս քոմանդլայն անել։
նախ փորձեցի ոնց կարդամ mplayer֊ով վիդեօ մուտքը։
դէ սկսեմ նրանից որ վիդեօ մուտքն ինձ մօտ նոութի վեբկամից չի, այլ canon խցիկից։
v4l2loopback մոդուլը պէտք ա քոմփայլ եղած լինի, ու միացուած՝
sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2
յետոյ քենոն խցիկը կը ստեղծի վիդեօ սարք gphoto2֊ի օգնութեամբ՝
sudo gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -s 1368x912 -threads 2 -f v4l2 /dev/video0
օկ, հիմա կպնենք mplayer֊ով՝
mplayer -tv device=/dev/video0:driver=v4l2 tv://
հաւէս, ցոյց տալիս ա։ բայց երբ սթրիմ արեցի, տեսայ որ mplayer֊ի պատուհանը կապոյտ ա։
կարդացի, նրանից ա լինում որ mplayer֊ն օգտագործում ա x11֊ի overlay կոչուող հնարաւորութիւնը՝ էդպէս անմիջապէս վիդեօ քարտին հասանելիութիւն ունի ու աւելի արագ ա ցոյց տալիս։
բայց էս ձեւով չի լինում որ ffmpeg֊ը իր x11grab միջոցով տեսնի պատուհանի պարունակութիւնը։
ու այն տեսնում ա այսպէս կոչուած placeholder գոյնը՝ որը կապոյտ ա։
ապա փորձեցի էսպէս, ու եղաւ։
mplayer -vo gl -tv device=/dev/video0:driver=v4l2 tv://
հա, բա ինչպէ՞ս եմ ffmpeg֊ով սթրիմ անում էկրանս։ ասացի որ վերեւի ձախ 1920x1080 չափով անի, որ ստանդարտ որոշութիւն լինի։
ffmpeg
-f x11grab -r 30 -s 1920x1080 -i :0.0+0,0
-f jack -i ffmpeg
-c:v libx264 -preset ultrafast -c:a aac
-f flv “rtmp://toobnix.org:1935/live/${KEY}” | grep -v rtmp
KEY֊ը նախապէս սահմանում եմ վերեւում ու ֆիլտրում եմ որ յանկարծ չերեւայ հոսքի մէջ։
առաջին անգամ երեւաց, դրա համար ջնջեցի կարգաւորումները, նոր բանալի ստեղծեցի ու հիմա ֆիլտրում եմ։
ընդհանուր առմամբ էսպէս։
ուրեմն յաջորդականութիւնը։
միացնում եմ խցիկը gphoto2֊ով ու mplayer֊ով։ յետոյ միացնում եմ qjackctl
յետոյ միացնում եմ butt֊ը, համոզւում եմ որ կարողանում ա jack֊ից վերցնել աւդիօն։ յետոյ միացնում եմ ffmpeg֊ը ու qjackctl֊ի վահանակով միացնում ձայնը նաեւ ffmpeg֊ին։
ու տէնց։
#աւդիօ #վիդեօ #սթրիմինգ #սթրիմ #հեռարձակում #էկրանահան #սէթ #երաժշտութիւն #լինուքս #տէք #տեքնոլոգիաներ #տէքնոլոգիաներ #կոնսոլ #աւտոմատացում #պարզութիւն
եւս մի պատճառ ջենթու օգտագործելու (բազմաթիւ այլ պատճառներ ունեմ) ինձ համար այն ա, որ եթէ ինչ֊որ բան չեմ կարողանում հաւաքել, կամ բարդ ա հաւաքել՝ չեմ օգտագործում։
օրինակ, էս պահին փայնբուքս տառապում ա որ ֆայրֆոքսն ու դրա կախուածութիւնները հաւաքի։
դեռ կարողանում ա։
օկէյ, դեռ կօգտագործեմ։ բայց միւս անգամ ես արդէն կը մտածեմ, արդե՞օք ինձ դա պէտք ա։ եթէ ինքն էդքան տառապում ա՝ երեւի ինձ դա պէտք չի։
netsurf֊ը հաւաքւո՞ւմ ա՝ ուրեմն էդ ա։
չի՞ ցոյց տալիս էջեր՝ ուրեմն էլ աւելի կը լծուեմ պարզ էջեր ստեղծելուն կամ ջեմինի անցնելուն։ որի ուղղուց ես չեմ շեղուելու, պարզապէս բարդ ա անց կացնելը իմ ուեբ ներկայութիւնը, զի շատ լեգասի ունես, բայց կանցնեմ մի օր։
ըստ որում՝ երբ ես ասում եմ մարդկանց՝ մի դուրս եկէք ֆէյսբուքից, բայց մեզ հետ էլ շփուէք դաշնեզերքում, նման բան ես ասում եմ հիմա ինձ՝
դեռ օգտագործի լինուքս, բայց զարգացրու օբերոն համակարգը։
դեռ օգտագործի վեբ, բայց հնարաւորինս շատ գնա դէպի ջեմինի։
ու տէնց։
#անկապ #համացանց #ազատութիւն #տէք #ջեմինի #ուեբ #վեբ #դիտարկիչ #ջենթու #պերմակարգչութիւն #պարզութիւն #մարդավարի #մարդկային #մարդիկ
ուրեմն մենք՝ մարդիկ որ սիրում են կախուածութիւններ քիչ ունենալ, կարողանալ կրկնել ուրիշի աշխատանքը, ու դրանով մտածել որ քիչ թէ շատ հասկացել ենք, ու հետեւաբար փորձում ենք պարզ գործիքներ օգտագործել, մենք հակուած ենք լինում օգտագործել սովորական posix shell
, օրինակ՝ /bin/sh
(բնաւ փաստ չի որ ձեզ մօտ դա սիմլինկ չի /bin/bash
֊ի), ու այն պատճառով, որ տեսականօրէն bash
֊ը posix shell
֊ի գերբազմութիւն ա։
ու եթէ թուիթերեան մշակոյթի ձեւով արտայայտել, որ bash > sh
՝ — հէնց այդ պատճառով մեզ համար sh
֊ն նախընտրելի ա, զի less is more
։
բայց այդ կոնկրէտ դէպքում՝ posix shell
֊ի սինտաքը ու էս կամ էն բանն անելու ձեւը էնքա՛ն աւելի ոչ ընթերնելի (եւ ոչ գրելի) ա, քան bash
֊ում, որ նոյնիսկ լիւկ սմիթն ա անցնում bash
֊ի մէկ մէկ, զի… չգիտի ինչպէս դա անել ̶մ̶ա̶ք̶ո̶ւ̶ր̶ո̶վ̶ մաքուր շելլում, որը, տեսականօրէն, աւելի պարզ պէտք ա լինէր։
գերբազմութիւնը աւելացրել ա աւելի պարզ կոնստրուկցիաներ։
ու իրականում մեզ պէտք ա աւելի պարզ shell
— որն օրինակ ունենայ bash
֊ի կոնստրուկտները, բայց չպարունակի նաեւ պատմական posix shell
֊ի կոնստրուկտները։
դէ չեմ խօսում այն մասին, որ կարգին shell
չունենք, ամենաընթերնելի֊գրելիները սարսափելի են, բայց դա այլ հարց ա։
#իւնիքս #տեք #միջավայր #նախագծում #պարզութիւն
բռունցքն ինձ ցոյց էր տալիս իր արդուինօները, ու ասում էր, որ սիրում ա դրանք՝ պարզ են, օհ չունեն։ գրում ես՝ կատարում են։
ու շատ ոգեւորեց, իրականում։
նաեւ, աւելացնեմ, օհ֊ի «օվերհեդ» չունեն, որն ունի լինուքսը, կամ թէկուզ զէֆիրը։
նաեւ, ռասփբերին անհամեմատ աւելի շատ հոսանք ա վառում։ ես ժամանակին համեմատում էի, adafruit֊ը արեւային պանելներ էր ծախում, որ կարողանում էին սնել arduino, կամ ասենք, avr atmel֊ով տպասալ, բայց raspberry pi֊ի համար դա շատ շատ շատ քիչ ա։
երբ raspberry֊ն դուրս եկաւ, ես ուրախացայ՝ զի մանկուց ունեմ վախ առանց կարգիչ մնալու, ու դա էժան համակարգիչ ունենալու ձեւ ա, միւս կողմից տխրեցի՝ զի մարդիկ, որ նախկինում պէտք ա աւելի ցածր մակարդակի գործ անէին arduino֊ով, կանեն պայմանական փայթընով կամ ջս֊ով նոյն նախատիպերը՝ raspberry֊ի վրայ։
(նաեւ, էսօր ասում էի ուսանողներին, երբ ասեմբլեր կոդ էինք գրում, ախր շատ հեշտ բան ա ասեմբլերը, մանաւանդ risc պրոցեսորի ասեմբլերը։ էնպէս չի որ սիրում եմ, չեմ կարծում որ պէտք ա դրանով ամէնը գրել՝ ու առհասարակ, իրանով ամէն ինչ ա կարելի անել, իսկ ես սահմանափակումներ եմ սիրում։ բայց պարզ ա, իրականում, շատ աւելի պարզ ա, երբ 35 ինստրուկցիա սովորելով կարող ես գրել ամէն ինչ, քան c++ սովորելով կարող ես գրել ամէն ինչ։)
հա, պարզ ա, ասում ա։ ու էներգախնայող։
ու ապա կրկին գալիս եմ օբերոն օհ֊ի յանճարին, երբ քանի որ այն «սինգլ թրեդ» օհ ա, դու չունես օվերհեդ։ ո՞ր կոդն ա պէտք կատարուի, կատարւում ա լրիւ քամելով ռեսուրսները երկաթի։ բայց օհ ունես, ունես աբստրակցիաներ, ունես տիպերի ստուգում, ունես դինամիկ մոդուլների բեռնում, շատ բան ունես։ եւ չի ծախսում յիշողութիւն։ դէ պարզ ա։ չունի շատ ֆունկցիոնալ, ակնյայտօրէն լինուքսի պէս ճկուն չի, բայց պարզ ա, փոքր, էներգախնայող։
#անկապ #արդուինօ #ռասփբերի #փայ #երկաթ #տեք #պարզութիւն #մինիմալիզմ #օբերոն
թուանշային մինիմալիզմը պատասխան ա կորպորատիւ տեքին։ կորպորատիւ ծրագրակազմն այնքան ա հսկայացել, որ մենք չենք կարող մրցել եւ ստեղծել նմանատիպ այլընտրանքային ծրագրակազմեր։
մտքին եկող առաջին օրինակը՝ մենք չենք կարող ստեղծել մրցունակ վեբ շարժիչ։ իսկ վեբը աճել եւ ճարպերով ա լցուել մասնաւորապէս ինտերնետ գիգանտների շնորհիւ՝ իրենք են առաջարկել եւ անց կացրել իրենց իսկ պէտք եկած ստանդարտներ՝ w3c կոմիտէում։
այսօր մենք մնացել ենք խոշոր խաղացողների վեբ շարժիչների յոյսին։ նոր նախաձեռնութիւն՝ ոչ միայն ազատ, այլ եւ սեփականատիրական՝ դժուար թէ հնարաւոր ա՝ շատ թանկ ա։ արդէն այնքան կոդ ա գրուած, որ այդքանը կրկին գրելն իրատեսական չի։
սա միայն դիտարկիչներին չի վերաբերում։ կան բազմաթիւ տեքնոլոգիաներ, որ առաջ են տարւում թէ որպէս սեփականատիրական, թէ որպէս ազատ, բայց կորպորացիա(ներ)ի կողմից են կառավարւում։
ուզելով բարդ եւ չաղ ծրագրակազմ մենք նպաստում ենք մենաշնորհների ստեղծմանը։
հրաժարուելով ֆիչըրներից եւ ընտրելով մինիմալիզմը՝ ստեղծում ենք մրցունակ տիրոյթ, ազատւում ենք մենաշնորհներից։
հսկայ նախագծերը մեզ նաեւ հետ են պահում իննովացիաներից։ զի քանի որ «այսքանը կրկին գրել չի լինի», մենք կը մնանք իւնիքսում, եւ ոչ աւելի առաջադէմ օպերացիոն համակարգում՝ ինֆերնօյի կամ ա2֊ի պէս, եւ մենք կը մնանք c++֊ով, չկարողանալով անցնել առաջ, եւ ազատուել այդ, իր կեանքն ապրած դինոզաւրից։
ազատ հանրութեան մի մասը դա զգում ա, ու փորձում ա նախագծել պարզ ստանդարտներ եւ պարզ հաղորդակարգեր։
դրա ցայտուն օրինակն ա ջեմինին։ ջեմինին պարզ ա բայ դիզայն եւ նախագծուած ա այնպէս, որ մարդը կարողանայ գոնէ մի շաբաթում գրել սերուեր կամ դիտարկիչ։ որ մարդը կարողանայ մի երկու երեկոյ նստելով, հասկանալ կոդը։
ու այստեղ ես գալիս եմ թուանշային մինիմալիզմի մի մետաֆորայի՝ մինիմալիստական տեքնոլոգիաներով օգտուելը նման ա մարդու չափսին համահունչ քաղաքում ապրելուն։ քաղաքում, ուր երեք֊հինգ յարկանի խիտ դրուած շէնքեր են, եւ ամէն վայր հասանելի ա ոտքով։
ի տարբերութիւն՝ մեծ տարածութիւններով բնակավայրում ունես կախուածութիւն՝ ստիպուած ես տեղափոխուել մեքենայի օգնութեամբ։ խոշոր բիզնէսը, ի դէպ նպաստեց այդ կախուածութեան ստեղծմանը՝ մեքենայ արտադրող կորպորացիաները ժամանակին ձեռք են բերել ամն քաղաքների տրամուայ աշխատեցնող ընկերութիւնները, եւ փակել դրանք։
մեծ տարածութիւնները, նաեւ բարդ ա պահել՝ ճիշտ այնպէս ինչպէս բարդ ա իրականացնել չաղ հաղորդակարգը, ծրագրաւորման լեզուն, գրադարանը, ֆիչերներով լի ծրագիրը։
մարդու չափսին համահունչ չեն նաեւ բարձրայարկերը։ բացի նրանից որ բարձր են, ստեղծում են տարածութիւն՝ բարձրայարկ շէնքերի միջեւ պէտք ա լինի բաւական տեղ՝ եթէ չես ուզում բոլորն ապրեն առանց արեւ, եւ այդ շէնքերի միջեւ ընկած տարածութիւնը, ինչպէս եւ այդ շէնքերը պահելը՝ թանկ ա եւ բարդ։
պարզ տեքնոլոգիաները նաեւ սիրուն են։ զի ստիպուած ես ազատուել նրանից, ինչ շատ պէտք չի, եւ պահել էականը։ դրա համար պէտք ա նաեւ հասկանալ եւ առանձնացնել այդ էականը։
այստեղ մենք կրկին գալիս ենք մոդուլար դիզայնի՝ կամ «մի ծրագիր անում ա մի բան», կամ պէտք եկած պահին բեռնուող մոդուլներ։
անպէտքից հրաժարուելն ու էականը գտնելու հմտութիւնը անհրաժեշտ ա լինում եւ արուեստում, եւ ճարտարապետութեան մէջ, եւ ցանկացած նախագծում։
եթէ չկայ ֆիչըրներ առաջարկող եւ աւելացնող ընկերութեան հետ մրցելու կարիք՝ կարելի ա գրել սիրուն նախագծեր։ մնում ա մարդիկ զգան այդ գեղեցկութիւնը։
զի եթէ մարդիկ ուզեն ամէն «ֆիչըր» որ առաջարկում ա կորպորատիւ ծրագրակազմը՝ մենք ընկնելու ենք ֆիչըրների սպառազինութեան մրցավազքի մէջ, որում, դժուար թէ յաղթենք։
ինձ թւում ա, պէտք ա ընդունել մինիմալիզմը, եւ ընտրել այն։
դա նշանակում ա՝ բարձրացնել համակարգչային գրագիտութիւնը։ գրագիտութեան պակասն ա որ թոյլ ա տալիս կորպորացիաներին հրապուրել եւ կախուածութեան մէջ պահել մարդկանց։ գրագիտութիւնը թոյլ կը տար օգտուել ազատ այլընտրանքներից եւ ստեղծել ազատ այլընտրանքներ։ ազատ՝ երբ տեքնոլոգիան ենթարկւում ա քեզ, ոչ թէ ուրիշին։ ազատութիւնն ու գրագիտութիւնը կողք կողքի են քայլում։
#մինիմալիզմ #ազատութիւն #ծրագրակազմ #ազատ_ծա #ազատ_ծրագրակազմ #սեփականատիրական_ծրագրակազմ #ֆիչըրացաւ #սպառազինութեան_մրցավազք #մրցավազք #մարդիկ #նախագծում #գեղեցկութիւն #պարզութիւն #դիզայն #համացանց #քաղաք #գրագիտութիւն