ասք ենթագրեր հանելու մասին

գրում եմ որ չմոռանամ հիմնականում՝

ընկերներիցս մէկն ուզում էր կազմակերպել «Տղամարդիկ» ֆիլմի դիտում իր անգլախօս բարեկամների համար։ փտնրեց համացանցում անգլերէն ենթագրեր, եւ, բնականաբար, չգտաւ։

ապա որոշեց պատրաստել ենթագրերն ինքնուրոյն։ ինձ ասաց, որ եթէ գտնէր գոնէ ինչ֊որ լեզուով .srt նիշքեր, ապա անհամեմատ աւելի հեշտ կը լինէր անգլերէն վարկածը պատրաստել՝ առնուազն ժամանակի մասի վրայ ջանք ծախսել պէտք չէ՝ արդէն կայ։

ես ունէի «Տղամարդտանց» ինչ֊որ ռուսաստանում արտադրուած դի֊ւի֊դի֊ի պարունակութիւնն ինչ֊որ մի հեռու տեղ։ Գտայ, ստուգեցի՝ իրօք պարունակում է ռուսերէն ենթագրեր։

Գիտէի, որ դրանք լինում է .srt֊ի փոխակերպել, բայց չգիտէի ինչպէս։ Սկսեցի կարդալ, եւ ասեմ որ նկարագրուած ձեւերի մեծ մասն իմ մօտ չաշխատեց, ներառեալ avidemŭ եւ ogmrip֊ի օգտագործելը։

հիմա, ինչ եմ արել, որ ստացուել է՝

նախ, որպէսզի բացել դիւիդի֊ն ոչ թէ իսօ պատկերից,

mplayer dvd:// -dvd-device /ուղի/դէպի/այդ պանակը

, որտեղ video_ts պանակն է։

Նաեւ ստուգեցի, որ համարի հոսքն է՝ առաջինը ինչ֊որ ՌԴ դրօշով տեքստ էր, զգուշացնող ում տունն է, արտադրողի կարծիքով, բանտում։
Երրորդը հոսքը՝ ֆիլմն էր։
Ապա՝

mplayer dvd://3 -dvd-device Men -v -vo null -ao null | grep "subtitle"

Ստանում ենք՝

subtitle ( sid ): 0 language: ru
subtitle ( sid ): 1 language: ru
number of subtitles on disk: 2

Երբ փորձում էի “-slang 0” կամ “-slang 1”

mencoder dvd://3 -dvd-device Men -nosound -ovc frameno -o /dev/null -slang 0 -vobsubout mensubtitle

ստանում էի դատարկ ելքային նիշքեր։

-rw-r--r-- 1 noch noch  538 Մայ 18 12:11 mensubtitle.idx
-rw-r--r-- 1 noch noch    0 Մայ 18 12:11 mensubtitle.sub
# file mensubtitle.sub 
mensubtitle.sub: empty

Ապա փորձեցի “-slang ru” դրօշով՝

mencoder dvd://3 -dvd-device Men -nosound -ovc frameno -o /dev/null -slang ru -vobsubout mensubtitle

ու ահա, 1.4 մբ֊նոց ելք՝

-rw-r--r-- 1 noch noch  32K Մայ 18 16:02 mensubtitle2.srt
-rw-r--r-- 1 noch noch 1.4M Մայ 18 12:17 mensubtitle2.sub

Գուցէ այդ պատճառով էլ տապալւում էր ogmrip֊ը, երեւի համար էր նշում, իսկ յետոյ բողոքում, որ ելքային նիշքերը չի կիրառի քանի որ զրօական չափս ունեն։

ի՞նչ է իրենից ներկայացնում։ ահա թէ ինչ։

# file mensubtitle2.sub 
mensubtitle2.sub: MPEG sequence, v2, program multiplex

Պարզւում է, դիւիդի֊ի վրայ ենթագրերը չեն պահւում տեքստի տեսքով, այլ արդէն ռենդեր արած վիդեո֊ի տեսքով են։

Ու նուագարկիչը «օվերլեյ» է անում մի վիդեո հոսք միւսի վրայ։

Ով կը մտածէր։ Ահա սա այն մասին է, երբ ժողովրդի ստեղծած ազատ ֆորմատներն ու տեխնոլոգիաներն աւելի առաջադէմ են կորպորատիւներից։

Օկեյ, բա ինչպէ՞ս վերածենք դրանք տեքստի։ Պարզւում է, պէտք է տառաճանաչում (optical character recognition) անել։

տեղակայեցի tesseract, /etc/portage/package.use ֊ի մէջ աւելացնելով

app-text/tesseract -scrollview linguas_ru

քանի որ իմ /etc/portage/make.conf֊ի LINGUAS֊ը փոխել չեմ ուզում, եւ այնտեղ գրուած է՝ “hy hy_AM en en_GB”

եւ vobsub2srt ծրագիրը, որն, ի դէպ, Ջենթու համակարգերի համար տեղակայման սխալ նկարագրութիւն ունէր, եւ այդ նկարագրութիւնը ձեռքի հետ ուղղեցի։

Աւելի լաւ է «օվերլեյ» պատրաստէր, մէկ է գիտհաբ արդէն օգտագործում է, քան առաջարկէր հիմնական «փորթիջ» ծառի մէջ «եբիլդ» տեղադրել։
Սիրուն չի, Տարօն, չունի այդ կուլտուրան նախագծողը։

Հիմա՝

# vobsub2srt mensubtitle2
WARNING: Image too small 8, size: 411840 bytes, 720x0 pixels, expected at least 9x1
spudec: Error determining control type 0xd6.  Skipping -6 bytes.
Wrote Subtitles to 'mensubtitle2.srt'

Եւ ահա, պատրաստի ելքային նիշք՝

Տղամարդիկ_ենթագրեր_ռուսերէն

ու տենց։

այսօր նոր լափթոփի վրայ համակարգ էի տեղակայում։ ֆանթու։

ռութը ինչպէս միշտ, սարքեցի XFS, քոմփայլ արեցի միջուկ ու grub2։

սակայն, անակնկալ, grub֊ը չէր կարողանում բեռնել միջուկը։ հմ։

20160125_002.jpg

ես երկրորդ գրաբի շելլի հետ բնաւ ծանօթ չեմ։ մի քանի հրաման գրեցի՝ help — չկայ, ls — աշխատեց։ ասաց՝
(hd0) (hd0,msdos1) (hd0,msdos2)

վաու։ փորձեցի

ls (hd0,msdos1)

ասաց որ XFS է տեսնում։

հիանալի։ բա ինչի՞ չի բեռնում միջուկը։

սկսեցի կարդալ ինչպէս են grub2֊ի հետ աշխատում՝

set root=(hd0,msdos)
set prefix=(hd0,msdos1)/boot/grub
insmod normal

լիքը սխալ էկրանին։
նորմալ անունով մոդուլը գտնուած չէ։

20160125_005.jpg

այս հաղորդագցութիւնը, որ չի կարողանում կարդալ XFS, ստիպեց մտածել, կարո՞ղ է այս բեռնիչի վարկածը չի կարողանում նոր XFS կարդալ։ համացանցում գտնում էի որ լուծւում էր, երբ մարդիկ առանձին ext /boot բաժին էին ստեղծում։

ես բնաւ չէի ուզում, քանի որ արդէն ամէն տեղեկատւութիւնը լցրել էի դիսկի վրայ, ու չեմ էլ սիրում առանձին /boot բաժին ունենալ։

ապա քաշեցի grub֊ի այսօրուայ ելատեքստը իրենց git շտեմարանից։ այնպէս ստացուեց, որ ստիպուած եղայ ուրիշ կարգչից քաշել, տառ սարքել, ու նոր լցնել նոր կարգչի վրայ։

հիմա ժամանակն է խորամանկութիւն կիրառել, որ հեշտ լինի։

կամ պէտք է գնայի /portrage/sys-boot/grub եւ պատճենէի grub֊ի տեղակայման նիշքը, սարքելով git-999 եբիլդ նիշք, եւ խմբագրելով, կամ, որը շատ աւելի հեշտ է, ու պէտք չէ ոչ մի բան փոխել git ծառում՝ արեցի emerge grub, եւ սեղմեցի ctrl+s, այն պահին, երբ արդէն բացել է ելատեքստը /var/tmp/portage պանակում, բայց դեռ չի անցել կոմպիլյացիային։

