wtorek, 13 października 2015

[T-Mobile] Jak wyłączyć reklamy SMS

Aby pozbyć się natrętnej informacji handlowej od T-Mobile należy wysłać sześć SMS na numer 80888 kolejno o treści:

  • NIE1
  • NIE2
  • NIE3
  • NIE4
  • NIE5
  • NIE6

Kolejne wiadomości wyłączają różne rodzaje informacji handlowej od operatora. Wykorzystałem ten sposób i już nic natrętnego do mnie nie przychodzi ;)

sobota, 26 września 2015

[LINUX] NANO edytor

Chciałbym nauczyć się obsługi edytora NANO oraz VIM. Są to świetne edytory do szybkiej i nieznacznej edycji kodu źródłowego. Będę zamieszczał tu skróty klawiaturowe, które już opanowałem, aby utrwalić sobie w pamięci to czego się nauczyłem. Będzie to świetna ściąga dla osób, które rozpoczynają naukę z edytorem. Zgodnie z moją praktyką notatka będzie ewoluować w czasie.
  1. Zapisywanie tekstu
    • Skrót: CTRL+O
  2. Zaznaczanie tekstu
    • "CTRL+^" lub "Alt + a" pozwalają zaznaczyć tekst od miejsca w którym aktualnie znajduje się kursor.
  3. Kopiowanie, wycinanie
    • CTRL + K pozwala na wycięcie zaznaczonego tekstu.
    • CTRL + U pozwala na wklejenie zaznaczonego tekstu.
    • ALT + M kopiuje całą linijkę w której znajduje się kursor
  4. Szukanie
    • CTRL+W
  5. Wyjście
    • CTRL+X wychodzi z programu.
  6. Skocz do ostatniej linijki
    • ALT + /
    • CTRL + W + V
  7. Skocz do pierwszej linijki
    • ALT + \

poniedziałek, 6 lipca 2015

niedziela, 10 maja 2015

[Ubuntu] Jak zrestartować sieć?

Ubuntu 14.04 ma problemy z obsługą sieci. Dość często zdarza się zawieszenie interfejsu. Ubuntu do zarządzania siecią używa menadżera sieci, zamiast tradycyjnego linuxowego modelu sieciowego. Aby zrestartować sieć wystarczy wydać polecenie

sudo service network-manager restart

środa, 4 marca 2015

[ARM] Cross Compiling Ubuntu dla Raspberry Pi [C/C++]

http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/
  1. Pobierz toolchain dla procesora BCM2835:

    git clone git://github.com/raspberrypi/tools.git

  2. Wejdź w /tools/arm-bcm2708.
    Toolchain dla systemów 64-bitowych znajduje się w: gcc-linaro-arm-linux-gnueabihf-raspbian-x64.
    Dla systemów 32-bitowych w: gcc-linaro-arm-linux-gnueabihf-raspbian.

    arm-bcm2708hardfp-linux-gnueabi
    gcc-linaro-arm-linux-gnueabihf-raspbian
    arm-bcm2708-linux-gnueabi
    gcc-linaro-arm-linux-gnueabihf-raspbian-x64

  3. Ściągnij i rozpakuj: Eclipse dla C++.

    • Utwórz nowy projekt C++.

    • Nadaj mu nazwę RPi. Wybierz Empty Project oraz Cross GCC.
  4. Wybierz Release oraz Debug.

    • Pole tekstowe "Cross compiler prefix" uzupełnij: arm-linux-gnueabihf.
    • Ścieżkę do toolchain podaj w zależności od używanego systemu operacyjnego. Będzie ona wyglądać następująco:
      .../gcc-linaro-arm-linux-gnueabihf-raspbian/bin dla systemów 32-bitowych lub
      .../gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin dla systemów 64-bitowych.
    • W projekcie utwórz folder "src" a w nim plik "main.cpp".
  5. Przenieś plik wynikowy, znajdujący się w katalogu workspace na Raspberry Pi.

  6. Na Raspberrym wykonaj chmod u+x ./RPi w katalogu gdzie umieściłeś plik wykonywalny. Następnie ./RPi. Powinieneś otrzymać:

Połączenie SSH

poniedziałek, 2 marca 2015

Drukowanie dwustronne - bez duplex - algortytm ;)

Zawsze kiedy chcę wydrukować coś dwustronnie muszę sobie przypomnieć algorytm, który pozwala na najbardziej prawidłowe zadrukowanie drugiej strony. Postanowiłem go w końcu gdzieś zapisać ;] W poradniku używam czytnika PDF Okular.
  1. Wydrukuj najpierw strony nieparzyste(opcja odd) zaznaczając odpowiednią opcję w ustawieniach drukowania.
  2. Wyjmij zadrukowane z jednej strony kartki. Jeśli całkowita liczba wydrukowanych stron jest nieparzysta zabierz ostatnią kartkę.
  3. Włóż kartki w ten sposób aby drukarka zadrukowała puste strony.
  4. Zaznacz opcję wydruku stron parzystych (opcja "even") i opcję drukowania od ostatniej strony("reverse").
  5. W przypadku nieparzystej liczby stron, nie zapomnij o odłożonej ostatniej kartce.

sobota, 28 lutego 2015

[Ubuntu / Linux] Jak zrobić obraz pyty CD

  • Posługując się komendą:
    ls /dev/ | grep cdrom
    Sprawdź jak nazywa się napęd optyczny, którego obraz chcesz zrobić.
  • Następnie, używając nazwy urządzenia, wykonaj plecenie:
    dd if=/dev/cdrom of=~/obraz.iso
    Po jego wykonaniu w katalogu domowym utworzony zostanie obraz płyty.

