Pereiti prie turinio

Privatus Poilsis Trakuose

Nariai
  • Pranešimai

    19
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

Privatus Poilsis Trakuose Pranešimai

  1. Šaunu. :) Tik uždaryk abu failus, kai jų nebenaudoji.

     

    File.open(..) { |f| doSomethingWithF } automatiškai uždarys failą, kai blokas baigs darbą. :)

    tiesa, failą uždaryti pamiršau. ačiū.

     

    Užduotis - perdaryti stringą į palindromą (žodis skaitomas iš abiejų pusių vienodai) su kaip imanoma minimum operaciju.

    Raidžių stumdyti negalima, galima jas tik mažinti, "b">"a", "l">"k".

     

    Sprendimas paprastas - http://pastebin.com/7pmP1C8w

    Bet užtad kiek klaidžiojimų buvo iki tol.

    Šis sprendimas leido prisiminti klasikinį pasaulio dėsningumą - genialumas paprastume.

  2. Sveiki,

    ar teisingai?:

    Ruby require - skirtas uzkrauti faila i koda, t.y. uzkrauti visa jo turini (ir methodus) toki kaip jis yra parasytas.

    Ruby include - uzkrauna i koda Module#name turini: kintamieji, constantos, metodai. Uzkrauti metodai is Module#name galimi naudoti instance levelyje.

    Extend - uzkrauna (praplecia) i koda Module#name turini: kintamieji, constantos, metodai. Uzkrauti metodai is Module#name galimi naudoti class levelyje.

  3. Perskaičiau literatūros su pvz ir vistiek plaukioju - nesuprantu Ruby namespacing. Gal galite ūkiškai paaškinti, kas tai per dalykas.

     

    Mano supratimu:

    Atsimenu vaizdingą paaiškinimą - mano sesuo turi toki pati varda, kaip ir mano zmonos sesuo. Pokalbyje as jas skiriu pridedamas ju pavardes prie vardo - tai ir yra namespacing Rubyje.

    Toliau - namespacing moduliuose: konstanta ar metodas su tokiu paciu pavadinimu saugomas skirtinguose moduliuose - t.y. module A ir module B turi po konstanta CONST. CONST modulyje A turi iskvietima A::CONST, B modulio konstanta - B::CONST - ar tai ir yra Ruby namespacing esme - suskirstyti metodus ir constantas po modulius (t.y. suskirstyti po "stalcius"), kad kodo vykdymo metu apsisaugoti nuo metodu, konstantu atsitiktinio perrasymo (override) ir name conflicto?

     

    A::B::C.method_name - ar siame junginyje :: (double colon) nurodo nestinima? T.y. A (class/module) yra hierarchijos virsuje, toliau B modulis yra nestintas i A ir C, kuris jau kviecia method_name yra nestintas i B?

     

    Aciu uz atsakymus is situs 2 klausimus.

  4. Class variable yra evil dalykas. Tavo atveju – nieko tokio, bet jei įsiveltų paveldėjimas, tai gali turėti problemų. Naudok class instance variables:

    class A
     @@y = 1
    
     def self.set_y=(value)
       @@y = value
     end
    
     def self.get_y
       @@y
     end
    end
    
    class B < A
    end
    

     

    p A.get_y #=> 1

    p B.get_y #=> 1

     

    B.set_y = 4

    p A.get_y #=> 4

    p B.get_y #=> 4

     

    Naudok class instance variables:

    class A
     @x = 1
    
     def self.set_x=(value)
       @x = value
     end
    
     def self.get_x
       @x
     end
    end
    
    class B < A
    end

     

    p A.get_x #=> 1

    p B.get_x #=> nil

     

    B.set_x = 12

    p A.get_x #=> 1

    p B.get_x #=> 12

  5. Sveiki,

    nauja uzduotis papildant Banking koda: kaip sukurto instance obj pavadinima sudeti i Array.

    Sis papildymas reikalingas tam, kad sukurciau loop uz class ribu ir jo pagalba isrinkciau is Array inst obj ir jo pagrindu kviesciau metodus ivairiems veiksmams atlikti - "purvinas" dabartinis Banking kodas - http://pastebin.com/TMedvQBH

    Bandymui sukuriau atskira koda - http://pastebin.com/pZscizDx #skaityti komentarus

     

    Ikelti i Array gaunasi tik visa inst obj su visais jo atributais per

    self

    Pagal

    class A

    koda (http://pastebin.com/pZscizDx) matosi sukurti 3 instance obj -

    user001, user002, user003

    Masyve butent ir noriu matyti ikeltus tik juos

    #=> [user001, user002, user003]

     

    Taip pat nesigauna i Hash ikelti inst obj pavadinima kaip KEY ir jo visus arba atitinkamus atributis kaip KEY hash (Hashas Hashe).

     

    Sprendimas vis sukasi apie self panaudojima su dar kazkokiu metodu kurio nezinau.

    Galite kas nukreipti tinkama linkme?

  6. Red: šiek tiek pakrapščiau, tai lyg ir veikia: http://pastebin.com/yEayVSa7

    http://pastebin.com/yEayVSa7

    eilutes - 5, 47, 48.

    Pakeitus var is @@ i @ - jo nemato

    def withdraw

    36 eilute.

     

    Dar keletas pastebėjimų: kodėl visi accountai su vienodu pinu? Ne geriau padaryti, kad konstruktorius priimtų pin'ą ir saugotų jį instance variable? Kodo daug keisti nereikėtų – gali iš pin metodo returninti @pin (nors, aš geriau kodą pakeisčiau).

    vienodi PIN, nes nezinau, kaip kiekvieno naujo accounto @pin padaryti private, todel sudejau viena PIN ir uzdariau ji i private def pin

     

    Taip pat, tavo duotame pavizdyje vietoje show_balance reikia kviesti display_balance. :-)

    aciu uz pastabas.

     

    Kita uzduotimi yra sukurti sitam class'ui metoda, kuris kurdamas new instance argumentus imtu per inputa. Bandziau daryti - uztamsinau tas vietas =begin =end komentarais, kol kas makalyne - neveikia kaip noriu.

  7. counter yra funkcijos lokalus kintamasis, tad natūralu, kad jis sukuriamas iš naujo kiekvieną kartą kviečiant metodą.

     

    Vietoj to padaryk instance variable @counter, jį nustatyk į 3 konstruktoriuje, o mažink tame metode :)

    Aciu. Supratau.

    Jei methodo viduje sukuri instance var (@) ar class var (@@) jis vistiek bus resetinamas kiekviena karta paleidziant

    def withdraw

    - apmaudi klaida nors visa class scope jau esu perskaites ir ispabandes.

    Sukuriau

    @@counter = 3

    konstruktoriuje, nes

    @counter = 3

    methodas

    withdraw 

    nemato

    @counter

    , taigi sukuriau class var

    @@counter

    . Viskas veikia. paleidziam koda komandas:

    user001 = Banking.new "bankininkas", 50_000
    user001.withdraw 12341, 345
    user001.withdraw 12341, 345
    user001.withdraw 12341, 345

    su galutiniu rez:

    Access denied: PIN provided is incorrect!
    You have 2 more attempts left.
    Access denied: PIN provided is incorrect!
    You have 1 more attempts left.
    Access denied: PIN provided is incorrect!
    No attempts left! Account blocked!

     

    P.S. detaliai paaiskinau su tikslu gal kas uzsikabins ir prisijungs su savo errorais is pradedanciu? Rubyistu

  8. Sveiki,

    esu naujas tiek Rubyje tiek paciame programavime.

    Ruby studijuoju savarankiskai teorija papildydamas google, stackoverflow.com ir pan.

     

    Pusiau savarankiskai (ideja nuziurejau is interneto) sukodavau simple virtualaus banko sistemele. Pateikiu zemiau:

     

    class Banking
     attr_reader :name, :balance, :time_creation, :date
     require 'date'
    
     def initialize (name, balance)
       @time_creation = "#{Time.now.hour}:#{Time.now.min}:#{Time.now.sec}"
       @date = Date.today
       @name = name
       @balance = balance
     end
    
     def display_user_info
       puts "Balance info:"
       puts "Account holder - #{@name.capitalize};"
       puts "Acount created - 1) date #{@date}; 2) time #{@time_creation};"
       puts "Balance - $#{@balance}."
     end
    
     def withdraw pin_provided, amount
       counter = 3
       @withdraw_amount = amount
    
       if pin_provided == pin
         if @balance >= amount
           @balance -= amount
           puts "Amount withdrawn - $#{amount}. Current balance - $#{@balance}."
         else
           insuficient_funds
         end
       else
         pin_error
         counter -= 1
         puts counter == 0 ? "No attempts left! Account blocked!" : "You have #{counter} more attempts left."
       end
    
       #redo if pin_provided != pin
     end
    
     def add_funds pin_provided, amount
       if pin_provided == pin
         @balance += amount
         puts "You have added $#{amount} to your account. Current balance - $#{@balance}."
       else
         pin_error
       end
     end
    
     def display_balance
       puts "Current balance - $#{@balance}"
     end
    
     private
    
     def pin
       @pin = 12345
     end
    
     def pin_error
       puts "Access denied: PIN provided is incorrect!"
     end
    
    
     def insuficient_funds
       puts "Insuficient funds. Your balance is $#{@balance}."
       puts "Your withdrawal - $#{@withdraw_amount} - exceeds your balance by $#{@balance - @withdraw_amount}."
     end
    end

     

    Kodo vykdymui sukuriau useri ir kelias komandas:

    user001 = Banking.new "bankininkas", 50_000
    user001.show_balance
    user001.withdraw 12341, 345
    user001.display_balance
    user001.add_funds 12345, 100_000
    user001.display_balance
    user001.withdraw 12322, 1000
    user001.withdraw 12343, 121

     

    Vargas man yra

    def withdraw

    funkcijoje.

    Noriu padaryti kad po kiekvieno nesekmingo PIN suvedimo kodas mazintu likusiu attemptu skaiciu, t.y.

    2, 1, 0.

    Tam sukuriau

    counter'

    i, kuris po kiekvieno blogo PIN mazintu

    counter 

    iki

    0

    . BET jis sumazina ji tik viena karta, antra karta iskvietus funkcija

    def withdraw

    counter'

    ir vel startuoja nuo

    3

    , bet ne nuo

    2

    . Kaip istaisyti sita klaida? Is anksto dekoju.

     

    P.S. bandziau iterpti

    redo 

    arba

    retry 

    - bet darau sintakses klaidas kazkur.

  9. Sveiki,

    ta pati bėda - blokuoja didžiąją dalį websaitų.

     

    Serverio saugumo sertifikatas panaikintas!

    Bandėte pasiekti svetainę „www.google.com“, bet sertifikatą, kurį pateikė serveris, anuliavo jo išdavėjas. Tai reiškia, kad saugos kredencialais, kuriuos pateikė serveris, visiškai negalima pasitikėti. Galbūt bendraujate su užpuoliku.

    Negalite tęsti, nes svetainės operatorius reikalauja, kad šio domeno saugumas būtų sustiprintas.

    Grįžti prie saugumo

    Padėkite man suprasti

    Jums prisijungus prie saugaus tinklalapio, svetainė jūsų naršyklei pateikia vadinamąjį „sertifikatą“, kad būtų patvirtinta jos tapatybė. Sertifikate yra tapatybės informacija, tokia kaip tinklalapio adresas, patvirtintas trečios šalies, kuria pasitiki jūsų kompiuteris. Patikrinus, ar sertifikate pateiktas adresas atitinka tinklalapio adresą, galima nustatyti, kad turite reikalų su saugiu tinklalapiu, o ne su trečiąja šalimi (pvz., į jūsų tinklą įsigavusiu kompiuterių piratu).

     

    Šiuo atveju naršyklei pateiktą sertifikatą anuliavo jo išdavėjas. Dažniausiai tai reiškia, kad pažeistas šio sertifikato vientisumas ir juo negalima pasitikėti.

     

     

    Laikas ir data kompe - einamoji.

     

    Prašau pagalbos sprendžiant problemą.

  10. Taip teks derinti su VMI ir su SODRA išimamos sumos dydį asmeninėms reikmėms, kuris negalės būti mažesnis kaip MMA.

    Kadangi tai yra 2014 m., todėl dar nėra atsakymo į tuos klausimus:

    ar čia bus privaloma derinti bet kokiu atveju - t.y. nenoriu imti, bet imti privalau.

    O kitas klausimas - jei neuždirbu net MMA, tai negi turėsiu mokėti nuo sumos, kurios negaliu išimti, nes neuždirbu tiek, jei bus tas atvejis, kad privalu derinti šią sumą bet kokiu atveju.

     

    Tuo klausimu reikia laukti išaiškinimų 2013 m. pabaigoje.

    O dėl UAB - ten gi galima dirbti ir 1 val per mėn. už minimalų valandinį atlygį. (5,15 Lt.) viską kitą išsiimti per dividentus, t.y. mokant 5 proc. pelno mokesčio + 20 proc. GPM.

    Sveiki,

    dėl paryškinto zyzuolės atsakymo.

     

    2013 m. pabaigoje, kas turės pateikti minėtus išaiškinimus?

    kur juos sekti?

    ar jie bus pateikti ruošiamoje 2014 m. mokesčių reformoje? nuo liepos 1 d.

     

    Iš anksto dėkingas už pagalbą.

  11. Dekingas. Tai jei teisingai supratau aš turėsiu moketi tik GPM?

     

    Kaip tik siandien skambinau del mokesciu.

     

    MB moka pelno mokesti. 5 arba 15%

    Ismokant pelna, kaip atlyginima - nuo sumos sumoki GPM (15%)+ PSD (9%)+ VSD (26.3%)

    Ismokant pelna, kaip divus - 20% nuo sumos ir viskas.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...