What you gonna do when they come for you…

Lipiec 5th, 2009

Cóż… żmudna próba, koniec krótki…
O 23:30 czułam, że mogłabym wiele oddać za kromke spokojnego snu. Okropne zmęczenie dawało się we znaki, ale jakoś dotrwałam do magicznej godziny 2:20, która miała przynieść ukojenie.
I, faktycznie, przyniosła! Spałam do 7, przebudziłam się ledwo przytomna i ponownie usnęłam tym, dość nerwowym (o ile można tak określić poczucie robienia czegoś z przymusu – potrzeby organizmu) snem…

To był, jak to mawia Moje Słońce, “epic fail”.
Poddałam się.
I wiem jedno – Uberman w pojedynke jest dla masochistów.

Cała nadzieja w Everymanie :)

A dnia 4 nie było czyli „Uberman’s Epic Fail”

Lipiec 4th, 2009

Tak, nie udało się. Usnąłem o 3am, obudziłem się 9 godzin później. A powodów tej porażki jest kilka.

Pierwszym jest na pewno to, że uodporniłem się na budziki. Wszystkie. Nie chodzi tu o dzwonek ale raczej o sam fakt, że mogę go wyłączyć. I umiem to robić podświadomie, nawet się nie budząc. Nie działa na mnie nawet to, że coś muszę skończyć. Zostawiłem

Drugim jest to, że po najbardziej krytycznych drzemkach (3am, 7am) nie ma mnie kto obudzić. Telefon to nie jest to samo. Jak już pisałem wcześniej, byłem w stanie przez sen powiedzieć Mojej Jedynej™, że rezygnuję i idę spać dalej choć tak naprawdę tego nie chciałem.

Trzecim jest to, że godzina 7am jest krytyczna sama w sobie. Nawet wstając do szkoły, przy „dopingu” ze strony Mamy™, nie byłem w stanie sprawnie wstać.

