Yet Another Forum (YAF) dla Windows Azure

Niedawno, w ramach zapoznawania się z Windows Azure, spróbowałem na tej platformie postawić Yet Another Forum 1.9.5.5.

Okazało się, że wcale nie jest to takie banalne, gdyż różnice pomiędzy SQL Serverem a SQL Azure potrafią nieźle dać się we znaki pomimo, iż teoretycznie nie są zbyt duże. Ponieważ SQL Azure wymaga, aby każda tabela posiadała CLUSTERED INDEX, musiałem odpowiednio zmodyfikować skrypty tworzące strukturę bazy danych, które są uruchamiane podczas instalacji YAF. Oprócz tego, w kilku miejscach zmieniłem wywołania przestarzałych procedur (nieobsługiwanych już w SQL Azure) na ich nowsze odpowiedniki. Niewielki problem był też z plikami konfiguracyjnymi, przez co musiałem zawartość jednego z nich przenieść bezpośrednio do web.config. Niemniej jednak, udało mi się w końcu przygotować specjalną wersję Yet Another Forum, która jest kompatybilna z Windows Azure i SQL Azure. W tym poście chciałbym opublikować zmodyfikowany przeze mnie, gotowy do kompilacji kod źródłowy - może akurat komuś się przyda.

Oto krótka instrukcja, jak przygotować paczkę dla Azure'a:

  1. Instalujemy w systemie Windows Azure SDK, jeżeli nie zrobiliśmy tego wcześniej.
  2. Pobieramy kod źródłowy YAF (link poniżej), rozpakowujemy wszystko do jakiegoś katalogu lokalnie na dysku.
  3. Otwieramy w Visual Studio 2010 plik yetanotherforum.net-2010.sln
  4. W projekcie YAF, otwieramy plik db.config i uzupełniamy informacje dotyczące bazy danych (adres serwera, nazwa bazy, dane do zalogowania, itp.)
  5. W projekcie YAF, otwieramy plik mail.config i uzupełniamy informacje dotyczące serwera SMTP.
  6. W projekcie YAF, otwieramy plik web.config. Przeglądamy ustawienia i ewentualnie dostosowujemy do swoich potrzeb.
  7. Kompilujemy solucję.
  8. W Solution Explorerze, klikamy prawym klawiszem myszy projekt YAF.Azure i korzystamy z opcji Package... w celu przygotowania pakietu.
  9. Otwieramy Windows Azure Management Portal i uploadujemy pakiet wraz z plikiem konfiguracji (z katalogu app.publish)

Na koniec najważniejsze:

 

Link do pobrania YAF (licencja GNU GPL v2):
Yet Another Forum v1.9.5.5 for Windows Azure

 

Wielki sukces na Światowych Finałach Imagine Cup 2011!

Na finałach Imagine Cup 2011, odbywających się w Nowym Jorku w dniach 8-13 lipca, zająłem II miejsce na świecie w kategorii IT Challenge!

Moja strona jest pewnie już ostatnią w całym Internecie, na której pojawia się ta wiadomość, ale przecież na moim blogu nie mogłoby takiego newsa zabraknąć :). Niestety tak wyszło, że w ostatnich tygodniach miałem sporo najróżniejszych zajęć i byłem zmuszony zaniedbać nieco swojego bloga. Najwyższa jednak pora, aby nadrobić zaległości. Szczegóły odnośnie przebiegu samego finału opisałem w wywiadzie, a więc nie będę ich tutaj powtarzał. W tym poście chciałbym jedynie przedstawić różne ciekawe materiały i odnośniki związane z moim udziałem w Imagine Cup 2011.

Na początek mała galeria zdjęć:


Krótki briefing przed rozpoczęciem

Wspólne zdjęcie uczestników wraz z sędziami

Mój "warsztat", przy którym w trakcie finału spędziłem 24 godziny

Odbiór nagrody na scenie

Zapraszam także do obejrzenia materiału wideo z Ceremonii Wręczenia Nagród - oto fragment dotyczący IT Challenge:

I na koniec podaję parę linków.

Ponad 2,5-godzinne nagranie całej Ceremonii Wręczenia Nagród (Awards Ceremony):
http://www.studiosevent.com/newscenter/?id=imaginecup

Lista zwycięzców Imagine Cup 2011, na której oczywiście można znaleźć także moje nazwisko:
http://www.imaginecup.com/CompetitionsContent/2011Winners.aspx

Wywiad, którego udzieliłem dla portali WSS oraz CodeGuru portals:
http://www.codeguru.pl/baza-wiedzy/aktualnosc,1928

Newsy na popularnych polskich portalach:
http://nt.interia.pl/news/sukces-polskich-studentow-w-nowym-jorku,1667126
http://technowinki.onet.pl/wiadomosci/polacy-trzy-razy-na-podium-iii-ii-i-i-miejsce-nale,1,4792042,artykul.html

Ministerstwo Gospodarki też wspomniało o Imagine Cup ;)
http://www.mg.gov.pl/node/14051
http://www.mg.gov.pl/node/14065

Jak przy pomocy PowerShella usunąć metadane SVN

Niedawno postanowiłem przygotować sobie skrypt PowerShella, przy pomocy którego mogę usunąć z podanego katalogu i jego podkatalogów wszystkie foldery o nazwie ".svn" (czyli  wykasować z niego wszystkie metadane SVN). W serwisie Stack Overflow znalazłem gotowe polecenie mogące to wykonać:

Get-ChildItem $path -Recurse -Force *.svn |
    Where {$_.PSIsContainer} | Remove-Item -Recurse -Force

Co się jednak okazało? Wynik działania tego polecenia jest zgodny z oczekiwaniami, ale PowerShell przy okazji wypisuje komunikaty o błędach, co nie jest zbyt eleganckie.

PowerShell: Remove-SvnMetadata

Aby powyższe błędy nie występowały, proponuję usuwanie metadanych SVN wykonać przy pomocy dwóch kolejnych poleceń:

$itemsToRemove = Get-ChildItem $path -Recurse -Force .svn |
    Where {$_.PSIsContainer}
$itemsToRemove | Remove-Item -Recurse -Force

Ponadto, można te dwa polecenia opakować w skrypt, który dodatkowo jako parametr przyjmować będzie ścieżkę do katalogu, z którego chcemy usuwać metadane SVN. Aby to zrobić, należy utworzyć plik o nazwie np. Remove-SvnMetadata.ps1 o następującej treści:

$itemsToRemove = Get-ChildItem $args[0] -Recurse -Force .svn |
    Where {$_.PSIsContainer}
$itemsToRemove | Remove-Item -Recurse -Force

Żeby skorzystać ze skryptu, należy skopiować go do jakiegoś katalogu, do którego ścieżka znajduje się w zmiennej środowiskowej PATH (ja wykorzystuję folder C:\Users\BlaSOFT\scripts) lub po prostu w konsoli PowerShell przejść do katalogu zawierającego omawiany skrypt (wtedy przed nazwą skryptu muszą pojawić się znaki .\). Oto przykładowe wywołanie, za pomocą którego usuniemy z katalogu D:\Temp\20110507 i jego podkatalogów wszelkie metadane SVN:

Remove-SvnMetadata.ps1 D:\Temp\20110507

Chciałbym zaznaczyć, że zdaję sobie sprawę z istnienia opcji Export w samym SVN (svn export), ale pokazane przeze mnie rozwiązanie pozwala na wykonanie zadania wtedy, kiedy nie mamy pod reką narzędzia mogącego to zrobić przy pomocy SVN (lub kiedy z jakiegoś powodu nie chcemy tego robić w ten sposób).

Jak "naprawić" gadżet Power Manager po instalacji IE9

W poprzednim poście na tym blogu napisałem, że po instalacji IE9 na moim laptopie przestała działać przezroczystość w gadżecie od Power Managera firmy Lenovo. Minęło już trochę czasu, Lenovo wydało aktualizację tego programu, ale gadżet nadal nie jest wyświetlany poprawnie. Postanowiłem więc, że wezmę sprawy w swoje ręce i samemu naprawię błąd.

Po pewnym czasie spędzonym na eksperymentowaniu, znalazłem przyczynę problemu oraz opracowałem metodę naprawienia wyglądu gadżetu. Okazało się, że to nie jest błąd gadżetu, a Internet Explorera. Instalacja IE9 wprowadza w systemie następujący błąd. Przy dokładnie co drugim wykonaniu przypisania wartości do document.body.style.backgroundImage przestaje działać przezroczystość pliku PNG z tła gadżetu. Znając już dokładną przyczynę błędnego wyświetlania gadżetu, przygotowałem poniższą instrukcję krok po kroku, jak samodzielnie zmodyfikować gadżet w celu ominięcia wykrytego przeze mnie błędu:

  1. Utworzyć jakiś tymczasowy folder roboczy (w tym opisie będzie to D:\Temp)
  2. Skopiować do niego plik PWRMGR.JS, który znajduje się w folderze z gadżetem (u mnie jest to C:\Program Files\Windows Sidebar\Gadgets\PowerManager.Gadget\EN-US)
  3. Ze strony http://www.virtualconspiracy.com/content/scrdec/download ściągnąć narzędzie scrdec18.exe zapisać je w utworzonym w kroku 1. folderze roboczym
  4. W folderze roboczym uruchomić wiersz polecenia. Można to zrobić na przykład poprzez przytrzymanie klawisza Shift i kliknięcie prawym przyciskiem w obszarze okna folderu w Eksploratorze, a następnie wybranie opcji "Open command window here"
  5. Zdekodować plik PWRMGR.JS, wydając polecenie
    scrdec18 pwrmgr.js pwrmgr_dec.js
  6. Otworzyć w edytorze tekstowym (np. Notepad++) zdekodowany plik - pwrmgr_dec.js
  7. Znaleźć funkcję resizeView()
  8. Wewnątrz niej, każde wystąpienie ciągu
    BK.style.backgroundImage
    zamienić na
    BK.style.backgroundImage = BK.style.backgroundImage

    Będzie to trzeba zrobić w sumie w 3 miejscach. Następnie należy oczywiście zapisać zmiany w pliku.

  9. Z folderu roboczego usunąć plik PWRMGR.JS. Nastepnie zmienić nazwę pliku pwrmgr_dec.js na PWRMGR.JS
  10. Z katalogu roboczego skopiować plik PWRMGR.JS do folderu, z którego wzięliśmy jego oryginalną wersję (u mnie C:\Program Files\Windows Sidebar\Gadgets\PowerManager.Gadget\EN-US). Zezwolić na nadpisanie pliku.
  11. Gotowe! Aby zmiany były widoczne, należy jeszcze zrestartować proces sidebar.exe. Można to zrobić na przykład poprzez wylogowanie się z systemu i ponowne zalogowanie. Zamiast tego jednak proponuję uruchomić wiersz polecenia i wydać komendę
    tskill sidebar && "%programfiles%\Windows Sidebar\sidebar.exe"

Oczywiście, po wykonaniu powyższych czynności można usunąć katalog roboczy.

Internet Explorer 9 - pierwsze wrażenia

Od dzisiaj jest dostępna do pobrania najnowsza wersja przeglądarki internetowej firmy Microsoft. Jako że jestem zwolennikiem zawsze używania najnowszej wersji oprogramowania (o ile nie ma ku temu poważnych przeszkód), finalna wersja IE9 już zagościła na moim laptopie. Postanowiłem, że podzielę się swoimi pierwszymi wrażeniami. Na samym początku muszę zaznaczyć, że w chwili obecnej używaną przeze mnie na co dzień przeglądarką jest Opera. Ponieważ istnieje w Internecie wiele serwisów z którymi Opera nie współpracuje poprawnie, czasem jestem zmuszony skorzystać z innej przeglądarki - od jakiegoś czasu jest nią Internet Explorer. Ponadto, używam Internet Explorera do przeglądania stron Microsoftu (m.in. MSDN, Technet) ponieważ odczuwam, że są zoptymalizowane właśnie pod kątem tej przeglądarki. Po prostu mam wtedy gwarancję, że wszystko będzie działało, jak należy. Tak więc po chwili testowania moje spostrzeżenia na temat 9. wersji IE są następujące:

  • program uruchamia się i zamyka szybciej, niż IE8
  • karty otwierają się dużo szybciej (w przypadku IE8 na otwarcie nowej karty musiałem czekać ok. 1-2 sekundy)
  • zauważalna jest znaczna poprawa wydajności renderowania stron (dzięki nowemu, zoptymalizowanemu silnikowi wykorzystującemu akcelerację sprzętową) - np. imaginecup.com wyświetla się znacznie sprawniej
  • podoba mi się zreorganizowany interfejs użytkownika, w którym więcej miejsca przeznaczono na wyświetlaną stronę, mniej na elementy okna przeglądarki
  • przestała działać przezroczystość w gadżecie od ThinkPad PowerManagera :(

Oto, jak u mnie wygląda gadżet ThinkPad PowerManager po zainstalowaniu IE9:

PowerManagerGadgetBugScreenshot

Mam nadzieję, że niedługo Lenovo wyda odpowiednią poprawkę.

Muszę stwierdzić, że na pewno warto pobrać i zainstalować Internet Explorera 9. Nawet, jeśli IE nie jest naszą domyślną przeglądarką i rzadko go używamy, i tak warto to zrobić. Internet Explorer jest dość mocno zintegrowany z systemem Windows i często nawet nie jesteśmy świadomi tego, że niektóre aplikacje mimo naszej woli go wykorzystują (np. wbudowana "wyszukiwarka" Vuze'a). Krótko mówiąc, zawsze lepiej mieć IE9 niż IE8, chociażby ze względu na wyższy komfort użytkowania i większe bezpieczeństwo. A czy mnie nowy Internet Explorer przekonał do porzucenia Opery? Nie. Trochę mu jeszcze brakuje. Oto kilka przykładowych powodów (nie są to wszystkie, oczywiście):

  • IE9 nie ma opcji automatycznego odświeżania strony co zadany odcinek czasu
  • IE9 nie posiada odpowiednika funkcji Opera Link (wiem, że jest Live Mesh, ale nie pozwala on na synchronizację zakładek z żadną przeglądarką na moim telefonie wyposażonym w Symbiana)
  • IE9 nie posiada odpowiednika funkcji Opera Turbo

Mimo wszystko uważam, że Internet Explorer 9 to ogromny krok naprzód w stosunku do poprzedniej wersji. Z czystym sumieniem mogę polecić każdemu zainstalowanie tej aplikacji, ale na razie moją główną przeglądarką pozostanie Opera.

Jak korzystać z TFS 2010 bez uruchamiania VS 2010

Nie jest żadną tajemnicą, że Visual Studio 2010 ma bardzo wysokie wymagania sprzętowe, jak na środowisko programistyczne. Ze względu na ten fakt, korzystanie z VS 2010 na mało wydajnych komputerach (np. netbookach) może być bardzo utrudnione. Czasem jednak może wystąpić sytuacja, w której programista dysponuje jedynie słabym sprzętem, ale chce edytować pliki źródłowe projektu, przy tworzeniu którego wykorzystuje się Visual Studio 2010 oraz Team Foundation Server 2010.

W tym poście podaję sposób na to, żeby bez uruchamiania całego Visual Studio wykonać poniższe czynności:

  1. Pobrać z TFS najnowsze pliki projektu
  2. Zmodyfikować jeden z plików w edytorze wyposażonym w funkcję kolorowania kodu
  3. Wysłać zmiany do TFS

Aby to osiągnąć, tak naprawdę będzie trzeba wykonać następujące kroki:

  1. Utworzyć nową przestrzeń roboczą
  2. Pobrać najnowsze wersje plików projektu
  3. Dokonać operacji Check Out na wybranym pliku źródłowym
  4. Edytować plik
  5. Dokonać operacji Check In na wyedytowanym pliku

Co prawda nie będziemy uruchamiać Visual Studio, ale jednak VS 2010 musi być na komputerze zainstalowane. Ponadto, przy opisie kolejnych czynności przyjmuję, że konfiguracja jest następująca:

Adres TFS: http://tfs-server:8080/tfs
Nazwa kolekcji projektów: DefaultCollection
Nazwa Team Project: TeamProject1
Katalog w Source Control: $/TeamProject1

A więc zaczynajmy. Do interakcji z TFS będziemy używać tekstowego narzędzia tf, które jest dostarczone razem z VS. Najpierw uruchamiamy Visual Studio Command Prompt. Odpowiedni skrót można znaleźć w Menu Start.

Następnie, tworzymy jakiś katalog i do niego przechodzimy:

Teraz tworzymy nową przestrzeń roboczą TFS o nazwie TeamProject1Workspace:

tf workspace /new ^
  /s:http://tfs-server:8080/tfs/DefaultCollection/ TeamProject1Workspace

Może być wymagane wprowadzenie swojej nazwy użytkownika i hasła na serwerze TFS:

Następnie weryfikujemy parametry w oknie, które się pojawi i klikamy OK:

Możemy już pobrać pliki projektu:

tf get TeamProject1 /recursive

Zauważmy, że po pobraniu wszystkie pliki mają ustawiony atrybut "tylko do odczytu". Jest tak dlatego, gdyż nie powinno się ich modyfikować bez uprzedniego zrobienia Check Out. Przechodzimy do katalogu, w którym znajduje się plik, który zamierzamy edytować:

Wykonujemy Check Out:

tf checkout Program.cs

Teraz możemy otworzyć plik np. w darmowym i "lekkim" edytorze Notepad++ i rozpocząć edycję:

Po wprowadzeniu zmian do pliku, zapisujemy je i zamykamy edytor. Wysyłamy zmieniony plik do TFS, wykonując Check In:

tf checkin Program.cs

Gotowe!

Mam małą uwagę. Jeżeli po pewnym czasie będziemy chcieli ponownie zrobić Check Out na jakimś pliku, zmienić go i wykonać Check In, nie musimy znów tworzyć nowej przestrzeni roboczej. Wykorzystujemy po prostu tą utworzoną wcześniej. Warto jednak przed rozpoczęciem pracy pobrać najnowsze wersje plików przy pomocy polecenia tf get jakas_sciezka /recursive.

Jeżeli nie zamierzamy już w przyszłości pracować na danym komputerze przy plikach tego projektu, możemy usunąć utworzoną przestrzeń roboczą i wykasować katalog, który wykorzystywaliśmy:

tf workspace /delete TeamProject1Workspace

Parę słów na temat IT Challenge

Kilka dni temu pisałem o tym, że można już zapisywać się do najnowszej edycji IT Challenge. Tym, którzy nie słyszeli ani nie czytali nigdy nic na temat IT Challenge, chciałbym pokrótce przybliżyć ten temat.

IT Challenge jest jedną z kategorii konkursu Microsoft Imagine Cup, który należy do największych międzynarodowych konkursów technologicznych dla studentów, głównie z uczelni technicznych. IT Challenge ma za zadanie wyłonić najlepszych na świecie studentów wyróżniających się jak największą wiedzą dotyczącą produktów i rozwiązań koncernu Microsoft przeznaczonych dla branży IT. W bieżącej edycji są to m.in.:

  • Windows 2008 R2
  • Hyper-V
  • Exchange 2010
  • SharePoint 2010
  • Windows 7
  • System Center Operations Manager 2007 R2
  • System Center Configuration Manager 2007 R2
  • Forefront Threat Management Gateway 2010
  • Forefront Unified Access Gateway 2010
  • SQL Server 2008 R2
  • Office 2010
  • Office Communication Server 2007 R2
  • Windows Mobile

Konkurs składa się z 3 rund.

Runda 1 polega na zaliczeniu przynajmniej 1 z 8 testów sprawdzających wiedzę uczestnika, głównie w zakresie podanym wyżej. Test składa się 30 pytań wielokrotnego wyboru. Aby go zaliczyć, należy odpowiedzieć poprawnie na co najmniej 15 pytań. Tak naprawdę ta runda pełni rolę eliminacji. Przejście tej rundy to łatwizna w porównaniu z tym, co czeka uczestników dalej.

W Rundzie 2 zadaniem jest opracowanie własnego projektu kompletnej infrastruktury IT, spełniającej określone założenia i wymagania. Projekt ten uczestnik przedstawia przygotowyjąc dokument zwany po polsku analizą biznesową (ang. Business Case), w której opisuje przygotowane rozwiązania oraz uzasadnia, że to właśnie ten projekt jest jak najbardziej nowoczesny, funkcjonalny, bezpieczny oraz gwarantuje możliwie jak najnoższe koszty utrzymania (TCO - Total Cost of Ownership). Wymagania są wyspecyfikowane w Case Study, który jest publikowany w momencie rozpoczęcie 2. Rundy. Business Case będący pracą konkursową nie może zawierać więcej, niż 5000 słów.

Runda 3 to już finał. Zazwyczaj dostaje się do niego 6 osób, których Business Case po 2. Rundzie został oceniony najwyżej. Żelazna zasada mówi, że w finale może się znaleźć maksymalnie 1 uczestnik z danego kraju. To właśnie przez tą zasadę w poprzedniej edycji konkursu nie zostałem finalistą. Finał jest egzaminem praktycznym - to właśnie na tym etapie finaliści mają okazję zaprezentować swoje umiejętności w zakresie wdrażania oraz konfigurowania oprogramowania wymienionego wyżej. Uczestnicy łączą się przez Pulpit Zdalny z przygotowanymi przez organizatorów serwerami i wykonują rozmaite zadania konkursowe.

Mam nadzieję, że powyższy opis daje pewien ogólny pogląd na specyfikę kategorii IT Challenge. Więcej informacji można uzyskać, czytając zasady tegorocznej edycji IT Challenge lub zadając pytania na oficjalnym forum konkursu.

Rejestracja do IT Challenge 2011 ruszyła!

Dzisiaj nadszedł ten dzień, w którym zapisałem się do edycji 2011 konkursu Imagine Cup, w kategorii IT Challenge. Kilkanaście godzin temu, na oficjalnej stronie tej kategorii pojawił się mocno wyczekiwany przez niektórych przycisk "COMPETE", który powinien być widoczny dla zalogowanych użytkowników, którzy nie wyrazili jeszcze chęci wzięcia udziału w ITC. Mam nadzieję, że w tej edycji konkursu będę miał trochę więcej szczęścia, niż w poprzedniej i przynajmnniej przyjmą mnie do finału :).

Co to jest TIC i jak z niego korzystać?

Na chwilę obecną, nie jest łatwo znaleźć w Internecie informacje w języku polskim na temat TIC obecnego w m.in. w mikrokontrolerach ADuC842. W tym poście postaram się pokrótce przybliżyć ten temat, opisując podstawowe właściwości TIC-a.

TIC, czyli Time Interval Counter to specjalny mechanizm mikrokontrolera służący do odmierzania czasu. Rejestrem, który służy do kontrolowania TIC-a jest TIMECON zawierający następujące bity:

  • TCEN - Time Clock Enable Bit - Jeżeli bit ma ustawioną wartość 1, to cały czas zachodzą następujące zdarzenia:
    • Co 1/128 sekundy następuje inkrementacja wartości w 8-bitowym rejestrze HTHSEC, który liczy od 0 do 127.
    • W momencie przepełnienia HTHSEC następuje inkrementacja wartości w 8-bitowym rejestrze SEC, który liczy od 0 do 59.
    • W momencie przepełnienia SEC następuje inkrementacja wartości w 8-bitowym rejestrze MIN, który liczy od 0 do 59.
    • W momencie przepełnienia MIN następuje inkrementacja wartości w 8-bitowym rejestrze HOUR, który liczy od 0 do 23 lub od 0 do 255.
    Jeżeli bit ma ustawioną wartość 0, wszelkie zliczanie w TIC-u jest zatrzymane. Aby móc z poziomu programu ustawić wartości początkowe rejestrów HTHSEC, SEC, MIN oraz HOUR, bit TCEN powinien mieć wartość 0.
  • TFH - Twenty-Four Hour Select Bit - jeżeli bit ma ustawioną wartość 1, licznik HOUR liczy od 0 do 23. Jeżeli bit ma ustawioną wartość 0, licznik HOUR liczy od 0 do 255.
  • TIEN - Time Interval Enable Bit - Wartość 1 tego bitu oznacza włączenie licznika interwałów. Licznik interwałów to specjalny licznik, który pozwala tak zaprogramować mikrokontroler, aby co pewien określony przez programistę odstęp czasu następowało zgłoszenie przerwania z TIC-a. Kiedy licznik ten jest włączony, jego inkrementacja następuje po każdym przepełnieniu jednego, wcześniej wybranego spośród HTHSEC, SEC, MIN, HOUR licznika. Przerwanie jest zgłaszane wtedy, kiedy wartość licznika interwałów jest równa wartości 8-bitowego rejestru INTVAL (do którego można wpisać odpowiednią wartość). Należy także pamiętać, że w celu otrzymywania przerwań z TIC-a musi być ustawiony również bit EA w rejestrze IE oraz ETI w rejestrze IEIP2. Procedura obsługi przerwania z TIC-a zaczyna się pod adresem 0053H.
  • TII - TIC Interrput Bit - Bit ten jest ustawiany na 1 w momencie zgłoszenia przerwania przez TIC. Procedura obsługi przerwania powinna zawierać instrukcję zerującą ten bit.
  • ITS1, ITS0 - Interval Timebase Selection Bits - Te bity służą do wskazania licznika, po przepełnieniu którego ma następować inkrementacja licznika interwałów:
    ITS1 ITS0 Wybrany licznik
    0 0 HTHSEC
    0 1 SEC
    1 0 MIN
    1 1 HOUR
  • STI - Single Time Interval Bit - Bit ten służy do jednokrotnego odmierzenia pewnego okresu czasu. Jego ustawienie na wartość 1 powoduje zerowanie bitu TIEN przy każdym zgłoszeniu przerwania z TIC-a. To oczywiście sprawia, że kolejne przerwania nie będą zgłaszane, dopóki do rejestru TIEN nie zestanie wpisana 1. Należy pamiętać, że wartość bitu STI nie jest automatycznie zerowana po zgłoszeniu przerwania.

Uwaga! Powyższe bity nie są podane w takiej kolejności, w jakiej występują w rejestrze TIMECON.

Więcej informacji można znaleźć w dokumentacji opublikowanej przez producenta układu ADuC842: http://www.analog.com/en/analog-microcontrollers/analog-microcontrollers/aduc842/products/data-sheets/resources.html?display=popup

Czwarte miejsce, ale do finału się nie dostałem

21 kwietnia, Chris Amaris na oficjalnym forum Imagine Cup opublikował wyniki 2 Rundy IT Challenge 2010: http://archive.imaginecup.com/forums/t/13210.aspx

I co się okazało? Zająłem 4. miejsce na świecie, ale na udział w finale się nie załapałem. Stało się tak z powodu zapisu w regulaminie mówiącego, że do finału może się dostać co najwyżej jeden zawodnik z danego kraju. W tym roku niestety miałem pecha i na drugim miejscu znalazł się także Polak. Wyszło więc tak, że trzej zawodnicy z wynikiem niższym od mojego zostali przyjęci do finału dlatego, że akurat w ich kraju nie było nikogo lepszego. Trochę szkoda, ale niestety takie są zasady.

Faktem jest jednak, że biorąc udział w tegorocznej edycji IT Challenge w bardzo dużym stopniu poszerzyłem swoje horyzonty i wiedzę na temat IT oraz produktów, jakie firma Mircosoft oferuje przedsiębiorstwom. Muszę przyznać, że po głębszym zapoznaniu się z najnowszym oprogramowaniem z Redmond, zrobiło ono na mnie wielce pozytywne wrażenie. Ogromna funkcjonalność, bezpieczeństwo, niezawodność, łatwość w administrowaniu to cechy, których niejednokrotnie ciężko jest doszukać się w rozwiązaniach bazujących na tzw. wolnym oprogramowaniu.

Dzięki tegorocznemu udziałowi w IT Challenge zyskałem jednak jeszcze więcej. Wiem już, że posiadana przeze mnie wiedza i umiejętności dają mi realną szansę na osiągnięcie sukcesu w przyszłych edycjach konkursu. Studentem będę jeszcze przez przynajmniej 3 lata, więc mam co najmniej 3 szanse na znalezienie się na podium. Przez najbliższy rok zamierzam dalej pogłębiać wiedzę na temat IT i nie mam teraz żadnych wątpliwości, że ciężka praca nie idzie na marne.