Pokazywanie postów oznaczonych etykietą studia::Fizyka. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą studia::Fizyka. Pokaż wszystkie posty

środa, 19 września 2007

Lol

(09:15:50 PM) Krzyś: czestotliwosc = 2pi/czesosc?
(09:15:32 PM) GG: Coś jak
(09:17:13 PM) Krzyś: nie,
(09:17:16 PM) Krzyś: jakos inaczej

piątek, 10 sierpnia 2007

Mapowanie

Programowanie ma zadziwiająco mało struktur:

Singleton (jeden obiekt):
.

Lista(Szeregowo ustawione obiekty różnych typów):
...........................

Tablica(Albo lista list):
...........................
...........................
...........................

Drzewo (Z bierzącego węzła jest dostęp do N węzłów potomnych):
.
. .
. .
. .

Graf (Jak wyżej ale węzeł może być swoim węzłem potomnym).

Naturalną strukturą dla obiektu jest graf. Widać to szczególnie w javie*, ale i cpp ma podobną. Dla języków niskiego poziomu naturalną strukturą jest lista.

Można mapować jedne strukturę na drugą, ale to zawsze jest robota. Mapowanie drzewa na ścieżkę od jednego węzła do drugiego (ale ścieżkę przepływu danych, która nie jest ścieżką po gałęziach), zajęło mi z pół godziny roboty i parędziesiąt linijek mojego dość oszczędnego kodu... Mapowanie np. Vectora na tablicę to jest jedna linia kodu..

I teraz co za debil wymyślił SQL? Albo inaczej co za debil wymyślił mapowanie obiektów na SQL...
To jest tak nienaturalna struktura. Nie da się wrzucić obiektu w tablicę. Chyba że statycznego (ale takie są nudne i nieprzydatne). Żeby to miało jakieś wydajnościowe uzasadnienie... Ale nie! Sql nie jest bardzo wydajny, a jeśli jest więcej czasu traci się na obsługę mapowania Baza Danych <-> Obiekt niż się oszczędza na odczycie danych....

Doh!!

Bo mapowaniem Baza Danych <-> język ją przetwarzający zajmuje się serwer integracji. A przy jego oprogramowaniu to java jest niskopoziomowa ;).

Dlatego ostatnio tak modny jest XML, jest zajebiście nieoptymalnym wydajnościowo formatem (jak wszystkie tekstowe). Ale mapowanie Java <-> XML jest mapowaniem 1 do 1. Kod mapujący takie coś to i maszyna napisze (i owszem --- piszą ;)).



* Obiekty są tak na prawdę zbiorami odnośników do innych obiektów. Liściami tego drzewa są typy prymitywne.

sobota, 30 czerwca 2007

EWEF

Robie porządki i znalazłem moje i Krzysia sprawko z EWEF (to chyba jednak bardziej moje...)
Przypis 1. Jesteśmy z tego powodu wielce skonsternowani, i wstydzimy się wielce, ale nie pamiętamy przedrostka napięcia, choć wydaje się nam że jest to mili --- dlatego taka jednostka znalazła się w w sprawozdaniu. Na szczęście (Bogu niech będą dzięki!) nieznajomość nic nie zmienia, gdyż właściwy wynik odczytujemy z krzywej cechowania (i ma on dobre miano), a w rachunkyu błędów i tak pojawiają się błędy względne niezależne od rzędu wielkości a tylko od wartości

Uwagi:
  • Doceniam teraz wyrozumiałość Krzysia --- bo takie sprawko poszło...
  • Rozumiem dlaczego z EWEF mam trzy :)
  • Rats! Ja chyba sobie lubie życue utrudniać... Ale co mnie nie zabije to mnie wzmocni*
* ...powiedział Baca i odstrzelił sobie stopę.

czwartek, 28 czerwca 2007

Gryffiths

Po dwóch stronach hamskich przybliżeń w stylu "Do tej pory wszystkie obliczenia były dokładne [podkreślenie Gryffithsa], teraz zajmiemy się przybliżeniem Borna.