Natomiast teraz przedstawię kilka wniosków, które wyciągnąłem z tych paru dni.

  • Jeśli ktoś potrafi sam zrobić Ubermana to chwała dla niego. Nazwę go oficjalnie moim bohaterem. Ja nie potrafię (powody wyżej). Dlatego najlepszą metodą na Ubermana jest robienie go w kilka osób (\geq 2) tak, by jedna osoba budziła drugą. Telefonicznie też można, tylko nie wolno mieć cholernie upartej podświadomości. Więc u mnie raczej odpada.
  • Jeśli się obudzisz to wstań. Wiem. Leżenie będzie najprzyjemniejszą rzeczą na świecie. Będziesz czuł się świetnie leżąc i zamykając oczy. Ale tak Ci się nie uda. Po prostu jak zadzwoni budzik – usiądź. I czym prędzej wstań z łóżka. Idź się napić jakiegoś zimnego napoju. Możesz wziąć zimny prysznic. Ale nie wracaj do łóżka. Naucz się nie myśleć przy wstawaniu – po prostu to zrób.
  • Tak jak napisała Moja Jedyna™ poniżej – nie wysilaj się za bardzo na początku. Organizm będzie niewyspany, osłabiony. Trzeba uważać na serce.
  • Miej przygotowany aparat. Sprawdź, kiedy wstaje Słońce. Wyjdź z domu. Idź porobić zdjęcia. Na zewnątrz, zaraz po wschodzie, jest po prostu pięknie, a byle park pod domem (nawet ten zaśmiecony i zaniedbany) staje się ogrodem życia i ciepła. Choćby dla takich chwil warto wstawać.
  • Jeśli ktoś nie może usnąć w czasie drzemek – polecam medytację. Pozwolę sobie (ponownie już) odesłać do mojego guru – PureDoxyk. Oto jej porada [1]:

    Here it is. The instructions look long because I’m trying to be clear about exactly how this works, but the whole exercise need only take a couple minutes. It may put you to sleep (it does me, about half the time), and it may not, in which case you should get up relaxed and refreshed when your timer goes off.

    1. Lay on your back, if possible, and relax your body completely. Close your eyes.

    2. Focus on your hands or feet (pick one). Try to feel them as alive, not just as objects. They have energy running through them — the electricity that constantly flies around every part of your body, via your nervous system* — see if you can sense it. (Chances are very good that you will be able to, because, well, it’s there — if you can’t sense it though, move on through the exercise and just keep trying; you’ll get it.)

    3. Pay as much attention to that feeling of internal energy as much as you can. You’ll notice that it gets stronger the more you focus on it; get it going as strongly as you can.

    4. Now, move your attention up your arms (or ankles). Feel the sensation of inner energy — like the thrum of a running computer (which, ironically I guess, is also powered by circulating energy around inside it) — moving with your focus. It may be less clear as it moves; don’t worry about that.

    5. Slowly move your attention all the way up to the top of your head, feeling that “running on power” sensation all the way. Then, as soon as you get the head going good, push your attention down your neck, into your chest, stomach, abdomen, hips, thighs, legs, and all the way down to your feet. Pause at your feet a minute and get the feeling back good and strong.

    6. Now, several times, run your attention up to your head and down to your feet — take it slow, and try to keep your focus sharp and keep feeling that sensation. (You will probably notice that the sensation of internal energy “sloshes” a bit, lagging somewhat behind the focus of your attention — this is normal. It is also, in fact, the source of the Chinese maxim, “Chi follows Yi”, which literally means “internal energy follows your attention/imagination”.) If you start to lose the feeling, you’re probably tensing up (which is a natural thing to do when dealing with an unfamiliar mental challenge, so don’t worry; just relax when you remember to and keep going).

    7. When you’ve done that a few times, stop and let things “settle”. Now try to feel the energy in your whole body, all at once. See if you can sense it as an unbroken field, rather than just in sections or threads. Relax and focus and see how thrummy and glow-y you can make yourself feel…and just hold it. Laying there in that state (brain-wave state or physical state or whatever it is) feels rather like laying in a tanning booth, or in the sun; it’s warm and both energizing and relaxing. If your mind starts to wander, don’t worry, just pull it back when you realize what it’s doing and go back to feeling that internal energy. Keep it up until your alarm says to stop!

  • Cóż… Otóż komp to zło. Ale nie samo w sobie – chodzi o brak ruchu. Gdy czujesz, że zaraz padniesz trupem ze zmęczenia wstań. Zrób coś. Poruszaj się (ale bez przesady – patrz wyżej). Siedzenie nie jest dobrą metodą na niewyspanie.
  • Rób dziennik snu. Jeśli Ci się uda, to będziesz w stanie powiedzieć, co można zmienić (owszem, można zmieniać, ale dopiero po ok. 1 miesiącu od rozpoczęcia. Tu odsyłam do gugli po więcej informacji.
  • Testy na szybkość to śmieszna rzecz, która jest też dobrym benchmarkiem tego, w jakim jesteś stanie. Testy, które jak robiłem, sprawdzają szybkość reakcji oko-analiza-ruch [2], zdolność zapamiętywania [3] i umiejętność koncentracji [4].
  • Załóż, że nie będziesz w stanie robić nic konstruktywnego. Nie jest dobrym pomysłem praca/studiowanie i jednoczesne zaczynanie Ubermana. Ale z drugiej strony zrób listę rzeczy, które chcesz zrobić. Jak już będziesz miał dużo czasu, nuda będzie najgorsza. A z listy zaczną znikać powoli rzeczy, na które normalnie nie miałbyś czasu…
  • Będzie coś, co przeszkodzi Ci w drzemce? Spotkanie? Stop. Nie traktuj tego, że „aaa raz ominę – nic się nie stanie”. Źle. You’re doing it wrong. Zrobisz tak raz, to zrobisz i drugi. A w procesie przystosowywania się do Ubermana, każde przesunięcie/ominięcie drzemki oznacza rozpoczunanie od początku. Jak to było? “[Uberman,] it’s something you have to tear your life down and rebuild around” [5]
  • 9/10 ludzi (lub więcej) nie kontynuuje Ubermana. Myślisz, że jesteś 1/10? Udowodnij. Chciałem tym tylko zaznaczyć, że jest ciężko. Bardzo. Przygotuj się na okres wyrzeczeń i zmuszania się do NIEspania.

Bibliografia:

[1] Co robić, gdy nie można usnąć w czasie drzemek? www.puredoxyk.com/index.php/2008/09/29/cant-fall-asleep-for-a-nap-try-this/
[2] Test na szybkość reakcji cognitivelabs.com/mydna_speedtest1.htm
[3] Gra Simon www.thepcmanwebsite.com/media/simon/
[4] Typing master test www.typingmaster.com.au/java/ttapplet.htm
[5] “[Uberman,] it’s something you have to tear your life down and rebuild aroundwww.puredoxyk.com/index.php/2006/07/17/day-10-new-day-1-uberman-everyman/

Dzien 2/3 – nadal schody

Lipiec 4th, 2009

Kontynuując moje odnotowane bazgroły:)

