Cezary Walenciuk Programowanie

WinShell

Witam w kolejnym odcinku z cyklu “poszukiwanie doskonałego edytora” LaTexa. Mój losowy wybór padł tym razem na pogram WinShell. Porównam go też z TeXworks. W każdym edytorze znajduje się inny zakres znaczników.

Mind F###Na rozmowach kwalifikacyjnych osoby rekrutujące lubią zadawać podchwytliwe  pytania. Przykładowo  przed każdą rozmową kwalifikacyjną z Javy warto byłoby sobie przypomnieć jak działają metody porównywania napisów.

Ich działanie nie jest takie intuicyjne jak się wydaje.  Oto poniższy przykład. Sprawdź swoją wiedzę i sprawdź czy rozumiesz poniższy przykład.

Why XAMLCzęść NR.1 XAML jest dialektem XML i stał się on ważną częścią platformy .NET od czasu jego pierwszej prezentacji w 2006 roku w trakcie premiery WPF. Często jest mylony jako metoda określająca interfejs użytkownika zupełnie tak jak HTML. Pod koniec tego kursu zrozumiesz jednak ,że XAML to coś dużo więcej niż aranżowanie kontrolek na ekranie komputera.

;WITH CTECommon Table Expression zostało przedstawione w SQL Server 2005. Wyrażenie ze słowem kluczowym WITH tworzy tymczasowy rezultat wynikowy, który przedstawia dane z pojedynczego polecenia “SELECT,INSERT,UPDATE,DELETE” albo z widoku “View”.

JS AllmanJeśli pracowałeś z JavaScript przez bardzo długi czas to zapewne wiesz ,że JavaScript ma szczególny format nawiasów klamrowych.

Nie chodzi jednak tutaj tylko o styl formatowania ustalonych przez programistów. Istnieje pewien poważny powód, dla którego powinieneś zwrócić na to uwagę. Nawias klamrowy w złej linii może zniszczyć twój kod JavaScript.

WPFKolejny wpis, który powstał ze słowa kluczowego wpisanego do wyszukiwarki Google przez pewnego studenta. Oj biedni studenci, jacy to oni trudne programy mają do napisania xD.

W sumie ja na początków studiów w Białej Podlaskiej też nie byłem takim weteranem.

Lock Screen Od czasu do czasu śledzę, poprzez jakie słowa kluczowe trafiają użytkownicy na mojego bloga. Tytuł tego wpisu  reprezentuje właśnie jedno z tych słów kluczowych. Obecnie na blogu istnieje tylko jeden wpis o Windows 8 i jestem świadomy tego, jakie informację są w nim zawarte ,a jakie nie. Dlatego postanowiłem opisać bardziej szczegółowo niektóre triki w Windows 8.

Twitter

W poprzednim wpisie opisałem jak w WinRt możemy się zalogować do Facebook i wysłać wiadomości. Sieci społecznościowe są dzisiaj w modzie dlatego pomyślałem sobie dlaczego nie zrobić podobnej aplikacji testowej dla Twitter-a.

WinRT

Na co dzień miliony osób korzysta z Facebook. Facebook też jest ważnym aspektem, jeśli chodzi o marketing samej aplikacji.

Nic więc dziwnego, że aplikacje dają możliwość pochwalenia się swoimi wyczynami na facebook-u.

Przejściówka Zawsze myślałem ,że aby pobawić się kinect-em trzeba mieć specjalną wersje tego urządzenia . Oczywiście nie można go kupić w Polsce. Normalnie nie można podłączyć kinecta z Xbox-a do PC.

Na szczęście jednak nie trzeba wydawać 500 $ dolarów by zacząć swoją przygodę z Kinect SDK.

Hyper-VHyper V jest to jedna ze wspaniały funkcjonalności Windows 8 dostępna zupełnie za darmo.

Nie zadziała ona na każdym komputerze. Aby skorzystać z Hyper-v twój procesor musi wspierać SLAT 

Jeśli jednak tak jest w takim razie nic nie stoi na przeszkodzie użycia Hyper-V. Chociaż Hyper-V nie działa dla każdego systemu operacyjnego.

MSMQ

Niezawodność to jedna z najbardziej wymagających cech, które musi posiadać dzisiejsze oprogramowanie. Ta cecha jest nawet punktem krytycznym dla rozproszonych biznesowych aplikacji. Jeśli jeden człon rozproszonego systemu przestanie działać  cały przepływ akcji  się zawala.

CrossPlatform

Większość dużych przedsiębiorstw programistycznych ma homogeniczne środowisko. W tym środowisku żyją programiści, którzy zwykle koncentrują się na jednej technologii i na jednym języku programowania. Jeżeli występuje nawet jakiś podział na pod-frameworki, to programiści są szkoleni wciąż jako specjaliści do jednego konkretnego rozwiązania.

BPMN To jest mój pierwszy wpis o BPMN. Nie jestem jakimś specjalistą od tych spraw. Jestem studentem, który musi napisać projekt używając modelowania BPMN. Na szczęście moim zdaniem jest to jeden z ciekawszych przedmiotów, jakie napotkałem w trakcie swoje procesu edukacji.  Szkoda ,że przedmiot został zdegradowany do tego stopnia ,że odbywa się on raz na 4 tygodnie. W międzyczasie inny gniot, który do niczego mi się nie przyda będzie moją największą zmorą w tym semestrze.

Dodatki Visual Studio 2012 to naprawdę zaawansowane narzędzie programistyczne i widać ,ze z każdą wersją staje się ono coraz lepsze. Pomijać może eksperyment z czarno-białymi ikonkami.

Kiedyś dawno temu na tym blogu opisałem swoją listę ulubionych dodatków do Visual Studio 2010.

Pomyślałem ,że wraz z nową wersją Visual Studio wypadałoby by odświeżyć tą i listę i stworzyć nowy wpis na bloga.

SQL

TRY TRY/CATCH to konstrukcja, która występuje w wielu językach programowania. TRY/CATCH pomaga odseparować daną logikę zapytania, która w szczególnych przypadkach może zwrócić błąd.

W bloku TRY wykonujemy niebezpieczne zapytanie .W przypadku wystąpienia błędu łapiemy ten błąd go i obsługujemy w bloku CATCH.

Szybki TopTen trik ma już swoje lata ,ale nie jest powszechnie znany. Jedną z najczystszych operacji, które wykonuje “SQL Server Management Studio” to operacja SELECT TOP na tabelce, na której operuję. Zawsze trzeba sprawdzić jakie rekordy znajdują się w danej tabelce i jaki mają układ. Czy procedura dodała rekord tak jak trzeba i tak dalej.

Skróty Skróty klawiszowe pełnią ważną funkcję w zwiększeniu produktywności. Nawet jako programista .NET w większość czasu spędzam w “SQL Server Management Studio”. Dlatego postanowiłem spędzi trochę czasu na nauce skrótów klawiszowych. Swój blog traktuje jak notatnik więc mam nadzieje ,że kiedyś w przyszłość ten wpis i mi się przyda.

 

Windows 8 Do premiery Windows 8 zostało już parę dni.

Ci co mają konta MSDN już mogą się cieszyć nowy system Microsoft-u. Czekałem ,aż miesiąc ,aby sformatować sobie dysk i zainstalować ósemkę.

Dlaczego?

Wiele źródeł sugeruje ,że bezpośrednia aktualizacja systemu z siódemki na ósemkę to bardzo kiepski pomysł.

Jednak na świeżej ósemce instalacje programów jak Visual Studio (2010 i 2012) była szybka i bezbolesna. Naprawdę warto zakupić sobie dysk przenośny ,zrobić backup i świeżo zainstalować nowy system. W ten sposób nie będziesz zawracał sobie głowy różnymi problemami.

Group byArrrghhh!!!