środa, 27 czerwca 2007

Na stronie 154 podręcznika Gryffithsa z MK jest przypis;
*[Autor tłumaczy się dlaczego ma niejednoznaczne oznaczenia] By the way, I'm running out of letters

czwartek, 14 czerwca 2007

Pan B.

Pisałem dziś kolokwium z KADD.
Na debianie, na debianie tym nie działały:
  • KDE
  • GNOME
  • FIREFOX
  • Przeglądarka plików
  • Konqueror
A adminowi nie było nawet głupio.

środa, 13 czerwca 2007

MK

[A] Po co nam Kwantówka?
[B] Tak ogólnie dla lepszego pojmowania Świata.

piątek, 1 czerwca 2007

Czwartek

Zajęcia nr. 1:
Prosze państwa, ja zrobie wszystko żeby przyszłotygodniowe kolokwium wszyscy zdali. Tylko wy mi w tym choć trochę pomóżcie.

Zajęcia nr. 2:
To kolokwium jest tak proste że sam sie dziwię że takie dało się zrobić.

sobota, 19 maja 2007

Linuks.

Łoś (dziękuję) zainstalował mi Ubuntu Fiesty Fawn. I od tej pory jestem co chwila pozytywanie zaskakiwany.

Podobieństwa:
  1. Jest FF ( z tym że jest od początku)
  2. Jest OO.
  3. Jest TeX.
  4. Jest Maple.
  5. Jest prosty kalkulator graficzny (ale łatwiej go znaleźć)
  6. Jest Eclpise.
  7. Jest g++
  8. Jest Picassa
  9. Drukarka sieciowa instaluje się 5 minut.
  10. Oba mają IE (choćby żeby pooglądać wykłady ~pawlak)

Różnice:
  1. Aparat fotograficzny działał od razu. Podłączam i patrzę że się odrazu Linux pyta co robić. Pod XP wymaga drajwerów.
  2. Zen V nie instaluje mi idiotycznych drajwerów.
  3. Kiedy włącze zadanie drukowania i komp z drukarką jest wyłączony, to zadanie wskakuje do kolejki. Pod XP dostawałem warninga i musiałem drukować raz jeszcze.
  4. Jest za free.
  5. Jest menedżer paczek. Zainstalowanie KDE zajmuje 30sekund pracy człowieka i 15 minut pracy komputera.
  6. Pasek się autoukrywa i nie ma z tym problemów.
  7. Linux i Windows instalowały mi się cirka tyle samo czasu. Z tym że w Windzie wiedziałem czego szukać. W Linie jeszcze tego szukałem.
  8. Beagle działa lepiej niż GoogleDesktop.
  9. Mogę założyć Łosiowi konto shellowe i będzie mi z domku zarządzać linuksem. Ale wiecie co? Chyba nie trzeba.

wtorek, 15 maja 2007

Jak mieć większego penisa!

Ogłoszenie

Ogłaszam wszem i wobec, że odkryto nowe prawo w przyrodzie. Otóż mężczyźni mają tendencję do pisania na tablicy literkami tak wysokimi jak długi jest ich penis.


Wyjaśnienie:

No na zajęciach z MK gość pisał maczkiem. W pewnym momencie ktoś pyta:

-- Stary co jest na tablicy pod S dwa dwa*?
-- Na tablicy nie ma S dwa dwa! Jest S dwa zet.
-- W tym zadaniu w ogóle nie ma zet!
-- Cholera

No i ktoś powiedział że trzeba coś zrobić żeby pisali większymi literkami na tablicy.
Rzuciłem hasło: powiedzie że od tego rosną penisy.

Generalnie na MK mamy gościa co pisze tak że człowiek nie wie czy to jest m, , , czy cos.

*O takie:

środa, 2 maja 2007

Dane z serii III zbabraliśmy (...)

