Tag Archives: փորձ

Ասք Բաշով Սոքեթ Ծրագրաւորման Մասին

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

Սերթում տենց չի, չգիտեմ լաւ է թէ չէ, բայց միայն ես եմ տեխնիկական գործեր անում (իրար վրայ երկու հոգի ենք թիմում), ու ամէն ինչ պէտք է ես անեմ։

չգիտեմ ոնց եղաւ, բայց ինձ պէտք էր, որ socket ծրագրաւորում անեմ, ինչ որ ռաութերների հետ շփուելու, ու հասկանալու թէ ոնց ա վիճակը Հայաստանում (վերջում պարզուեց որ վատ ա)։

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

Ինչեւէ, netcat-ը ինձ հերիքում էր, Պասկալն էլ չասեմ։ բայց ես մի քանի սարք ունեմ, որոնց վրայ չկայ netcat, իսկ ես ուզում էի ծրագիրս ամէն տեղ աշխատի, բա ի՞նչ անեմ։
(* չնայած ամէն տեղ voc ունեմ, բայց աւաղ, այդքան լաւ չեմ կարողանում դեռ ծրագրաւորել Օբերոնով, որ մի անգամից պէտք եղածն անեմ *)

օրերն անցան, խնդիրը մնաց։

Մի օր աւտօբուսում նստած կպել էի սերւերիս ու մանուալներ էի կարդում, ինչ որ բաշ սկրիպտ էի գրում, որ խնդիր կար, մէկ էլ սենց հաւէս բան տեսայ՝
2016-04-27_13:36:21

առաջին պահին ուրախացայ, երկրորդ պահին, ըստ սովորութեան, որոշեցի սորսերը կարդալ ։Ճ ահա եւ գտայ՝ redir.c

հաւէ՜ս, ես ամէն տեղ բաշ ունեմ, նոյնիսկ այնտեղ որ չպէտք է լինի, քանի որ ash-ով է գալիս ։Ճ