O 18:20 nieco spałam, ale później czułam się lekko senna. Ok. 22:00 byłam po prostu zmęczona.
22:20 – 22:40 kolejna porcja snu, ale już o 1:00 padam na twarz… Zaczęłam układać kuzynów do snu i…
W pewnym momencie film mi się urwał ;< Wstałam o 4:00 sama, bez budzika z poczuciem, że coś za długo śpię.
Cały czas wymęczona wytrwałam do 6:20. Ok. 7:30 stale niewyspany organizm… i kolejna nieprzewidziana drzemka do 9:00 (kolejny raz sama się obudziłam).
10:00 przynosi bardzo dobre samopoczucie. O 10:20 z przyczyn organizacyjnych przepada drzemka, ale nadal czuję się dobrze.
O 14:20 chwila przynosząca odrobinę snu. Już o 17:30 jestem śpiąca, dobrze, że zbliża się kolejna drzemka.
18:20 – 18:40 chyba spałam… O 19:30 czuję się rewelacyjnie. O 22:00 jestem zła, bo choć robię się lekko senna, to mam przeświadczenie, że po drzemce będę czuła się gorzej. Obawy się sprawdziły.

Wysunięte dziś wnioski:
1) Jeśli masz nie spać, to nie leż na łóżku. Dla organizmu to jak wydanie zgody na sen. Zmęczony organizm wykorzysta to szybciej niż zdążymy się zorientować…
2) Zaraz po drzemce NIE WOLNO robić sobie przebieżki! Chcąc się rozbudzić omal nie zeszłam w parku, mając już czarne plamy przed oczami. W sumie, pierwszy raz miałam czarne plamy przed oczami… Ciekawe uczucie, ale… Lepiej go uniknąć, zwłaszcza jeśli nie ma się “towarzysza” przy sobie.
3) Ogólnie wysiłek fizyczny przez pierwsze dni jest niewskazany. Organizm ledwo zipie.

Dzień 2 i 3. Czekając na Epic Fail…

Lipiec 3rd, 2009

Dzień 2.

18:48. Przed drzemką. Jestem raczej obudzony, nie mam problemów z koncentracją ale też nie czuję, że jestem u szczytu możliwości.
19:36. Po drzemce. Jest jak najbardziej ok, czuję się dobrze. Mam jedynie trochę zamglony umysł. Testy pokazują, że jest lepiej.

gra Simon [1]: 9 / 13 (im więcej tym lepiej)
typing test [2]: 248 znaków/min, 88% / 248 znaków/min, 96% (im więcej tym lepiej)
test na szybkość reakcji [3]: 246,5 ms / 236,8 ms (im mniej tym lepiej)

