Monthly Archives: Հուլիսի 2011

Փորձարկում ենք Google+ ծառայությունների փաթեթը

Վերջապես այսօր ստացա Google+ ծառայությունների փաթեթի հրավեր: Բլոգում մի քանի օր առաջ դրա մասին գրել ենք: Եթե չեք կարդազել գրառումը, ասեմ, որ այն սոցիալական ցանց է, որը կապում է Google-ի հին ծառայությունները (GMail, Picasa, Chat և այլն) և առաջարկում է նորերը (դրանց մասին դեռ կխոսենք):

Առաջին անգամ Google+ի գլխավոր էջը տեսնելուց միանգամից մտածում ես, որ այն facebook-ի կլոնն է (կամ, չլինի facebook-ի ձևավորումը փոխել են…):
Capture
«Ընկերներին» կարելի է խմբավորել Circles (շրջանակներ) կոչվող օբյեկտներում: Հետագայում խմբային չատ, խմբային վիդեոչատ (սրա անունն էստեղ hangouts է) կազմակերպվում է հենց նույն շրջանակներում:
image 
Facebook-ի «պատին» այստեղ փոխարինում են stream-ները (հոսք), ընդ որում ամեն շրջանակ ունի իր առանձին հոսքը: Նոր նկարներ, վիդեոներ, պատմություններ, հղումներ ավելացնելիս կարելի է նշել այն հոսքերը, որոնք կարող են տեսնել նորությունները: Սա բավականին հարմար է (օրինակ, երբ չես ուզում, որ աշխատանքի վայրում տեսնեն վերջին ընկերական խնջույքի նկարները (նույն բանը կարելի է անել նաև facebook-ում, բայց հրապարակման կարգավորումները այնտեղ գործում են անհատներին նշելու/հեռացնելու սկզբունքով)): ստանալ Հոսքերի գրառումների տակ մեկնաբանություններ թողնելու մեխանիզմը գրեթե նույնն է, ինչ facebook-ում:
Շատ ուրախացրեց Photos-ը: Նախ և առաջ, գրանցվելիս Google+ը թույլ է տալիս կապել G+ Photos-ը Picasa-ի հետ: Այսպիսով Picasa-յում տեղադրված բոլոր նկարները (իրենց հրապարակելու կարգավորումներով) հասանելի են G+ Photos-ում և հակառակը: Նկարները դիտելու ու կառավարելու գործընթացը շատ հարմարավետ է:
image 
Facebook-ի Page-երին այստեղ փոխարինում են ավելի պարզեցված Sparks-ը: Սա պարզապես ձեր նախընտրած թեմայով տարբեր կայքերից պարբերաբար հոդվածներ է հավաքում և ներկայացնում է մեկ հոսքի ներքո, թույլ տալով ցանկության դեպքում կիսել (share) դուր եկած հոդվածը ընտրյալ շրջանակների հետ:
image
Եվ վերջապես աուդիո/վիդեո չաթերի մասին: Հաճելի է նկատել, որ աուդիո «զանգ» կարելի է անել ընկերներին անմիջապես չաթի պատուհանից (որը գրեթե ոչնչով չի տարբերվում facebook-ի չաթի պատուհանից): Առավել ուրախացնում է խմբակային վիդեո չաթը: Այն աշխատացնելու համար Google+ը պահանջում է տեղադրել Google Audio/Video plugin անունը կրող հավելում: Խմբակային վիդեո չաթը աշխատում է, ինչպես և խոստացված էր: Hangout-ին մասնակցել կարող են առավելագույնը 10 մարդ: Կենտրոնական մեծ պատուհանում երևում է այն մասնակցի [ուղիղ եթերով] պատկերը, ում ձայնը տվյալ պահին ամենաբարձրն է:

Ընդհանուր առմամբ, Google+ը ամենևին չի հեղաշրջում սոցիալական կայքերի ոլորտը, և միայն ժամանակը ցույց կտա, թե կդառնա այն արդյոք այնքան տարածված, որքան facebook-ն ու twitter-ն են: Մյուս կողմից, շատ քիչ ծառայություններ կարող են պարծենալ խմբակային վիդեո չաթ առաջարկելու (անվճար!) հնարավորությամբ: Այնպես որ, փորձել արժե, բայց, մեկը ես ամբողջովին «տեղափոխվել» Google+ դեռևս չեմ պատրաստվում:

