poniedziałek, 30 listopada 2009

Zaznaczanie prawego marginesu w Visual Studio

Jednym z dziwniejszych wymagań standardu kodowania jest maksymalna długość wiersza ograniczona do 80 (lub nawet 72) znaków. Ciężko jest to utrzymać, jeżeli nazwy klas mają ponad 20 znaków, nazwy metod po kilkanaście, nazwy zmiennych ok. 10 symboli, a kod piszemy na 5. poziomie zagnieżdżenia (czyli 5 * 4 = 20 spacji z przodu)...

Wymaganie to ma sens tylko w 2 przypadkach:
1. Ktoś pisze kod w vi na terminalu.
2. Ktoś drukuje kod i go potem czyta, tak jak niektórzy wykładowcy na studiach.

Niestety ostatnio natrafiłem na przypadek nr 2 przy pisaniu kodu w C++. Postanowiłem wykorzystać rozwiązanie pośrednie, czyli zaznaczyć sobie w edytorze Visual C++ prawy margines na 80 kolumnie kodu. Np. w NetBeans 6.7 taka możliwość jest w Tools -> Options -> Editor -> Right Margin.

Niestety, w dowolnej wersji Visual Studio uruchomienie podobnego ficzera nie jest takie oczywiste Udostępniana jest tylko opcja "Word wrap", która zawija tylko wizualnie kod, kiedy osiągnie on krawędź ekranu... (btw: u mnie to 142 kolumna, a u Was?)

sobota, 28 listopada 2009

Szybki brązowy lis...

"The quick brown fox jumps over the lazy dog" to zdanie, które bardzo często pojawia się przy przeglądaniu dokumentacji funkcji bibliotecznych dla stringów dla dowolnego języka programowania.
Ale czemu akurat to zdanie?

czwartek, 26 listopada 2009

Premiera Super Mario Bros. 3

Super Mario Bros. 3 na NES to jedna z najlepszych gier na tą konsolę, jeżeli nie najlepsza (http://www.sydlexia.com/nes100/nes01.htm). Jest też jedną z najlepiej sprzedających się jak i jedną z najbardziej wyczekiwanych.
A sposób, w jaki została zaprezentowana światu też należy do najciekawszych ;)

wtorek, 24 listopada 2009

F# - wyniki gimnastyki

Ok, rozwiązań do F-szarpowych ćwiczeń z posta http://wojtek-m.blogspot.com/2009/10/f-i-gimnastyka-umysu.html nikt nie umieścił, więc pora na mnie :P

1. Własna funkcja zwracająca długość listy (rekurencja ogonowa).

Wersja bez rekurencji ogonowej jest dość oczywista:

let length l =
    match l with
    | [] -> 0
    | h::t -> (length t) + 1

Rekurencję ogonową można osiągnąć z użyciem drugiego parametru, który będzie zliczał długość dotychczas przejrzanej listy - początkowo ma on wartość 0. Jeżeli dojdziemy do końca listy, zwracamy wartość tego parametru. Dzięki temu nie wykorzystujemy w ogóle stosu wywołań funkcji - działamy jak iteracyjna pętla ;)

let length l =
    let rec length l acc =
        match l with
        | [] -> acc
        | h::t -> length t (acc + 1)
    in
        length l 0

niedziela, 22 listopada 2009

Othello i komputery

11 maja 1997 roku opracowany przez IBM superkomputer Deep Blue pokonał aktualnego mistrza świata w szachach, Garry'ego Kasparova 3.5 do 2.5. Deep Blue składał się z ponad 500 procesorów (większość z nich była specjalnymi procesorami szachowymi, które były opracowywane od 1985 roku) i był programowany przez cały sztab ludzi.
Niecałe 4 miesiące później, a dokładnie 7 sierpnia 1997 roku...

piątek, 20 listopada 2009

CrypTool 2 Beta

Ostatnio natrafiłem na ciekawe narzędzie do nauki kryptografii - dodatkowo wykorzystujące mocno Windows Presentation Foundation ;)
CrypTool 2 jest na razie w fazie beta (i to widać) ale już teraz warto się zapoznać z jego możliwościami ;)

środa, 18 listopada 2009

Prosty wielokąt (NWERC 2009)

Po NWERC 2009 żałowałem, że nie udało nam się wklepać jeszcze jednego zadania - "Prostego wielokąta", a miało to zadanko wiele drużyn. Treść zadania jest dostępna tutaj: http://www.nwerc.eu/results/nwerc09.pdf (strona 19).