23:27. Po drzemce. Nie mogłem w ogóle dzisiaj usnąć. Może się po prostu wyspałem przez te 5 godz? Może… Tak czy siak raczej dobrze się czuję. Moje obecne wyniki:

gra Simon [1]: 5 – głupi błąd na początku (im więcej tym lepiej)
typing test [2]: 247 znaków/min, 92% (im więcej tym lepiej)
test na szybkość reakcji [3]: 252,0 ms (im mniej tym lepiej)

Dzień 2 – podsumowanie

Największy problem mam z uśnięciem. Nie licząc wczorajszych… dzisiejszych drzemek o 3am i o 7am. Tak, dobrze mi się spało zwłaszcza o tej 7am (tzw. dzisiejszy Oversleep™). Ech. Dzisiaj **muszę** wstać jak budzik przykaże.

Dzień 3.

Znowu nie udało mi się wstać o 7:20. Nie wiem w czym jest problem – o 5 rano mam super wyniki sprawnościowe (czas reakcji [3]: 230ms, reszty wyników nie pamiętam/nie zapisałem…)

Jutro przeprowadzę ostatnią próbę pobudki o tej głupiej siódmej. Jeśli się nie uda to odkładam Ubermana na za tydzień, bo organizm raczej nie wypoczywał przez ostatnie dni. Wolę dać sobie chwilę wytchnienia.

Na marginesie – na razie nie jest aż tak źle. Jestem raczej wyspany, już śpię w trakcie drzemek. Nie jest tak, że jestem kompletnie nie do życia. Po drzemce o 23:00 też jestem w nienajgorszym stanie (czas reakcji [3]: 243,4 ms), choć wyraźnie czuję zmęczenie.

Z drugiej strony – to dopiero 3. dzień, z czego każdego dnia miałem dość znaczny Oversleep™, więc nawet nie zbliżyłem się do upragnionych 2 godz. snu/dzień. No i rodzina w postaci Mamy™ zaczyna się buntować. Mam nadzieję, że mimo wszystko się uda bo jednak dodatkowy czas w ciągu dnia to super sprawa. No i poranki fajne są! Zwłaszcza rozmowa w sklepie w stylu „ – A prasa już jest?” „ – Nie, powinna przyjść za godzinę”… :P

PS. W tramwaju w TV był njus „naukowcy z blablabla udowodnili, że długość snu ma bezpośredni wpływ na serce i układ krążenia”. Zastanawiam się, jak to ma się do snu polifazowego, w którym – w założeniu – człowiek się wysypia. Hmmm zastanawiam się też z kim to skonsultować… Bo zwykły lekarz, który nie ma pojęcia o Ubermanach i innych Everymanach, pewnie powie, że za 5 dni umrę etc. Z drugiej strony – jak dopaść w Krakowie lekarza, który zajmuje się żeglarzami-solistami (tacy stosują właśnie sen polifazowy sami o tym nie wiedząc)? Ech, może w szpitalu wojskowym coś będą wiedzieć. Ale mam przyjść „aaa bo chciałem się skonsultować blabla”?

Po prostu na razie uznam, że nie słyszałem. Wiem, głupie rozwiązanie, ale nie mam jak tego zweryfikować.

Bibliografia:

[1] Gra Simon www.thepcmanwebsite.com/media/simon/
[2] Typing master test www.typingmaster.com.au/java/ttapplet.htm
[3] Test na szybkość reakcji cognitivelabs.com/mydna_speedtest1.htm

Pierwsze schody.

Lipiec 2nd, 2009

