• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    NECROMAN
    NECROMAN --- ---
    Nejaky tip, jak v Silverlightu implementovat TextBlock, ktery bude zalamovat text na dva radkyu na definouvanou MaxWidth a pokud se tam nevejde, tak zmensi font tak, aby se tam vesel?
    Zkousim velikost fontu vypocitat, ale ActualWidth a ActualHight ukazuje nepouzitelna cisla.
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    TENCOKACISTROMY: I sense too much of dynamic side of the force in you....
    URZA
    URZA --- ---
    TENCOKACISTROMY: diky, jen teda jestli to chapu dobre tu posledni vetu.. mam si udelat jeste lock v UpravCosi metode jo? jsem ted z toho nejakej trochu zblblej :) multithreaded programovani je neco co jsem nejak zanedbal a nidky s tim neprisel poradne do kontaktu.. takove me slabe misto.. asi bych si o tom mel neco precist.. :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    TENCOKACISTROMY: Teda chtel jsem rict:
    Protoze konstantu do promenne si nepriradim takto. V jazycich dynamickych, usetril mi tento pristup debugovani mnoho. Zvyk jsem si tento i do C# prenesl, prestoze jen u bool promennych situace dotycna hrozi.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SHIGORBIRDMAN: Protoze si pak omylem nepriradim konstantu do promenny. V C# ti to hrozi jen v pripade bool promennych/clenu, ale u dynamickych jazyku mi to uz nekolikrat usetrilo hromadu debugovani.
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    STROMYCOKACITEN: proc pouzivas yoda conditional? :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    URZA: Ten pristup k singletonu udelej takhle:
    public sealed class Singleton {
        private static Singleton instance; // zadny "= null"
        private static readonly object padlock = new object();
    
        public static Singleton Instance {
            get {
                var result = instance;
                if (null == result) { // pro kontrolu na NULL neni potreba lock
                    lock(padlock) {
                        // zkontrolujeme jeste jednou, jestli se pred ziskanim zamku nahodou
                        // uz singleton neinicializoval z jinyho vlakna
                        if(null == (result = instance)) {
                            instance = result = new Singleton();
                        }
                    }
                }
    
                return result;
            }
        }
    }


    Jinak ten lock se vaze pouze na tu statickou property "Instance", ktera vraci odkaz na ten objekt. Na samotny objekt se ten lock nevztahuje.
    URZA
    URZA --- ---
    Ahoj,

    Mam Singleton tridu v multithreaded prostredi, kde v Getu pro vraceni instance je lock

    implementovano takto nejak:

    http://pastebin.com/BfikxUhJ

    Ted by me zajimalo, jestli tim ze pristup k instanci Singleton.Instance je locknuty, tak jestli to zajisti i lock na pristup k vnitrnim vecem (property atd) nebo jestli ten se musi poresit v kazde property zvlast

    Teda treba kdyz by mel ten singleton takovouto metodu:

    private int Cosi {get; set;}

    public bool UpravCosi()
    {
    if (Cosi == 2)
    Cosi = 5;
    }

    tak jestli je to vpohode tim ze ta instance singletonu je lockovana nebo jestli muze vzniknout nekonzistence mezi radkem Cosi == 2 a radkem Cosi = 5 ?

    Dik
    NECROMAN
    NECROMAN --- ---
    Trochu si dneska pohravam s Azure, vedeli jste, ze k tomu existuje commandline utilita pro Bash? :)
    Windows Azure Command-Line Tools for Mac and Linux (Linux)
    http://www.windowsazure.com/en-us/manage/linux/other-resources/command-line-tools/
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: jo vim, jak se disposuje, to jsem jen vcera experimentoval, abych to tam nejak dostal :)
    Problem byl s ceskymi znaky, proto ten StreamReader a XmlReader. Take to hlasilo chybejici namespace, proto ten XmlRoot.
    Prikladem toho souboru:
    http://www.play.cz/radio/cro3-192.asx
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: To .Path + "\\Resources" bych radeji nahradli pomoci Path.Combine.
    Ten stream by si zaslouzil dispousnout. Idealne ho uzavrit do "using(...){...}". Vytvaret ten serializer dokola asi taky neni potreba.
    V tom souboru je jen ten jeden objekt? Nemusel by ses pak drbat s tim xmlreaderem a root attributem.

    var asxs = new List<AsxModel>();
    var serializer = new XmlSerializer(typeof(AsxModel));
    var path = Path.Combine(Package.Current.InstalledLocation.Path, "Resources");
    var resources = await StorageFolder.GetFolderFromPathAsync(dirPath);
    foreach (var file in await resources.GetFilesAsync()) {
        using(var stream = await file.OpenStreamForReadAsync()) {
            var asx = (AsxModel)serializer.Deserialize(xr);
            asxs.Add(asx);
        }
    }
    


    Nicmene nevidim tam zadnej rozdil v mnozstvi kodu oproti desktopovejm windows.
    MAIMONIDES
    MAIMONIDES --- ---
    NECROMAN: Fuj.
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: stejnak je to silene, kolik kodu ve WinRT je treba jen kvuli hloupemu nacteni primitivniho XML do objektu:

    List<AsxModel> asxs = new List<AsxModel>();
    StorageFolder resources = await StorageFolder.GetFolderFromPathAsync(Package.Current.InstalledLocation.Path + "\\Resources");
    foreach (StorageFile file in await resources.GetFilesAsync())
    {
    Stream stream = await file.OpenStreamForReadAsync();
    XmlReader xr = XmlReader.Create(new StreamReader(stream, Encoding.UTF8));
    XmlRootAttribute xRoot = new XmlRootAttribute { ElementName = "ASX", IsNullable = true };
    XmlSerializer serializer = new XmlSerializer(typeof(AsxModel), xRoot);
    AsxModel asx = serializer.Deserialize(xr) as AsxModel;
    asxs.Add(asx);
    }
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Radsi nez regularni vyraz bych pouzil nejakej stavovej automat. Nejjednodussi (na naprgani) by balo asi pouzit HtmlAgilityPack. Proste to nacist do DOMu, opravit co je spatne a pak z toho udelat zase string/stream.
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: bohuzel nejsem zdrojem toho xml, tak asi prohnat nejakym regularnim vyrazem jedine, jako reseni.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Obavam se, ze vzhledem k tomu, ze to neni validni xml, tak ne.
    NECROMAN
    NECROMAN --- ---
    Da se nejak primet DataContractSerializer, aby ignoroval velikost pismen v tagu, kdyz mam toto?
    <Title> ... </title>
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: je to asi pravda, ze takovy LongListSelector zabere vic, nez usetrim zmenou ObservableCollection na Array, ale chci v tom mit koncepcne poradek :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Nic vic lightwight nez array nevymyslis.
    Ale jestli to pouzivas ve spojitosti se XAMLem, tak resit jestli pouzit array, list ci observablecollection mi prijde celkem zbytecny. Hromadu pameti a vykonu si sezere to wpf/silverlight.
    NECROMAN
    NECROMAN --- ---
    Dotaz, jaka je podle vas nevice "lightweight" genericka kolekce pro kolekci hodnot/objektu, jejichz pocet nebo poradi se nebude menit, pouze je potrebuji nabindovat v XAMLu, typicky konstantni pole mest, ktere ziskam requestem pri prvnim spusteni aplikace?

    ObservableCollection je fajn, ale pokud se na dane kolekci dat neplanuji zmeny, tak tam vidim pametovy/vykonnostni overhead.
    Co treba klasicky array, tj treba City[]?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Ja jdu na nerddiner poprvy, ale predpokladam, ze se tam nejaka znama tvar objevi.
    GARFIELD
    GARFIELD --- ---
    TENCOKACISTROMY: ja si ted zrovna doma hraju s webama, protoze v praci delam desktop a server side. Na nerddinner jdu zitra taky, ale zatim tam nikoho neznam, tak jsem dost zvedavy, jake to bude.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    CSS me neberou, ale zitra jdu na neddinner. Jdete jeste nekdo?
    GARFIELD
    GARFIELD --- ---
    Jdete dneska nekdo na CSS na steroidech a pripadne zitra na nerddinner? Rad bych rozsiril svoji programatorskou sit :) Kdyztak posta.
    PJOTRIK
    PJOTRIK --- ---
    PECA: Typicky se sdili jednotlivy knihovny (tj projekt, ne jen vybrany soubory z nej). Vlastni veci vetsinou jako zdrojak, cizi jako dll. Pokud pouzivas svn, tak se pro sdileni kodu pouzivaji svn:external property, ktery ti natahnou kod z jiny repository; jiny VCS budou mit neco podobnyho. V novy solution uz jenom pridas existujici projekt a jedes.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    kazdy projekt ma svuj podadresar, muzes je taky rozstrkat jinam, ale to je neprakticky.
    hlavne kvuli relativnim cestam k tem dll knihovnam.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    PECA: muzes udelat napriklad to, ze veskere projekty mas ve stejnem adresari, v kazdem projektu nastavis aby se knihovny buidlovali do jednoho adresare, ktery bude na stejne urovni jako adresar z projekty. no a pak si vytvoris vzdy solution s projekty ktere potrebujes, v jednotlivych projektech pak mas reference ne jako projekt reference,ale normale dll z toho zdilenyho adresare.
    PECA
    PECA --- ---
    Mám takovej lamerskej dotaz, tak mě doufám nepošlete k šípku :-)
    Potřebuju do projektu (solušnu) přidat kus jinýho projektu. Prostě část jednoho projektu by měla být společná pro nějaký jiný projekt (dost možná to děláme blbě - nechám si poradit). Jde to nějak jednoduše, ve stylu reference na konkrétní zdrojáky, nebo je potřeba tu společnou část překlopit na samostatný projekt, který by se potom přidával jako součást solution, k pilotnímu projektu, nebo je lepší to dělat jako samostatný projekt a sestavení a referencí se odkázat pouze na hotovou dll knihouvnu?
    Dík za nakopnutí správným směrem.
    NECROMAN
    NECROMAN --- ---
    JetBrains .NET Tools Blog » Introducing the ReSharper 8 EAP
    http://blogs.jetbrains.com/dotnet/2013/03/introducing-the-resharper-8-eap/
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: fiddler na emualtor nevidi. neco jsem odchytil wiresharkem, ale inc v tom nevidim. Divne, ze se to chova jen obcas a naprosto nahodne. Mohl bych to zkusit jeste na jine siti, jestli tam router nestrka nejake divne znaky.
    Jinak asi nejde zakazat pravidla na parsovani headru?
    Kliknutím sem můžete změnit nastavení reklam