Įrašyta 2007-07-27, 22:34 | 2 Komentarai
Per pastarąsias 2 savaites nuveikiau gana nemažai darbų-darbelių, ir vakar suuploadinau viską į serverį. Dabar jau galiu drąsiai vadinti savo sistemą beta2 versija B) (tik ne 2.0 beta, aišku :))
Sąrašas:
- XML-RPC klientas lietblogs.lt pinginti (tik kažkaip nesu tikras ar greitu metu ten mane kas nors užregistruos :|)
- Šiek tiek keista db struktūra, dar šiek tiek keisiu ateity
- Trackback atskyrimas nuo komentarų
- Gan stipriai keista failų struktūrą, ko pasekoje padidėjo sistemos lankstumas (kad padidėjo, tai nereiškia kad dabar jis didelis :D)
- Dinaminė puslapio antraštė (SEO :D)
- Naujas last.fm widgetas (šitas jau prieš 2 sav. įkurdintas.)
- Atostogų laikmatis B)
- HTML tagų palaikymas komentaruose (kol kas tik anchor, jei kam trūksta - rašykit). Prašom naudotis ir negadinti layout'o ilgom nuorodom
- Administavimo skydas:
- Blogroll administravimas
- Nustatymų administravimas
- Dar patobulintas komentarų administravimas (kol kas trūksta tik redagavimo)
Na tam kartui tiek, rytoj keliaunu in Lietuvą (raportus stengsiuos pateikti :)), turbūt darbų sumažės iki 0, o po to tai nebent minimalūs keitimai bus (tipo nebus laiko [rolleyes]).
Gairės: Blog, Programavimas
Įrašyta 2007-07-15, 19:20 | 11 Komentarų
Vieni rašo apie savaitės statistiką ar tai populiariausius straipsnius, o aš nusprendžiau paraš¡yti ką nuveikiau š¡ią savaitę tobulindamas sistemą. Sąrašas nėra ilgas, pasiteisinti galiu tik nežinomo žodžiais:
Atsidarai editorių, pažvelgi į kodą, pagalvoji, o kaip zjbs būtų čia šibeitą susiprogramuot, uždarai editorių ir eini naršyt po interneto platybes.
Taigi:
- Akismet apsauga nuo spam'o
- Puslapis glaudinamas su gzip
- Neradus puslapio siunčiamas 404 header'is (čia daugiau robotukams skirta)
- XML Sitemap'as (irgi robotukams)
- Sutvarkyta duomenų bazės koduotė ir lygiuotė (dabar galiu ir phpmyadmin'u naudotis normaliai)
- Blogas pasiekiamas vieninteliu adresu - http://www.armandas.lt
- Perdarytas komentarų atvaizdavimas bei trynimas administravimo skyde
Neatliktų darbų nevardinsiu, nes nėra prasmės - jie nesuskaičiuojami. Jei kitą savaitę ką nors nuveiksiu - ataskaitą pateiksiu ;)
P.S. jaučiu, kad mane persekioja skaičius 6 (žr. komentarų skaičius). Kur tik pasisuku vis šešetas aplink :|. Gal atostogos padės :)
UPDATE: na va, buvau pamiršęs vieną darbą, tai dabar jau nebe 6 :D
Gairės: Blog, Programavimas
Įrašyta 2007-06-28, 10:42 | 0 Komentarų
Vakar apturėjau dar vieną kasdvisavaitine (ar išvis yra toks žodis?) tapusio Brighton Coding Dojo sesiją. Šios sesijos metu programavome Ruby kalba. Kūrėme Klondike Solitaire žaidimą, pagal CodeKata scenarijų. Visa tvarka kaip ir sesijos vykusios festivalio metu. Prie kompo vienu metu sėdi du programuotojai - "vairuotojas" ir "rašytojas", keičiamasi kas ~5 minutes (nors realiai gal ir po daugiau prasėdėjom :)).
Iš visos 8 žmonių grupės turėjome tik du programuojančius Ruby (tai tik dar kartą patvirtina teiginį, kad kodo rašymas yra lengviausia programavimo dalis ;)). Jie pradėjo sesiją ir kartu pravedė trumpą sintaksės pamokėlę. Pradžia buvo sunkiausia, vyko apmąstymai apie duomenų tipus, šiaip strategiją. Po kiek laiko viskas įsibėgėjo, pradėjom rašyti metodus, po to vienas žmogus pasiūlė susikurti testavimo klasę, kas padarė mūsų darbą lengvesnį ir įdomesnį.
Pirmiausia susikūrėm kortų kaladės klasę:
class Deck
attr_accessor :cards
#suitHash = { 0 => "Spades", 1 => "Hearts", 2 => "Diamonds", 3 => "Clubs"}
def initialize
@cards = []
@suits = [:spades, :hearts, :diamonds, :clubs]
puts @cards
@suits.each do |suit|
13.times do |number|
card = Card.new(number+1,suit)
@cards.push(card)
end
end
end
def to_s
@cards.to_s
end
def shuffle
#Exclamation mark used to modify in place, not create a new version.
@cards.sort! {rand(52) <=> rand(52)}
end
def deal
@cards.pop
end
end
Viskas vyko "trial and error" metodu - dedame žingsnį, žiūrime ar veikia, jei ne - taisome klaidas. Man labai įdomi dalis buvo testavimo klasės rašymas ir vykdymas. Sukūrę metodą turėjom jį pratestuoti. Reikėjo sugalvoti kaip patikrinti ar sukurtos visos kortos, ar jos išmaišytos, ar teisingai vyksta dalinimas ir t.t. Darėme begales klaidų (aš sugebėjau gauti net <false> is not true klaidą :D) tad skirtos 2 valandos prabėgo akimirksniu. Kadangi žaidimo nebaigėme, o darbas buvo tikrai įdomus, nusprendėme pratęsti jo kūrimą per ateinančias sesijas.
Beje, kas nežino - aš Ruby neprogramuoju ir pradėti nežadu (renkuosi Python ;)). Kaip ten bebūtų, tokios sesijos yra labai geras dalykas. Tiek gilinti programavimo žinias, mokytis iš labiau patyrusių, tiek gerai praleisti laiką.
Pabaigai dar papostinu testavimo failą, o kitkas liks ateičiai.
require 'test/unit'
require 'Klondike'
class TestKlondike < Test::Unit::TestCase
# def setup
# end
# def teardown
# end
def test_deck
deck = Deck.new
assert_equal(47, deck.cards.length)
end
def test_shuffle
deck = Deck.new
anotherDeck = Deck.new
anotherDeck.shuffle
assert_not_equal(deck.to_s, anotherDeck.to_s)
end
def test_deal
deck = Deck.new
deck.deal
assert_equal(46, deck.cards.length)
end
def test_game_deal
game = Game.new
length = game.deal.length
game.deal_cards
assert(game.deal.length < length)
assert(game.discard.length > 0)
end
def test_add_to_foundation
f_1, f_2, f_3, f_4 = Foundation.new
ace_spades = Card.new(1, :spades)
assert(f_1.add(ace_spades))
#assert(f_1.length == 1)
end
end
Laukite tesinio ;)
Gairės: Geek, Programavimas, Ruby
Įrašyta 2007-05-11, 00:10 | 0 Komentarų
Šiandien turėjau progos sudalyvauti įdomiame renginyje. Kaip galite spręsti iš pavadinimo, veiksmas sukosi apie programavimą. Viskas prasidėjo apie 19 valandą, atėjau, užsiregistravau (bilietas kainavo 2 svarai :), gavau 5 bilietus vakaro loterijai ir nemokamą ženkliuką.
Istorija su ženkliuku gan įdomi: ant stalo stovėjo 3 stiklinės su spalvotais popieriniais apskritimais - reikėjo išsirinkti spalvą pagal savo lygį. Gelsvas - naujokas, žalsvas - šiek tiek pažengęs ir rausvas - Expert/Master. Aišku ėmiau rausvą (:D ne ne, žalią ėmiau), ir išsirinkus spalvą reikėjo užsirašyti savo vardą ant to ženkliuko. Taigi viską atlikus buvo jis sumontuotas man prieš akis :) dar nebuvo tekę matyt ženkliukų gaminimo ypatumų.
Po to turėjom keletą minučių įsisukimui į užkandžius ir gėrimus, tarp kurių beje buvo ir alaus bei vyno :) Šiek tiek užkandus prasidėjo antroji renginio dalis - Aikido. Taip taip, tai tokia kovos menų rūšis. Pasirodyme dalyvavo 3 žmonės - Mokytojas, kuris pasakojo apie kontrolę, jėgą ir panašius dalykus, kuriuos galima labai gerai pritaikyti ne tik spardant šiknas, ir dar du - neaiškūs, kažkokie mokiniai ar ką, matėsi, kad nelabai patyre tame reikale :)
Pasibaigus įvadiniam šou, buvo griebtas jautis už ragų. Vykdytojai paaiškino taisykles, kurios skambėjo maždaug taip: susiskirstom komandom po 9 žmonės, kiekviena komanda turės savo kambariuką, su vienu laptopu, projektorium ir foteliais :D Vienu metu prie kompo du žmonės, vienas rašys kodą, kitas patarinės. Keičiamasi kas ~5 minutes.
O sukurti reikėjo tekstinį žaidimą, pradžia duota, o toliau jau patys. Reikalavimai buvo sukurti veikėjus, su kuriais plejeris galėtų "pakalbėti", sukurti žaidėjui galvosūkį, ir dar ten porą bajerių. Tikriausiai įdomu kokia kalba visą tą gėrį reikėjo atlikt? Niekada neatspėtumėt - koks tai Z-Code, net pavadinimo neatsimenu, plėtinys Z3 lyg ir buvo.. Kažkokia kompiliuojama-interpretuojama nesąmonė :D Dar davė galybę popierių su nurodymais, patarimais, ir manualą :D
Na ką, prie darbo. Iš pradžių nusipaišėm namo, po kurį žaidėjas vaikščios, schemą. Tada Prie kompo sėdo pirmi du žmonės. Na viskas vyko gan pusėtinai, (atsižvelgiant į sąlygas :) ir po maždaug valandos buvo paskelbtas finišas.
Sugebėjom padaryt 4-5 kambarius, virėją (la chef), kuri nebuvo panaudota, keletą durų, šarvus, spąstus (game over'iui) ir exit (laimėjimui). Visų sąlygų neišpildėm, bet buvo komandų, kurios padarė dar mažiau. O čia pats žaidimo langas.
Prieš žaidimų išbandymą turėjom dar 10-20 minučių pertrauką valgiams ir gėrimams. Per programų bandymą man labiausiai patiko pirmos komandos darbas. Jie ten įdėjo keletą juokingų (tik suaugusiems) situacijų. Dar patiko, kai komandos pačios nežinojo kokius eventus reikia daryti, kad praeiti savo žaidimą :D, turbūt mes vieninteliai (iš 4 komandų) praėjom iki galo.
Prieš paskutinė dalis - loterija, kurioje nieko nelaimėjau. Bet man ir nerūpi, tarp prizų buvo balionai, kažkokios knygos, o turbūt verčiausias dėmesio - nemokama suši gaminimo sesija, su kietais virėjais. Viskam pasibaigus, dar užkandau (o kaip gi kitaip :D) ir 22:30 jau tepiau slides :)
Tai tiek iš šio evento, sakė, kad būna dažnai čia visokių dalykėlių programeriam, tai reiks pasidomėt :) P.S: galit pažiūrėt ir fotkes.
Gairės: Geek, Programavimas