այս խօսքը ես եմ խնդրել որ Լեո֊ն անի, հենց այս թեմայով՝

ձեռքի հետ էլ ստուգեցի, ինչպէս է հասարակ պասկալական TList֊ը ռեալոքեյթ անում յիշողութիւնը (պասկալի լիստը բնաւ լինկեդ լիստ չի), ու հետաքրքիր էր նկատել որ fpc֊ն մեծացնում է երկու անգամ չափսը, իսկ դելֆի բեռլինը՝ քառորդ չափսով՝

ֆպց՝

function TFPList.Expand: TFPList;
var
  IncSize : Longint;
begin
  if FCount < FCapacity then exit(self);
  IncSize := 4;
  if FCapacity > 3 then IncSize := IncSize + 4;
  if FCapacity > 8 then IncSize := IncSize+8;
  if FCapacity > 127 then Inc(IncSize, FCapacity shr 2);
  SetCapacity(FCapacity + IncSize);
  Result := Self;
end;

իսկ դելֆի֊ում՝

procedure TList.Grow;
var
  Delta: Integer;
begin
  if FCapacity > 64 then
    Delta := FCapacity div 4
  else
    if FCapacity > 8 then
      Delta := 16
    else
      Delta := 4;
  SetCapacity(FCapacity + Delta);
end;

ու տենց։

թրենդային

Փաստօրէն, Օբերոնը երբեք չէր վայելում համայնքի բաւականաչափ ուշադրութիւն, նոյնիսկ համեմատած Մոդուլա֊2֊ի հետ։

google.com_2016-01-24_14-44-40

Նոյնիսկ բաւական տուեալ չկայ, որպէսզի պարզ լինի, թէ որ երկրներում էր այն աւելի տարածուած։ Զարմանալի է, որ Մոդուլա֊2 ֊ով աւելի շատ հետաքրքրւել են Իսպանիայում, քան Գերմանիայում։

google.com_2016-01-24_14-45-08

Ինչն է նաեւ զարմանալի, Օբերոնով երբեք այնքան հետաքրքրուած չէին, ինչպէս այսօր։

google.com_2016-01-24_14-39-20

Նոյնիսկ ոչ այն ժամանակ, երբ Oberon S3֊ը կամ V4֊ը ակտիւ զարգանում էին, ի տարբերութիւն այսօրուայ PO֊ին։

Հաւանաբար, դա կարելի է բացատրել նրանով, որ վերջերս մարդիկ աւելի են հետաքրքրուած ծրագրաւորման լեզուներով, քան երբեւէ առաջ, եւ Վիրտի նոր գիրքը հրապարակուել է ճիշտ այն ժամանակին, երբ ծրագրաւորման լեզուները վայելում են բարենպաստ պայմաններ։

>Վերջերս դրա վառ օրինակն է հանդիսացել Ադա֊ն։ Եթէ Ադա֊ն պէտք է ունենայ ստանդարտ, աւելի լաւ է որ այդ ստանդարտը լինի աներկբայ։ Առնուազն երկու նախաձեռնութիւն եղաւ․ երկուսի արդնիւնք էր մօտ 600 էջ կազմող ֆորմալ տեքստ, այսինքն անգամներ շատ, քան անհրաժեշտ է համոզուելու համար, որ երկու թուղթն էլ սահմանում են նոյն լեզուն։ Այդ երկու փաստաթղթերի ակնյայտ անկառավարելիութեան պատճառն երկու խմբից ոչ մէկն էլ չէ, ոչ էլ այն ֆորմալ ձեւն է, որ իրենք կիրառել են, այլ ինքը լեզուն․ արդեօք չներկայացնելով ֆորմալ ձեւակերպում, լեզուի նախագծողները կարող են թաքցնել, որ առաջարկում են անկառավարելի հրէշ։ Այն, որ Ադա֊ն կը թեթեւացնի ծրագրաւորման խնդիրները եւ կաւելացնի մեր ջանքերի արդիւնաւէտութիւնը՝ այն հեքիաթներից է, որոնց հաւատալու համար պէտք է ունենալ զինուորական կրթութիւն։