Historia jest taka.
  • Wypalam koledze na płycie całe materiały które wymodziłem na laboratoria (w tym plik *.tex).
  • Plik teksa się żle konwertuje (Nero chyba sam to zrobił nie pytany) do ASCII i znikają polskie litery.
  • Kolega poprawia plik i wysyła mi plik poprawiony bez polskich liter.
  • Stwierdzam że warto spróbować i wciskam Correct All.
  • W każdym nagłówku sekcji jest: "Dane z serii N zbabraliśmy"
Ogólnie jest to prawda (bo zababraliśmy).

Podświadomość komputera?

poniedziałek, 30 kwietnia 2007

Metaprogramming

Metaprogramming is the writing of computer programs that write or manipulate other programs (or themselves) as their data or that do part of the work during compile time that is otherwise done at run time. In many cases, this allows programmers to get more done in the same amount of time as they would take to write all the code manually.
-wikipedia

Mówią że C++ daje narzędzia do metaprogrammingu a java nie. Przykładowo by wygenerować klasę całkują funkcje zwracającą double i std::complex, starczy napisać jeden szablon integrator.

Ale to Java ma powera do metaprogrammingu. Czytałem sobie w "Thinking in Java"* w rozdziale o adnotacjach, adnotacje to są takie fajne metadane dołaczane do kodu źródłowego. Ogólnie można do każdego elementu klasy dopisać jakąś informację. Co więcej, można za pomocą narzędzia apt (annotation processing tool), generować nowe pliki klas.

Dziś pisałem sejwowanie klasy do XML wygląda tak że na początku pisze się kod:
Element root = new Element ("[nazwa klasy]");
a dla każdej składowej klasy pisze się:
Element [nazwa składowej] = new Element ("[nazwa składowej]");
[nazwa_składowej].appendChild(String.valueOf(this.[nazwa_składowej]));
root.appendChild([nazwa_składowej]);
W sumie upierdliwe jak się ma 9 składowych. Wyglądało to tak:

package jb.sk;

import java.io.Serializable;
import java.text.ParseException;

import nu.xom.Element;

public class Comment implements Serializable, Comparable{

private static final long serialVersionUID = -5532948060127766412L;

String author;
String authorEmail;
long authorIP;
String authorUrl;
long date;
boolean deleted;
String message;
CommentId no = null;
boolean visible;
public Element getXML(){

Element comment = new Element("comment");

Element author = new Element("author");
author.appendChild(getAuthor());
comment.appendChild(author);

Element authorEmail = new Element("authorEmail");
authorEmail.appendChild(getAuthorEmail());
comment.appendChild(authorEmail);

Element authorIP = new Element("authorIP");
authorIP.appendChild(String.valueOf(getAuthorIP()));
comment.appendChild(authorIP);

Element authorUrl = new Element("authorUrl");
authorUrl.appendChild(getAuthorUrl());
comment.appendChild(authorUrl);

Element date = new Element("date");
date.appendChild(String.valueOf(getDate()));
comment.appendChild(date);

Element deleted = new Element("this.deleted");
date.appendChild(String.valueOf(isDeleted()));
comment.appendChild(deleted);

Element message = new Element("message");
message.appendChild(getMessage());
comment.appendChild(message);

Element no = new Element("no");
no.appendChild(this.no.toString());
comment.appendChild(no);

Element visible = new Element("visible");
visible.appendChild(String.valueOf(isVisible()));
comment.appendChild(visible);

return comment;
}
/*...*/
}


No i trafiło mnie żestarczyłoby utworzyć takie coś:
@XMLAble
abstract Comment_base{
@XMLAbleElement
String author;
/*..*/
Comment(Element e){
set(e);
}

abstract Element getXML();
abstract set(Element elem);

/*..*/
}


Potem automatycznie (przy pomocy apta) pisać klasę: Comment, która te dwie metody nadpisuje kodem generowanym w trywialny sposób. Po prostu tworzyłaby nową klasę dla @XMLAble i która sejwowałaby każdy element z annotacją @XMLAbleElement. Trywial :). Może kiedyś napisze coś takiego :).


---
* Wersji IV, wersja III dostępna na stronie autora (nie ma w niej chyba rozdziału w którym mówie).

sobota, 28 kwietnia 2007