լաւ, հիմա փորձենք, պայմանս շատ պարզ էր, մի տեղից պէտք է լսեմ, միւս տեղից պէտք է բաշով ուղարկեմ եւ ստանամ (։

ահա եւ վիդեոն՝

ու տենց (։

Ասք գուգլ հենգաութի, ջաբերի եւ ապակենտրոնացման մասին

Ողջոյն, նախ պատմեմ թէ այս գրառումը ինչից սկսեց։

Ուրեմն ընկերներիցս մէկի հետ ծանօթացել եմ Թվիթթերով, որտեղ անձնական նամակ ուղարկելը դարդ է, 140 տառ միայն։ ապա մենք սկսեցինք Gtalkով շփուել, ուրեմն ինքը ունի Ջմեյլ հաշիւ, իսկ ես ունեմ Ջաբեր հաշիւ, ու պարզապէս իրար ադդ անելով, միասին շփւում էինք, ես օգտագործում էի Փիդջին, ինքը՝ դէ Անդրոիդ հեռախօսի Gtalk ծրագիրը։

ու ՀԱՆԿԱՐԾԱԿԻ չէինք կարողանում իրար նամակ ուղարկել։ փաստօրէն ինքը առել էր նոր հեռախօս, նոր Անդրոիդով, որի Gtalk ծրագրին փոխարինում է Google+ Hangouts ծրագիրը, եւ այդ ծրագրի մէջ ինքը տեսնում էր ՄԻԱՅՆ Ջուջուլ աքքաունթ ունեցողներին, gmail ունեցողներին։

Դա ինձ համար գլխացաւ էր, ես պէտք է մտնէի իմ հին հաշիւ, gmailի կողմից, որ կարողանայի գրել, եթէ ինքը ինձ բան գրէր եւ ես օֆլայն լինէի այդ պահին, յետոյ չէի կարող տեսնել։ մի խօսքով՝ դարդ են սրանք լրիւ ։Ճ

Այսօր որոշեցինք միասին հասկանալ թէ այս ամէն ինչը ինչպէս ուղղել։ գնացինք։

Նախ, այս փորձերը անելու համար ես օգտագործում եմ երկու հաշիւ, մէկը ազատ ջաբեր հաշիւ է իմ հանգոյցում՝ xmpp@chat.pingvinashen.am, իսկ միւսը իմ հին Ջմեյլն է՝ marvel.vartanian@gmail.com, առաջին մեյլս ։Ճ

ուրեմն Փիդջինով (Ջաբերով) որոշեցի աւելացնել Ջմեյլին, ահա ինչպէս նկարում.

1

իսկ Ջմեյլով, դէ մտել էի ջմեյլ.քոմ, ահա թէ ինչ տեսայ.

2

Լաւ, բնականաբար սեղմեցի “Yes” եւ ինքս ինձ տեսայ.

3

Դիսքլեյմր. ներքեւում կան շիզոֆրենիկ նամակագրութիւններ, թոյլ սրտով մարդկանց մուտքը արգելուած է ։Ճ

ու որոշեցի ինքս ինձ հետ շփուել.

4

Լաւ, ինձ հետ ամէն ինչ նորմալ է, իսկ ինչո՞ւ է խնդիր լինում Հանգաութս ունեցողներո հետ։ որոշեցի դրա համար օգտագործեմ Հանգաութսը. ահա

5

Լաւ, նախ անկապ ինթերֆեյս ունի էս հանգաութսը, յետոյ, մեր համար կարեւոր մասը՝ ՉԻ ԼԻՆՈՒՄ !!!! >_<

Ոչ, չենք կարող հանգաութսում տեսնել XMPP/Jabber-ով եկած նամակները։ այսինքն server-to-server աշխատում է ամէն բան, ուղղակի Հանգաութսը այն ցոյց չի տալիս, ահա եւ նամակներ եմ ուղարկում ինքս ինձ.

6

չկայ xmpp-ի անունը, աւելին՝ ոչ էլ հին նամակները, ահա.

7

Բայց սա խնդիր չէ, խօսքս վեբի մասին է, վեբում կարող ենք անել այսպէս.

8

Եւ սեղմում ենք revert to old chat. ու հետ ենք անցնում հին չաթի համակարգին, որը թոյլ է տալիս ոչ-գուգլ ընկերներից նամակ ստանալ։

Իսկ եթէ դուք՝ Գուլգ օգտագործողներդ էք ուզում ոչ-գոգլ օգտագործողին աւելացնել, պարզապէս գրում էք անունը, եւ՝ Invite to chat. այսպէս՝

9_2

Եւ շա՜տ հանգիստ գալիս է հրաւէրը ։Ճ

Screenshot from 2015-04-06 16:03:22

ու կարողանում ենք ազատ շփուել.

10

Սա Վեբի մասն էր, լաւ, բա հեռախօսնե՞րը։

Փաստօրէն, նոյն բանը պատահում է ՄԻԱՅՆ եթէ մտնում էք Hangouts ծրագրից, անկախ նրանից Անդրոիդ է, իՕՍ, վեբ, թէ Գոգլ Քրոմի յաւելուած։ Այդ խնդիրը լուծելու համար պէտք է պարզապէս օգտագործել ցանկացած ծրագիր, բացի Հենգաութսից։

Անդրոիդի համար, ասենք IM+, Xabber, Conversations եւ այլն։ iOSի համար՝ ման եկէք, չգիտեմ ։Պ

Առհասարակ խորհուրդ կը տայի ChatSecure ծրագիրը։ որը նաեւ նամակները (հնարաւորութեան դէպքում) գաղտնագրում է OTR-ով, ոչ մէկ բացի ուղարկողից եւ ստացողից չեն կարող տեսնել նամակները։

ընկերներս բողոքում էին, որ ոչ մէկ սոցցանցում չկամ (հա բա ինչի՞ լինեմ), ահա, կարող էք ինձ գրել Ջաբերով. մտնում էք ձեր մեյլը, եւ ադդ էք անում antranigv@spyurk.am-ին, ինչպէս որ նշուած էր նկարում ։Պ

NOTE: Այս գրառումը հնարաւոր է թէ ժամանակի ընթացքին փոփոխուի, սակայն փոփոխութիւնները անպայման կը նշեմ։

Օբերոն եւ Փայթն

Օրեր առաջ սա էի նայում

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

ուրեմն սա կոդն է.

import sys

def fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

print fibonacci(int(sys.argv[1]))

օրինակ եթէ հրամայեմ

$ python2.7 fibonacci_recursive.py 10
55

ու գնալով բարձրանում էի, բայց զգացի թէ գնալով դանդաղանում է պատասխան տալը։ հմմ։

եթէ անենք
$ time python2.7 fibonacci_recursive.py 40

ստանում ենք

102334155

real    1m47.263s
user    1m47.104s
sys 0m0.048s

այսինքն 40-րդ թիւը ցոյց տալու համար, փայթընին պէտք է 1 րոպէ 47 վայրկեան։ լաւ։ Լիլիթը ինձ ասեց, որ բացի ռեկուրսիւ ձեւից, կայ նաեւ Մաթրիքսի Ֆորմը։
որոշեցի դա էլ փորձել

հիմայ միւսը.

import sys

def fib(n):
    a, b = 0, 1
    for i in range(n):
        a, b = b, a+b
    return a+b

print fib(int(sys.argv[1]))

հիմայ սա աշխատեցնենք.
$ time python2.7 fibonacci_matrix.py 38
ստանում ենք.

102334155

real    0m0.018s
user    0m0.016s
sys 0m0.000s

լաւ, ահագին արագ է արդէն, բնականաբար ։Ճ բայց…

Որոշեցի մի հատ էլ նոյնը անել Օբերոնով։

Մօտ մի ամբողջ օր չարչարուելուց յետոյ, ինձ ահագին օգնեցին IRCում, եւ վերջում նորայրը մի կարեւոր բան յուշեց, եւ վերջում ստացայ.

MODULE fibonacci;

IMPORT ulmIO;

VAR
n : INTEGER;

PROCEDURE fib* (n : INTEGER) : INTEGER;
    VAR result : INTEGER;

BEGIN
    IF n = 0 THEN
        result := 0
    ELSIF n = 1 THEN
        result:= 1
    ELSE
        result := fib(n-1) + fib(n-2)
    END;
RETURN result
END fib;

BEGIN

ulmIO.WriteInt(fib(40));
ulmIO.WriteLn;

END fibonacci.

օքեյ, քոմփայլ ենք անում (էս իմ ամենասիրած մասն ա, էն գունաւոր աութփութը որ անում ա վոկը ։Ճ)

$ /opt/voc/bin/voc -m fibonacci.Mod
GNU x86_64 target
not using voc.par file
fibonacci.Mod translating fibonacci main program 541

gcc fibonacci.c -o fibonacci -fPIC -g -I /opt/voc-1.0.1/src/lib/system/linux/gcc/x86_64 -I /opt/voc-1.0.1/lib/voc/obj -lVishapOberon -L. -L/opt/voc-1.0.1/lib

եւ ահա աշխատեցնում ենք (։


time ./fibonacci
102334155

real 0m1.957s
user 0m1.952s
sys 0m0.000s

ու տենց։

Անդրանիկ Վարդանեան

22/03/2015

սա ուղղակի Diasposter-ի առաջին թեսթն է։ դիասփոսթերը օգնում է, որ ՎորդՊրեսում արած գրառումը, ինքն իրեն գնայ եւ գրառուի Դիասփորայում, տեսնենք ինչպէս է աշխատում (։