գիտական ֆանտաստիկան եւ գիտական իրականութիւնը յօդուածից, Էդսգեր Վիբե Դեյքստրա։

vpicl

vpicl__

ահա, Վիրտի PICL լեզուի կոմպիլյատորը, որ նախատեսուած է PIC16F84 միկրոկոնտրոլերներ ծրագրաւորելու համար, կարողացայ տեղափոխել Լինուքս, աշխատեցնել, եւ կոմպիլյացիա անել մի քանի թեստ։

ահա կոդը եւ գրառում վիշապ օբերոնի կայքում։

մինչ

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

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

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

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

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

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

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

եւ այդպէս։ ։Ճ

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

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

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

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

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

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

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

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

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

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

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

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

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

եւ այդպէս

ասք լուսանկարներ վրիպազերծելու մասին

Ժապաւէնով լուսանկարելը նման է թղթի վրայ ծրագիր գրելուն։ Չես կարողանում նոյն պահին աշխատեցնել, համոզուել, ճիշտ է աշխատո՞ւմ թէ՞ ոչ։ Որպէս կանոն սխալ է չէ՞ լինում։ Դէ մեզ մօտ, ոչ թէ ասենք Վիրտի։ Քանի որ ինչ֊որ մանրուք միշտ հաշուի չես առնում։ Այնպէս էլ լուսանկարում՝ կամ մի բան այնպէս կտրած չէ, կամ պէտք էր խցիկը մի քիչ ձախ շարժել, եւ այլն։

Թուային խցիկը թոյլ է տալիս տեղում վրիպազերծել (դեբագ անել), տեսնել ո՞նց է, ու կրկին նկարել։

Եթէ դա բեմադրութիւն է, գուցէ լաւ ստացուի։

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

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

եւ այդպէս

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

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

Պարզ օրինակ․ առաջ այսպէս էր՝ «լաւ, գրենք նիշք»։ Իսկ հիմա ես անհանգստանում եմ իրաւունքների, արգելափակման, զուգահեռութեան, ատոմար գործողութիւնների, տարբեր նիշքային համակարգերի, պանակում բացած նիշքերի քանակի, ժամանակաւոր նիշքերի կանխատեսելի անունների, իմ PRNG֊ի պատահականութեան որակի, գործողութեան կէսին սնուցման սակաւութեան, հասկանալի API֊ի, նրա համար, ինչ ես անում եմ, յստակ ձեռնարկների, եւ այլն, եւ այլն։

աղբիւր

#programming #analysis #paralysis #experience #ծրագրաւորում ###

ասք հաշվելու մասին