ապա վրայից լցրի իմ նոր քաշած գիտ սնեփշոթը։ յետոյ chown -R portage:portage /var/tmp/portage/*
հիմա ctrl+q
կարծես գնաց։ բայց գնաց՝ կոնֆիգուրի անվերջ թուացող լուփի մէջ մտաւ։ ինչո՞ւ։ կանգնացրի, տեսնեմ, երբեմն զգուշացում է երեւում, որ սորսը ապագայի թայմսթեմփ ունի։

հմ։ ուրիշ պատուհանում՝ emerge openntpd; ntpd -s;

մի հատ էլ կոմպիլյացիան անցաւ, եւ տեղակայեց ինձ հնարաւորինս թարմ բեռնիչի վարկած։

grub-install /dev/sda

boot-update

ահա։ վերմեկնարկելուց յետոյ ամէն ինչ աշխատեց։ պատճառը ճիշտ էի կռահել։

(:

ու տենց

հոսքային

նայում եմ, ֆլիքրում պարզւում է մաեմո խումբ կար, արդէն մեռած, ու ինչ հաւէս հաքերական համայնք էր հաւաքուել մաեմո֊ի շուրջը՝ ֆոտոներ մաեմո֊ից կառաւարուող ուղղաթիռներով, գիտական հաշուիչներով, զանազան ծրագրերով, բութ լոադերներով, սրամիտ հետդիրներով։

www.flickr.com_2016-01-24_14-13-15

ո՞ւր են այդ մարդիկ։ ֆլիքրով երեւում է՝ մէկը լումիա է առել, դրանով է նկարներ անում։ մէկը՝ հտց։ բայց այլեւս այդ հաքերական տրամադրութիւնը չկայ։ իչնի՞ի։

գուցէ այդ «լաւ» ու «վատ» կոմպանիաները իրօք գոյութիւն ունեն։ միջավայրը կապ ունի, չէ՞։ ակնյայտ է, որ ՄԻԹ֊ում այլ միջավայր է քան մեր կոռումպացուած եւ ամբողջովին փտած պոլիտեխնիկում։

մաեմո֊ն հոսք էր ստեղծել, կրեատիւ դասի մի հոսք, ուր այդ մարդիկ ընկել էին։

իսկ հիմա այդ հսոքը չկայ, ու իրենք այդ հոսքից դուրս մի ձեւ ապրում են, ինչպէս բոլորը։

ու գուցէ իմ, ասենք gta04֊ի մեյլ լիստեր կարդալը այդ հոսքի կարոտն է, ես այդ պատճառով եմ տխրում որ մաեմոն մահացաւ։ ու ես լրիւ զգում եմ, որ ոչ սեյլֆիշը, ոչ անդրոիդը այդ իմ ասածը չապահովեցին, չստեղծեցին։

ու ի դէպ, գուգլ թրենդերին նայելով, ակնյայտ է, ինչու յոլլա֊ենք փողի կարիք ունեն։ իրենք երբեք այդ հանրայնութիւնը չեն վայելել։ չգիտեմ ինչու։ կարծես վատ մարկետինգ չէին անում։

google.com_2016-01-24_14-28-53

այս կանաչ Յոլլա֊ն Ֆինլանդիայի հետ կապ չունի՝ Կալիֆորնիայի կուրորտներից է։ ։Պ դեղինի աճն է պէտք համեմատել նոկիայի հետ։

երեւի աւելի լաւ պատկեր ցոյց է տալու մաեմո եւ սեյլֆիշ համեմատելը։

google.com_2016-01-24_14-31-37

հետաքրքիր է նաեւ, որ ն900֊ով լաւ հետաքրքրուած էին Իրանում։ երեւի մենք թերագնահատում ենք իրենց տեխնիկական պոտենցիալը, ու «տեխնար» մարդկանց քանակը։

google.com_2016-01-24_14-31-28

ու տենց

ասք ռեւերս ճարտարագիտութեան մասին

սեփականատիրական գրաֆիկական ծրագրի ռեւերս ինժեներինգ եմ անում, ահա ինչից ինչ եմ ստանում՝

Untitled

քանի որ այդ գործիքը միայն ջպգ է կարողանում պահել, այստեղ են կորուստները։
բայց ընդհանուր առմամբ հասկանալի է ինչ է անում։ ։Պ

ու տենց

ահագին հաւանում եմ Փիթեր Մաթիասի Օբերոն/Լինուքս Ռիւայւալ նախագիծը։

այսօր աւելացրի իրա քոմփայլերին մի փաթչ, որը նախկինում աւելացրել եմ վիշապի մէջ։

Եթէ ունենք CASE, որը չի աւարտւում ELSE֊ով իսկ եղած վարկածներից ոչ մէկը չէ, ապա տեղի է ունենալու այսպէս կոչուած թռափ։ Սա ինձ ահագին գլխացաւանք է պատճառել նախկինում, երբ ես տարբեր կոդի հետ գործ ունենալիս փորձում էի հասկանալ, ինչու է այն մեռնում։

Ու քանի վիշապը փաթչ եմ արել, նոյն փաթչը որոշեցի այդ նախագծին էլ տալ։

Սա Վիշապի զգուշացման տեսքն է՝

Իսկ այսպէս է մեռնում ծրագիրը Օբերոն համակարգում՝

Ահա եւ ուղղումը՝

եւ այդպէս։ ։Ճ

ինձ լաւ է, ու չի կարող վատ լինել։ քանի որ ես ունեմ երկու կայացած սէր։ ոչ մէկն էլ մարդ չէ։ ոչ մէկն էլ շուն չէ։
ու իրենք ինձ չեն լքի։

մէկը ֆոտոն է, միւսը՝ տտ֊ն։
(երկուսն էլ այնքան խորն են, որ կեանքս չի հերիքի էքսփլոր անել։ ու չեմ ուզում փորձել ինձ ասենք երաժշտութեան մէջ։ չնայած գուցէ վատ չէր ստացուի։)

ոչ թէ ձեր իմացած ֆոտոն ու ձեր իմացած տտ֊ն, այլ իմ իմացած ֆոտոն, ու իմ իմացած տտ֊ն։ որ ինձ են հաճոյք պատճառում։ քանի որ ես ջաւա գրելուց հաճոյք չեմ ստանում։ ու կապ չունի որն է իռացիոնալ կերպ փոխուող «մեծամասնութեան» կարծիքով «ճիշտ»։ There’s so many different worlds, ու ես ունեմ իմը։

ու ոչինչ, որ այստեղ մենակ եմ, իսկ դուք շատ էք, ձեզ մօտ փարթի է, ու դուք տժժում էք։ ես չեմ կարող վաճառել իմ սխալը ձեր ճշտի փոխարէն։ իմն է քանի որ։

ինչ֊որ «մալչիշեսկի» բան եմ տեսնում իմ ու վօկի մասին։

ի դէպ երբեմն անտանելի բարդ է լինում, ու ոնց որ իրօք վիշապի հետ պայքարէս։

սա ոնց որ ասպետական «քուեսթ» լինի, ինչ֊որ վեհ թուացող նպատակի համար, ասենք գրաալի, կամ արդարութեան։

օրինակ, կարծում եմ, որ օբերոնը չգնահատուած է։Cannot access memory at address 0x0

ասք ձեզ նկարելու մասին

ուրեմն ընկերոջս cyanogenmod եմ տեղադրել, պարզւում է իր մէջ privacy guard անունով ծրագիր կայ, ու կարելի է ըստ ծրագրի իրաւունքներ կարգաւորել։

ասենք այսպէս՝

Screenshot_2014-12-08-16-59-27

այսպիսի հնարաւորութիւն, ի դէպ կայ եւ հասարակ գնու/լինուքս համակարգերում, ասենք այսպէս ափ արմորի օգնութեամբ կարելի է սահմանափակել սքայփի վարքագիծը։

իսկ ինչն է վախենալու, դա այն, որ վայբերը, պարզւում է, երբ պատահի, պարբերաբար, անկապ տեղը խցիկին է դիմում՝

Screenshot_2014-12-08-17-08-49_

այսինքն կամերային դիմելու ոչ մի պատճառ չունի, զանգ չկայ, ոչ մի բան։ վայբերին չես բզում, մէկ էլ անկապ դիմում է։

ինչն է նաեւ հետաքրքիր, այն է, որ ըստ պաշտօնական կայքի, վայբերը չնայած պահանջում է, բայց չի օգտագործում կատարուած զանգերի մատեանին դիմելու լիազօրութիւնը։

viber-permissions

viber-inactivepermissions

բայց տեսնում ենք, որ այն զանգերի ցանկը բացում է։ անկախ նրանից ինչ է ասում։

ու տենց

ասք բացայայտումների մասին

պատահաբար լսեցի պայթած խողովակի մասին խօսք, ու յիշեցի «Մայրաքաղաք» ծրագիրը։ Այն գնում էր Հ2֊ով իննսունականների սկզբին։ Այո, պետականի երկրորդ ալիք կար, այն Ռոբերտի ժամանակ աննկատ դարձաւ «Պրոմեթեւս» եւ ցնդեց։ Ինչեւէ։ Յիշեցի, քանի որ այդ ծրագրով գրեթէ ամէն օր ինչ֊որ մի պայթած խողովակի մասին ռեպորտաժ էին անում։ ։Ճ

Այդ ծրագրի հետ իմ ամենավառ ասոցիացիան՝ շապիկն էր։
Սովորաբար, դեռ սովետի ժամանակներից, հայկական հեռուստատեսութեան ծրագրերի շապիկները, այն որ հիմա կոմպոզիտինգով հեռուստադիզայն են արւում, այդ շապիկները պարզապէս նկարչի պատրաստած պաստառներ էին։ Խցիկը նկարում էր այդ պաստառը մի երեսուն վայրկեան, կամ մէկ րոպէ, երաժշտութիւն էր հնչում, եւ հաղորդումը սկսւում էր։

Իսկ «Մայրաքաղաք»֊ը նորաձեւ էր, քայլում էր ժամանակի հետ համընթաց։ ։Ճ
Իրենց շապիկը էլի նկար էր։ Օպերայի շէնքն էր, եւ հետեւից մեծ կարմիր արեւ։ Բայց համակարգչով նկարուած։
Այն էլ շապիկը իրականում նկարելու պրոցեսն էր ցոյց տալիս։ Յայտնւում է այս գիծը, յետոյ այն, յետոյ այս շրջանը, եւ յետոյ կարմիր գոյնով դանդաղ դանդաղ, տող տողի ետեւից լցւում է գոյնով։

Իհարկէ, սա անիմացիա չէր։ Անիմացիան այն է, երբ արդեն լցուած պատկերը կարողանում ես տեղափոխել։ Իսկ իրենք նոյնիսկ չէին կարողանում արագ լցնել այն։ Զարմանալի չէ, հիմա կը բացատրեմ։

Ես անմիջապէս ճանաչել էի, որ սա արուած է ԲԿ֊0010 համակարգչով։ Եւ գոյներից, եւ այդ լցնելու ալգորիթմից։
Վիլնիւս Բեյսիկը ուներ կարծես PAINT հրաման, ու այն շատ դանդաղ էր աշխատում։ Օղակը գոյնով լցնելը կարող էր տեւել րոպէներ։ Օղակի կենտրոնական առանցքից ձախ էր գնում, մինչեւ պիքսել գտնի, գիծ էր քաշում, յետոյ աջ էր գնում, գիծ քաշում, իսկ յետոյ նոյնը անում յաջորդ տողում։

Իսկ ես արդեն յայտնաբերել էի նկարելու, լցնելու արագ ձեւեր։ Նախ, պէտք էր աշխատել ոչ թէ բեյսիկի հրամաններով, ու/կամ իր սուբռուտինաները օգտագործելով, այլ ուղիղ վիդեո յիշողութեան հետ։ Ու իրականացնել սեփական ռուտինաներ։

Մի անգամ պատահաբար յայտնաբերել էի z80֊ի LDIR ինստրուկցիան որը կարողանում էր ակնթարթօրէն տեղափոխել յիշողութեան բլոկեր։ Իհարկէ, դոկումենտացիա չունէի։ Յայտնաբերել էի խաղերի մեքենայական կոդերը զննելով։ (դիզասմ էլ շատ աւելի ուշ ունեցայ ու իմացայ որ մնեմոնիկան LDIR է կոչւում)։ Փորձարկել էի, ինձ մօտ ստացւում էր արագ էկրանով շարժել, ինչպէս հիմա ասում են, սպրայտեր, կամ այնպէս անել, որ էկրանին մի ամբողջ հատուած յայտնուի ակնթարթօրէն։ Նաեւ, իրականացրել էի լցնելու իմ վարկածը։
Որն արագ էր։

Ու ես հասկանում էի, որ ես այդ շապիկը աւելի լաւ կանէի։ Որ մարդիկ փոխարէնը դիտեն, ինչպէս է նկարը նկարւում, ասենք մէկ րոպէ, դիտեն ինչպէս է արեւը շարժւում, օրինակ, այսինքն ինչ֊որ անիմացիա, ոչ թէ նկարուելու պրոցեսը։ Նաեւ ինձ թւում էր, որ աւելի սիրուն բան կարելի էր նկարել։ Շէնքը մեծ էր, արեւը՝ մեծ էր, պատկերը խեղդում էր։ Իսկ ես տեսել էի որ խաղերի շապիկները շատ սիրուն էին արւում, ու ոչ այդպէս։

Բայց ո՞վ ինձ գիտեր։ Ես ընդամէնը դպրոցական էի, ով իր սենեակում փորձեր էր անում, ու անչափ ուրախանում էր ինչ֊որ բան բացայայտելով։ Ես չէի կարողանում նոյնիսկ կիսել այդ ուրախութիւնը այլ մարդկանց հետ։

Հիմա, երբ կայ ինտերնետ, ես կարող եմ գրել այդ մասին։ Յայտնել աշխարհին։ Բարեւ, աշխարհ։ Այդ պատճառով ոմանք ինձ գիտեն՝ նա այսպիսի բաներ է անում։ Բայց միեւնոյն է, ոչ մէկ չի կիսում իմ ուրախութիւնը։

Հիմա շատ լաւ գիտակցում եմ, որ ինձ պէտք չեն մարդիկ, ընկերներ, յարաբերութիւններ, որպէսզի ես լաւ լինեմ, օկ լինեմ, երջանիկ լինեմ։

Ինձ պէտքք են մարդիկ, ում հետ ես կարող եմ կիսել իմ ուրախութիւնը, երջանիկ լինելը։ Օրինակ, թէկուզ փոքր բացայայտումներից, կամ իմ արած գործից։ Մարդուն հասկանալը այդ մասին է, երբ կարողանում ես կիսել իր ուրախութիւնը կամ տխրութիւնը։

եւ այդպէս

ասք ամբողջականութեան եւ ազատութեան մասին

դիսքլեյմեր․ այս բլոգում դաւաճան չկայ։
եթէ ինչ֊որ բացասական բան էք կարդում այս տեքստի մէջ, դա ձեզ մասին չէ։ ում մասին կարող է լինել, ինձ երբեք չի կարդում։ իսկ հիմնականում ինձ մասին է։ նաեւ շատ բացասական բաները։ բայց ես միեւնոյն է ձգտում եմ դրական լինել։ որ ինքս ինձ դուր գամ։

ամբողջականութիւնը՝ ինթեգրիթի֊ն տեղեկատւական անւտանգութեան (information security) եզր է։ այն, իհարկէ, ՏՏ֊ից շուտ էլ կար, ինչպէս եւ հաքերները։

Օրինակ, երբ մարդիկ բանկային չեքի վրայ գրում էին թիւը, այն պէտք է գրուած լիներ բառերով։ Ակնյայտ է, որ եթէ թիւ է գրուած, այն աւելի հեշտ է դարձնել այլ թիւ, քան բառերը փոխել։ Եթէ գրել ես 100՝ այն կարելի է սարքել 1000 իսկ եթէ գրել ես՝ «հարիւր», ապա այն «հազար» սարքելն ասենք աւելի բարդ է։

Այսպէս, մենք օգտագործում ենք կրիպտոգրաֆիկ հեշեր մեր նիշքերի մատնահետքերը վերցնելու համար, ու համոզուելու, որ դրանք չեն փոխուել։

Օրինակ, սովորաբար իսո պատկերների պանակում սպասարկիչների վրայ լինում է նաեւ sha-1 կամ md5 հեշերով մի նիշք, որ համոզուես որ քաշածդ իրօք յստակ պատճենն է այն նիշքի, որը սպասարկիչի վրայ էր։

Կարծում եմ, կարելի է մարդկանց մասին էլ այդպէս ասել։

Լինում է, որ ինչ֊որ ցնցումներից յետոյ մարդիկ ահագին փոխւում են։ Իրենց համար կարեւոր բաները դառնում են անկարեւոր։

Ես նկատի չունեմ, որ ասենք երեկոյեան ուժեղ վէճ էր, իսկ առաւօտը արթնանում ես, ու մտածում ես, որ հաստատ չարժեր այդպէս։ Դա իրօք չարժեր։ Կամ ինչ֊որ թուլութեան պահեր բոլորն էլ ունենում են, ու լինում են ոչ իրենց սովորականի պէս։

Ես այն մասին եմ, երբ մարդիկ հրաժարւում են հիմնական, կարեւոր արժէքներից ու հաւատքից։ (Այո, հաւատքից, ես հաւատում եմ որ աստուած չկայ)։

Ու ես կեղծաւորութեան մասին չեմ, երբ ասենք մէկը պացիֆիստ էր, իսկ դառնում է արիւնարբու ազգայնամոլ։ Ուրեմն իրական պացիֆիստ չէր։ Կամ այն տղան որ այնքա՜ն ազատ ԾԱ֊ից էր խօսում, բայց արի ու տես իր խելախօսում վխտում են սեփականատիրական ծրագրերը։

Չէ, ես այդ մասին չեմ, այլ ցնցումներից առաջացած փոփոխութիւնների մասին եմ։
Երբ նիշքը կարող է փչանալ, վնասուել, բայց եւ կարող է bzip2֊ի պէս ինքն իրեն վերականգնել։ Կամ չի կարող։

Ու այստեղ մտքիս գալիս է մի այլ օտար բառ, որն արդեն վստահ չեմ ինչպէս թարգմանել՝ քոմիթմենթ։
Քոմիթմենթը շատ կարեւոր որակ է, յատկութիւն է։ Սովորաբար այն օգտագործում են այլ մարդկանց հանդէպ զգացմունքների, վերաբերմունքի մասին խօսելիս։
Իսկ ես նկատի ունեմ քոմիթմենթ ինքդ քեզ, քո համոզմունքներին։ Չի նշանակում, որ դրանք պէտք է երբեք չվերանայուեն, իհարկէ։ Լաւ է որ վերանայւում են։

Ու մեծ հարց է՝ ո՞րն են քոնը, իսկ որոնք քոնը չեն բնաւ։ Ասենք կարող է բարդոյթ է, կամ օբիժնիկութիւն։ Դրանց վրայ դողալ, ասել վայ, իմ բարդոյթը չկորցնեմ, իմ ատելութիւնը չկորցնեմ, անկապ է։

Ատելութիւնն ու բարդոյթը երբեք էլ քոնը չեն, օտար են քեզ։

Բայց եւ ինձ շատ է դուր գալիս, երբ մարդիկ իրենց (երբ իրենցն է) հաւատքից ու արժէքներից չեն հրաժարւում, երբ ծանր ժամանակ են ունենում։ Կամ երբ կապում են դրանք այլ անձի հետ։

Ասենք մէկը շատ ձախ էր, բաժանւում է աջ է դառնում, իսկ քանի որ իր աղջիկը հիփսթեր էր՝ զզւում է հիփստերներից։

Կամ այն տղան կարծես ուներ չմանիպուլացնելու համոզմունք, ու մէկ էլ տեսնում ես «թիզ» է անում մարդուն, որ ռեակցիա լինի։ Կամ մի բեմադրութիւն անում իր կեանքի մասին, որը սուտ է։ (ինչը սոց․ ցանցերում շատ ընդունուած է)։
Կամ մտածել․ այն մարդը ինչ ասում էր, այլեւս չեմ ընդունում, իսկ առաջ ընդունում էիր։

Եւս մի լաւ բառ՝ ընդունել (աքսեփթանս)։ Չնդունելը՝ դիմակայել է։
Իսկ «Դիմադրելը անօգուտ է», ինչպէս գիտենք մի լաւ գրքից։

Իսկ չդիմակայելն ու ընդունելը ազատութեան մասին են։
Անկախութեան մասին են։
Երբ իմ ես լինելը, ու իմ լաւ եթէ չասենք, գոնէ օկ լինելը անկախ է այլ, երրորդ հանգամանքներից։

Քանի որ ես անկախ ինձ հանդէպ վերաբերմունքից կարող եմ շարունակել լինել ես, ու լինել օկեյ։

Իմ այս գործը չի՞ ոգեւորում շրջապատիս մարդկանց։ Բայց եթէ վեբ կայք կամ անդրոիդ ափ գրէի, կոգեւորե՞ր։ Բայց ես անկա՞խ եմ իրենց ոգեւորութիւնից, թէ՞ կախուած։ Ի՞նչն է ինձ համար աւելի կարեւոր։

Ես ընդունում եմ էս տաքսիստին, ու էն կողքի սեղանի լացող երեխային, թէ՞ ես սկսում եմ դատել իրենց․ «երեխան զզուացնող է, տաքսիստը՝ անգրագէտ»։ Դրանից օգուտ չի լինում, ոչ էլ փոփոխութիւն, անիմաստ էներգիայի ծախս է։ Երեխան եւ տաքսիստը ունեն իրենց կեանքը, իրենց պահանջները, իրենց ցանկութիւնները, ու ես ոչ մի կոնտրոլ դրանց վրայ չունեմ, ու շատ լաւ է որ չունեմ։

Ես օկեյ եմ, անկախ իրենց վարքագծից։ Ես անկախ եմ իրենցից։

Այստեղ է գալիս ազատութիւնը, երբ ընդունում ես այն, ինչ կատարւում է, եւ չես դիմադրում, այլ քո մասին ես մտածում։ Հիմա նա վատ է քշում, ես ի՞նչ անեմ, որ չխփեմ։ Որ ինձ լաւ լինի։

Ես իրենից անկախ եմ։ Նա՝ ինձնից։ Ես չեմ կարող անել այնպէս որ նա լաւ քշի, ու չեմ էլ ուզում կեանքս նուիրել իրեն կրթելուն։ Բայց ես անկախ եմ, ես անկախ եմ այն քեարթից ով ֆրազ է շպրտել իմ հետեւից, քանի որ այն տեղ չի հասել, իր ազդեցութիւնը չի ունեցել, ինչպէս նախատեսւում էր։ Ես պէտք է զգայի վիրաւորուա՞ծ։ Ես ազատ եմ այդպէս չզգալ։ Քանի որ անկախ եմ ու ամբողջական։

Ինձ դո՞ւր է գալիս օրեր շարունակ կոդ գրել ջնջելը, այսպէս ու այնպէս փորձելն ու արդիւնք չունենալը։ Ես լա՞ւ եմ զգում դրանից։ Հիմա ի՞նչ տարբերութիւն թէ ես չեմ կարող ոչ մէկին արդիւնք ցոյց տալ։ Թող ուշ լինի, բայց այնպէս, ինչպէս ես լաւ եմ համարում։ Ու իհարկէ, թէկուզ անդրոիդ ափ սարքեմ, ընկերներին տամ, իրենք շատ հաւանական է, չեն օգտուի։ Քանի որ իրենք ուրիշ են, իրենց կարեւոր չէ այն, ինչ ինձ է կարեւոր։ Ես օ՞կ եմ այդ հետ, թէ՞ ուզում եմ իրենց դուր գալ։

Ուզելով ուրիշին դուր գալ, կորցնում ես ոչ միայն ինթեգրիթի֊ն՝ այլ հետեւաբար կորցնում ես քոմիթմենթը ու ազատութիւնդ։
Ու լաւ չես զգալու քեզ։
Գուցէ շոյուած զգաս, բայց լաւ չես զգալու։
Աւելի լաւ է չշոյուած, բայց լաւ զգալ, իմանալ որ քոմիթեդ ես, ու անկախ ես։

Շատ լաւ է ժամանակ առ ժամանակ ինքդ քո վրայից md5sum հանել։
Քանի որ ինթեգրիթին՝ ինքդ քեզ քոմիթմենթի, ինքդ քեզ, եւ ուրիշներին ընդունելու, եւ որպէս արդիւնք ազատ, անկախ լինելու մասին է։

եւ այդպէս

ասք հաքերութեան մասին

Իսկական հաքը՝ ինչ֊որ անկապ ու անպէտք բան կոտրելը չէ։ Իսկական հաքը իմաստ պիտի ունենայ, խնդիր լուծի։

Հիմա պատմեմ ինչպէս եմ ես լուծել մի խնդիր։

Ժամանակին, 2000֊2001 թուերին կար հաւէս բառարան, որ բոլորը իրենց պարտքն էին համարում իրենց համակարգերում ունենալ, կոչւում էր՝ armdicto։ Պատրաստել էր ոմն Տրոյը, իսկ նրան օգնել էին երկու աղջիկ, ում անունները «էբաութ» բաժնում նշել էր։

Այդ բառարանը անցեալ դարի բառարան է։

Նախ, որովհետեւ այսօր արդեն ընդունուած չէ ազատ ԾԱ֊ի տարածման շնորհիւ (բարեբախտաբար) որ բառարանի հետ աշխատող ծրագիրը, եւ բառարանի նիշքերը իրենք, կապուած լինեն։

Նաեւ, այս բառարանը աշխատում էր Windows ՕՀ֊ում x86֊ի վրայ։

Իսկ ի՞նչ անել GNU/Linux կամ MacOSX օգտագործողների՞ն։

Օկեյ, սա դեռ լուծելի է։ wine֊ի օգնութեամբ լինում է աշխատեցնել որոշ windows ԾԱ GNU/Linux եւ MacOS X համակարգերում։

Ահա եւ աղջիկների անունները՝

armdicto_about

Իսկ ի՞նչ եթէ ես ուզում եմ այլ բառարանի ծրագրի հետ աշխատեցնել այս բառարանի բառերի բազա՞ն։
Իսկ ի՞նչ եթէ ես չեմ վստահում ոչ ազատ ԾԱ֊՞ին։ Ի դէպ, Տրոյ անունը լաւ յոյսեր չի ներշնչում։ Ի՞նչ իմանաս ինչ է անում այս ծրագիրը։

Իսկ ի՞նչ, եթէ ես ուզում եմ պատճենել փակցնել թարգմանուած բառը, իսկ այն, փաստօրէն, armscii-8 կոդաւորումով է։

Բայց լաւ, մենք արդեն իրօք 21֊երորդ դարում ենք, եւ ոչ միայն Յունիկոդ ենք օգտագործում,այլ եւ ոչ միայն Ինթել պրոցեսորներ։ Ասենք ես երեւի աւելի շատ ARM ունեմ քան Intel։
Բացի դրանից ես ունեմ PowerPC պրոցեսորով երկու համակարգիչ, իսկ ոմանք ունեն MIPS պրոցեսորներով լափթոփներ։

Իսկ ի՞նչ, եթէ ես ուզում եմ օգտուել այս աշխատանքով իմ խելախօսի վրայ։
Ասենք դուք կարող է ունէք Անդրոիդ կամ ԻՕՍ, իսկ ես ասենք ունեմ Սեյլֆիշ։
Այսինքն մեզ պէտք է այս բառարանը ARM֊ի վրայ։ Ի՞նչ անել։

Նախ կարողանալ հանել այդ բառարանը ծրագրից։

Ես գտել եմ (գուգլի օգնութեամբ) այս ծրագիրը համացանցում՝ http://users.freenet.am/~osprog1/ArmDicto%20v1.1.rar

Չգիտեմ ով է այս osprog1֊ը, բայց շնորհակալութիւն նրան։

Քաշեցինք՝

wget -c http://users.freenet.am/~osprog1/ArmDicto%20v1.1.rar

Հիմա բացենք ռառ֊ով։

rar x "ArmDicto v1.1.rar"

Օկեյ, ոչ մի բառարանի նիշք էլ չկայ։
Այն ինչ֊որ տեղ թաքցուած է։ Ո՞րտեղ։ Այստեղ՝ data1.cab նիշքում։

unshield x data1.cab

Այո, այսպիսի հաւէս ծրագրեր կան ԻնսթալՇիլդ ցաբ նիշքեր բացելու համար։

Հիմա գտնում ենք main.dat նիշքը Program_Executable_Files/Data պանակում։

Օկ, եթէ փորձենք հասկանալ ի՞նչ ֆորմատի է, բան պարզ չէ։

$ file main.dat 
main.dat: data

Օկեյ, նայենք այն հեքս խմբագրիչով։

armdicto_aback

Ահա, տեսնում ենք, ինչ֊որ զրօներ են, յետոյ ինչ֊որ “(null)” յետոյ՝ BB EF 2C 20 BBEF BB ED C7 F3 …

Սա հաստատ ARMSCII-8 է։ Ստուգում ենք՝ այո, թարգմանութեան տեքստն է։

Յետոյ էլի գնում են զրօներ, իսկ յետոյ յաջորդ բառը՝ abandon, եւ ամէնը կրկնւում է։

Լաւ, իսկ ի՞նչ է մեզ պէտք վերջում։ Մեզ պէտք է ասենք tab separated նիշք, ուր սկզբից բառն է, յետոյ ԹԱԲ է գնում, յետոյ բառի թարգմանութիւնը։ Կարծես կարելի է փորձել կոտրել։

Դէ, ամէն ինչ այդքան պարզ չէր։
Նախ, զրօներ անկապ յայտնւում են, պարզւում է, եւ բառերի, եւ թարգմանութիւնների արանքում։

Բաւական ջանք է պահանջում, ահա այսպէս է արւում՝ https://github.com/norayr/armdicto-hack/blob/master/armdictohack.Mod

Արանքում պէտք է քոնուերտել արմսքի֊ից դէպի յունիկոդ՝ https://github.com/norayr/armdicto-hack/blob/master/ArmsciiUTF.Mod

լաւ, կարծես լինում է։ Սա իրականում ամենաբարդ մասերից էր, չնայած այնքան պարզ անցանք այստեղ։
բայց եւ կոդը ամէն ինչ բացատրում է։

Ինչ֊որ սխալ armscii-8 շարուածք են օգտագործել, այդ պատճառով և֊ը սխալ է, a2֊ի տեղը a8 է, սխալ տառատեսակներ էլ կային, յիշում եմ։ Նախ սա ուղղում ենք՝

sed 's/xa8/xa2/g' main.dat > maintest.dat

Հիմա կարծես թէ նորմալ ելքային նիշք է տալիս, բայց ինչ֊որ անկապ նիշեր կան, ասենք minor բառը նորմալ չի երեւում։
Օկ, նայում ենք մութքային նիշքը։

armdicto_bug0

Էս ի՞նչ «FB» է, ինչո՞ւ ոչ նորմալ, լատինատար «o»։ Պարզւում է, fb֊ն armscii֊ի «օ»֊ն է։ Երեւի աղջիկները հաւաքելիս շփոթուել են, կամ սխալ շարուածք ունէին։ Ինչեւէ։ Իսկ ո՞նց է ինքը արմդիկտո֊ն սա ցոյց տալիս։
Պարզւում է՝ ոչ մի ձեւ չի կարողանում։

armdicto_bug0_

minor բառը պարզապէս չի կարողանում գտնել, ու բաց է թողնում։

Լաւ, մենք գտանք տուեալների բազայի սխալ։ Ուղղենք, եւ հասանելի դարձնենք այս բառը մեր ազատ ծրարգրերում։

Ինչպէ՞ս բայց։ Ես չեմ ուզում ձեռքով նիշք խմբագրել։ Համ էլ, կարող է էլի՞ նման խնդիրներ լինեն։

Աւտոմատացնում ենք։

function replaceByte() {
    printf "$(printf '\x%02X' $3)" | dd of="$1" bs=1 seek=$2 count=1 conv=notrunc &> /dev/null
        }

Ափդեյթ․ հիմա մտածում եմ, ինչքան աւելի էլեգանտ կը լիներ նոյնը անել Օբերոնով՝

Files.Set(r, f, offset);
Files.WriteByte(r, 111);

Պարզապէս գիշերը չէի մտածել, որ ծրագիրը կարելի է ոչ միայն կոնուերտելու համար օգտագործել։

եւս մի ափդեյթ․ իրականացրի ամէնը Օբերոնով, եւ ուղղեցի եւ֊երը եւ փոխեցի հայերէն տեքստի մէջ հանպիդող սխալ «~» նիշերը ճիշտ «՜» երկարացման նշաններով։ այսպէս, ահա։Ճ

հիմա այսպէս՝

replaceByte maintest.dat 2191531 111

111֊ը 6f֊ն է, այսինքն լատինատառ օ֊ն։

Այո՛, փոխուեց։
Է՞լ ինչ կայ ուղղելու։

Փաստօրէն, այստեղ, gyve բառից յետոյ ինչ֊որ սխալ բառ է՝

armdicto_gobble

Ահա, եւ կրկին ինքը արմդիկտո֊ն չի կարողանուց ցոյց տալ՝

armdicto_bug_

Ի դէպ, ինձ թւում է, ես փորձում էի այս բառը փնտրել, ուզում էի իմանալ, ինչո՞ւ էր իմ սիրած խաղերից մէկը gobbler կոչւում։ Ինչեւէ։

Ֆիքսում ենք՝

replaceByte maintest.dat 2999763 111

Իսկ սա՞ ինչ է, իմ ստացած նիշքում flance֊ից յետոյ ինչ֊որ b0 կայ, ահա եւ մուտքում էլ էր՝

armdicto_bug2

Ի՞նչ է անում, ինչո՞ւ համար՝

armdicto_bug2_

Ֆիքսում ենք՝

replaceByte maintest.dat 1815116 0

Հիմա կրկին աշխատացնում ենք հաքը, ու նայում ինչ է լինում՝

./armdictohack

ահա, հիմա եթէ տալիս ենք ասենք ինտերակտիւ stardict_stardict-editor ծրագրին, ասում է որ կրկնւող բառեր կան։ իրօք, դբ֊ի մէջ կան։ եւս մի սխալի տեսակ, որը գտանք։

օկ, սա արդեն հեշտ է լուծւում՝

cat out.txt | sort | uniq > armdicto.txt

armdicto_hacked

եւ հիմա անելով

stardict_tabfile armdicto.txt

ստանում ենք ելքային բառարաններ։

Դրանք կարելի է տեղադրել ~/.stardict/dic պանակի մէջ եւ օգտագործել դեսքթոփի վրայ՝

armdicto_gobble2

իսկ կարելի է լցնել ~/.local/share/harbour-sidudict պանակի մէջ եւ օգտուել Սեյլֆիշի վրայ՝

20140909143744

20140909143806

Անդրոիդի համար էլ նման բառարաններ կան, դրանք են՝ GoldenDict, ColorDict, Wordmate Fora Dictionary եւ AntTek Dict, կարճ ասած՝ շնից շատ են։

Յոյսով եմ, մարդիկ կան, ով հասկանում են, որ առցանց ծրագրերը, եւ մասնաւորապէս բառարանները, ինչքան էլ լաւը չʼլինեն, մենք չենք վերահսկում, ու դրանք մնում են ՍԱԱՍ, ի տարբերութիւն ծրագրերի ու տուեալների, որ մենք օգտագործում ենք լոկալ։

Ամբողջ նախագիծը՝ հաք անող ծրագրի ելատեքստը եւ սկրիպտը ազատ լցուած են գիթհաբում՝ https://github.com/norayr/armdicto-hack

իսկ բառարանների պանակը՝ այստեղ է http://norayr.am/armdicto/

http://norayr.am/armdicto/armdicto.zip ստացուած բառարանի նիշքերը
http://norayr.am/armdicto/armdicto.txt թաբերով բաժանուած բառերի ելատեքստը։

նաեւ հասանելի է գիթհաբում։

ի դէպ, այդ ելատեքստը կարելի է եւ հետ ստանալ բառարանի նիշքերը դեքոմփայլ անելով։

Կրկնում եմ շնորհակալութիւնն անծանօթ Լուսինէ Յարութիւնեանին եւ Աննա Մխիթարեանին, ենթադրում եմ որ իրենք են կազմել այս բառարանը։

բարի գալուստ XXI֊րդ դար, ահա։

ու տենց

ասք վամպիր դառնալու մասին

Ուրեմն, յիշո՞ւմ էք «only lovers left alive» ֆիլմում
only lovers left alive վամպիրնարը ակնոցներով են բարում գցած։ Որովհետեւ լոյս կայ։

Իսկ հիմա մի քիչ այլ թեմայից։ Գաղտնիք չէ, որ երբ մենք վճարում ենք կրեդիտկաներով, «իրենք» գիտեն մենք ուր ենք։ Իրականում իրենք գիտեն որտեղ ենք, քանի որ մենք ունենք մեզ հետ անձնական թրեքինգ սարքեր՝ հեռախօսներ։ Դրանք կպած են երեք ջի/ջիէսէմ աշտարակներին, իրենց մէջ սիմ քարտ է, որը ձեռք ենք բերում անձնագիր ներկայացնելով։ Ամէն մէկիս տեղաշարժը յայտնի է։

Լաւ, թւում է թէ, շատ հեշտ է դրանից պրծնել։ Չես ունենում սիմ քարտ։ Բայց դա էլ բաւական չէ։ Սիմ քարտը օգտագործւում է միայն ցանցում աւտորիզացիայի համար։ Առանց դրա ժամանակին աշխատում էին շտապ ծառայութիւնները։ Իսկ եթէ սիմ քարտ այդ հեռախօսի մէջ եղել է, ուրեմն ԻՄԵԻ֊ն արդեն «վառված» է, ու ձեր տեղանքը յայտնի է ցանկացած րոպէին։

Դրանից կարող է փրկել օդանաւի ռեժիմը, եթէ դրան վստահում էք։ Ես չեմ վստահում։ Մաեմո֊ն ունի տաբլետ մոդ, որ ստուգուած է, քնացնում է ջիէսէմ չիպը։ Էներգիան էլ քիչ է ծախսում։ Կարո՞ղ է արդե՞օք ջիէսէմ֊ը արթնացուել պրովայդերի կողմից։ Չգիտենք, քանի որ ջիէսէմ ֆիրմուերը փակ է, ոչ ոք այն չի կարդացել։

Եթէ կպնում ես միայն վայֆայներին, դա աւելի ապահով է, քանի որ

— բոլոր վայֆայներից կպնողների մասին տեղեկատւութիւնը չի հաւաքւում մի կենտրոնական տեղում։

— վայֆայ քարտի մակ հասցէն լինում է փոխել կպնելուց առաջ (ու յետոյ նոր չեքինուել ֆորսքուերում) ։

Այստեղ կրկին որոշակի վտանգ կայ՝ վարքագծի շաբլոններ։ Պրովայդերը քեզ կարող է նմանեցնել, իմանալով որ ասենք քո մեյլ սերուերին ես կպնում։ Այս առումով, ասենք ջիմեյլ ու դիմագիրք կպնելը աւելի անվտանգ է, քան սփիւռք․ամ, քանի որ սփիւռք֊ը ունի շատ աւելի քիչ ակտիւ օգտւողներ։

Հիմա խցիկների մասին։ Ամենուր կան խցիկներ։ Խցիկները ես դեռ բաւական անվտանգ եմ համարում, քանի որ իրենք չգիտեն մենք ով ենք։ Չի իրականացուած դէմքի ճանաչումը։ Եթէ հանցագործութիւն անես, յետոյ նոր տեսաձայնագրութիւնը կարող է օգտագործուել, եթէ դեռ ջնջուած չլինի։ կենտրոնացած չեն այդ ձայնագրութիւնները, ինչպէս եւ կենտրոնացած չեն վայֆայ ռաութերներին կպնողների մակ հասցէներ պարունակող լոգերը։

բայց եթէ մակ հասցէն լինում է փոխել, ապա երբ «ֆեյս դեթեքշնը» աշխատի դէմքը ի՞նչ անել։

այսպէս, կասկածում եմ, մի տաս տարուց, պէտք է պոնտեր անենք, իբր վամպիր ենք, կամ լաւ չենք տեսնում, ու մութ փաբերում ակնոցներով գցած լինենք եւ ակնոցներով գիրք կարդանք։

dress-the-part-only-lovers-left-alive-5_125829118410.jpg_gallery_max

ու տենց

ասք վիշապին մակում բնակեցնելու մասին

ուրեմն, ուզում եմ մի քիչ գրել իմ մակօս֊ական փորձից։
որպէս դեւ, ով առաջին անգամ է այս օհ֊ի հետ աշխատում։ իմ հին ծանօթ աւստրալիացին իր մակի վրայ հաշիւ է բացել, որ կպնեմ, վոկ֊ը պորտ անեմ մակի։

նախ սիլանգից՝ ասեմ, որ այս գործիքն առաջին անգամ եմ փորձում, օգտւողի տեսակէտից ահագին յարմար է թւում։ Ոչ միայն տողն է ասում, ուր սխալն է գտել, ինչպէս ջիսիսի֊ն, ոչ միայն տողի որ երորդ նիշն է (միշտ զարմանում էի, ինչո՞ւ ոչ մի սի կոմպիլյատոր դա չի անում), ոչ միայն սիրուն գեղեցիկ պսեւդոգրաֆիկայով ցոյց է տալիս՝ ահա, այստեղ է սխալդ — այ այստեղ սա է պակասում, ասենք, բայց եւ… ակնարկում է թէ ինչ անես, որ սխալները ուղղես։

clang hints

Միւս կողմից, այդ իր վարքագիծը նոյնիսկ յոգնացնում է։ Ասենք, այս դէպքում, լրիւ անիմաստ է զգուշացնել, ինձ թւում է՝

clang warning

ասում է՝ «place parentheses around the ‘&&’ expression to silence this warning»։ ինչո՞ւ։ կոմպիլյատորը գիտի, չէ՞, ցանկացած սի֊ի կոմպիլյատորը այդքան պարզ բան գիտի, չէ՞ որն է օպերատորների precedence֊ը։ ուրեմն ո՞ւմ համար է։ գրողի, կամ կարդացողի։ որ գրողը տեսնի իր գրածը, ու իմանայ, որն է precedence֊ը, այնպէս չստացւի, որ կասկած լինի, որ նա չգիտի։

բայց սա արդեն ո՞ւմ համար է։ ակնյայտ անգրագէտի՞։ չգիտեմ, լա՞ւ է դա, թէ չէ։ այն էլ լռելեայն, առանց զգուշացումներն յատուկ միացնելու։

Ասենք այս կոդի մէջ կայ սխալ՝

int main()
{

   int a, b;
   
   a = 23; b = 42;

   if (a = b)
      {
        b = a;
      }

}

սիլանգը ասում է՝

clang_warnings

ասում է… նու ճիշտ բան է ասում, հա՞։ բայց կարող է ես ուզում եմ սենց բան անել, ինձ պէտք է հենց այսպէս, ինչի՞ պիտի հայհոյի։ նկատի ունեմ, նա ինձ նախապէս դնում է յիմարի տեղ։ ենթադրում է, որ ես չգիտեմ ինչ եմ անում։
չգիտեմ, լաւ է դա թէ վատ։
ջիսիսի֊ում իմ ցանկութեամբ կմիացնէի ասենք, -pedantic, ու կնայէի ինչ է ասում։

հիմա համակարգից։

փաստօրէն, ստատիկ բինար նիշք ստանալ չեմ կարող։ մակօս֊ում չի լինի։ իրենք (էփլը, ֆաշիստները, սրիկաները) չեն տալիս համակարգի գրադարանների ստատիկ տարբերակները՝ .a նիշքերը, ասենք։ Որ դրանց միջի .o նիշքերը լինի ստատիկ միացնել իմ ծրագրին։

երկրորդ շատ հետաքրքիր բանը։ այստեղ ELF չկայ, այստեղ Mach-O բինարնիկներ են։
ու այդ պատճառով էլ .so չկայ, կայ .dynlib.

ldd֊ի փոխարէն էլ otool է

$ otool -L voc
voc:
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
$ 

ու վերջապէս այն, ինչը լրիւ անսպասելի էր։

ուրեմն, ես երբ voc֊ը թեստաւորում եմ, անում եմ այսպէս․ ստացա՞յ նոր վարկածը, իրենով իրեն շինում կոմպիլացնում եմ, ու նայում եմ md5 գումարը նոյնը մնա՞ց թէ չէ։

ինձ պէտք է որ նոյնը մնայ, եթէ չէ, ուրեմն ինչ֊որ բան սխալ է, ինքն իրեն վերարտադրել չի կարողանում։ ու սխալը երկար չի թաքնւում, արդեն երկրորդ անգամ, յաջորդ սերնդի վարկածը կամ ինքն իրեն, կամ այլ մոդուլներ կոմպիլյացիա անել չի կարողանում։

այս անգամ, նա ինքն իրեն ստաբիլ ստանում է, լրիւ գրադարանները ստաբիլ կարողանում է շինել, իսկ արի ու տես, որ իր իսկ md5 գումարը հա փոխւում է։
ամէն անգամ կոմպիլյացիայից յետոյ փոխւում է։

ես մտածում էի՝ խնդիր ունեմ։ ես եմ մի բան սխալ արել։
յետոյ մտածեցի, ո՞վ գիտի ի՞նչ է այդ ոչ էլֆ օ֊մախ բայնարին։ մի հատ ․օ֊ները ստուգեմ։

բոլոր գեներացւող ․օ֊ները նոյն էմդիհինգն ունէին։ Դա ինձ հանգստացրեց։ Բայց ամէն անգամ լինքինգից յետոյ ստացւած նիշքի էմդիհինգ գումարը փոխւում էր։ Յետոյ պարզեցի, որ այդ մակի ֆորմատի ձեւն է, ամէն անգամ լինքերը մախ բինարիի մէջ uuid է սարքում խփում։ այն պէտք է իրեն համապատասխանեցնելու համար արտաքին dwarf debugging տւեալները յստակ այս կամ այն նիշքի հետ։

այնպէս որ զգօն եղէք մակի համար գրելիս․ սիլանգը ձեզ կարող է յիմարի տեղ դնել, համակարգը ստատիկ բինար սարքել չի թողնի, իսկ լինքերը ամէն անգամ նոր ձեւի նիշք է արտադրելու նոյն կոդից։

ու տենց

ասք խօսացնելու մասին

Սովորաբար առաւօտները ես առանց աչքերս բացելու n900֊ի կոճակն եմ սեղմում, նա ինձ ժամն է ասում։ Եթէ աչքերս բացեմ, ապա այլեւս չեմ քնի։ Իսկ այսպէս, իմանում եմ ժամը, ու հասկանում, ինչքան դեռ կարող եմ քնել։

Մի քանի օր է, նոկիան չեմ օգտագործում, մարտկոցը փչացել է։ Ու այսպիսի ելք գտայ, փակ աչքերով սեղմում եմ ↑ ու յետոյ ↩։ Իսկ մինչ այդ հաւաքած հրամանը սա է՝

echo "it is `date +%k` and `date +%M` minutes now" | festival --tts

Ափսոս, ֆեստիւալը հայերէն չի խօսում։
Պէտք է խօսացնել։

ու տենց

ասք անուն ընտրելու մասին

8xAIOSo

Յիշո՞ւմ էք չէ, ասենք ֆրինեթի ժամանակը։ Երբ նիքով հնարաւոր էր հասկանալ, արդեօ՞ք մարդը հին օգտւողներից է, թէ նոր։
Առաջինները հնարաւորութիւն ունէին գրանցել իրենց անունները։ Դա այնքա՜ն գժանոց էր, երբ ունէիր, ասենք նորայր աթ ֆրինեթ։

Երեւում էր, որ հնաբնակ ես։

Դէհ, յահու֊ում այդ մասին անհնար էր մտածել։ Բոլոր լաւ անունները վաղուց զբաղեցւած էին։
Ու ապա մարդիկ սկսեցին ո՛վ՝ իր անուն֊ազգանունով հաշիւներ բացել, կամ անուն ազգանունից կազմւած յապաւում֊բառախաղով, ո՛վ էլ՝ հաքերական ձեւով, ասենք օ֊ի տեղը զրօ նշել, եւ այլն։ Կամ էլ՝ պետք էր լինել հնարամիտ, ու քեզ բնութագրող կեղծանուն մտածել։ Ինչը շատ հաւէս է։ Կարելի էր իմանալ, ով է իր կեանքում պուպսիկ88 մեյլ․ռու֊ն ու ով է մարիշոկ2֊ը։

Բայց, ինչպէս ասում է այս փոստերում մտահոգւած մարդը, այդ ժամանակներն էլ են անցել։ Յաջողակ չեն կեղծանուն ընտրելիս նոյնիսկ ծայրայեղ մարգինալները։

Խնդիրը աւելի է բարդանում, եթէ մեյլի հաշիւ չէք բացում, այլ ասենք՝ սքայփի։ Քանի որ եթէ մեյլի դէպքում կարելի էր գնալ, ու ասենք կանադա․քոմ֊ում, կամ մոզամբիկի փախած սերւերում գրանցել անունովդ հաշիւ, ապա սքայփը միակն է եւ անկրկնելի։ Կենտրոնացւած սերւիսների հե՞տ ինչ անել, ինչպէ՞ս այդ հարցը լուծել։

Լուծել, իրականում պէտք չէ։ Փոստերի հեղինակը բնաւ չի հասկացել, որ համացանցն ըստ բնոյթի ապակենտրոնացւած է։ Որ եթէ ֆրինեթը միակ հայկական տեղական ազատ մեյլ սերւերն էր՝ ֆրինեթ ցանցի մէջ, ապա համացանցում միշտ էլ կարելի է գտնել հարմար սերւիս։ Կամ՝ ստեղծել քոնը, գրանցո՞ւմ էին, չէ՞ իրենց ազգանունով դոմեններ, ու մեյլէր սարքում՝ արամ@արամեան․քոմ, ասենք։ Ահա, իսկ արի ու արա դա սքայփի, կամ դիմագրքի, կամ էլ որեւէ այլ սերւիսի դէպքում։

Այո, պատասխանը՝ ապակենտրոնացումն է։ զբաղւա՞ծ է ջոյնդիասպորայում օնիկը՝ գնա գերասպորա․դէ կամ սփիւռք․ամ։ Միշտ էլ տեղ կգտնես։ Բոլորին հարմար տեղ կգտնւի։ Քանի որ սերւերների քանակը սահմանափակւում է միայն ռեալ այփի֊ների քանակով, իսկ ռեալ այփի֊ները ipv6 ստանդարտով աւելի են, քան ատոմները մեր մոլորակի վրա։

Կենտրոնացւած սերւիսները կմեռնեն, ու ինչքան քիչ մենք իրենցով օգտւենք՝ այնքան շուտ։ Կամ ստիպւած կլինեն ապահովել ապակենտրոնացւած միջավայրում աշխատանք։ Ու դիմագիրքը ստիպւած կլինի թողնել իր յուզերներին «ֆրենդել» գփլասից, ու այլ սոցիալական ցանցերից։

Իսկ աւելի լաւ է՝ բացիր քո հանգոյցը, եւ տէր եղիր այն տարածքի, ուր քո սպասարկիչն է, քո տւեալներով հանդերձ։

Հ․ Գ․ — արդեն եկել է այլ ժամանակը։ Ժամանակը, երբ դիմագիրքը, օդնոկլասնիկը, եւ այլ սպասարկիչները չեն թողնում ունենալ հնարած անուն։ Իսկ ազատ ծառայութիւնները, դիասպորա֊ֆրենդիկա֊ի պէս, թողնում են մնալ անանուն։ ։Ճ

եւ այդպէս

ասք թրեյս անելու մասին

սա իմ կոմպիլյատորի աշխատանքի թրեյսն է, որ պարզ բան է անում՝ վերագրում կոմպիլիացիա անում։

MODULE test;
VAR i : INTEGER;
BEGIN
   i := 23;
END test.

ստացուած է օգտագործելով gdb, callgraph, graphviz ծրագրերը։

ու տենց

ասք օփենմոկո֊ի ջիէսէմ ֆիրմուերը փոխելու մասին

Օփենմոկո համայնքի էլ․ փոստի ցանկում ոմն Միքայել Սփեյսֆալկոնը, ով չի օգտագործում իր իսկական անունը համացանցում, յայտարարել է, որ իրեն հաջաղուեց հայթայթել Թեքսաս Ինսթրումենթսից հոսած ջիէսեմ ֆիրմուերի ելատեքստ։ Հաղորդագրութեան թեման է՝ First small steps towards free GSM firmware.

I am very pleased to announce that after many years of searching, I have finally found a copy of TI’s firmware deliverable package for their Leonardo development board, i.e., for their Calypso/Iota/Rita chipset reference platform. It is the package which TI must have given to all of their chipset customers including Nokia, Motorola, Compal, FIC/Openmoko, LG, BenQ and many others, and which was used by all of these companies as the starting point for making their unique proprietary firmwares.

Իրօք, դրանք դեռ առաջին քայլերն են, որպէսզի մենք ունենանք ազատ ԾԱ որ կառավարում է մեր սարքերի ջիէսէմ մոդեմը։
Լաւ նորութիւնն այն է, որ մենք այժմ ունենք, ոչ միայն ֆիրմուերի ելատեքստը, որը, գուցէ լեգալ չի կարելի օգտագործել (որոշ ռեպրեսիվ երկրներում) այլեւ լրիւ ազատ գործիքներ, այն սարքի մէջ լցնելու, ֆլեշելու համար։ Մինչ այդ օփենմոկո օգտագործողները պէտք է կիրառէին Թեքսաս Ինսթրումենթսի սեփականատիրական գործիքը նոյնիսկ ԾԱ֊ն ֆլեշելու համար։

Ահա, ես որոշեցի փորձել, եւ սրանք իմ նոթերն են՝ ինչպէս կոմպիլյացիա անել եւ տեղակայել leo2moko ֆիրմուերը։

Փոխարէնը օգտագործել քրոսկոմպիլյատորներ, եւ նախընտրում եմ կոմպիլացնել ելատեքստը հենց սարքի վրայ, չէ՞ որ օփենմոկոն ազատ սարք է, ու ես կարող եմ տեղադրել կոմպիլյատոր։ Սոյն նոթերը արուած են SHR օպերացիոն համակարգն օգտագործելիս։ Եթէ ձեր համակարգն այլ է, պէտք է մի քիչ փոփոխէք գործընթացը։

==Տեղակայում ենք կոմպիլյատոր եւ նախագծման գործիքներ սարքի վրայ==

opkg install gcc
opkg install gcc-symlinks
opkg install libc6-dev
opkg install binutils
opkg install make 
opkg install coreutils

Լաւ կլինի ժամանակը սինխրոնացնել մինչեւ գործի անցնելը։

/etc/init.d/fsotdld restart

Քաշում ենք ֆլեշերի ելատեքստը՝

wget ftp://ftp.ifctf.org/pub/GSM/FreeCalypso/loadtools-r1.tar.bz2

Բացում՝

mkdir loadtools
cd loadtools

tar ĵvf ../loadtools-r1.tar.bz2

խմբագրում makefile֊ը, ինչպէս խորհուրդ է տրւում readme֊ում, նշէք CFLAGS֊ը որպես

CFLAGS= -O2 -march=armv4t -mtune=arm920t -DGTA0x_AP_BUILD

եւ

EXTRA_OBJ=gtapower.o

հապա make անենք

make
make install

այս երեկ բինարնիկները այժմ տեղակայուած են /usr/local/bin֊ում

fc-iram fc-loadtool fc-xram

==ֆիրմուերի կոմպիլյացիան==
Բաց թողէք այս քայլը, եթե ուզում էք ֆլեշել արդեն իսկ նախապէս քոմփայլ արուած ֆիրմուերը։
Աւաղ, այժմ անհնար է կոմպիլացնել ֆիրմուերը ազատ կոմպիլյատոր՝ օրինակ ջիսիսի օգտագործելով, ու մեզ պէտք են ուինդոուս գործիքներ Թեքսաս Ինսթրումենթսից։ Լաւ նորութիւնն այն է, որ դրանք աշխատում են wine֊ի տակ, ու մենք կարող ենք աշխատացնել դրանք ուայնով ցանկացած ԳՆՈՒ/Լինուքս մեքենայի մէջ։ ԹիԱյ֊ի միջավայրը իրականում օգտագործում է մեզ քաջ ծանոթ յունիքսական գործիքների ուինդոուս պորտերը։ Այնպէս որ անհամեմատ աւելի հեշտ կլիներ, եթէ մենք կարողանայինք նոյն գործիքներն օգտագործել բնիկ(նեյթիւ) կերպով։

Ահա, վերցնում ենք այս երեք նիշքը՝

ftp://ftp.ifctf.org/pub/GSM/FreeCalypso/leo2moko-r1.tar.xz — ելատեքստը
ftp://ftp.ifctf.org/pub/GSM/TI_src/wine/installed-env.tar.xz — միջավայր, այն քոմփայլ անելու համար
wget ftp://ftp.ifctf.org/pub/GSM/TI_src/wine/nowhine.c ու այսպիսի հաւէս վրափեր։

gcc -o nowhine nowhine.c
cp nowhine /usr/local/bin

nowhine կտրում է անկապ անպէտք բլթբլթոցը (whining) wine ծրագրի ելքից։ Փաստօրէն, սա ուայնի ուրափեր է, կարելի է այն եւ չօգտագործել։

Հետո ամեն ինչ շատ տրիւիալ է՝ բացում ենք արխիւները, աշխատացնում յատուկ բիլդ սկրիպտն, ու այն ամէնն անում է։

==արդեն իսկ քոմփայլ արուած ֆիրմուեր==
wget ftp://ftp.ifctf.org/pub/GSM/FreeCalypso/leo2moko-r1-bin.tar.bz2 — ահա սա, կամ եթէ նախապէս բիլդ էք արել, ապա օգտագործէք ձերը։

==լցնում ենք ֆիրմւերը==

պէտք է նախապէս սպանել որոշ դեմոններին, որ բնակւում են մեր օփենմոկոյի մէջ՝ որ չխանգարեն լցնելու պրոցեսին՝

killall fsodeviced
killall fsoaudiod
killall fsousaged
killall fsodatad
killall fsonetworkd
killall fsogsmd
killall phonefsod
killall phoneuid
killall frameworkd

Աշխատեցնում ենք ֆլեշերը՝

s3c24xx-gpio b7=0

fc-loadtool -h gta02 /dev/ttySAC0

Պէտք է անկապ հաղորդագրութիւններ տեսնէք, ու յետոյ՝ loadtool> առաջարկը։

Այստեղ շատ կարեւոր է բեքափել հեռախօսի միջի կալիբրացիայի տուեալները, դրանք մեզ պէտք կլինեն, եթէ ինչ֊որ բան այնպէս չգնայ։

flash dump2bin my-flashdump.bin

scp արէք այն ձեր կարգիչ, պահէք որեւէ տեղ, ոչ միայն հեռախօսի մէջ։

Անցանք գործի՝

flash erase 0 0x300000
flash program-m0 gsm-fw.m0

quit

reboot

==imei==
Շատ հետաքրքիր նախագիծ է սա՝

ftp://ftp.ifctf.org/pub/GSM/FreeCalypso/mpffs-tools-r1.tar.bz2

այն մասին է, ինչպէս գրել֊կարդալ ջիէսեմ մոդեմի փաստացի առանձին կարգչի նիշքային համակարգը։

Ահա, մոկոյի ջիէսեմ֊ի վարկածը պիտի որ սրա պէս լինի՝
openmoko firmware screenshot

եւ այդպէս

ասք աննկատ փոխարինելու մասին

Երեւի թէ, իմ ամենամեծ խնդիրներից մէկը առցանց սերւիսների հետ, ներառեալ Դիմագիրքը, այն է, որ իրենք աննկատ փոխարինում են տեխնոլոգիա գաղափարը՝ ընկերութիւն գաղափարով։

Ամենափայլուն օրինակը հանրայայտ գուգլ բայն է, երբ ասում են՝ գուգլիր, ոչ թե, ասենք, ոստափնտրիր։ Չնայած մենք բոլորս գիտենք, որ ոստայնում փնտրելը բնաւ չի սահմանափակւում գուգլով։

Դիմագրքի, թվիթերի պես ընկերութիւնները խուսափում են ստանդարտ տեխնոլոգիաներ օգտագործելուց այնպէս, ինչպէս էփլը խուսափում է ստանդարտ բոյն սարքելուց։ Այդ իսկ պատճառով էլ մարդիկ մոռանում են, որ Համացանցը՝ ցանց է, ոչ թե այս կամ այն ընկերութեան ծառայութեան հետ կապ հաստատելու միջոց։

Ահա թէ ինչու այսպէս կոչւած ԾԱՈԾ(ԾԱ որպէս ծառայութիւն, saas), խուսափում են ասենք rss հոսքեր օգտագործելուց։

Ահա թէ ինչու մեզանում տարածւած է «ո՞նց է քո սքայփի անունը» հարցը», ու ոչ թէ «ո՞րն է քո չաթ հասցէն», ինչպէս մենք էլ․ փոստի դէպքում։

եւ այդպէս

վասն ակւարիումի

մեր սպասարկիչները, տպասալերը՝ ռասփբերրիներն ու մարսերը, ակւարիումների պես են։ ստեղծում են յատուկ միջավայր, որ մենք յետոյ բնակեցնենք դրա մէջ վորդփրեսներ, սփիւռքեր, բոտեր, ջաբերներ։

եւ այդպէս