Od 2:20 do 2:40 miałam jedną z lepszych drzemek. Całkiem szybko usnęłam i bardzo łatwo mi się wstało.
Narodził się pierwszy konflikt z rodzicami. Jedyną osobą, która wie co robię i mnie wspiera jest Konrad, ale nie przeszkadza mi to (psychiczna odporność?). O 3:30 byłam w świetnej formie. Obejrzałam film, a zaraz po nim zabrałam się za czytanie książki (internet mi odłączono). O 5:30 martwiłam się, że przegapię drzemkę. Bynajmniej nie chciało mi się spać, a książka była wciągająca.
Na szczęście ok. 6 oczy zaczynają mnie boleć i organizm powoli słabnie.
Nawet nie wiem kiedy minęła drzemka od 6:20.
Oczywiście regularnie badałam, czy mój partner nie usnął, bo z tego co słyszałam czuł się bardzo kiepsko.
O 8:00 usłyszałam, że pada na twarz i nie da rady kontynuować drzemek. Poprosiłam go więc aby dał znać jak odeśpi.
O 10:20 kolejna drzemka + kilka alarmów. Wiedziałam, że będę musiała sobie poradzić sama i… Zaspałam.
O 11:30 sama (!!) się obudziłam z uczuciem “spałam zbyt długo, pora wreszcie wstawać”, co jest chyba dobrym objawem. Aż do kolejnej drzemki byłam wyspana, więc ciężko mi było zasnąć.
Od 16:00 dopada mnie lekkie zmęczenie…

Pierwsza porażka.

Lipiec 2nd, 2009

Dzień 2. Godz 14:15

Niestety. Po drzemce o 3 rano było źle, wstałem w złym stanie i tak było aż do 5. Wtedy to odszedłem od komputera i wiecie co? Od razu poczułem się lepiej. Nie wiem czy to kwestia magic hour czy fakt, że zacząłem się ruszać, ale było naprawdę ok. Czułem się b dobrze.

Aż do drzemki o 7.

Nie minęło kilka minut jak odpłynąłem. I do tego włączył mi się tryb „pier*iczę, nie robię” więc gdy Moja Jedyna™ mnie obudziła telefonem oznajmiłem, że olewam Ubermana i chcę się wyspać (ten fragment pamiętam jak przez mgłę). Wstałem o 12:30 zły na siebie. Bardzo zły.

I nie byłem wyspany. Mimo, że zaliczyłem dodatkowe 5 godzin snu. Jestem rozkojarzony, bardziej niż wczoraj. No ale nie poddam się, brnę dalej. W końcu to „tylko” pierwsze zaspanie.

A i warto powiedzieć, że z człowiekiem czasem dzieją się dziwne rzeczy jak jest niewyspany. Przez chwilę wydawało mi się, że wskazówka sekundowa poruszała się 5x szybciej niż powinna… Dziwne…

Dzień 2. Godz 15:30

Jeszcze przed drzemką, przeglądając ponownie książkę PureDoxyk [1], znalazłem parę linków, które mogą pomóc dokładniej mój stan psycho-motoryczny. Wyniki przedstawiają się tak (przed/po):
gra Simon [2]: 10 / 14 (im więcej tym lepiej)
typing test [3]: 245 znaków/min, 84% / 56 słów/min, 90% (im więcej tym lepiej)
test na szybkość reakcji [4]: 265,7 ms / 248,1 ms (im mniej tym lepiej)
W „typing test” w drugim podejściu zaznaczyłem przez przypadek, by podał wynik w słowach na minutę i nie dało się tego naprawić… Ale było lepiej. Tak, jak zresztą w pozostałych testach. No i przede wszystkim dobrze się czułem. Czułem mały mętlik w głowie i nic mi się nie chciało ale… Było lepiej. A testy albo to potwierdzają, albo po prostu stwierdzają, że nauczyłem się lepiej rozwiązywać te testy…

Bibliografia:

[1] O książce PureDoxyk www.puredoxyk.com/index.php/the-ubersleep-book/
[2] Gra Simon www.thepcmanwebsite.com/media/simon/
[3] Typing master test www.typingmaster.com.au/java/ttapplet.htm
[4] Test na szybkość reakcji cognitivelabs.com/mydna_speedtest1.htm

Zaczynam tego samego dnia…

Lipiec 2nd, 2009

Zaczynam tego samego dnia.