ուրեմն, այսօր քննարկում էին, որն է «ճիշտը», զրոյից ֊ ինպես սի֊ում, թե մեկից ֊ ինչպես պասկալ֊ում հաշվել։ Դեյկստրայի թղթի շեյրի պատճառով։
ուզում եմ ես էլ արտահայտվել։
Առաջինը, ոնց էլ հաշվեն, լավ է մի ձեւ, որովհետեւ այլապես լրիվ ես խճճվում։
Երկրորդը, Վիրտը ինքն է հրաժարվել պասկալի մոտեցումից, ու Մոդուլայից սկսած արդեն զրոյից է հաշվում։
Երրորդը, եթե սկսենք մաթից, ապա կա մի քանի մոտեցում ֊ օրինակ ռուսական մաթ դպրոցը համարում է որ զրոն բնական թիվ չէ, իսկ գերմանական մաթ դպրոցը ֊ որ զրոն բնական թիվ է։ Ես, բնականաբար գերմանացիների կողմից եմ։ (:
Կամ այսպես՝ կա երկու մոտեցում սահմանել բնական թվերը
֊ թվարկելով ֊ առաջինը, երկրորդը, երրորդը
֊ նշելով ասենք իրերի քանակը ֊ չկա իր, մեկ իր, երկու իր․․․

Ինձ թվում է բնական, որ բացակայությունը էական հատկանիշ է։

Իսկ ինֆորմատիկայում, ես կարծում եմ, ավելի նպատակահարմար է զրոյից հաշվել։ Պարզ պատճառով ֊ մենք աշխատում ենք հիշողության օֆսեթների հետ։ Այսինքն երբ պետք է դիմել կոնկրետ դաշտին, կամ էլեմենտին, հաշվում ենք շեղումը հիշողության, ստրուկտուրայի սկզբից։
Ու պարզ է որ ունենում ենք զրոյական շեղում։ Ասենք դաշտը կարող է զրոյական օֆսեթ ունենալ։ Ուրեմն ոչինչը ինչ֊որ բան նշանակում է մեզ համար։ Այսինքն, nothing tells something ֊ ինչպես ասում էր Հաուսը։
Բացի դրանից, այսպես հաշվելը ավելի արագ է(էժան է), որը նույնպես լավ դիզայնի նշան է։
Իսկ Դեյկստրայի մասին ֊ ես կարծում եմ, որ առանց նրա ինֆորմատիկան բնավ չէր լինի այնքան գրավիչ, հավես, ռոմանտիկ, ու այնքան գիտական։ Այսինքն նա այն քչերից է ով գիտական մոտեցում է ցուցաբերում։
Օրինակ այն, որ հիշողությունը պետք է տիպավորված լինի, ամենակարեւոր մտքերից է։
Դե գոութուի մասին ես կարծում եմ խոսելն էլ է իզուր։ Որովհետեւ կոդը միայն կատարվող ծրագիրը չէ, այլ մտքերի ֆորմալ նկարագրություն է։
Նրա համար, որ մարդը կարդա ու հասկանա ինչ է գրված, նրա համար, որ կոմպիլյատորը կարողանա սխալներ գտնել։ Իսկ ոնց անցար գոութու֊ին ֊ կոմպիլյատորը ձեռքերը լվանում է, քաշվում է մի կողմ։ ի՞նչ իմանա ինչ է մտքիդ։ Նույնը չտիպավորված հիշողություն օգտագործելիս։

Էլ չեմ ասում որ Ճաշող Փիլիսոփաների ու Քնած Վարսավիրների պես հավես անտրոպոմորֆիզմ ումի՞ց, եթե ոչ Դեյկստրայից։

ա նապոսլեդոկ այս տեսանյութը՝

ավելի ճիշտ ֊ հենց այստեղից։

Կնութ՝ մենք Էդսգերի հետ սիրում էինք չորս ձեռքով նվագել, ու ես ոչ մի կերպ չսովորեցի, որ երբ նվագում էինք Հայդնի վալս, նա չէր հաշվում՝ մեկ, երկու, երեք, մեկ երկու երեք, նա ասում էր՝ զրո, մեկ, երկու, զրո, մեկ, երկու։

ու տենց

ասք վեբ կայքեր գրելու մասին

֊ Ի՞նչ գրենք։
֊ Կայք։

Իմ մոտ տպավորություն է, որ հիմա ով ինչ անում է՝ դա «վեբ սերվիս» է։
Ոմանք, ճիշտ է, կենտրոնանում են այֆոն/անդրոիդ նախագծման վրա, ու ես դա բացատրում եմ նրանով, որ մոբայլ շուկան այն տեղն է, ուր անհատ ծրագրավորողները (դե՞ռ) կարողանում են իրենց գտնել։
Բայց մտահղացումների մեծ մասը վերաբերվում են վեբին։ Օրինակ, սթարթափ ուիքէնդին բոլոր ներկայացված պրոեկտները վեբ էին։ Ես այնտեղ հանդիպեցի ծանոթներիս, ում գիտեմ որպես «նեյթիվ» նախագծողներ, բայց նրանք նույնպես ներկայացրել էին վեբ պրոեկտ։ Բողոքեցին, որ հեշտ չէ սուզվել անծանոթ միջավայր, բայց դա իրենց չխանգարեց հաղթել ։Ճ (գուցե բնութագրող է որ նեյթիվ նախագծմամբ զբաղվող մարդիկ ունեցան ավելի լավ գաղափար)

Հիմա ինչպե՞ս է լինում, որ բոլորը զբաղվում են վեբով՞։ Գուցե դա առաջին հայացքից թվացող թեթեւ տեխնոլոգիանե՞րն են (ասենք պհպ)։
(Ասում եմ թվացյալ թեթեւ, որովհետեւ իմ համար տեխնոլոգիաները, որ փորձում են «թեթեւացնել» գործը, ու թաքցնում են օգտագործողից որոշակի մանրուքներ այդ թեթեւացնող շերտի հետեւը, դրանով իսկ անում են այնպես որ ինձ ավելի բարդ լինի։)

Իսկ օրինակ, ինչպե՞ս է լինում, որ համակարգի մեջ փոփոխություն անելու միտք չեն ունենում, բայց կայքի միտք ունենում են։ Գուցե, որովհետեւ չգիտեն, թե ինչ փոփոխություն է կարելի անել, որ ավելի լավ լինի, որովհետեւ նույնիսկ չգիտեն, որ եղածը լավ չէ։
Գուցե որովհետեւ նրանք ապրում են սեփականատիրական ծրագրերի աշխարհում, ուր, օրինակ կա windows որի հիշողության կառավարչի կոդը չես նայի, որ հասկանաս ինչպես է գրված, ու ինչպես կարելի է լավացնել։
Կարող է այն պատճառով, որ նրանք ապրում են աշխարհում, ուր կան սարքերի արտադրողի կողմից տրամադրված սեփականատիրական դրայվերներ։ Ու հետո այդ ծրագրավորողները ստիպված են լինում փոխել երկաթը, որովհետեւ այս սարքի համար արտադրողը տրամադրել է, ասենք xp֊ի դրայվեր, բայց ոչ 7֊ի, որ նոր (սակայն ոչ ավելի լավ) սարքերը ավելի շատ վաճառվեն։ Իսկ նրանք չգիտեն ինչպես գրել դրայվեր, ու չգիտեն որ կա rolling release համակարգեր, ուր առհասարակ չի լինում release բայց լինում են հաճախակի փոփոխություններ, քանի որ լավացումը եւ հետ համատեղելիությունը անհամատեղելի են։
Վերջերս զրույցի մեջ հնչեց՝ «եթե դու mysql֊ի կոդը նայած լինեիր, այն կյանքում չէիր օգտագործի»։ (Ի դեպ, ես դբ֊ներից չկամ, բայց եթե նրանցով գրեի, ապա firebird կօգտագործեի)

Երբեմն ես ասում եմ՝ դե նա ծրագրավորող է։ Նկատի ունեմ՝ ցանցառ չէ, կամ հաքեր չէ։
Հիմա բացատրեմ։ Մի անգամ ընկերներիս նշանդրեքին (դե էլ որտեղ այդպիսի մարդ կհանդիպես) ես ծանոթացա մի տղայի հետ, ով ասաց որ նկարիչ է։ Ինձ հետաքրքիր էր, ու ես հարցեր էի տալիս իր աշխատանքի վերաբերյալ։ Ու անկեղծ զարմացել էի, երբ իմացա, որ նա գնում է աշխատանքի։
Այսինքն նա ամեն առավոտ, իննից վեցը գնում է «ցեխ» ուր պատրաստում է հայտնի նկարների պատճեներ։ Հետո դրանք ուղարկում են Եւրոպա, ուր վաճառում են որպես ձեռքի գործ, որը ռեպրոդուկցիայից ավելի թանկ է։ Հետո էլ այդ տղան շուտ գնաց, ասաց պետք է շուտ արթնանամ, աշխագանքի եմ։

Նկարիչ, ով աշխատո՞ւմ է։ Իմ համար այդ երկուսը այնքան էլ համատեղելի չէին։ Չէ, ես գիտեի, որ կան, այսպես ասած ոչ ստեղծագորշող նկարիչներ, ով նախընտրում է զբաղվել ռեստավրացիաներով, բայց ոչ իրականացնել իրենց միտքը, որովհետեւ միտք չունեն։

Ու եթե նկարիչների մոտ միտք չունենալը նորմա չի ընկալվում, ապա ծրագրավորողների մոտ միտք չունենալը՝ նորմա է։ Նրանց մեծ մասը գնում են աշխատանքի ու գրում են «ձաձա»֊ների համար սոֆթ։ Եթե աշխատանքից հետո ինչ որ բան են անում, ապա դա սովորաբար փող աշխատելու, այլ ոչ թե միտք, գաղափար իրականացնելու համար է։
Այսինքն փողի, ոչ թե սիրո, հետաքրքրության պատճառով է։

Իսկ օրինակ plc նախագծման սոֆթ գրում են նրանք, ով թեմայի մեջ են։

Մասնավորապես դա բացատրվում է նրանով, որ մարդկանց մեծ մասը հետաքրքրվող, ու խորացող չեն։ Այդ մասին ես դեռ կգրեմ։
Բայց այլ պատճառը, որի մասին հիմա գրում եմ՝ չիմացությունն է, ոչ զարգացած լինելն է։
Այսինքն մարդիկ պարզապես չգիտեն, չեն պատկերացնում ինչպիսի խնդիրներ կարող են լինել, ու ինչ լավ բան կարելի է անել, եթե դա կայք չէ։
Նրանք չգիտեն ինչպես է աշխատում համակարգը, քանի որ իրենց համակարգը փակ է, ու նրանք չեն զգում որ կարող են այն փոխել, կամ որոշակի ներդրում ունենալ։ Մոտավորապես այնպես, ինչպես Սովետի ժողովուրդը չէր զգում, որ կարող է ազդել օրենքների վրա։
Ու այստեղ ես կարծում եմ, որ շատ լավ է, երբ ծրագրավորողները օգտագործում են ազատ ԾԱ ոչ միայն այն պատճառով որ ազատ է, ու հետեւաբար լավը, ոչ միայն այն պատճառով որ այդ գաղափարը իրենց մոտիկ է, այլ եւ այն պատճառով որ դա ավելի է զարգացնում, քան փակ աշխարհը, թույլ է տալիս տեսնել ինչպես է ամենը արված, ու երբեմն պահանջ զգալ դա լավացնելու, տեսնել ինչ կարելի է անել

ու տենց

ասք երազանքներ կատարող մեքենաների մասին

այս փոսթի մոծիվներով։

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

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

Պատկերացնու՞մ եք եթե ճարտարապետները նախագիծ պատրաստելիս չմտածեին, իսկ հետո տարբեր ձեւի հենարաններ ավելացնեին, որ կառույցը չփլվի։ Ոչ, ճարտարապետները ստիպված են ուշադիր լինել մտքերը մտածելիս եւ արտահայտելիս, որովհետեւ քոմփայլ անելու պրոցեսը շատ ավելի բարդ է իրենց դեպքում։
Օրինակ, ՕփենՕֆիսը իմ կոմպի վրա կոմպիլիացիա է լինում վեցը ժամում։ Շենք կառուցում են անհամեմատ ավելի երկար։
Իսկ հոմո սափիենս տեսակի կենդանիները գենետիկ կոդից քոմփայլ են լինում գրեթե մեկ տարի։ Ի դեպ, հոմո սափիենս նշանակում է «բանական մարդ»։ Ի նկատի ունենալով որ օրինակ շիմպանզեները այդքան էլ բանական մարդ չեն, սակայն մարդ են։

Կան նաեւ ֆունկցիոնալ լեզուներ, որոնք մի կողմից մաթեմին շատ մոտ են, սակայն մյուս կողմից դրանք օգտագործելիս անհնար կամ շատ դժվար է լինում նախագծի սխալները գտնել դեռ գրելու ընթացքում։ Այդ լեզուների երկրպագուները սովոր են արդեն իսկ կառուցված շենքեր փոփոխել։
Ես այդ ոճին սովոր չեմ, սակայն։ Ինձ թվում է որ մաթեմից ավելի հեռու, իմպերատիվ լեզուները իմ իմացած մակրո աշխարհի մոդելները նկարագրելու համար ավելի պիտանի են։

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

ու տենց

erzahlung uber verleiten

> I want to avoid implementation inheritance in CP programs.
> > What are the language features I have to rule out ?
> > Is it just the super call which I have to avoid or something else ?
Give priority to composition over inheritance.

Inherit, if you must, only from ABSTRACT classes. No EXTENSIBLE types or methods.
Methods should be ABSTRACT, EMPTY or FINAL.
No supercalls, use ordinary exported procedures instead (this is always possible).
Avoid exported fields, use functions instead (better evolvability).

Stick to sequential data structures and algorithms whenever possible (scalability),
exploit carrier-rider to the full — hide data access behind abstract riders.
Your specific data processing algorithms should interface to abstract riders rather than carriers.

Give priority to text-as-interface over forms.

Avoid anything fancy or smart or optimized — that’s Devil tempting you.

Once again: f*** optimizations!

from the blackbox component pascal mailing list

und so weiter

ասք հակա տոնի մասին կամ it’s never mutex

Մտածե՞լ եք ինչու «իրենց» մոտ լիքը բան արվում ա, ու տեղի ա ունենում, իսկ մեր մոտ, ինչ որ մի տեսակ չի արվում։
Ասենք Արթինը պետք է գար Իրանից որ ռոբոտիքսը սկսվեր։
Հաքաթոնը [hackathon] տոնին հակասող միջոցառում ա երբ հանգստյան, տոնական օրը լիքը ցանցառներ հանգստանալու եւ տոնելու փոխարեն հավաքվում են ու ինչ որ լավ բան անում/գրում։
Ասենք այս անգամ Ինս[ծ]իգեյթում հավաքվել էին ու գրում էին զուգահեռ ծրագրավորման համար ազատ գրադարան․


– So, what can cause Hackaton, Pair programming, and other symptoms? Differential!


– Need in a simple abstraction layer for different concurrent programming paradigms?


– Could be. Check the patient’s home, find what he used to consume, test the blood brain thread synchronization barrier, and ask whether he had an affair rendezvous. Also do a full body CSP


– MRI shows nothing. We’ve put patient in coma, in order to test readers and writers throughout his memory.

– Comon we better take a break and go eat pasta
– Bring some for a patient, otherwise he will die from starvation.

[Pager beeps]
The patient enters a critical section, bring the paddles… charging, clean!


– Can you hear us? Almost mutex changes nothing. Deadlock changes everything. You’re healed. Just never smoke in the future and you’ll be ok.

ու տենց

ասք դեվի մտքերի մասին

Մաեմոյի դեվերից մեկն ա գրում՝

The announcement mentions MeeGo only marginally, as a “longer-term market exploration”, and ends the paragraph with “Nokia still plans to ship a MeeGo-related product later this year”. This sounds to me like: we won’t market any MeeGo devices in parallel with Windows Phone ones, not to hinder the latter’s success, but we’ll release the MeeGo product we’re currently working on before downscaling MeeGo back into the R&D division.

No matter how wrong my interpretation might be, let’s try to collect a few facts:

MeeGo is ready, it’s not an R&D project: a MeeGo phone will be released
Nokia’s primary platform for the middle/long term is Windows Mobile
Meego will become, within Nokia, an R&D project at best
I feel confused and fooled. Business logics are floating several metres above my head, and I cannot understand what’s the point of saying that MeeGo will be an R&D project when it’s not. To me, it’s like taking a teenager and trying to squeeze him into a baby’s cradle. Either you kill him more or less explicitly, or you take him out, let him grow and give him a chance to be a hero. We are going to have the best phone in the market this year. It might not be perfect, as the N900 clearly wasn’t, but all the premises for a brilliant future are there. And people will love it, as they loved the N900 despite it being far away from the quality standards we aspired to achieve and despite a zero-digits investment on marketing. Maemo won, against all odds.

այստեղից
Նաեւ ասում ա որ նոր գործ ա փնտրում, որովհետեւ հավես չունի վինդովսի համար սոֆթ գրել`

if I had to choose between developing open-source software on top of a closed platform and developing closed-source software on top of an open-source platform, I’d much rather go for the second option: because with the first one I’d still be using and promoting a closed platform, and unless you are developing a cross-platform application or framework, you’d be doing very little good to the open source world.

ու տենց

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

computer science -ը վերացարկման (աբստրակցիայի) արվեստ է։ մենք մտածել ենք մոդուլներ, վրոփերներ, կոպմոնենտներ, եւ այլն։
այսինքն մենք ուզում ենք նվազեցնել կրկին գրվող կոդի մասը, ավելի ընդհանորւ ենք սարքում ինտերֆեյսներ, եւ այլն։
դա նաեւ այն է ինչ մեզ սովորեցնում են։

հիմա նայենք ինչ ունենք մոբայլ սարքերի ոլորտում նախագծման դեպքում։
ունենք հայտարարված փորթաբնլ, բայց իրականում մեկ պլատֆորմային կպած դոթնեթ (WP7), ունենք անփորթաբլ C++ Սիմբիանի համար, ունենք հայտարարված կրոսպլատֆորմ ջավա, որի անդրոիդի համար գրված ափը էլ ոչ մի տեղ չի աշխատում․․․
ունենք cocoa էփլի դեպքում։

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

ի՞նչ կար առաջ․ ունեինք j2me, որը մահացավ թույլ հեռախոսների հետ, բայց որը կարելի է համարել փորթաբլ։

ի՞նչ կունենանք։ Միրիադ ընկերությունը պորտ է անում անդրոիդի դավլիկը (ջվմը) Լինուքսի վրա, այսինքն անդրոիդի ծրագրերը կաշխատեն Միգոյում։ (Միրիադը նախագծել է վինմոբայլի ջ2մեն, յբեդը, Օբերոնով)
կունենանք դոթնեթով գրված ափեր վինդովսի եւ այֆոնի, եւ Միգոյի համար ազատ մոնոյի շնորհիվ։
Կունենանք Լազարուսով գրված սոֆթ դրոիդի, սիմբիանի, այֆոնի, միգոյի, բայց ոչ վինմոբայլի համար, քանզի այնտեղ դոթնեթ ա։
Կունենանք հավանաբար ՔԹ, որը կծածկի սիմբիան, ու Միգո։ Ինչ կստացվի այֆոնի ու անդրոիդի հետ դեռ պարզ չի։
Նենց չի որ շատ գույնզգույն ա, բայց կարծես քիչ քիչ լավանում ա վիճակը։

ու տենց

ասք ապագա կողմնորաշված լինելու մասին


Сегодня такую думу подумал, про нашу работу. Почему программеры всегда такие затраха…ые? Потому что они живут в будущем. Точнее, своим будущим. Как такое может быть, спросите вы? А очень просто. Мы пишем код. А код бывает разный. И всегда зависит от того, что вы написали раньше. Если просто писать как пишется, типа чтобы просто работал и было что сдавать, то рано или поздно у вас весь проект придёт к такому хреновому состоянию – что и не туда, и не сюда, и придётся его как следует переписывать и не спать ночами, ибо лишний час сегодня – это сэкономленная неделя завтра. Поэтому хороший программист всё время что-то делает, чтобы завтра у него не было проблем. Поэтому и не спит ночами. Чтобы спать ночами в будущем. Ну а в будущем, он также не спит ночами, чтобы спокойно спать ночью в будущем его будущего. Одним словом, выхода из этого нет. Можно писать код как все, а потом уйти с работы, когда начнутся проблемы, но это плохой выход. Можно сбросить проект на других лохов, а самому уйти на повышение, это хороший выход, если не поймают конечно. А лучше конечно сменить профессию и начать жить.

Молодым и глупым программистам посвящается.

այստեղից

ու մի հատ էլ մուլտ ֆծեմու


ու տենց

ասք ընդհանուր տեղեկատվական տարածքի մասին

Տեղեկատվական տեխնոլոգիաների եւ այլ տեխնոլոգիաների միջեւ զուգահեռներ շատ են տանում։ Օրինակ՝ երբ համեմատում են սպիտակուցի սինթեզը ԴՆԹ-ից, ծրագրի կոդի կոմպիլյացիայի՝ բինար ֆայլ ստանալու հետ։

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

Քաթի տակ․ փող, փառք, աշխատանք, հարաբերություններ, բռնություն եւ իհարկե՝ սեքս։

մնացեք մեզ հետ․

ասք Դեյկստրայի ծրագրավորող դառնալու մասին


После того, как я прозанимался программированием около трех лет, у меня состоялась беседа с А. Ван Вейнгаарденом, который был в то время моим боссом в Математическом центре Амстердама, беседа, за которую я буду благодарен ему до конца моих дней. Дело в том, что предполагалось, что я буду параллельно изучать теоретическую физику в Лейденском университете, и так как мне становилось все труднее и труднее совмещать
два этих занятия, я должен был определиться: либо бросить программирование и стать почтенным физиком-теоретиком, либо кое-как доучиться физике до формального выпуска с минимальными усилиями, и затем стать…, а кем, кстати? Программистом? Но является ли это достойной профессией? В конце концов, что это такое – программирование? Где та солидная теоретическая основа, которая должна поддерживать его как уважаемую
интеллектуальную дисциплину? Я довольно отчетливо помню, как я завидовал своим коллегам, которые работали с оборудованием: когда у них спрашивали об их профессиональных навыках, они по крайней мере могли сказать, что знают все о вакуумных лампах, усилителях и тому подобных вещах, тогда как я чувствовал, что, когда столкнусь с этим вопросом, мне останется только лишь развести руками. Полный опасений, я постучал в дверь Ван Вейнгаардена, спросив, могу ли я “поговорить с ним минутку”; несколько часов спустя я покинул его офис другим человеком. Внимательно выслушав мои проблемы, он согласился, что до сих пор наука программирования не так
уж развита, но затем принялся неторопливо объяснять, что автоматические компьютеры – это надолго, что мы находимся в самом начале, и почему бы мне не стать одним из тех, кто призван сделать программирование уважаемой дисциплиной? Это стало поворотной точкой в моей жизни, и я формально закончил изучение физики так быстро, как только мог. Мораль этой истории – в том, что, конечно, мы должны быть очень осторожны, давая
советы молодежи: иногда они следуют им!
Еще два года спустя, в 1957, я женился, и голландский обряд регистрации брака требовал указать профессию; я указал “программист”. Но городские власти Амстердама не приняли документы на том основании, что такой профессии не существует. Хотите – верьте, хотите – нет, но в графе “профессия” моего свидетельства о браке значится забавная запись “физик-теоретик”!
Стоит ли говорить о том, как медленно профессия программиста пробивала себе путь в моей стране. С тех пор я немало повидал во всем мире, и мое общее впечатление таково, что в других странах, если не считать возможного сдвига дат, ее продвижение в целом было таким же.
Позвольте мне попытаться передать события этих давно минувших дней немного детальнее, чтобы попытаться получше понять, что же происходит сегодня. В процессе нашего анализа мы увидим, как много недоразумений относительно истинной природы программирования восходит к тем временам.

Эдсгер Дейкстра – Избранные статьи http://store.oberoncore.ru/lib/book/dijkstra.pdf

ու տենց