piątek, 27 lutego 2015

Mały tutorial Matlab / Octave

Dość często zdarza mi się rozwiązać mały problem w środowisku Octave. Prezentuję tutaj najbardziej przydatne rozwiązania.

Rysowanie gęstości

Sposób na rysowanie wykresu funkcji dwuwymiarowej.

a=linspace(-1,1,200);
[xx,yy]=meshgrid(a,a);
colormap("list");
pcolor(a,a,sin(xx.^2+yy.^2)) ;
shading flat
colbar

shading interp

Jak dodać paczkę do OCTAVE

Istnieją na to dwa sposoby:

Instalacja z Octave Forge. W repozytorium Octave Forge wyszukaj paczkę, którą chcesz zainstalować np. "control". Aby dokonać instalacji uruchom Octave i wpisz: "pkg install -forge control". Paczka powinna automatycznie ściągnąć się z repozytorium i zainstalować.

Instalacji można dokonać również ręcznie, ściągając plik: "control-***.tar.gz" (gwiazdki oznaczają wersję) i wpisując "pkg install control-***.tar.gz". Uwaga! Octave musi być otwarte w katalogu w którym znajduje się ściągnięta paczka.

Zainstalowane paczki można wyświetlić poleceniem: "pkg list". Paczki pozbyć się można poleceniem "pkg uninstall control"

Jak pomnożyć wielomiany w Octave

W środowisku Octave wielomian jest reprezentowany przez współczynniki funkcji wielomianowej poczynając od najbardziej znaczącego. Na przykład wektor:
p=[3 -2 4 0 1];
reprezentuje funkcję wielomianową:
p(x)=3*x^4-2*x^3+4*x^2+1
Możemy teraz wyświetlić sobie funkcje wielomianową następującym poleceniem:
polyout(p,'x')
3*x^4 - 2*x^3 + 4*x^2 + 0*x^1 + 1
Mnożenie dwóch wielomianów p,q możemy wykonać poleceniem: r = conv(p,q);. Dzielenie natomiast poleceniem: [b,r] = deconv(y,a);. Gdzie b-wynik dzielenia wielomianów, r-reszta z dzielenia.

Jak numerycznie rozwiązać równanie różniczkowe?

Octave pozwala na rozwiązanie wektorowych równań różniczkowych w postaci dx/dt = f(t,x).

  1. Pierwszym krokiem jest definicja funkcji f(x,t). Załóżmy, że f(x,t)=sin(t).
    octave:1> function x_pirm = f(x,t)
    > x_prim = sin(t);
    > endfunction
  2. Definiujemy czas rozwiązania: t=[0:0.01:6*pi]; lub t=linspace(0,6*pi,2000);
  3. Definiujemy warunki początkowe x_0=1;
  4. Rozwiązujemy równanie poleceniem y=lsode("f",x_0,t);
  5. Rysujemy rozwiązanie: plot(t,y)

Jak znaleźć zero funkcji?

Do rozwiązywanie nie liniowych równań postaci f(x)=0 służy funkcja fsolve.

  1. Najpierw musimy zdefiniować funkcję lub ich układ.
    octave:1> function retval = wielo(x)
    > retval = x.^3-x.^2 +4;
    > endfunction
  2. Kolejnym krokiem jest wybór wartości początkowych x_0. Niech x_0 = -1.
  3. Możemy spróbować rozwiązać równanie poleceniem: fsolve(@wielo,x_0). Powinniśmy otrzymać
  4. octave:3> fsolve(@wielo,x_0)
    ans = -1.3146

    Warto zwrócić uwagę, że nie zawsze polecenie fsolve znajduje poprawne rozwiązanie. Jeśli położymy x_0 = 5, rozwiązanie okaże się błędne.

Jak zmienić grubość linii na wykresie?

Służy do tego parametr 'LineWidth' w funkcji plot. Na przykład: plot(x,y,'LineWidth',2)

czwartek, 12 lutego 2015

Jak pomnożyć wielomiany w Octave.

W środowisku Octave wielomian jest reprezentowany przez współczynniki funkcji wielomianowej poczynając od najbardziej znaczącego. Na przykład wektor:
p=[3 -2 4 0 1];
reprezentuje funkcję wielomianową:
p(x)=3*x^4-2*x^3+4*x^2+1
Możemy teraz wyświetlić sobie funkcje wielomianową następującym poleceniem:
polyout(p,'x')
3*x^4 - 2*x^3 + 4*x^2 + 0*x^1 + 1
Mnożenie dwóch wielomianów p,q możemy wykonać poleceniem: r = conv(p,q);. Dzielenie natomiast poleceniem: [b,r] = deconv(y,a);. Gdzie b-wynik dzielenia wielomianów, r-reszta z dzielenia.

wtorek, 3 lutego 2015

Ciekawe blogi

Szybki wpis typu lista. Lista blogów, które uważam za szczególnie ciekawe:

czwartek, 1 stycznia 2015

[Octave] Jak numerycznie rozwiązać równanie różniczkowe?

Octave pozwala na rozwiązanie wektorowych równań różniczkowych w postaci dx/dt = f(t,x).
  1. Pierwszym krokiem jest definicja funkcji f(x,t). Załóżmy, że f(x,t)=sin(t).
    octave:1> function x_pirm = f(x,t)
    > x_prim = sin(t);
    > endfunction
  2. Definiujemy czas rozwiązania: t=[0:0.01:6*pi]; lub t=linspace(0,6*pi,2000);
  3. Definiujemy warunki początkowe x_0=1;
  4. Rozwiązujemy równanie poleceniem y=lsode("f",x_0,t);
  5. Rysujemy rozwiązanie: plot(t,y)