P.S. Facebook-ը չի պատրաստվում ձեռքերը ծալած կանգնել և շուտով այն կգործարկի սեփական վիդեո չաթի ծառայությունը (ավելի ստույգ, Skype-ի վիդեոզանգերը կինտեգրվեն Facebook-ում): Դեռևս խոսքը գնում է միայն 1-1 վիդեոզանգերի մասին (Skype-ում խմբակային վիդեոզանգերը վճարովի են):

1 մեկնաբանություն

Filed under IT Հետազոտություն

Պրոցեդուրային գեներացում: Մաս 1

1.1 Ներածություն
Այս խորագրի ներքո այսուհետ կներկայացվեն հոդվածներ ժամանակակից ծրագրավորման առջև դրված հետաքրքիր խնդիրների դասի՝ պրոցեդուրային գեներացման (procedural generation) վերաբերյալ: Պրոցեդուրային գեներացումը նվիրված է հաշվիչ մեքենաների միջոցով պսեվդո-պատահական պատկերների ստացմանը և մեծ կիրառություն ունի համակարգչային գրաֆիկայում և խաղերի դիզայնում: Հոդվածները հաճախ կուղեկցվեն ծրագրային կոդի հատվածներով, հարկ եղած դեպքում կոդը կուղեկցվի հարակից բացատրություններով: Օրինակները աշխատացնելու համար պահանջվող գրադարանների և կոմպոնենտների մասին կնշվի առանձին, ամեն օրինակի հետ:
Պրոցեդուրային գեներացումը անհնար կլիներ առանց պսեվդո-պատահական թվերի ստացման մեթոդների: Մենք չենք սևեռի մեր ուշադրությունը այս ոլորտի վրա, փոխարենը կօգտագործենք պսեվդո-պատահական թվեր գեներացնող .Net Framework-ի գրադարանի System.Random դասը:

1.2 Ռեալիստիկ լանդշաֆտի ստացում, միջնակետի տեղաշարժման ալգորիթմ

Դիտարկենք հետևյալ խնդիրը: Պահանջվում է գեներացնել և պատկերել իրական [Երկիր մոլորակի] լանդշաֆտի ուրվագծին նման ուրվագիծ: Պարզության համար կդիտարկենք ոչ թե եռաչափ լանդշաֆտի գեներացումը, այլ երկչափինը: Կարելի է վերաբերվել դրան որպես եռաչափ լանդշաֆտի ուղղահայաց հատույթի: Նայեք նկարին, որպեսզի պարզ լինի, ինչի մասին է խոսքը:
image

Նման պատկեր կարելի է տեսնել օրինակ երեկոյան հեռվից սարերի/բլուրների խմբին նայելիս: Նման խնդրի լուծման զանազան ալգորիթմներ կան, առավել պարզը դրանցից (ընդ որում, պարզ != վատ) միջնակետի տեղաշարժման ալգորիթմն է:

1. Սկզբում ունենք մի հորիզոնական հատված

midpoint02. Հատվածի ամեն սեգմենտը միջնակետում բաժանում ենք 2 մասի, միջնակետը [-range, range] միջակայքում ընկած պատահական չափով տեղաշարժում ենք վերև կամ ներքև
midpoint3. range թիվը բազմապատկում ենք roughness-ով (խորդուբորդության գործակից): Այն 0.0 – 1.0 միջակայքի ինչ-որ թիվ է: Որքան փոքր է այն, այնքան հղկված ու «փափուկ» է ստացվում ուրվագիծը:
4. Կրկնում ենք 2 և 3 քայլերը պահանջված անգամ: Դժվար չէ նկատել, որ ամեն անգամ 2-րդ քայլն անելուց հետո հատվածների քանակը կրկնապատկվում է:

Դիտողություն: Ռեալիստիկ պատկեր ստանալու համար կարելի է ալգորիթմն աշխատացնել սեգմենտների բավականին մեծ քանակ պահանջելով: Կարելի է նաև ստանալ համեմատաբար քիչ թվով կետեր (սեգմենտների փոքր թիվ տալ մուտքում) և դրանք ինտերպոլացնել գծայնորեն:

Դիտողություն 2: Շատերի մոտ կարող է այս ալգորիթմը ռեկուրսիվ իրականացնելու «ախորժակ» առաջանա: Մի շտապեք, իտերատիվ տարբերակը ճիշտ իրականացնելիս ավելի էֆեկտիվ է:

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

Ստորև բերվում է C#-ով գրված ֆունկցիա, որն իրականացնում է ալգորիթմը:

private List<Point> GeneratePoints(int S, float roughness, int range)
{
List<Point> pts = new List<Point>();
pts.Insert(0, new Point(800, 200));
pts.Insert(0, new Point(0, 200));
int segments = 1;
Random rand = new Random();

            while (segments < S)
{
for (int i = 0; i < segments; i++)
pts.Insert(1 + 2 * i, new Point((pts[2*i].X + pts[2*i + 1].X) / 2, (pts[2*i].Y + pts[2*i + 1].Y) / 2 + rand.Next(-range, range)));

                segments *= 2;
range = (int)((float)range * roughness);
}

return pts;
}

Կարող եք բեռնել և փորձարկել նաև Midpoint Displacement ծրագիրը: Այն թույլ է տալիս աշխատանքի ընթացքում կարգավորել սեգմենտնետի քանակը, հեռահարությունն ու խորդուբորդության գործակիցը: Այն աշխատացնելու համար անհրաժեշտ է ունենալ .Net Framework Redistributable 4.0-ն:

midpoint

Եթե ցանկանում եք ստանալ այս ծրագրի կոդը, գրեք մեկնաբանություններում կամ էլեկտրոնային փոստով:
Հաջորդ անգամ (հաջորդ սերիայում Open-mouthed smile) կդիտարկենք նույն խնդիրը լուծող մեկ այլ մեթոդ՝ Pimsleur (չգիտեմ հայերեն էս ոնց են արտասանում…) Noise ֆունկցիայի վրա հիմնված: Կդիտարկենք նաև տարածված ծրագրերում և խաղերում այս մեթոդների կիրառությունների օրինակներ:

Թողնել մեկնաբանություն

Filed under Ծրագրավորում

Շաբաթվա կայքը՝ Абсурдопедия

Բոլորս գիտենք հանրահայտ Wikipedia-ն՝ ազատ զարգացող հանրագիտարանը: Չէ, այսօր մեր «շաբաթվա կայքը» խորագրում չենք անրադառնալու դրան: Փոխարենը առաջարկում եմ այցելել Абсурдопедия-ն: Այսքան ծիծաղելի աբսուրդ դեռևս տեսած և/կամ կարդացած չեք լինի… Կան հոդվածներ ամենազանազան թեմաներից (հոդվածների թիվը արդեն գերազանցում է 3000-ը): Ինչպես և Wikipedia-ում, այնպես էլ այստեղ օգտվողները կարող են ուղղումներ և ավելացումներ կատարել հոդվածներում կամ առաջարկել նորերը:
Ավելացնելու բան չունեմ, փոխարենը որոշ մեջբերումներ կանեմ կայքից:

И сказал Тесла: да будет свет. И стал свет. И увидел Тесла свет, что он хорош. И отделил Тесла провод от розетки.

~ Книга Бытия Электромагнетизма про Николу Теслу

Попробовал бы смастерить хоть половину того, что набросал на бумаге!

~ Леонардо да Винчи про Николу Теслу в своих мемуарах

Википедия  «условно-свободная условно-многоязычная условно-энциклопедия, в которой один чёрт может что-то изменять или дополнять», есть весьма неудачная пародия на Абсурдопедию (хотя и не настолько неудачная, как все остальные пародии), удивительно часто тырящая статьи и дизайн Абсурдопедии. Кичится своей бесплатностью, однако испытывает хроническую потребность в выклянчивании денег с посетителей. Сторонников Википедии называют википедиками. Тем не менее, Википедия утверждает обратное (Абсурдопедия утверждает обратное обратному, утверждённому Википедией; но поскольку Абсурдопедия не утверждает обратного этому обратному, она имеет полное право утверждать, что Википедия считает себя утверждающей обратное обратному обратного от обратного, что и утверждает Абсурдопедия; строго говоря, Википедисты знают, что Абсурдопедия знает, что они не знают, что она знает, что они знают это, так как не зная это, Абсурдопедия не знала бы того, что Википедия знает, что она ничего не знает)…

Коты в науке и технике

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

 

image

 

Так выглядит процесс котировки национальных валют.

Согласно апокрифической легенде, именно кот (а не яблоко), свалившийся с дерева на голову сэру Исааку Ньютону, спровоцировал открытие закона всемирного тяготения. Галилей, сбрасывая котов с Пизанской башни, впервые обнаружил удивительный факт, что они всегда приземляются на лапы.