Wstalam o 11:10 po 9h snu (od 2), nieźle się wyspałam :)
O 14:20 nadeszła pora na pierwszą drzemkę podczas której, o dziwo (!), usnęłam. Co prawda, nie od razu, ale myślę, że jakieś 10 min. spałam. Wstałam o 14:45 bez problemu, wyspana.
Kolejna drzemka o 18:20. Tutaj było gorzej. Leżałam tylko bardzo zrelaksowana, ale niestety nie śpiąca. Ok. 20:30 poczułam dziwne odrętwienie “w głowie”, co trwało jakieś pół godziny… Zajęłam się czymś bardziej angażującym moją osobę i uczucie przeszło.
O 22:20 kolejna drzemka i podobnie jak poprzednio. Nie mogłam usnąć, a już koło 1 dopadło mnie zmęczenie.
Dzięki Bogu już o 2:20 kolejna drzemka.

Co do całego systemu, żeby nie było wątpliwości.
Niewiele osób wie o tym, co robię. Tylko te, które się pytały Konrada lub moi rodzice (domyślili się, że coś ze mną nie tak, skoro robię sobie drzemki w ciągu dnia). Sama kocham sen, nie mam z nim problemów. Nie potrzebuję też więcej czasu (tzn. nie żebym miała go za dużo, ale też nie ubolewam nad jego brakiem – luźne podejście).
Jedyną moją motywacją jest ukochana osoba, którą chcę wspierać w tym co robi (skoro już nie mogłam go od tego odwieźć).

2 osoby, 2 różne motywy, wspólny start.

A notatki robię, bo może się komuś przyda porównanie. Mi to na nic :)

Author: Anetka Categories: Dziennik snu, Sen polifazowy Tags:

Pan Uberman czyli o walce z samym sobą. Wstęp i Dzień 1.

Lipiec 2nd, 2009

Wstęp

Ktoś słyszał o śnie polifazowym? Nikt? Cóż, nie dziwię się. Ja jeszcze miesiąc temu też nic o tym nie wiedziałem.

Aż jednego dnia buszując po zakamarkach internetu…

Generalnie warto zacząć od przejrzenia [1]. W skrócie – da się spać 2 godziny dziennie. Ale nie w trakcie jednej sesji, zamiast tego śpi się kilka razy krócej. Np taki Fuller…

(…) Buckminster Fuller advocated his “Dymaxion Sleep,” a regimen consisting of 30 minute naps every six hours, which he said he’d followed for two years.

Ja jednak skorzystałem z porad PureDoxyk, kobiety-pioniera w kwestii snu polifazowego. Warto zacząć od poczytania jej blogu [2] a także… zdobycia książki jej autorstwa pt. Ubersleep (Amazon, Empik albo inny demonoid). Im więcej się wie na początku tym będzie łatwiej.

Ja stosuję tzw. system Ubermana. Drzemki po 20min mam co 4 godziny, co daje w sumie 2 godzinny dziennie! Oczywiście jest to pewien problem, bo drzemki muszą być **dokładnie** co 4 godziny. Poślizg nie powinien być większy niż 5min. Po więcej odsyłam ponownie do [2].

Dzień 1

Wstałem o 13:30 po 10 godzinach snu (sic!). I byłem bardzo niewyspany, głowa mi ciążyła a umysł był bardzo zamglony, nie mogłem się skupić. Pierwsza drzemka o 15.00 wypadła o dziwo dobrze – nie mogłem usnąć (patrz: [2.1]) ale już zaczęły powstawać w mojej głowie obrazy (sny?) mimo, że pozostawałem świadomy. Stałem się nieco bardziej obudzony po 17 min snu co jest chyba poprawnym objawem. Drzemka o 19 była też ok. Najgorsza była ta o 23 – w ogóle nie mogłem się zrelaksować a wstałem bardziej zmęczony niż się kładłem… Ech.

Gorzej teraz. Jest 2:25 rano, do następnej drzemki 35 min. Jestem wyraźnie zmęczony, mam ogromną ochotę iść spać… Ech. Chyba pójdę się umyć lub poćwiczyć coś. Ale mam obawy co do drzemek – czy będę w stanie wstać?