O potrzebie UML

Wyjaśnienie:
Idea jest taka żeby napisać klasę która liczy dajmu na to całkę z funkcji f, ale nie wie z jakiej funckji --- metoda wyliczająca w punkcie x jest abstarkcyjna:
virtual inline double getValue(double x)=0;

Teraz dodajemy małe klasy, któe na swój sposób implementują funkcję (może to być przez wskaźnik do funkcji, przez obiekt, przez parser matematyki.

*wrapper_f --- implementuje getValue jako wskaźnik do funkcji

*wrapper_obj --- implementuje getValue poprzez obiekt funkcyjny


random_generator_base --- zwykły generator liczb losowych (też z funkcją virtualną)

range_function_base --- to klasa opisująca obiekt będący funkcją na przedziale skoczonym.

random_generator --- losuje liczby z dziedziny i zbioru wartości funkcji.

von_neumann --- coś losującego liczby losowe metodą eliminacji von neumanna

simple_monte_carlo --- całkuje funkcję metodą monte carlo.

Cztery ostatnie klasy mają swoje wrappery.

O tyle fajnie że klasa (cała) simple_monte_carlo_f wygląda tak i jest już w pełni funkcjonalną klasą mającą kilkanaście metod:

template &lq class DOUBLE&rq
class simple_monte_carlo_f:
public random_generator_base_wrapper_f& lq DOUBLE&rq,
public simple_monte_carlo_base &lq DOUBLE&rq,
public range_function_base_wrapper_f &lq DOUBLE&rq{
simple_monte_carlo_f(DOUBLE _begin, DOUBLE _end, DOUBLE
(*_rand)(),DOUBLE (*_fun)(DOUBLE x)):

random_generator_base_wrapper_f lq DOUBLE&rq(_rand),
range_function_base_wrapper_f lq DOUBLE&rq(_fun)
{
this->set(_begin,_end);
}
};

Na diagramie (uproszczonym, bo wskazującym tylko dziedziczenie) wygląda cały schemat masakrycznie --- tak:

piątek, 27 kwietnia 2007

Marzenie

--- Dzień dobry. Chcę u pana pisać pracę magisterską.
--- A zna się pan na Fizyce?
--- Nie ale dobrze programuje.
--- Jasne.

EDIT: Marzenia się spełniają :)

czwartek, 19 kwietnia 2007

Dwóch matematyków, trzech fizyków...

Dwóch matematyków, trzech fizyków, dwóch programistów, jeden inżynier, jeden lotnik, jeden filozof --- razem cztery osoby. Startowaliśmy w konkursie na inżyniera.

Pytanie: na ile ciekawych sposobów możesz zastosować spinacz (wymień). 0.5pkt /zastosowanie.
  • Dla każdego n należącego do N+ mogę spiąć nim n+1 kartek. Zatem mogę zastosować spinacz na przynajmniej Alef 0 sposobów.
  • Jako niewybredne narzędzie tortur (zaostrzony pod paznokciem).*
  • Mogę nim złączyć dwa punkty dowolnego obwodu (co daje już Continuum zastosowań). W szczególności:
  • Mogę zrobić ciemność (o ile gniazdko elektryczne jest w pod tym samym bezpiecznikiem co żarówka).
* Przy zastosowaniach ekspresu do kawy i klamerki stało: jako wyszukane narzędzie tortur (w ekspresie jest kompresor --- czyli silnik).

piątek, 13 kwietnia 2007

std:transform(dataset, dataset+size, dataset, dataset, std::multiply< double>());

Komentarz: a nie łatwiej for--em?

Ale tak fajniej!

Doktorantem być

Byłem dziś na zajęciach z programowania, oddawałem programy z 6 zajęć, więc się zeszło :), i zostałem po czasie. Do 'mojego' doktoranta przyszli znajomi doktoranci. I się zaczęło.

I:
-- Pech! Miałem zastępstwo, i przyszedł jakiś [imie i nazwisko] po raz pierwszy i ponoć oddał drugi program.
-- Nie pamiętam go. Widocznie na [przedmiot który mówiący prowadzi] też nie chodzi.
-- Ja pamiętam go -- źle.

