Tag Archives: source

Սկսվում է Google Summer of Code 2012-ը

Հարգելի coder-ներ/ծրագրորդներ/ծրագրավորողներ/software_engineer-ներ: Մեկնարկում է Google Summer of Code 2012-ը: Նրանց համար, ովքեր տեղյաք չեն այս ամենամյա հիանալի իրադարձության մասին, մի փոքր ծանուցում.

Google Summer of Code-ը կրթաթոշակներ է տրամադրում երիտասարդներին, ազատ կոդով պրոյեկտների համար ամառվա ընթացքում աշխատելու դիմաց: Շատ հայտնի ազատ կոդով ծրագրային ապահովում մշակող ընկերություններ (Red Hat, Fedora, GNU և այլն) հրապարակում են իրենց նախագծերը, որից հետո ընդունվում են դիմումներ ուսանողների կողմից, և ընդունված դիմումների տեր ուսանողները ողջ ամառվա ընթացքում աշխատում են նախագծերի հետ կապված առաջադրանքների վրա: Իրենց գործը հաջողությամբ ավարտած ուսանողները Google-ի կողմից արժանանում են $5000 արժողությամբ չեկի:

Google Summer of Code 2012-ի ժամանակացույցը
Փետրվարի 4 — GSoC-ի մեկնարկ
Մարտի 9 — Մարտի 12 — Հետաքրքրված կազմակերպությունները առաջարկում են իրենց նախագծերը
Մարտի 16 — Կազմակերպությունների ցուցակը հրապարակվում է GSoC-ի պաշտոնական կայքում
Մարտի 17 — Մարտի 25 — Հետաքրքրված ուսանողները քննարկում են նախագծերը կազմակերպությունների հետ
Մարտի 26 — Ապրիլի 6 — Ընդունվում են ուսանողների դիմումները
Ապրիլի 23 — Ուսանողների դիմումների ընդունում/մերժում
Մայիսի 21 — Օգոստոսի 27 — Ուսանողներն աշխատում են իրենց նախագծերի վրա
Օգոստոսի 27 — Արդյունքների ամփոփում

Ծրագրին ավելի մանրամասն ծանոթանալու և ավելի մանրամասն ժամանակացույցը ստանալու համար այցելեք ծրագրի պաշտոնական կայքը: Գրանցվե՛ք, մասնակցե՛ք, ձեռք բերեք ոլորտի առաջատարների հետ շփման փորձ, հաստատե՛ք գործնական կապեր… Բոլոր դիմողներին մաղթում եմ հաջողություն:

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

Filed under Համալսարանական, Իրադարձություններ

Հետաքրքիր Ծրագրեր – 2

Շարունակում ենք այս խորագրի ներքո ներկայացնել ձեզ օգտակար, անվճար ծրագրեր:

EAN-13 Lookup 2.13 Beta

Դժվար թե ապրանքագետ չհանդիսացող մարդը կարողանա գլուխ հանել միլիոնավոր ապրանքատեսակների վրա տպագրված շտրիխ-կոդերից: Իրականում, դրանք շատ բան կարող են պատմել ապրանքի տեսակի և արտադրման երկրի մասին: Ձեռքի տակ ունենալով Windows Mobile համակարգով աշխատող սմարթֆոն, այլևս չեք վախենա սուպերմարկետում անորակ ապրանք գնելուց: EAN-13 Lookup-ը կլուսանկարի շտրիխ կոդը և կբեռնի ապրանքին վերաբերող անհրաժեշտ ինֆորմացիան, ապրանքը գնողներից ստացված բողոքները (եթե այդպիսիք կան) և այլն…
Ապահովվող ՕՀ-եր՝ Windows Mobile 5 կամ ավելի նոր
Հասցեն՝ http://4pda.ru/f orum/index.php?showtopiс=128248

IZArc 4.0

Շատ լավ անվճար արխիվատոր: WinRar-ին արժանի փոխարինող: Ինտեգրացվում է Windows Explorer-ի հետ, հասկանում է գրեթե ցանկացած արխիվային ֆորմատ: Օժտված է մի շարք լրացուցիչ ֆունկցիաներով, այդ թվում՝ AES ալգորիթմով արխիվի կոդավորում (encription), ֆայլի ամբողջականության ստուգում և այլն: Միակ թերությունը թերևս կարելի է համարել մի փոքր անհարմար միջերեսը…
Ապահովվող ՕՀ-եր՝ Windows 2000/XP/Vista/7
Պաշտոնական կայքը՝ http://izarc.org