A najgorsze ponoć jeszcze przede mną… Jeśli przetrwam do końca tyg to będzie dobrze.

Bibliografia:

[1] Angielska wiki – co nieco na temat en.wikipedia.org/wiki/Polyphasic_sleep#Scheduled_napping_to_achieve_more_.27wake-time.27 (EN)
[2] Blog *Transcendental *Logic prowadzony przez PureDoxyk – www.puredoxyk.com/ (EN)
[2.1] Gdy nie można usnąć… www.puredoxyk.com/index.php/2008/09/29/cant-fall-asleep-for-a-nap-try-this/

Vim a programowanie konkursowe. Kopie zapasowe.

Maj 7th, 2009

Czasem małe udogodnienia robią różnicę. Oto mój plik konfiguracyjny .vimrc:

1
2
3
4
5
6
set cindent shiftwidth=4 number
syn on
map <F5> o/*dbg*/printf("\n");^]4hi
map! <F5> ^]o/*dbg*/printf("\n");^]4hi
map <F9> :%s:/\*dbg\*/\ze[^/]:\0//:g^M
map! <F9> ^]:%s:/\*dbg\*/\ze[^/]:\0//:g^Mi

^M oznacza Ctrl-V Enter
^] oznacza Ctrl-V Esc

Szybkie tłumaczenie: w linijkach 1-2 ustawiam odpowiednie „wcinanie” wierszy, głębokość wcięć, numerowanie linii i wymuszam kolorowanie składni. W linijkach 3-4 umieściłem makra dodawania „debugującego printfa” a w linijkach 5-6 umieściłem makra usuwania wszystkich „debugujących printfów”.
Co to są „debugujące printfy”? Oczywiście służą do wyrzucania dodatkowych informacji w czasie działania programu. Ponieważ czasem dodaje się ich dużo, to makro pozwala zaoszczędzić dobrego kawałka pisania – wystarczy F5 a vim sam go doda a ponadto ustawi kursor w odpowiednim miejscu. No i nie sposób zapomnieć o usunięciu jakiegoś „debugującego printfa” – wystarczy wcisnąć F9 by usunąć wszystkie.

Kolejne udogodnienie. A właściwie zabezpieczenie – skrypt tworzący kopie zapasowe plików. Jest prymitywny, jedyne co umie to stwierdzić, że plik nie uległ zmianie od ostatniego czasu i nie należy robić następnej jego kopii. Poniższy kod wstawiamy np. do pliku .bkp_scr:

#!/bin/bash
 
p="`pwd`"
d="`date +%D_%H:%M:%S`"
cd ~konrad/oi
for i in `ls *.cpp`; do
        if test ! -d .bkp/$i; then
                mkdir .bkp/$i;
        fi;
        if test ! -f .bkp/$i/.md5 -o "`cat $i | md5sum - | cut -c 1-32`" != "`cat .bkp/$i/.md5`"; then
                cp $i .bkp/$i/$i__$d;
                cat $i | md5sum - | cut -c 1-32 > .bkp/$i/.md5;
                echo [$d] update $i l:`cat $i | wc -l` md5:`cat .bkp/$i/.md5` >> .log;
        fi;
done
cd $p

Potem wydajemy komendę crontab -e i dopisujemy
* * * * * /home/jakas_nazwa_uzytkownika/jakas_sciezka/.bkp_scr
Po tym zabiegu w katalogu .bkp/nazwa_pliku/ znajdować się będą kolejne kopie zapasowe plików *.cpp wykonywane co minutę. Warto dodać, że należy pamiętać o częstym zapisywaniu pliku albo o wpisaniu:
:set updatetime=30000
:au CursorHold *.cpp w

co będzie zapisywać plik po 30sek bez wpisania czegokolwiek.
Nie wiadomo, kiedy taka kopia uratuje naszą ciężką pracę…