Jak widać nawet historyjki nie chciało się wymyślać ;) A do rozwiązania wystarczył jeden prosty pomysł, którego nam zabrakło...

poniedziałek, 16 listopada 2009

Po NWERC 2009

Tydzień temu w weekend pociłem się na North Western European Regional Contest w Norymberdze, jako dodatek do teamu reprezentującego duńską uczelnię ;) Wyposażeni od początku zawodów w normalny układ klawiatury (en-us) zrobiliśmy 3 zadania i zdobyliśmy 23. miejsce (czyli takie samo jak NCPC, gdzie byli tylko reprezentanci krajów nordyckich). Wśród duńskich uczelni zajęliśmy miejsce drugie, czyli o jeden lepiej niż na NCPC :)

Duńczycy z DTU, którzy dostali 10000 DKK za pierwsze miejsce w Kopenhadze nie zrobili ani jednego zadania. Oddawać kasę tępaki ;)

sobota, 14 listopada 2009

Another World - edycja kolekcjonerska

Nie tak dawno pisałem o re-edycji "The Secret of Monkey Island: Special Edition", a nie dawno znalazłem kolejnę re-edycję kultowej gry z początku lat 90-tych.
"Another World", z okazji 15-lecia powstania gry, zostało wzbogacone o grafikę hi-res oraz podkład dźwiękowy. Również tła do plansz są teraz o wiele bardziej szczegółowe.

Demo edycji kolekcjonerskiej można pobrać z oficjalnej strony gry: http://www.anotherworld.fr/anotherworld_uk/

czwartek, 12 listopada 2009

NK Talk i śledzik - dalej usuwamy

Jakiś czas temu kochana nasza-klasa wprowadziła własny komunikator, NK-talk :) O dziwo, tym razem da się to wyłączyć w opcjach prywatności, w przeciwieństwie do śledzika. Postęp.

Ale jeżeli ktoś (jest ktoś taki?) nadal nie chce ryby, ale chce mieć włączone NK talk, to Greasemonkey ma z tym problem... Ale jest rozwiązanie ;)

wtorek, 10 listopada 2009

Kolejne demo od lft

Dzisiaj kolejne demo na mikrokontrolerze - tym razem w wykonaniu tylko lft (członka szwedzkiej grupy Kryo, wspomnianej miesiąc temu). Tym razem również z grafiką! :)



Low fidelity, high quality ;)

niedziela, 8 listopada 2009

Liczby prawie całkowite

Weź do ręki swój kalkulator i wpisz

sin 11

Wynik bardzo bliski -1, prawda? ;) Wynika to z tego, iż π ≈ 22/7.
O dziwo takich liczb "prawie całkowitych" jest o wiele więcej.

piątek, 6 listopada 2009

Klawisz TAB w linii komend Windows XP

Jakiś czas temu (chyba od SP3, ale głowy nie dam sobie uciąć) natknąłem się na problem z linią komend (cmd) w Windows XP. Otóż auto-uzupełnianie przestało działać :/ Klawisz TAB wpisywał znak tabulacji - nie takiego zachowania oczekujemy ;)

Automatyczne uzupełnianie nazw plików i katalogów to prawdopodobnie największe udogodnienie w pracy pod konsolą i chyba podstawowy składnik obecnie każdej dystrybucji linuksa. Przez pewien czas obchodziłem ten problem w Windowsie, ale w końcu postanowiłem go rozwiązać ;)

środa, 4 listopada 2009

Kampania reklamowa Intela

Kampania reklamowa Intela "Sponsors of Tomorrow" koncentruje się na ludziach obecnych w firmie (i samej firmie) a nie na jej produktach. Pierwsze 2 spoty zostały opublikowane w maju br., a po wakacjach kampania jest kontynuowana. 6 nowych spotów różni się końcówką - więcej pracownic zostało wysuniętych na przód ;)

Te spoty są po prostu zabawne - zresztą zobaczcie sami ;)

poniedziałek, 2 listopada 2009

I arcymistrz nie zauważy...

Pojedynki arcymistrzów szachowych (a zwłaszcza mistrzów świata) z programami i całymi komputerami szachowymi zawsze przyciągały uwagę.
W odbywających się w listopadzie 2006 roku zawodach World Chess Challenge: Man vs. Machine świeżo upieczony niekwestionowany mistrz świata (wcześniej był "tylko" klasycznym mistrzem świata) Vladimir Kramnik stanął w szranki z komputerem szachowym Deep Fritz. Pierwsza partia zakończyła się remisem, natomiast druga partia była wielkim zaskoczeniem.