II:
-- I jak dobre wyniki? -- pytam.
-- Skąd mam wiedzieć? -- mówi 'mój'
-- Przecież napisałeś rozwiązanie modelowe i znasz odpowiedź -- mówi kolega doktorant.
-- Taa.

III:
-- A niech sobie przychodzi komisja akredytacyjna, i tak przyjdzie tylko jeden student na zajęcia.

IV:
-- Kiedy kończysz? -- pytają 'mojego'
-- Jak skończę
-- To my wpadniemy o 15 -- wtedy jest oficjalny koniec zajęć.

V:
[Napisałem program i go wysłałem w terminie prowadzącemu, on go nie dostał]
-- A ma Pan dowód wysłania? -- pyta doktorantka
-- Właśnie, holender, ma! -- odpowiada 'mój'.

A mówią (PhD webcomic) że doktorat to jest 'circle of no-life'.

piątek, 6 kwietnia 2007

We will draw the line, however, at the inefficient N^2 algorithm, beloved of elementary computer science texts, called bubble sort. If you know what bubble sort is, wipe it from your mind; if you don’t know, make a point of never finding out!


Bubble sort to ciekawy algorytm. Łączy on w sobie dwie, zdawałoby się trudne do połączenia cechy, jest niezrozumiały (jak na sortowanie o złożoności N^2), i jest całkowicie, żałośnie wolny. Nie wiem ki kretyn włożył go do podręcznika. Przeca są algorytmy (też N^2), ale dwa cztery szybsze i jednocześnie zrozumialsze.

środa, 21 marca 2007

11. Thai

Dość walenia głową w mur tylko dlatego że mogę walić.
Wiem że mogę. Wiem że mogę studiując jak studiuje wychodzić na zawsze najlepiej przygotowanego. Mogę robić więcej. Dowód skończony.

Spokój.

Kontrakcja metodą ekspansji.

11. Thai
Pokój

Obraz: Niebo i ziemia złączone: obraz pokoju (...)
Osąd: Małe odchodzi, wielkie nadchodzi. Szczęście. Sukces.
(...)
VI linia: Mur wali się do fozy. Nie wzwya do broni, ale sprawia by jego rozkazy były znane w mieście. Mimo stałości --- upokorzenie.

Zmiana przychodząca w połowie heksagramu zaczyna się dopełniać. Grozi klęska. Trzeba poddać sięlozwi. Jedynym wyjściem jest trwać przy swoim. w kręgu oddanych przyjaciół. Im czynniejszy będzie opór wobec zła, tym pełniejsza klęska.

46. Szeng
Obraz: W ziemi wzrasta drzewo (...)
Osąd: Wzrastanie niesie najwyższy sukces. Musi zobaczyć się z wielkim człowiekiem. Bez lęku. Odjazd na południe przynosi szczęście.
(...)
VI linia: Ślepe parcie naprzód jest zwodnicze. Patrzy się jedynie na drogę przed sobą, nie myśli o przebytej ani o szansie odwrotu. Nie wolno dać się powodować zwodniczym impulsom


Zadziwiająca metoda oceny swej sytuacji.

I-Cing.

niedziela, 11 lutego 2007

Błędna definicja

z www.if.pw.edu.pl
Ogólna charakterystyka studiów - Życie studenckie
Nasi studenci są współgospodarzami Wydziału, mając dostęp do pomieszczeń i pracowni zarówno dydaktycznych, jak i naukowych. Już w czasie studiów mogą uczestniczyć w badaniach naukowych prowadzonych na Wydziale.

Nawet ja inaczej rozumiem życie studenckie.

Reklama:

Zachęcam do zajrzenia na: http://fizolof.blogspot.com/

Moja strona domowa zmieniła adres: http://jbhome.wikidot.com/

Ta strona nie będzie już updejtowana. Blog został przeniesiony na: http://jbhome.wikidot.com/blog:start

Blog: