Month: April 2014

Nancy nie pokazuje plików z katalogu /Scripts

Posted on

Domyślna konfiguracja Nancy zwrócić 404 po próbie “localhost://Scripts/angular.js” (mimo, że plik tam jest).

Każdy framework ma jakieś reguły które pliki pokazywać a których nie (ASP.MVC nie pokaże nam pliku home.cshtml) i ma to sens.

W Nancy jest to też dobrze wyjaśnione Managing Static Content. Mały problem jest że na górze tej strony jest

TL;DR: stick stuff in /Content .. done.

Zrobiłem tak w jednym/drugim projekcie bo były proste, niestety zrobiłem też tak w kolejnym, który już nie był prosty. Problem pojawi się zawsze gdy dociąga się biblioteki Nugetem. Wtedy wszystkie JavaScripty lądaja właśnie w /Scripts, analogicznie style w /Styles itd. Lepiej tych plików stąd nie ruszać, ze względu na przyszłe aktualizacje tych bibliotek.

Na Managing Static Content trzeba poczytać dużo niżej aby poczytać jak włączyć pokazywanie plików ze /Scripts:

public class Bootstrapper : DefaultNancyBootstrapper
{
    protected override void ConfigureConventions(NancyConventions conventions)
    {
        base.ConfigureConventions(conventions);

        conventions.StaticContentsConventions.Add(
            StaticContentConventionBuilder.AddDirectory("/Scripts", "/Scripts")
        );
    }
}
Advertisements

.gitignore problem. Dobry pattern a git nie ignoruje?

Posted on

Wiele (zbyt wiele) razy już zdażyło mi się głowić co jest nie tak z patternem, którym próbuje ignorować określone pliki w Git. Chodzi dokładnie o wpisy w pliku .gitignore. Przykładowo