Znowu się spotykamy mój odwieczny przeciwniku (nie włączając w to żółtego ekranu śmierci ASP.NET).

Człowiek programuje od wiele lat ,ale z jakiegoś powodu moje neurony wciąż myślą ,że polecenie GROUP BY działa tak jakby tego chciał. W rzeczywistość tak nie jest i widzę po raz kolejny ten sam błąd. Nic więc dziwnego ,że w całym SQL polecenie GROUP BY należy do jednych z najbardziej znienawidzonych przeze mnie funkcji.

Dzisiaj jednak nastał dzień sądu przyjacielu, ponieważ raz na zawsze utrwalę sobie jak działa funkcja GROUP BY.

JOIN Operacja JOIN jest najprawdopodobniej najczęściej używaną operacją w jakiejkolwiek bazie danych. Nie jest to niczym zaskakującym, ponieważ system został  stworzony w taki sposób ,aby wyrażać związki pomiędzy rekordami bez  dublowania informacji.

MERGE Słowo kluczowe Merge zostało przedstawione w Sql Server 2008. Jego celem jest ułatwienie pisania skomplikowanych poleceń, które muszą wykonać różne funkcję na danej tabelce jak DELETE,INSERT i UPDATE za jednym zamachem.

Wcześniej ,aby wykonać te wszystkie funkcję trzeba było pisać wyrażenia INSERT, UPDATE i DELETE oddzielnie.

SnippetW tym wpisie opiszę podstawy tworzenia własnego snippet-u (skrawka) w Visual Studio 2010.

Visual Studio ma już pewną listę gotowych snippetów, z których warto skorzystać jednak wciąż nic nie stoi na przeszkodzie ,aby stworzyć własne dostosowane do  określonych potrzeb.

SQL CLR To jest pierwszy artykuł na temat pisania procedur,funkcji i innych rzeczy w Common Language Runtime (CLR). Ten artykuł koncentruje się na podstawach budowania procedury SQL w Visual Studio 2010 za pomocą C#.

Tak można pisać procedury i funkcję w kodzie w C#, które zostaną później wykorzystane przez SQL Server jako biblioteka *.dll.

.RESXMechanizm lokalizacja dostępny w .NET  pozwala nam na stworzenie w łatwy różnej zawartości strony/aplikacji w zależności od kraju bądź kultury, w której użytkownik się znajduję.Edycja zawartości, jak i jej zarządzanie  jest dużo  łatwiejsze z plikami resx, nawet jeśli nie budujemy strony multi-językowej. 

jQuery W tym wpisie wytłumaczę jak uzupełnić kontrolkę rozwijanej listy przy użyciu jQuery i Ajax. Użyje metody strony ASP.NET (WebMethods) do przekazywania asynchronicznego informacji pomiędzy klientem i serwerem.

Dzięki użyciu rozwiązania WebMethods nie muszę deklarować oddzielnej usługi sieciowej .Co doskonalone zaspokaja specyficzne potrzeby istniejące tylko dla jednej strony ASP.NET.

COALESCECOALESCE akceptuje serie wartości z listy wyników, które mogą być puste (NULL) potem ona zwraca pierwszą nie pustą wartość z tej listy.

Taka funkcjonalność daje wiele kreatywnych użyć w  bazie SQL Server.

Oto proste przykłady.

SQL

OrderBy Pisząc aplikację w .NET zwykle używamy LINQ do sortowania danych ,ale jeśli dane pochodzą od systemu bazo danowego to dlaczego nie posortować informacji już na tym poziomie.

SQL oferuje nam klauzurę ORDER BY dzięki niej możemy ustalić po jakiej kolumnie informację będą posortowane.

Ajax Zwykle, gdy chcemy zrobić cokolwiek asynchronicznie w ASP.NET korzystamy z gotowego frameworku ASP.NET AJAX. Dzięki niemu mamy wciąż kontrole nad stroną używając tylko C# . Znajomość JavaScript i jQuery nie jest wcale wymagana w takich asynchronicznych scenariuszu.

Niestety takie rozwiązanie też ma swoje wady. ASP.NET AJAX nie jest wydajny. Jest on w końcu uniwersalny rozwiązaniem na problem asynchroniczności. Uniwersalność tworzy dużo kodu i procedur, które zwykle nie są potrzebne dla prostych rozwiązań.

XML Nodes W poprzednim wpisie pokazałem jak odczytać plik XML przy użyciu OPENXML. Według dokumentacji jest to najbardziej wydajny sposób na odczytywanie dużych naprawdę dużych plików XML. Jednak alternatywa istnieje i ma ona nazwę XMLNodes.

Podane poniższe operacje można wykonać tylko na parametrze typu XML w poprzednim przykładzie użyłem parametru VARCHAR.

Oto prosty przykład odczytu XML, jak i zapisu jego zawartości do tabeli. Kiedyś pewien kolega zasugerował mi to jako jeden ze sposób do umieszczania listy danych na raz w procedurze n.p do insertów. Dzisiaj szczerze zastanawiałbym się nad inny rozwiązaniem ,ale ten sposób nie jest też do końca taki zły.

Kasowanie W tym wpisie przeanalizuję problem kasowania powtarzających się rekordów.

Istnieje wiele rozwiązań tego problemu. Ja postanowiłem przedstawić trzy różne rozwiązania i porównać je w różnych scenariuszach. Sprawdziłem te trzy metody w dwóch różnych wypadkach.

W pierwszym przypadku mamy tabele niezindeksowaną, która posiada dwie kolumny. Pierwsza kolumna to identyfikator, druga natomiast zawiera losową wartość liczbową. Tabela ta zawiera 100.000 rekordów, które się powtarzają. Ze względu na losowość nie wiem dokładnie, ile jest powtarzających się rekordów?. Naszym zadaniem jest je usunąć.

W drugim wypadku mamy tabelę tymczasową z 4 kolumnami. Identyfikator, Imię, Nazwisko oraz Numer. Rekordów tabeli jest tylko 11. Nie są one generowane losowo więc wynik operacji zawsze będzie taki sam, bez względu na to, z jakiej metody skorzystamy. Wiemy też jawnie, ile rekordów się powtarza, w tym przypadku chcemy skasować rekordy, które mają takie same Imie i Nazwisko oraz Numer.

Oba wypadki zawierają kolumny NOT NULL oraz posiadają identyfikator auto-inkrementalny.

to OpenSzczerze ktoś powinien poważnie zastanowić się nad budową komunikatów błędów. To jest najgłupszy i najbardziej nie zrozumiały błąd, jaki mogłem otrzymać w imageprogramie SQL Management Studio.

Co gorsza, kiedyś w przeszłości też miałem ten problem i wiedziałem jak go rozwiązać ,a oczywiście z biegiem lat człowiek o tym zapomniał.

Dlatego zrobiłem o tym wpis ,aby mój odpowiednik z przyszłości wiedział jak rozwiązać ten problem. Podziękujesz mi potem stary.Puszczam oczko

W trakcie procesu dołączenia istniejącej baz danych ze strony Dot.NetNuke napotkałem się na taki problem.

MessageTak jak większość programistów pierwszy test nowej technologii zaczyna się od dobrego napisu “Hello World”, tego samego szukałem w WinRT.

WinRT przemodelowało wszystko i znajome przestrzenie nazw, jak i klasy mogą już nie istnieć w WinRT.

Pisząc pierwszą aplikację w WinRT chciałem tylko wywołać prosty MessageBox z napisem “Hello World” , jak się jednak okazało klasa ta nie istnieje w WinRT.

Losowe znaki Czasami istnieje potrzeba wypełnienia danej kolumny, mówiąc delikatnie byle czym.

W takim celu wypadałoby stworzyć jakiś generator tworzący napis z losowym ciągiem znaków. Kiedyś w pracy otrzymałem takie zadanie i z tego, co pamiętam wykorzystałem tę procedurę także do tworzenia losowych haseł oraz do generowania kuponów testowych w aplikacji loteryjnej..

MonoCzęsto, gdy porównywane są  technologie ASP.NET czy PHP, czy języki programowania  Java i C# pada cała lista za i przeciw tym rozwiązaniom. Siłą PHP i Javy jest to , że reprezentują rozwiązania, które działają prawie wszędzie. Jest to zwykle argument przeciw rozwiązaniom .NET, ponieważ one działają tylko pod systemem operacyjnym Windows.

Jednak w czasie takiej dyskusji zawsze pojawi się fan, który będzie bronił swojej technologii   i powie “Pod Linux-em jest Mono więc .NET też działa na wiele platform”. Za każdym razem gdy, widzę takie twierdzenie zastanawiam się jak bardzo jest ono zgodne z prawdą. Fakt możesz w Mono napisać aplikację ASP.NET pod Linux-em, ale czy w tym jest jakiś haczyk..

IntegerW pracy musiałem przygotować prezentację na temat MonoDroid, czyli o pisaniu aplikacji na telefony z Androidem w C#. Częścią tej prezentacji były proste przykłady podkreślające, dlaczego C# jest lepszy od Javy. Prezentacja miała jednogłośnie podkreślić na jednym slajdzie, że programowanie w C# jest bardziej intuicyjne.

Gdy szukałem powodów, dla których Java jest " zła" natknąłem się na pewne dziwne zachowanie, które wykazuje brak konsystencji w samy języku Javy.

Mimo iż programuję od kilku lat w Javie nigdy nie natknąłem się na ten problem. Zapytałem weteranów od Javy z uczelni PJWSTK, ale nie bardzo wiedzieli o czym ja mówię.

Dlatego pomyślałem sobie , że napiszę ten wpis by zawsze mieć jakieś fajne anegdoty dotyczące języka Java..

Google+Google+ istnieje od ponad roku. Pomimo pomyłki z “Google Buzz” Google chwytami marketingowymi przed startem reklamowała się jako lepsza alternatywa dla Facebooka , zdobywając w ten sposób dużo zwolenników. W Polsce dużo szumu nie ma o Google+. Firmy marketingowe oczywiście śledzą poczynania Google+ . Nie jest to żadnym zaskoczeniem, ponieważ Facebook zrewolucjonizował ich cały biznes.

Pytanie brzmi do czego potrzebne nam jest Google+ , jak to może nam pomóc w biznesie. Jak osoby tworzące treści w Internecie mogą zdobyć więcej fanów za pomocą Google+.

H1 vs H2Standardową praktyką dla developerów sieci web front-end jest umieszczenie loga bądź tytułu strony w tagu H1. Jednak najczęściej tytuł artykułu jest ważniejszy, ponieważ określa wartość i kontekst danej zawartości strony.

Pytanie brzmi, które z semantyk jest właściwe z punktu SEO. Oto przykłady:

MsnbotZ okazji migracji bloga dokształcałem się w SEO jednak specjalistą nie jestem ale myślę ,że ten artykuł ciebie zaciekawi.

Widziałem wiele tutoriali, które rekomendują banowanie robotów, które zawierają napisy jak libwww-perl i msnbot. Rozumiem ,że ktoś chciałby zbanować boty typu “libwww-perl”, ponieważ one służą głównie do spamowania i hakowania.

Pytanie jednak brzmi; dlaczego wiele stron rekomenduje banowanie msnbot/bingbot?.

Odliczamy Możesz stworzyć statyczną zmienną DateTime do swojego projektu i przechowywać w niej czas uruchomienia aplikacji poprzez uzupełnienie jej datą w głównym konstruktorze aplikacji.

Później tą zmienną porównujemy z obecnym czasem ,aby otrzymać okres, w jakim działała aplikacja.

Przesadzone Niedawno, mój młodszy kolega, z którym się przyjaźnię zadał mi sporo ciekawych pytań na temat “środowiska pracy”. Tak, jak ja rok temu, to teraz on stawia swoje pierwsze kroki w tym biznesowym świecie.

Zapytano go, czy jest zainteresowany pewną konkretną ofertą pracy w dziale IT ?. Kiedy pierwszy raz o niej usłyszał to wydawała się być OK.

Potem jednak otrzymał listę wymagań, która okazała się długa.

Stwierdził, że pewnie istnieje jedynie niewielka grupka ludzi, która spełnia postawione wymagania.

Zapytał mnie “Czy firmy są świadome tego , że nie znajdą “perfekcyjnego” kandydata ?”.

Odpowiedź na to pytanie jest bardziej złożona, niż z pozoru mogłoby się wydawać.

Karta SD Akurat piszę aplikację w Javie na telefony z systemem Android. Aplikacja w dużej części korzysta z karty SD. Pytanie “jak w ogóle sprawdzić czy karta ta istnieje ?”. Aplikacja, próbując uzyskać dostęp do czegoś ,czego nie ma, może wywalić wyjątek. Jest to standardowy przykład na to, że w urządzeniach komórkowych nigdy nie ma pewników, zwłaszcza w Android.

Pierwszy sposób na sprawdzenie istnienia karty jest prosty. Pobieramy folder, w którym powinna się znajdować zawartość karty SD. Jeśli folder ten nie istnieje, to znaczy , że karty nie ma..

Statystka

Wraz z procesem przenoszenia bloga zastanawiałem się , po co w ogóle go piszę. Fakt początkowo chodziło o dokształcanie samego siebie i wciąż jest to solidny powód. Stary blog stał się na tyle popularny ,że niektórzy znajomi znali mnie, zanim ja ich poznałem, co było dosyć fajnym przeżyciem.

Jednak, gdy blog zaczyna działać i zdobywać jakieś wyświetlenia to na chwile odkładasz swoją pasję na bok i sztywno analizujesz magiczne wykresy..

Przenosiny

Po 8 miesiącach szukania rozwiązań, przenoszenia postów ręcznie oraz pisania własnych styli CSS - w końcu strona ta istnieje. Gdy pokazałem swoim kolegom ze studiów PJWSTK ten styl metro byli pod wrażeniem, dopóki nie zobaczyli adresu localhost. Oczywiście zostałem wyśmiany.

Pomimo braku ingerencji z mojej strony stary blog dobrze się trzymał i nawet pojawili się jacyś fani.

Jednak blogger irytował mnie do tego stopnia ,że nawet rozważałem jego całkowitą destrukcję.

Losowość W niektórych przypadkach klasa Random nie wystarcza do generowania losowych liczb. Problematyka generowania losowych wartości polega na tym ,że są one generowane według określonego wzoru.

Co oznacza , że tak naprawdę są one liczbami pseudolosowymi. Jeśli ten wzór nie jest dobry wtedy nasza“losowość” nie jest aż taka bardzo “losowa”.

Taka losowość jest w porządku jednak w większości przypadków wciąż nie można jej porównać do rzutu kostką, czy monetą.

ASP Roles W poprzednim wpisie stworzyłem proste uwierzytelnienie przy użyciu jednej klasy statycznej FormsAuthentication. Klasa w metodzie “FormsAuthentication.RedirectFromLoginPage” stworzyła ciasteczko użytkownika ,a w metodzie “FormsAuthentication.SignOut()” wylogowała wcześniej uwierzytelnionego użytkownika.

W teorii te proste funkcje wystarczają do stworzenia własnego systemu uwierzytelniającego, który polegałby tylko na wbudowanych mechanizmach zapisu stanu uwierzytelnienia ASP.NET.

CSV Linq

W pracy dla testowania jednej aplikacji “X” musiałem szybko napisać kod, który tworzyłby plik CSV na bazie danej kolekcji. Miałem ułatwione zadanie, ponieważ znałem kolekcje i znałem jej elementy, znałem także właściwości elementów. Jednym słowem napisanie takiego programu nie zajęło mi dużo czasu.

W trakcie tego zadania napisałem prostą metodę rozszerzeniową LINQ , która na bazie kolekcji , która dziedziczy po interfejsie IEnumerable<T> pisze jedną linijkę pliku CSV. Metoda ta była bardzo pomysłowa, ponieważ jest uniwersalna i działa nie tylko dla tablicy elementów . Może to być lista, bądź inna kolekcja musi ona jedynie dziedziczyć po interfejsie IEnumerable<T> .

DataPicker W aplikacjach web uzyskujesz różne informacje od użytkowników za pomocą textboxów i checkboxów. Często jednak musisz uzyskać informacje kalendarzowe od użytkowników, np. użytkownik w filtrowaniu rekordów danych w aplikacji web może użyć dat.

 

Jednak jak te dane uzyskać od użytkownika. Sprawa wydaje się prosta, wystarczy dać użytkownikowi textbox i dołączyć do niego jakąś prostą walidację. Tak, coś w tym stylu.

WyszukajRaz na w miesiącu piszę swoje imię i nazwisko do przeglądarki ,aby sprawdzić jakie strony się do mnie referują. Blog stał się na tyle popularny ,że jest pierwszy na liście wyszukiwania, co mnie bardzo cieszy.

Jednak przeszukując dalej trafiłem na stronę http://waatp.pl-pol.com/

Serwisowi dużo brakuje ,ale pierwszy raz widzę stronę, która bezpośrednio wyszukuje informacje o osobie po jego imieniu i nazwisku.

Sort Linq W tym wpisie opiszę program który:

 

Tworzy obiekt klasy “Person”, która reprezentuje osobę z rolą i imieniem.

  • Wyświetla kolekcje List<Person> w kontrolce GridView na stronie ASP.NET.
  • Sortuje kolekcje rosnąco i malejąco po jej właściwościach przy użyciu własnych metod bazujących na LINQ.

Z góry także mogę obiecać ,że rozbuduję ten program, ponieważ ostatnio w mojej pracy musiałem napisać bardziej zaawansowana wersję takiego sortowania. Chciałbym zachować zdobytą wiedzę w moich notatkach.

Na początek zacznijmy od klasy “Person” , która będzie reprezentować encje osoby. Posiada ona tylko dwa pola: nazwę i rolę. Nie ma tutaj żadnej rewelacji chcę uprościć ten przykład aż do bólu.

String / Enum Nie ma wbudowanego rzutowania z napisu string na wartość wyliczeniową. Nie można też takiego rzutowania jawnego napisać.(albo tylko tak mi się wydaje) Problem polega na tym ,że string jest klasą ,a enum jest strukturą. Co oznacza ,że konwersja taka nie powinna istnieć. Jest to nawet określone w standardzie języka C#.

Jednakże możesz napisać własną metodę rozszerzeniową, która za ciebie tą konwersje wykona.

Turniej MTG W poniedziałek 9 Maja odbyły się “Lubelskie Dni Informatyki”. Dziwnie się wtedy złożyło,że zaraz następnego dnia w Białej Podlaskiej odbył się turniej “Magic The Gathering”. Te dwa wydarzenia sprawiły, że to był dla mnie naprawdę dobry tydzień.

 

Dla przypomnienia na “Lubelskich Dniach Informatyki” wygrałem dwie książki, pendrive i masę innych rzeczy. W sumie cena tych nagród wynosiła ok. 300 zł. Te wydarzenia opisałem tutaj.Mając taką dobrą passę liczyłem, że na turnieju 10 maja może nawet i wygram, ale osobiście w to nie wierzyłem.

Tyle, jeśli chodzi o krótki wstęp o sobie. Co wydarzyło się na turnieju i dlaczego w ogóle się odbył?

Indeksowanie

Windows 7 indeksuje wybrane zawartości za każdym razem, gdy ulegają zmianie (zmodyfikowany plik, stworzony plik). Ta usługa indeksująca sprawia ,że system Windows 7 natychmiastowo odnajduje pewne pliki w wybranych miejscach.



Jednakże jeśli nie przeszukujesz swojego dysku dość często albo masz wiele partycji, których nie przeszukujesz często (np. masz zainstalowane programy i Windows na partycji “C” ,a reszta danych jest na D [tak jest na moim laptopie]) wtedy możesz wyłączyć tę usługę ,aby zwiększyć wydajność systemu.

TwitterFeed Wczoraj czytając gazety w empiku natknąłem się na artykuł o tej aplikacji internetowej.

Gazety nie kupiłem ,ale treść artykułu zapamiętałem. To jeden z głównych powodów, dla których kocham empik. 

TwitterFeed jest to aplikacja, która za nas umieści wpisy z blogu na Facebook-a czy Twittera. Korzysta ona  ze źródła więc nie jest  dostosowana do konkretnego silnika blogowego czyli inaczej mówiąc działa dla każdego blogu np. dla bloggera. Swoje wpisy umieszczałem na Facebook już nie raz. Jestem ciekaw czy mogę zrobić to automatycznie.

Lock

Jak zlikwidować komunikat - Saving changes is not permitted. The changes that you have made require the following tables to be dropped and re-created.

ERROR:


SQL SERVER Komunikat

“Saving changes is not permitted. The changes that you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created”.

Ten błąd pojawia się, gdy używając SQL Server 2008 Management Studio chcesz zmodyfikować strukturę tabeli gdy SQL Server musi skasować i odtworzyć tabele aby wprowadź twoje zmiany.   

yield

Jak pokazałem w poprzednim wpisie proces tworzenia kolekcji wyliczeniowej jest złożony. W C# istnieją jednak iteratory, które potrafią zautomatyzować ten proces.

Iterator jest to blok kodu, który uzyskuje (yield) w odpowiedniej kolejności wartości. Dodatkowo iterator nie jest częścią klasy wyliczeniowej. Określa on tylko sekwencje, w której enumerator powinien zawracać wartości. Czyli iterator jest tylko opisem sekwencji wyliczania, dzięki któremu kompilator w C# może stworzyć swój własny enumerator.

IEnumerable

Używając pętli foreach mogę przez iteracje uzyskać dostęp do każdego pojedynczego elementu w kolekcji. Co się dzieje w środku pętli i jak to jest możliwe. Ta tematyka jest istotna, gdy chcesz stworzyć swoją własną kolekcje i przekonując się ,że mechanizm pętli foreach nie zostanie dodany automatycznie.

W C# istnieje kilka sposobów na zautomatyzowanej tego procesu.

Fiszki Jednym słowem, jeśli chodzi o języki obce, to trzeba uczyć się ich we własnym zakresie. Zwłaszcza jeśli tu i teraz wiesz, że będzie ci to potrzebne.

Będąc w empiku natknąłem się na fiszki. Szczerze pomysł jest prosty i genialny.

Logo

Grupa .NET w Białej Podlaskiej nie jest duża, ale jak na nasze małe miasto jest to jedyne sensowne kółko programistyczne.

Grupa.NET została założona w 2007 roku, kiedy jeszcze na uczelni PSW nie było dobrego sprzętu i szczytem programistycznym było Visual Studio 2003.

Czasy jednak się zmieniły. Dzięki dotacjom z unii europejskiej uczelnia w Białej Podlaskiej się rozwinęła i nadal rozwija. W następnym roku będzie czynny akademik i inne obiekty.

Celem grupy .NET jest pomaganie studentom w rozwijaniu swoich pasji. Obecnie kółko  organizuje różne kursy do certyfikatów Microsoftu, ja byłem tylko jednym z nich. Dla mnie ta Grupa.NET spełnia swój cel.

Oznajmiając mój pomysł na konferencję w Białej Podlaskiej przygotowywałem animacje członków Grupy.NET.

Wszystkie Kategorie