Author: Konrad Categories: Programowanie Tags: ,

Generator liczb pierwszych

Kwiecień 29th, 2009

Dzisiaj krótko dla niedowiarków myślących, że nie ma generatorów liczb pierwszych :)

Do rzeczy: a_1=7,\quad a_{n+1}=a_n+\text{nwd}(n,a_n),\quad b_{n+1}=a_{n+1}-a_n.
Tak zdefiniowany ciąg b_n generuje wyłącznie jedynki i liczby pierwsze (co udowodnił Eric S. Rowland).

Skopiujcie poniższy kod do pliku (np pierwsze.bc)

cat << EOF | bc -q -l
scale=0;
define mod(a,b) {
    return a-(a/b)*b;
}
define gcd(a,b) {
    if(b==0) return a;
    return gcd(b,a%b);
}
ap=7;
ac=8;
define licz(x) {
    for(i=2;i<x;++i) {
        if(mod(i,50000)==0) {
	    print "\n### ";
	    print i;
	    print " ###\n";
        }
        b=ac-ap;
        if(b!=1) {
	    print b;
	    print "\n";
	}
	ap=ac;
	ac=ap+gcd(i,ap);
    }
}
licz(1000)
quit
EOF

Nadajcie mu prawa wykonywania (chmod a+x pierwsze.bc) i odpalcie poleceniami:
time ./pierwsze.bc | tee pierwsze_out
cat pierwsze_out | grep -v "###" | grep -ve ^0$ | sort -g | uniq


Teoretycznie wszystko super. Praktycznie jednak jest to metoda bardzo nieefektywna. Czas działania to O\left(\sum_{i=1}^n \log_2 (i+a_i)\right)=O\left(\log\prod_{i=1}^n (i+a_i)\right), pamięć udało się zredukować do \Theta\left(1\right). licz(1 000 000) wykonywało się przez ~50sek (P4 2.66, 1Gb RAM) i wygenerowało tylko 29 wyrywkowych liczb pierwszych (największa: 623261). Natomiast licz(10 000 000) w czasie 9:30 min dało 37 unikalnych liczb pierwszych (największa: 9976217)…

Warto zauważyć, iż prosty program (zamieszczony poniżej) wyznaczający liczby pierwsze metodą baaaardzo prymitywną (w czasie \Theta\left(n^{\frac{3}{2}}\right), nawet nie sitem Eratostenesa) wyznaczył wszystkie 664579 liczby pierwsze do 10 000 000 w czasie ~15 sek…

#include <cstdio> 
#include <cstdlib> 
#define DEF_RANGE_START 2 
#define DEF_RANGE_END 10000000 
unsigned long n=17,i=3,l0=DEF_RANGE_START,l=DEF_RANGE_END; 
 
int main(int argc, char* argv[]) 
{ 
  switch(argc) { // jeśli odpalono z argumentami
    case 2: l=atoi(argv[1]);  // jeden argument - górne ograniczenie
            break; 
    case 3: l0=atoi(argv[1]); // dwa argumenty - zakres
            l=atoi(argv[2]); 
            if(l0>l) l^=l0^=l^=l0; 
            break; 
  } 
  n=l0; 
  if(n==2) { 
    printf("%d\n",n); 
    n++; 
  } 
  for(;n<=l;n++) 
  { 
    if(n%2!=0) { 
      for(i=3;(i*i)<n;i+=2) { 
        if(n%i==0) { 
          break; 
        } 
      } 
      if((i*i)>n) { 
        printf("%d\n",n); 
      } 
    } 
  } 
}



Bibliografia:
[1] http://en.wikipedia.org/wiki/Formula_for_primes#Recurrence_relation
[2] http://www.cs.uwaterloo.ca/journals/JIS/VOL11/Rowland/rowland21.html
[3] forum mat-fiz ‘06-’09 w II LO w Krakowie

Author: Konrad Categories: Matematyka, Programowanie Tags: ,