wtorek, 24 sierpnia 2010

Co FxCop myśli o moim kodzie.

Jednym z narzędzi które wchodzą w skład Windows SDK, jest tytułowy FxCop.

Narzędzie to służy do oceny i wykrycia nie prawidłowości w kodzie. Jak podaje Wikipedia odróżnia 200 defektów, podzielonych na 5 kategorii:
  • Budowa bibliotek
  • Lokalizacja
  • Konwencje nazewnictwa
  • Wydajność
  • Bezpieczeństwo
Pierwsze błędy które zgłosił to:
  • łapanie ogólnych wyjątków
  • nie podpisywanie bibliotek
Za to zignorowawszy błędy związane z nazewnictwem ponieważ biblioteka np. XML2List powinna być nazwana Xml2List, ale XML to skrót i lubię kiedy skróty są pisane wielką literą.


niedziela, 15 sierpnia 2010

Projekt UI na kartce

Większość moich pomysłów najpierw rysuję, a potem próbuje je stworzyć w komputerze.

I oto jest jeden z pomysłów na stworzenie UI w WPF.
Ot taka ciekawostka.

Może, może za parę lat ten zeszyt będzie sławny :)

Ah, moje marzenia.


Uczę się ostro na temat tworzenia okien w WPF. I mam wrażenie, że to prawdopodobnie najbardziej potężne narzędzie (XAML + język C# + inne) do tworzenia okien w historii systemów graficznych.

piątek, 13 sierpnia 2010

Wieści z frontu na piątek 13-tego w sierpniu

Biblioteka o nazwie XML2List która wchodzi w skład solucji dotXMLTools osiągnęła wczoraj numer wersji 1.0.

To oznacza, że biblioteka potrafi:

  • Odczytać strukturę XML i zapisać ją w postaci mojej wersji XPath - dalej nazywam to jako Path
  • Utworzyć listę poleceń które transformują podany XML do postaci oczekiwanej. Przez podanie wcześniej utworzonych ścieżek Path
  • Utworzyć plik csv, który posiada oczekiwaną listę (w rozumieniu listy jak w LISPIE)
Jak sam czytam, to co napisałem to mało rozumiem :) 
Każdy kto ma jakieś pytanie niech wyśle e-mail na soltys[=na=]uznam[-kropka-]org

Jeszcze parę informacji w Twitterowym skrócie:
  • Został utworzone proste i pełne zasadzek GUI w WPF (z którego mało co potrafię - na razie). 
    • Dzięki temu mogłem zainstalować u soby która będzie ten program wykorzystywać, liczę na jakiś feedback
  • Powoli zaczyna mi się robić syf z repozytorium GITa.
  • Tych co przeglądali teksty commitów na GitHubie (wiem że was mało, sądze że tylko ja:) zapewniam, że commity o treści 'rename blah to blahblah' będą się pojawiać jeszcze częściej :)
  • Testy chyba muszę zacząć je pisać, zmusi mnie to to przejrzenia kodu i wyczyszczenia jego.
  • Mam jeszcze parę pomysłów na dodatkową funkcjonalność.
  • Serio ja czekam na maile adres soltys[=na=]uznam[-kropka-]org lub dotxmltools[=na=]uznam[-kropka-]org


wtorek, 3 sierpnia 2010

Błąd spowodowany zła nazwą zmiennej

Dzisiaj dostałem ważną lekcję - prawidłowe nazwanie zmiennych jest ważne.

Problem dotyczył wczoraj opisywanej funkcji sporządzania wymiarów pliku XML. Nie działał on poprawnie z tego względu, że podałem złą nazwę zmiennej. Rożnica pomiędzy newXmlPath a xmlPath nie jest dla człowieka duża, a komputer jakoś widzi problem.

Oczywiście nikt nie odda mi tego czasu co poświęciłem na szukanie błędu. Ale teraz będę mądrzejszy.

Prezentuję mój sposób na tworzenie zmiennych.

  1. Nazwa zmiennej musi pasować do funkcji
    • do funkcji feedDog nie można dać zmiennej o nazwie hammer
  2. Nie twórz zmiennych różniących się w małym stopniu
  3. Jeżeli jest nie tak jak w punkcie 1. lub 2. zmień kod, stwórz funkcję lub klasę.
Chętnych do eksploracji mojej porażki z zmienną. Zachęcam do zobaczenia diffa na GitHub konkretnie funkcja FindByRecursion (lub do popatrzenia do kodu w wczorajszym poście).

poniedziałek, 2 sierpnia 2010

Moc rekurencji! Sporządzanie wymiarów XML

Post zawiera kod źródłowy którego można nie widzieć w czytnikach RSS


W szkołach na lekcjach informatyki nauczyciele zawsze, ale to zawsze pokazują rekurencje w formie silni, o w takiej postaci.



No i jest klops, ponieważ przykłady matematyczne w programowaniu są nudne, denne i senne.

Przykład nie matematyczny rekurencji można spotkać w moim programie. I to w tej początkowej fazie.
Funkcja którą pokaże służy sporządzania "wymiarów" pliku XML.

Wymiary są tworzone w postaci podobnej do XPATH

Przykładowe wymiary z podanymi wartościami częstotliwości występowania w pliku (XML pochodzi z programu sporządzający spis ulic).

Na podstawie tak zapisanych informacji zamierzam stworzyć funkcje potrafiące tworzyć zapytania, które zwracają jakąś listę.

Wydajność? Nieważne.

Przypominam o linkach
Kod na GitHub
Twitter Projektu

Ekhm mój normalny blog
a to mój normalny twitter

niedziela, 1 sierpnia 2010

create new solution | git init

Dziś rozpoczyna się konkurs Daj się poznać, a ja zaczynam tworzyć projekt.

Wykorzystuję do tworzenia następujące oprogramowanie:

  • Visual Studio
  • Git Extensions - GUI do Git'a i plugin do Visual Studio
    • Tworzy genialny .gitignore :)
  • .NET 4.0
    • Głównie C#, ale chciałbym wplątać IronPython i F# tak dla nauki.
    • Nie ma sensu robić czegoś pod starą technologię nawet jeśli stara jest powszechna. Uważam inne podejście jako głupie.
  • NUnit
Początkowa struktura w solucji:
  • dotXMLTools
    • XML2List
    • TestingConsole (program konsolowy do sprawdzenia działania poszczególnych elementów)
Będzie dodane m. in:
  • TestProject
  • dotXMLToolsUI - WPF
Szczerze oprócz WPF chciałbym spróbować z ASP.NET i Silverlight, ale jeszcze mogę się rozmyślić.

Tak wygląda szkic projektu. Mogą a nawet będą zmiany.

Przyrzekam sobie, że będę często blogował. 

Choćby tak często jak pan Palikot (pozdrowienia  ode mnie!), czyli standardowo 1 dziennie.

(pierwszy commit na github.com już jest)

środa, 28 lipca 2010

16 zawodnik

Teraz oficjalnie jestem w konkursie Daj się poznać? organizowanym przez Macieja Aniserowicza.

Zarejestrowałem się jako 16 człowiek biorący udział w tym konkursie (moje źródło to ten tweet).

16 to dobra wróżba bo to 2^4, a poza tym okrągła liczba (10 w szesnastkowym).

Rozpocznę pracę około 1 sierpnia. Potem pytanie czy do trzymam w pracy przez 10 tygodni?

Nie wiem.

Nie lubię zapewniać bez pokrycia.