7-PDF Maker 1.0.1

Հիանալի PDF փոխակերպիչ (converter): Մուտքում ստանում է .doc, .docx, .xls, .html, .rtf, .odf, .txt և մի շարք այլ ֆորմատների տեքստային և գրաֆիկական ֆայլեր և վերածում է դրանք .pdf-ի: Ի տարբերություն նմանատիպ ծրագրերի մեծամասնությանը, 7-PDF Maker-ը վիրտուլ պրինտերով չի «տպում» ինֆորմացիան PDF ֆայլի մեջ (չի վերածում ֆայլի պարունակությունը ռաստերային էջերի), այլ ստեղծում է .pdf փաստաթղթեր, պահպանելով մուտքային ֆայլում առկա վեկտորական ինֆորմացիան:
Ապահովվող ՕՀ-եր՝ Windows XP/Vista/7
Պաշտոնական կայքը՝ http://7-pdf.de

Notepad++ 5.7
Windows-ի ստանդարտ Notepad-ը մնում է նույնը ստեղծման օրվանից ի վեր: Առաջարկվող բաց ծրագրային կոդով ծրագիրը հանդիասնում է հիանալի փոխարինում հին ու բարի սահմանափակ հնարավորություններով օժտված ու որոշ դեպքերում անհարմար Notepad-ին: Բացի նրանից, որ այն հասկանում է տեքստի կոդավորման բոլոր ժամանակակից սխեմաները (հիանալի աշխատում է Unicode-ի հետ), այն կարող է նաև գունավորել գրեթե բոլոր ծրագրային լեզուների սինտակսիսները, այսպիսով դարձնելով ծրագրային կոդը ընթեռնելի: Եթե գումարենք այս ամենին շատ ճկուն, կարգավորվող միջերեսը, ծրագրային հավելումներ (plugins) կցելու հնարավորոթյունը, ապա հասկանալի է, որ ծրագիրը պետք է տեղադրված լինի յուրաքանչյուր ծրագրավորողի (և ոչ միայն) համակարգչին:
Ապահովվող ՕՀ-եր՝ Windows 2000/XP/Vista/7, Linux (.tar, .gz)
Պաշտոնական կայքը՝ http://notepad-plus-plus.org

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

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

Օձ. Net – Մաս 1

Արդեն 2 շաբաթ է, ինչ ուսումնասիրում եմ Microsoft .Net պլատֆորման՝ մասնավորապես Windows միջավայրում կլիենտային ծրագրերի ստեղծման Windows Forms տեխնոլոգիան: Ուզում եմ կիսվել իմ ձեռք բերած փորձով: Բլոգում կթողարկեմ Օձ .Net վերնագրով հոդվածներ: Մեր հեռահար նպատակն է C# լեզվով գրել հին ու բարի Snakes խաղի ժամանակակից տարբերակը: Ասեմ միանգամից, որ մեր նախագծից գերժամանակակից գրաֆիկա ու շեյդերների տեղատարափ սպասող ընթերցողը կարող է միանգամից թողնել ընթերցումը և ինտերնետում կամ որևէ այլ տեղ որոնել DirectX SDK-ի կամ նման այլ գրաֆիկական գրադարանի մասին հոդվածներ: Ասեմ, որ հոդվածիս կկցեմ նախագծի ամբողջ կոդը: Ընթացքում հնարավորինս պարզ ձևով կբացատրեմ կոդի բացատրություն պահանջող կտորները: Կշոշափվեն նաև C#-ի և .Net-ի հետ կապված հարցեր: Ծրագիրը թարգմանելու համար ձեզ պետք կգա C#-ի թարգմանիչ, որը անվճար կարելի է բեռնել Microsoft-ի կայքից, Ցանկալի է ունենալ ժամանակակից IDE (Integrated Development Environment), ինչպիսին է օրինակ Microsoft Visual Studio .Net-ը: Ծրագիրը աշխատացնելու համար անհրաժեշտ է .Net Framework 2.0 կամ ավելի նոր տարբերակը: Նախաբանն այսքանն էր, իսկ այժմ անցնենք գործին:

Մի քանի խոսք նախագծի մասին
Դե բնական է, խաղի «վիզուալ միջուկը» գրելու համար պետք է օգտվել ինչ-որ գրաֆիկական API-ից: Հատուկ .Net պլատֆորմայի համար նախագծվել է երկչափ վեկտորական գրաֆիկայի ու տեքստի արտածման GDI+ API-ն, որն իրենից ներկայացնում է հին Windows API-ի GDI-ի (Graphics Device Interface) համալրված ու կատարելագործված տեսակը: Ես նախատեսել եմ, որ ծրագրում ոչ մի ռաստերային ռեսուրսներ (bitmap նկարներ և այլն) չօգտագործեմ (մի տեսակ հաճելի է զուտ վեկտորային պատկերը): Առաջին մասում մենք կհասցնենք ստեղծել Windows-ի Form (հայերեն լեզվով ասած՝ պատուհան), «պատկերենք» նրա մեջ 20×20 չափերով տախտակ ու նկարենք ինչ որ դիրքում մեր օձին: Պատկերենք բառը այստեղ վերցված է փակագծերի մեջ, որովհետև էֆեկտիվության նկատառումներով տախտակի վանդակներ, որպես այդպիսիք չենք նկարելու: Փոխարենը ժամանակավորապես (պրոֆիլակտիկ նպատակներով) ցանց կնկարենք պատուհանի մեջ, որպեսզի տեսնենք, ճիշտ ենք տեղադրում օձին, թե ոչ:

Ստորև բերվում է ծրագրի կոդը:

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
class Snakes : Form
{
static public int direction = 0, ifieldx, ifieldy,
fieldsize, snakelen = 5;
public int snposx = 7, snposy = 8;
private Rectangle[] Snake;
public static void Main()
{
Application.Run(new Snakes());
}
public Snakes()
{
Text = “Օձ .Net”;
Width = 400;
Height = 400;
BackColor = Color.ForestGreen;
ResizeRedraw = true;
fieldsize = 20;
ifieldx = this.ClientRectangle.Width / fieldsize;
ifieldy = this.ClientRectangle.Height / fieldsize;
Snake = new Rectangle[]{
new Rectangle((snposx-4)%fieldsize*ifieldx, snposy%fieldsize*ifieldy, ifieldx, ifieldy),
new Rectangle((snposx-3)*ifieldx, snposy*ifieldy, ifieldx, ifieldy),
new Rectangle((snposx-2)*ifieldx, snposy*ifieldy, ifieldx, ifieldy),
new Rectangle((snposx-1)*ifieldx, snposy*ifieldy, ifieldx, ifieldy),
new Rectangle(snposx*ifieldx, snposy*ifieldy, ifieldx, ifieldy),
new Rectangle(0, 0, 0, 0),
new Rectangle(0, 0, 0, 0),
new Rectangle(0, 0, 0, 0)
};
}

protected override void OnPaint(PaintEventArgs e)
{
Graphics gfx = e.Graphics;
Pen p = new Pen(Color.Black, 0);
//gfx.SmoothingMode = SmoothingMode.HighQuality;
//gfx.PixelOffsetMode = PixelOffsetMode.HighQuality;
Brush snakeb = Brushes.Indigo;
int i = 0;
for (i = 0; i < fieldsize*ifieldx; i += ifieldx)
{
gfx.DrawLine(p, new Point(i, 0), new Point(i, ifieldy * fieldsize));
}
for (i = 0; i < fieldsize*ifieldy; i += ifieldy)
{
gfx.DrawLine(p, new Point(0, i), new Point(ifieldx * fieldsize, i));
}
gfx.FillRectangles(snakeb, Snake);
}
}