**/App_Data/*

powienien nie widzieć żadnych zmian w katalogu App_Data. Jest tylko jedno “ale”. .gitignore dotyczy się tylko plików, które jeszcze nie zostały wcomitowane. Jeśli już jakim plik jest w repo, to nie dotycza go reguły z .gitignore.

Trzeba więc w takim wypadku najpierw wyrzucić te pliki z repozytorium albo wyedytować historię jakby ich nigdy nie było.

GetTempPath()

Posted on

Przypomniało mi się jak to było klepać pod desktopa 😉 Kiedyś więc może nie oddam wszystkiego jak trzeba ;P

Bohaterowie odcinka:

System.IO.Path.GetTempFileName(); // C:\Users\krzysiek\AppData\Local\Temp\tmpBA79.tmp
System.IO.Path.GetTempPath(); // C:\Users\krzysiek\AppData\Local\Temp\

Pierwsza Path.GetTempFileName() to wbudowana funkcja, która zwróci nam ścieżkę do loswego (ale nie istaniejacego) pliku w systemowym katalogu Temp. Korzystam z tego nie gdy musi to być persistent jak np do bazy danych czy do pliku xml który zapisuję lokalnie, lecz gdy trzeba wpisać coś do pliku na jakiś czas. Te dane mogę być później przeczytane, lub na przykład zewnętrzny tool jest tak zrobiony że będzie pisał tylko do pliku. Jeśli program się wykrzyczy, oczywiście tracimy informacje o tym pliku. “Te” informacje w tym pliku już nam się do niczego nie przydaja trzeba od nowa wystartować program. Bardzo dobrze, że przynajmniej nie śmieci nam w katalogu aplikacji.

Druga funkcja Path.GetTempPath() jest już mniej używana. Chyba tylko wtedy, gdy mamy dużo plików i jakiś pomysł jaka ma być ich struktura. Np “…\Temp\MyApplication\file1.xml”, “…\Temp\MyApplication\file2.xml”, “…\Temp\MyApplication\file3.xml”, … I chcemy móc tam spojrzeć gdy coś debugujemy po fakcie. Tak sobie teraz jednak myślę, że może jednak powinno to zostać w inny sposób rozwiazane?

Perpetuum mobile kotem

Posted on Updated on

1. Bierzemy kota (nie za starego)
2. Przygotowujemy pajdę chleba (nie musi być świeży, raczej nie bułka)
3. Smarujemy pajdę masłem (nie margaryną) może być grubo
4. Przywiązujemy pajdę do kota
Ważne: pajda musi znajdować się na grzbiecie kota, częścią suchą stykać się z jego grzbietem
5. Całość zrzucamy z wysokiego drzewa, ewentualnie balkonu.

Wnioski:
A. Kot zawsze spada na cztery łapy.
B. Posmarowana kromka chleba spada zawsze masłem na dół
Napęd antygrawitacyjny gotowy.

Tydzień później:
Drogi kolego P.
ponieważ do testów używam sporych rozmiarów kocura , zakupiłem chleb okrągły, aby pajda była stosunkowo jak największa i użyłem masła xxx, aby efekt był jak najbardziej okazały zrzuciłem kota z 4 piętra i :
kot ledwo przeżył bo spadł na cztery łapy i 2 z nich sobie zwichnął – napęd antygrawitacyjny nie zadziałał, a przyczyną tego jest fakt, że w trakcie lotu wygłodniały kocur zlizał powłokę antygrawitacyjną czyli masło.

I teraz nasuwają się pytania:
1. czy jeśli zaknebluje tego kota, to czy z fizycznego punktu widzenia nic się nie zmieni?
2. skoro kot po upadku zwichnął 2 łapy to czy można go stosować w kolejnych próbach (wszak jeden z warunków brzmi: – kot spada zawsze na 4 łapy)

Szanowny S:
1. Proponuję przed eksperymentem nakarmić kota.
2. Kot nadal powinien spaść na 4 łapy, z uwagi na fakt, że je nadal posiada. zwichnięte, ale posiada.
3. 4 piętro to trochę za dużo. Obiekt badań może się popsuć na dobre, w razie niepowodzeń.

P:
– ok. teraz mi Pan pomógł.
ale i tak pewnie kot zliże masło. a może go usztywnię aż po kark kijem?

S:
– proszę posypać solą. Znaczy się masło, nie kota….

P:
– nie, bo może to zepsuć powłokę antygrawitacyjną – tzn. zmieni jej molekułę.

S:
– myślałem o tym. Fakt. Tylko czy kij przymocowany do karku nie zmieni struktury kota? Czy to nadal kot, czy już kot z kijem? bo kot z kijem może nie spadać na 4 łapy.

Z:
– pozwolicie panowie że się wtrącę. Mam w domu 3 koty, postaram się sprawdzić (w sposób bezbolesny dla kotów), czy ta teoria ma jakiekolwiek szanse bytu. Generalnie jest OK, ale praktyczne wykorzystanie kotów może być trudne – sam sposób montażu kotów jest trudny – wymyśliłem cos takiego: łączymy 3 koty brzuchami – tak ze łapami się oplatają – przez to otrzymujemy kotowalec o rozstawie łap 120°, miedzy koty wkładamy kij od szczotki (odpowiednio skrócony). Wynik: koty powinny lewitować na malej wysokości, kij nabiera dużych obrotów, po zamontowaniu na kijku zębatki i podpięciu do tego generatora mamy małą elektrownie o napędzie antygrawitacyjnym.

P:
– co do elektrowni – jest mały problem – kij musi być oblepiony ziemią, a do kotów przymocowane kromki chleba z masłem, oczywiście masłem w kierunku kota – to po to aby rotujące koty nie opadały na rdzeń. Ale reszta zdaje się gra…

S:
– można inaczej – wziąć mercedesa (starego, żółtego z zatartym silnikiem), odkręcić koła, a do podwozia przymocować 40 wypreparowanych kocich grzbietów. Można spróbować z żywymi kotami, jednak wycie stada wściekłych powiązanych kotów na pewno miałoby negatywny wpływ na komfort jazdy. Należy również
wymontować kierownicę i zainstalować joystick. Będzie to sterowanie tzw. “fly by wire”. Drogi są dwie – albo po dwa zewnętrzne grzbiety w każdym nadkolu będą posiadały nogi i specjalny napęd elektryczny po wychyleniu
drążka przez kierowcę obróci odpowiednio prawe lub lewe grzbiety z siłą proporcjonalną do nacisku na drążek. Inne wyjście to ukrycie w nadkolach dużej ilości kromek chleba swobodnie opuszczanych z nadkola. Co Panowie na to?

Z:
– albo jeszcze: bierzemy garść ziemi, oblepiamy ją masłem i owijamy nią kota – od spodu. Potem smarujemy wierzch kota masłem, posypujemy delikatnie ziemią i naciągamy kolejnego kota, i tak dalej i tak dalej…
Jak przekroczymy masę krytyczną – będziemy mieli czarną dziurę.