BLOGas.lt
Sukurk savo BLOGą Kitas atsitiktinis BLOGas

MFMT (Set Modified Date) FTP komandos iškvietimas iš .NET

Parašė Sergejus | 2012-08-29 20:56

Prieš kelias dienas susidūriau su įdomiu uždaviniu – suvienodinti per FTP kopijuojamų failų modifikavimo datą ir laiką tarp visų klasterio serverių. Pirma paaiškinsiu problemą: klasteryje yra kelios dešimtys serverių, todėl kopijuojant failus jų modifikavimo data gali skirtis keliomis sekundėmis. Tarkim, vartotojas kreipiasi į serverį, parsisiunčia failą ir jį užkešuoja. Už sekundės jis kreipiasi vėl to paties failo, patenka į kitą klasterio serverį ir tas potencialiai gali pasakyti, kad failo modifikavimo data yra keliomis sekundėmis naujesnė. Rezultate vartotojas turės parsisiųsti failą iš naujo, nors tai yra tas pats failas. Kaip matyti, be reikalo išnaudojamas tiek procesorius, tiek tinklas.

Grįžtant prie problemos. Norint pakeisti nutolusiame FTP esančio failo datą, reikia įvykdyti komandą MFMT (Modify Fact: Modification Time) arba MFCT (Modify Fact: Creation Time). Šios komandos dar nėra oficialaus standarto dalis, bet mūsų naudojamas FileZilla FTP serveris jas palaiko (informacijai: IIS FTP serveris šių komandų nepalaiko). Kai jau galvojau, kad užteks tiesiog iškviesti MFMT komandą pasirodė, kad standartinė .NET FtpWebRequest klasė neturi nei tokio metodo, nei kito būdo ją iškviesti. Teko keisti FTP biblioteką į kitą alternatyvą – Alex FTPS Library (prieinamas ir iš NuGet galerijos). Nors minėta biblioteka irgi neturi reikalingo metodo, ji turi galimybę pačiam suformuoti ir išsiųsti norimą komandą. Taip gimė praplėtimo metodas SetModifiedTime:

internal static class FTPSClientExtensions
{
    public static void SetModifiedDate(this FTPSClient client, string path, DateTime lastModified)
    {
        var command = string.Format("MFMT {0} {1}", lastModified.ToString("yyyyMMddHHmmss"), path);
        client.SendCustomCommand(command);
    }
}

Taigi, iš pirmo žvilgsnio paprasta užduotis (MFMT komandos iškvietimas) pasibaigė visos FTP bibliotekos keitimu…

Rodyk draugams

Agile turas ir mokymai testuotojams

Parašė Sergejus | 2012-08-16 20:58

Artėja ruduo, o su juo ir jau trečius metus organizuojamas Agile turas. Kaip ir praeitais metais turėsite galimybę ne tik sudalyvauti pačioje konferencijoje, bet ir papildomuose mokymuose. Ypatingą dėmesį norėčiau atkreipti į Gojko Adzic mokymus Specification by Example: From User Stories to Acceptance Tests. Gojko buvo pripažintas “Most Influential Agile Testing Professional Person” ir šiuo metu yra vienas žinomiausių Agile testavimo specialistų. Jeigu esate testuotojas ir norite sužinoti daugiau apie testavimo ateitį bei Agile testavimą – tikrai rekomenduoju šiuos mokymus.

Iki pasimatymo Agile ture!

Rodyk draugams

ITishnikai #20 – galutinės Windows ir Visual Studio versijos, ITishnikai jubiliejus

Parašė Sergejus | 2012-08-09 18:48

Šį kartą aptariame galutines Windows 8 RTM, Windows Server 2012 RTM ir Visual Studio 2012 RTM versijas bei naują Office 2013 ir Outlook.com. Taipogi anonsavome pirmą gyvą ITishnikų susitikimą vienerių metų jubiliejaus proga (registracija)! Kaip visada laida prieinama mūsų Facebook puslapyje bei parsiuntimui. Labai laukiam jūsų atsiliepimų bei komentarų.

#ITishnikai Anniversary Vilnius Rugpjūčio 23 – registracija.

Nuorodos minėtos laidoje:

Rodyk draugams

Lietuvos .NET vartotojų grupės ateitis – jūsų rankose

Parašė Sergejus | 2012-08-06 18:15

Tikriausiai pastebėjote, kad kiek ilgiau negu įprasta nebuvo Lietuvos .NET vartotojų grupės susitikimų. Tai susiję su tam tikrais finansiniais bei organizaciniais sunkumais. Bet apie viską iš eilės…

Lietuvos .NET vartotojų grupės susitikimai visą laiką buvo vieni didžiausių nemokamų IT bendruomenės susitikimų Lietuvoje. Per paskutinius metus žmonių skaičius net prilygo kai kurioms IT konferencijoms (Vilniuje 60+ žmonių, o Kaune 40+ žmonių per susitikimą). Mūsų susitikimai pagarsėjo tiek kokybiška informacija, tiek neformaliu bendravimu prie alaus ir boulingo. Bet viskas turi savo kainą… Konferencijų salių nuoma bei boulingas, alus ir užkandžiai Vilniuje ir Kaune apsieidavo apie 3000-4000 litų per susitikimą. Ačiū Microsoft Lietuva už finansinį ir organizacinį palaikymą visus grupės egzistavimo metus (greitai jau 5 metai!), bet atėjo laikas, kai Lietuvos .NET vartotojų grupė nebegaus tokios dosnios finansinės paramos.

Norėčiau kartu su jumis padiskutuoti apie galimus sprendimus. Kadangi visas organizavimas ir pranešėjai yra nemokami, pagrindinės problemos yra dvi: vieta kur daryti susitikimus ir ką daryti su užkandžiais / neformaliu bendravimu. Paprasčiausias būdas būtų viską apmokestinti ir taškas, bet to daryti tikrai nesinori. Kita alternatyva:

  • surasti nemokamą vietą Vilniuje ir Kaune kur galima būtų sutalpinti apie 30 žmonių
  • nedaryti vakarinės dalies arba išgerti po bokalą alaus savo sąskaita

Dėl vietos Vilniuje viskas yra sąlyginai paprasta – naujas Microsoft Lietuva ofisas. Kur kas įdomesnis klausimas dėl Kauno. Vienas iš variantų bandyti tartis su KTU, kitas variantas, gal kokia programavimo įmonė norėtų mus priimti pas save? Gal tai būtų jūsų įmonė?

Dar viena mintis būtų ieškoti rėmėjų, bet čia man reikėtų pagalbininkų, nes vienas visko tikrai nespėsiu. Taigi, mielas Lietuvos .NET vartotojų grupės nary, o ką manai tu?

Rodyk draugams