Слово «кот» единственное в русском языке слово, количество слогов в котором определяется рекурсивной формулой: количество слогов в слове «кот» это количество слогов в слове «лапа» минус количество слогов в слове «кот».

1 մեկնաբանություն

Filed under Հումոր, Շաբաթվա կայքը

Google-ի վերջին «ցնցումները»

Շատերդ երևի նկատած կլինեք, որ Google-ը վերջերս փոխել է իր գրեթե բոլոր ծառայությունների վեբկայքերի միջերեսը:
Որոնման համակարգի միջերեսի փոփոխությունները առավել վառ երևում են անգլալեզու Google.com էջի վրա: Հաճելի է նկատել, որ այժմ կարելի է նախկին սպիտակ հետին պլանը փոխարինել Picasa ծառայությունում տեղադրված ցանկացած բաց նկարի հետ: Capture
Փոփոխության են ենթարկվել նաև որոնման կոճակները և արդյունքների էջում տեղադրված փոքրիկ իկոնները: Ավելացվել է something different (որևէ այլ բան) վերնագրով հղումների խումբը (ձախ վահանակի ներքևի մասում): Google-ը ներկայացրել է նաև իր Facebook-ի Like կոճակի իր այլընտրանքը՝ +1 կոճակը:
Capture2
Ձևափոխումներից անմասն չի մնացել նաև Gmail-ը, որոնման միջերեսի հետ համատեղելի միջերեսով theme հայտնվել է նաև էլեկտրոնային փոստի ծառայության կայքում:
Capture3
Եվ սա դեռ ամենացնցող նորությունը չէ: Google-ը սահմանափակ թեստավորման համար հրապարակել է իր սոցիալական ծառայությունների Project Google+ անունը կրող փաթեթը, որի մեջ մտնում են Circles, Instant Upload, Hangouts, Sparks, Huddle ծառայությունները:
Capture4
Circles-ը թույլ է տալիս խմբավորել ծանոթ մարդկանց հատուկ շրջանների մեջ, այնուհետև ավելի հարմար նրանց հետ շփվելու համար:
image
Hangouts-ը ներկայացնում է օնլայն վիդեո չաթ, որին միաժամանակ կարող են մասնակցել մինչև տաս օգտվող: Ընդ որում կենտրոնական, մեծ շրջանակում հայտնվում է այն մասնակցի պատկերը, ով տվյալ պահին առավել բարձր է խոսում:
image
Instant Upload ծառայությունը թույլ է տալիս միանգամից Android համակարգով աշխատող սարքով նկարած ֆոտոնկարների և տեսահոլովակների պատճեները վերբեռնել Picasa-ի սերվեր: Sparks-ը միջոցով կարելի է կառավարել օգտվողի հետաքրքությունների ցուցակը:
Huddle-ը խմբակային չաթ է, որին կարելի է մասնակցել ցանկացած համատեղելի սարքով (դեռևս միայն Android պլատֆորմով աշխատող սարքերով):
imageGoogle+ Project-ը դեռևս հասանելի է հատուկ հրավերներով, բայց շատ շուտով կհանձնվի «գլոբալ շահագործման»:
Ինչպես ասում են, ձուկը ծովում,
բայց ընկերությունն արդեն հայտարարել է, որ պլանավորում է ընդլայնել առաջարկվող ծառայությունների ցանկը:

Մեկնաբանություններ (2)

Filed under IT Նորություններ

Շաբաթվա խնդիրը 11: Օրացույց

Եվս մեկ խնդիր, որը իմ կարծիքով բոլորն էլ ի վերջո կլուծեն: Ես առաջարկում լուծել այն (կամ փորձել լուծել) մեկ րոպեում: Հաջողություն!
Մի գործարար իր գրասեղանի վրա ունի 2 խորանարդիկ, որոնց նիստերին թվանշաններ են գրված: Նա ամեն օր խորանարդիկները դնում է այնպես, որ ստացված թիվը լինի այդ օրվա ամսաթիվը: Ի՞նչ թվանշաններ պետք է գրված լինեն խորանարդիկների նիստերին, որպեսզի դա հնարավոր լինի:

Ընդ որում, դուք չեք կարող օրինակ՝ 7-րդ ամսաթիվը ներկայացնել մի խորանարդիկի միջոցով, պետք է ներկայացնեք 2 խորանարդիկի միջոցով`«07»:

Ժամանակը գնաց! 😛

Մեկնաբանություններ (17)

Filed under Մտածենք...