Մեր Snakes դասը ժառանգած է System.Windows.Forms.Form դասից: Static Public տեսակի սահմանված են direction, ifieldx, ifieldy, snakelen փոփոխականներ: Առաջինը հետագայում ցույց է տալու օձի շարժման ուղղությունը, երկրորդն ու երրորդը՝ երևակայական տախտակի վանդակի չափսերը, վերժինը՝ ինչպես կարելի է կռահել անունից, օձի երկարությունն է և սկսբնարժեքավորած է 5: snposx և snposy փոփոխականներում պահված է օձի գլխի տվյալ պահի կոորդինատները տախտակի վրա: Օձը իրենից ներկայացնում է Rectangle դասի մասիվ:
С#-ում static մոդիֆիկատորը նշանակում է, որ static հայտարարված փոփոխականը/ֆունկցիան/օբյեկտը/և այլն հասանելի է առանց այդ դասի նմուշ (instance) ստեղծելու: Այլ կերպ ասած, դասի static անդամները ստեղծվում են ծրագրի աշխատանքի սկսվելուց: Ահա թե ինչու Main ֆունկցիան միշտ հայտարարվում է static: Application.Run(new Snakes()) դիմումով Snakes-ի կառուցիչով ստեղծվում է Form և այն բերվում է էկրան: Ավելի ծավալուն ու հետաքրքիր է Snakes-ի կառուցիչը: Այստեղ արժեքավորվում են Form դասի որոշ Property-ները: Property-ն նորամուծություն է C#-ում և ինչ-որ միջին տեղ է զբաղեցնում ֆունկցիայի և անդամ-փոփոխականի միջև: Նրանում կարելի է ստանդարտ set և get ֆունկցիաներ սահմանել, որոնց միջոցով կարելի է կատարել մուտքագրվող տվյալների ստուգում: Form.Text-ում պահվում է Form-ի վերնագիրը (caption),  Form.Width ու Form.Height-ը Form-ի (ուշադրությու՛ն Form-ի, և ոչ թե դրա Client Area-ի): Form.ResizeRedraw-ի true լինելու դեպքում պատուհանի չափերը փոխելուց կանչվում է OnPaint ֆունկցիան (այն կքննարկենք մի փոքր ուշ):  Ի միջի այլոց նշեմ, որ C#-ը լիովին ապահովում է Unicode-ի նորմալ արտածումը, այնպես որ առանց խուսափելու կարելի է հայերեն, ռուսերեն և ցանկացած լեզվով տեքստ օգտագործել որպես սիմվոլային տողեր, ինչպես նաև որպես իդենտիֆիկատորներ .CS ֆայլերում: Այնուհետև մեր դասի կառուցիչում արժեքներ ենք վերագրում fieldsize-ին: Հաշվի առնելով դրա արժեքը, հաշվում ենք ifieldx, ifieldy-ը: Արժեքներ ենք վերագրում նաև Snake-ի էլեմենտներին: Ուշադրություն դարձրեք օրինակ
(snposx — 4) % fieldsize * ifieldx  արտահայտությանը: Այն ավելի մանրամասն կքննարկենք հաջորդ մասերում, երբ կփորձենք շարժել մեր օձին: Սա թույլ չի տալիս, որ օձը դուրս գա մեր ցանցից: Երբ, օրինակ, այն դուրս է գալիս ցանցի աջ կողմից, դրա գլուխը հայտնվում է ցանցի ձախ կողմում: Մասիվի վերջին երեք էլեմենտները պահեստային կարգավիճակում են: Մեր օձը խաղի ընթացքում, ըստ մտահղության, բոյովանալու է J:
Եվ վերջապես քննարկենք OnPaint գերբեռնված ֆունկցիան: Այն ամենը, ինչ GDI+-ի միջոցով նկարելու ենք էկրանին, նկարելու ենք այստեղ: Գրաֆիկական սարքին դիմելու համար ստեղծում ենք Graphics դասի օբյեկտ, որը փոխանցվում է OnPaint ֆունկցիային արգումենտի տեսքով: Սրան հաջորդող հայտարարված սև Pen-ով գծելու ենք ցանցը: snakeb Brush-ով  ներկելու ենք օձի մարմինը կազվող Rectangle-ները: GDI+-ում կա ստանդարտ, նախապես որոշված 141 ARGB գույն (բացի սիստեմային գույներից), դրանք բոլորը հասանելի են որպես Color դասի Property-ներ: Մեկնաբանությունների մեջ առնված երկու տողերը միացնում են AntiAliasing-ը: Պիքսելների մշակման այս մեթոդը լայնորեն կիրառվում է վեկտորական գրաֆիկայում և midtone-ների միջոցով ավելի հարթ ու հղկված է դարձնում վեկտորական պատկերների եզրերը: Եթե Ձեր համակարգիչը բավականին հզոր է, կարող ես միացնել AntiAliasing-ը և տեսնել տարբերությունը:
Հաջորդող 2 for ցիկլերում նկարվում են ցանցի նախ ուղղահայաց, հետո հորիզոնական գծերը: Ուշադրություն դարձրեք, որ GDI+-ում գիծ գծելու համար անհրաժեշտ է միայն մի ֆունկցիայի դիմում: Վերջին մեթոդը ներկում է Snake մասիվի տարրեր հանդիսացող Rectangle-ները, դրանով տեսանելի դարձնելով մեր օձը: Արդյունքում պետք է ստանաք նման մի բան.

Համոզվելպւց հետո, որ օձը կանգնած է ճիշտ տեղում, ունի ճիշտ գույնը և երկարությունը, կարելի է մաքրել ցանցը պատկերող կոդը, քանի որ այն այլևս մեզ պետք չի գա:
Շարունակելի…

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

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