niedziela, 20 listopada 2011

Algorytm poszukiwanie przez połowienie


Specyfikacja:

Dane: Zbiór elementów w postaci ciągu n uporządkowanych liczb x1<= x2<= …<=xn. Wyróżniony element y. Wynik: Jeśli y należy do tego zbioru, podaj miejsce (index) w ciągu, w przeciwnym razie sygnalizuj brak takiego elementu w zbiorze.

Algorytm:

Powtarzaj kroki 1-3, dopóki nie natrafisz na poszukiwany element.

Krok 1: Sprawdź element środkowy ciągu (gdy ciąg ma nieparzystą liczbę elementów) lub jeden z dwóch elementów środkowych (gdy ciąg ma parzystą liczbę elementów).

Krok 2: Jeśli jest on elementem poszukiwanym y, to zakończ algorytm.

Krok 3: Jeśli środkowy element jest większy od y, to pozostaw podciąg na lewo od elementu środkowego, a w przeciwnym wypadku (gdy element środkowy jest mniejszy od y), pozostaw podciąg na prawo od elementu środkowego.

Zadanie: Zapisz program „Zgadnij jaka to liczba?” odpowiadający na podane pytanie.
Wybierz partnera z grupy. Następnie partner wymyśli dowolną liczbę n z przedziały [1, 50], a Ty masz ją znaleźć, zadając mu pytania typu: „Czy to jest liczba …?” Na co Twój partner może jedynie odpowiedzieć : „Tak”- gdy trafiłeś, lub „Za mała”, „Za duża”- w zależności od położenia wybranej przez Ciebie liczby względem ukrytej liczby.

Wytłumaczenie do tego algorytmu z forum elektroda:
Jak się szuka? Mamy przykładowo 32 liczby, od zera do 31
1.
zakresDolny = 0
zakresGorny = 31

2.
pozycja = w połowie = (zakresDolny+zakresGorny)/2

3.
Jeżeli tablica[pozycja] == szukana to znaleziono, exit.

Jeżeli liczba w tablicy na pozycji `pozycja` jest mniejsza od szukanej, to przesuwamy dolny zakres nad aktualną pozycję, bo szukanej liczby na pewno nie będzie niżej (zakresDolny=pozycja+1).

Jeżeli liczba w tablicy na pozycji `pozycja` jest większa od szukanej, to znaczy że jesteśmy za wysoko, więc górna granica spada poniżej aktualnej pozycji: zakresGorny=pozycja-1.

Jeżeli górny zakres nie jest większy od dolnego, powtórz od kroku 2.


Jeżeli nie znaleziono liczby, to automatycznie mamy pozycję na którą można wstawić nową liczbę (przesuwając wszystkie elementy po `prawej` w `prawo` o jedną pozycję). Jest nią pozycja+x, gdzie x jest jedynką tylko wtedy, gdy ostatnie porównanie podniosło dolną granicę.

Kod:
On: Pomyślałem sobie liczbą od zera do 31, zgadnij jaką? (pomyślał sobie 9)
Ja: (liczę...)
zakresDolny = 0
zakresGorny = 31
połowa = (zakresDolny+zakresGorny)/2 = 15

Ja: pytam czy to 15
On: mniej

Ja: (liczę... zostały liczby 0-14)
zakresDolny = 0
zakresGorny = 15-1 = 14
połowa = (0+14)/2 = 7

Ja: pytam czy to 7
On: więcej

Ja: (liczę... zostały liczby 8-14)
zakresDolny = 7+1 = 8
zakresGorny = 14
połowa = (8+14)/2 = 11

Ja: pytam czy to 11
On: mniej

Ja: (liczę... zostały liczby 8,9,10)
zakresDolny = 8
zakresGorny = 11-1 = 10
połowa = (8+10)/2 = 9

Ja: pytam czy to 9
On: Tak

Implementacja w C++

#include <iostream>

using namespace std;

const int n = 50;
const int y = 10;

int wyszukaj (int p, int k, int tab[])
{
int l_zbioru = k - p;
int polowa_liczb = l_zbioru/2;
int srodek_zbioru = p + polowa_liczb;



    if ( y == tab[srodek_zbioru]) return tab[y];
    if (l_zbioru < 0) return 0;

    if ( y < tab[srodek_zbioru]  )
        {
           return wyszukaj(p,srodek_zbioru-1,tab);

        }

    if ( y > tab[srodek_zbioru] )  return  wyszukaj (srodek_zbioru+1,k,tab);



}
int main()
{
    int tab[n];
    for (int i = 1; i<=n; i++)
    {
        tab[i] = i;

    }

    cout << wyszukaj(1,n,tab);
    return 0;
}

niedziela, 13 listopada 2011

Naprawa przedniego pokrętła w aparacie Canon Powershot G11


Aparat ten ma jedną wadę, po około roku, przednie kółko (pokrętło) zaczyna działać dziwnie, gdy kręcimy nim w górę zamiast standardowo zwiększać parametry zmniejsza je o parę i zwiększa o trochę więcej. Trudno to wytłumaczyć ;p


Naprawa to 3 minuty roboty, wystarczy nam jakikolwiek spray do czyszczenia styków, psikamy nim na kółko kręcimy parę razy i zostawiamy do wyschnięcia (oczywiście aparat wcześniej wyłączamy, i wyjmujemy baterię).


Jeśli to nam nie pomogło zostaje nam trik polegający na przytrzymywaniu klawisza programowalnego ( s ) i klikaniu przycisków prawo(flash) lewo(makro) w celu zmiany parametrów, zmienianych standardowo za pomocą kółka.

sobota, 12 listopada 2011

Metoda pucharowa - algorytm turniejowy

Zadanie z publikacji Macieja M. Sysło, "Wyszukiwanie i porządkowanie informacji":
Zapisz w postaci listy kroków algorytm służący do znajdowania największej liczby w ciągu „metodą pucharową”; dany ciąg może mieć dowolną długość, nie koniecznie będąca potęgą liczby 2. Przyjmij, że na początku ciąg liczb jest dany w tablicy i postaraj się, by w trakcie algorytmu pozostałe z ciągu liczby także były pamiętane w tej samej tablicy. Zaimplementuj opisany algorytm w wybranym języku programowania.

Czyli piszemy program na znalezienie osoby która wygra turniej.
Dla ułatwienia dodałem dużo cout-ów służących jedynie analizie działanie programu.

Implementacja w C++ metody pucharowej:

#include <iostream>

using namespace std;

int main()
{
    srand(time(NULL));
    int n;
    cin >> n;
    int tab[n];

    for ( int i = 0 ; i < n ; i++)
    {
        tab[i] = rand()%100+1;
        cout << tab[i]<< "  ";
    }

    int p = n;  // dodatkowa zmienna p
    int j = 0;
do{
    for (int i = 0; i < n; i += 2)
    {
        if (i+1 < p ){

        cout << endl<< "walczy:" << tab[i] << " z : " << tab[i +1] ;
        //wygranych ustawiamy na poczatku tabeli w miejsca poprzednich przegranych
        if(tab[i] > tab[i+1] ) swap(tab[i/2], tab[i]);
            else swap(tab[i/2], tab[i+1]);
        cout << " wygral: " << tab[i/2];
        j++; // zwiekszamy licznik meczy
        }
        else swap(tab[i], tab[i/2]) ; // w przypadku nieparzystej liczby zawodnikow, ostatniego zawodnika umieszczamy na miejscu ostatniego przegranego
    }

   cout <<endl<<"Tabela po "<< j << " meczach: " << endl;
   for ( int i = 0 ; i < p ; i++)
   {
       cout << tab[i]<< "  ";
    }

    n = n/2;

}while (j != p-1);  // ilosc meczy ktore musza byc rozegrane to n-1

cout << endl << "Ostateczny wyglad tabeli: " <<endl;

for ( int i = 0 ; i < p ; i++)
{
    cout << tab[i]<< "  ";
}

cout << endl<< "Zwyciezca turnieju: " << tab[0];
    return 0;
}

niedziela, 6 listopada 2011

Algorytm Selection Sort – porządkowanie przez wybór

Algorytm Selection Sort – porządkowanie przez wybór


Specyfikacja:
Dane: Liczba naturalna n i ciąg n liczb x1, x2, …, xn
Wynik: Uporządkowane dane ciągu liczb od najmniejszej do największej, czyli ciąg wynikowy spełnia nierówność x1<= x2<= …<= xn (Uwaga! Elementy ciągu danego i wynikowego oznaczamy tak samo, gdyż porządkowanie odbywa się in situ, czyli „w miejscu”. ) Algorytm:
Krok 1: Dla i=1, 2, 3,…, n-1 wykonaj kroki 2 i 3, a następnie zakończ algorytm.
Krok 2: Znajdź k takie, xk jest najmniejszym elementem w ciągu xi,…, xn.
Krok 3: Zamień miejscami elementy xi oraz xk.


Zadanie: Zrealizuj powyższy problem dla wybranego n. Elementy losuj z zakresu
od -50 do 50.


Realizacja w C++ (kompilator Code::Blocks)
#include <iostream>

using namespace std;

int n;

int min_i(int tab[], int od)
{
    int min_in = 0;
    int min = 1000;

    for (int i = od; i<n; i++)
    {
        if (tab[i]<min)
        {
            min_in = i;
            min = tab[i];
        }

    }
    return min_in;
}


int main()
{
    srand(time(NULL));
    cout << "Podaj ilosc liczb do posortowania:";
    cin >>n;
    int tab[n];

    for (int i = 0 ; i < n ; i ++ )
    {
        tab[i] = rand()%101 -50 ;  // losujemy 101 liczb (od -50 do 50)
         cout.width(2);
        cout << i <<": " <<tab[i]<<endl;
    }



    cout <<endl <<"Po sortowaniu:" << endl;

    int k;
    for (int i = 0; i< n-1 ; i++ )
    {

        k = min_i(tab, i);
        swap(tab[i],tab[k]);
    }


    for (int i = 0 ; i < n ; i++ )
    {
        cout.width(2);
        cout << i <<": " <<tab[i]<<endl;
    }

    return 0;
}

piątek, 21 października 2011

Schemat Hornera


Program na obliczenie wartości wielomianu schematem Hornera iteracyjne i rekurencyjnie

#include <iostream>

using namespace std;


float horner_r (int stopien, int tablica_wsploczynnikow[], int argument)
{
    if (stopien==0)
        return tablica_wsploczynnikow[0];
    else
        return horner_r(stopien-1,tablica_wsploczynnikow,argument)*argument+tablica_wsploczynnikow[stopien];
}

float horner_i (int stopien, int tablica_wsploczynnikow[], int argument)
{
    float wynik=tablica_wsploczynnikow[0];
    for (int i = 1; i<= stopien; i++)
    {
        wynik = wynik * argument + tablica_wsploczynnikow[i];
        cout << i<<": "<<wynik<<endl;
    }
    return wynik;
}
int main()
{
    int stopien,argument;
    cout << "Podaj stopien wielomianu: " << endl;
    cin>> stopien;
    int tablica_wsploczynnikow[stopien];
    cout << "Podaj argument dla ktorego chcesz obliczyc wielomian: " << endl;
    cin >> argument;
    cout << "Podaj wsploczynniki: "<< endl;
    for(int i = 0; i <= stopien; i++)
    {
        cin >> tablica_wsploczynnikow[i];
    }

 cout <<"rekurencyjnie: " << horner_r(stopien,tablica_wsploczynnikow,argument)<<endl;
cout << "itercyjnie: " << horner_i(stopien,tablica_wsploczynnikow,argument);
    return 0;
}

Program na zmianę liczby o podstawie 2-9 na liczbę dziesiętną

#include <iostream>
#include <string>

using namespace std;

int main()
{
  string s;
  unsigned podstawa,L,c;

  cout << "Podaj podstawe (2 do 10):";
  cin >> podstawa;
  cout << "\nPodaj liczbe: ";
  cin>>s;
  L = s[0] - int('0');  // Od pierwszego znaku w ASCII w s[] odejmujemy znak ASCII zera (48)
  for(int i = 1; i < s.length(); i++)
  {
    c = s[i] - int('0');  //wczytujemy do c znak ASCII na i-pozycji i zmieniamy go na odpowiadaj¹ca mu liczbê
    L = L * podstawa + c; // stosujemy schemat hornera
  }
  cout << "\nLiczba " << s << "(" << podstawa << ") = " << L << "(10)";

    return 0;
}

niedziela, 9 października 2011

Algorytm szukania najmniejszej i największej liczby w podanym zbiorze

Algorytm 1 - min

Zadanie: Znajdź najmniejszą liczbę spośród podanego zbioru i podaj jej miejsce w zbiorze.

Specyfikacja:
Dane: Liczba naturalna n i zbiór n liczb
Wynik: Najmniejsza spośród liczb w zbiorze i jej miejsce w zbiorze.

Implementacja w C++

#include <iostream>

using namespace std;

int main()
{
    unsigned int n, min, miejsce;
    cout << "Podaj ilosc elementow: " << endl;
    cin >> n;
    unsigned int t[n];
    for (unsigned int i = 1; i<=n; i++ )
    {
        cout << i << ": ";
        cin >> t[i-1];
        cout << endl;
    }

    min = t[0];

    for (int i = 1; i<n; i++ )
    {
        if(t[i] < min)
        {
            min = t[i];
            miejsce = i;
        }
    }


    cout << "Najmniejsza: "<< min << endl<< "Jest " << miejsce+1<< " liczba w zbiorze";
    return 0;
}

Złożoność algorytmu: T(n) = n - 1

Algorytm 2 - min i max - metodą dziel i zwyciężaj

Zadanie: Znajdź najmniejszą i największą liczbę spośród podanego zbioru.

Specyfikacja:
Dane: Liczba naturalna n i zbiór n liczb
Wynik: Najmniejsza i największa spośród liczb w zbiorze

Implementacja w C++
#include <iostream>

using namespace std;

int main()
{
    unsigned int n, min, max;

    cout << "Podaj ilosc elementow: " << endl;
    cin >> n;
    unsigned int t[n];

    for (unsigned int i = 1; i<=n; i++ )
    {
        cout << i << ": ";
        cin >> t[i-1];
        cout << endl;
    }

  if (n % 2){ t[n] = t[n-1] }

     min = t[0];
     max = t[0];

    for (unsigned int i = 0; i<n; i=i+2 )
    {
        if (t[i]<t[i+1])
        {
            if(t[i] < min)
                min = t[i];
            if(t[i+1] > max)
                max = t[i+1];
        }

       else //if (t[i] > t[i+1])
       {
            if(t[i+1] < min)
                min = t[i+1];
            if(t[i] > max)
                max = t[i];
       }

    }

    cout << "Najmniejsza: "<< min << endl;
    cout << "Najwieksza: "<< max << endl;

    return 0;
}


Złożoność algorytmu: 3/2 * n

sobota, 1 października 2011

Matura z informatyki - algorytmy

Algorytmy i metody algorytmiczne które są wymagane przez cke:

Poziom podstawowy:
a) algorytmy badające własności liczb całkowitych i naturalnych
b) algorytmy wyszukiwania i porządkowania (sortowania)
c) algorytmy na tekstach
d) proste algorytmy szyfrowania
e) dziel i zwyciężaj
f) iteracja i rekurencja

Poziom rozszerzony:
to co na podstawie +
- metoda zachłanna
- schemat Hornera
- algorytmy numeryczne
- algorytmy kompresji

Strasznie to wygląda, ale damy rady ;) W następnych artykułach opiszę każdy z tych podpunktów.

piątek, 30 września 2011

Matura z informatyki

Czas już najwyższy by zacząć się przygotowywać do matury...

Zacznijmy od wymagań: Kliknij by rozwinąć/ukryć


I. WIADOMOŚCI I ROZUMIENIE

Zdający zna i rozumie podstawowe pojęcia, metody, narzędzia i procesy
związane z informatyką i technologią informacyjną:

POZIOM PODSTAWOWY:


1) opisuje środki, narzędzia i metody informatyki posługując się poprawną
terminologią informatyczną

2) zna rolę, funkcje i zasady pracy sprzętu komputerowego

3) charakteryzuje typowe narzędzia informatyczne i ich zastosowania

4) zna podstawową terminologię związaną z sieciami komputerowymi:
rodzaje sieci, protokoły, opisuje podstawowe usługi sieciowe
i sposoby ochrony zasobów

5) omawia przydatność i wiarygodność różnych źródeł i zbiorów informacji oraz
użyteczność sposobów i form ich reprezentowania

6) zna sposoby reprezentowania informacji w komputerze

7) zna podstawowe algorytmy i techniki algorytmiczne:

a) algorytmy badające własności liczb całkowitych i naturalnych
b) algorytmy wyszukiwania i porządkowania (sortowania)
c) algorytmy na tekstach
d) proste algorytmy szyfrowania
e) metoda dziel i zwyciężaj
f) iteracja i rekurencja

8) zna zasady programowania strukturalnego

9) zna podstawowe własności algorytmów

10) zna podstawowe pojęcia związane z relacyjnymi bazami danych

11) zna i opisuje zasady etyczne i prawne związane z wykorzystywaniem
informacji i oprogramowania


POZIOM ROZSZERZONY:


Jak na poziomie podstawowym oraz

1) zna i opisuje zasady administrowania siecią komputerową

2) charakteryzuje sposoby reprezentowania informacji w komputerze

3) zna systemy liczbowe mające zastosowanie w informatyce

4) zna techniki algorytmiczne i algorytmy:

a) dziel i zwyciężaj
b) metoda zachłanna
c) iteracja i rekurencja
d) badające własności liczb całkowitych
e) wyszukiwania i porządkowania (sortowania)
f) schemat Hornera
g) algorytmy na tekstach
h) algorytmy numeryczne
i) algorytmy kompresji

5) zna wybrane struktury danych i ich realizację

6) zna zasady programowania obiektowego


II. KORZYSTANIE Z INFORMACJI

Zdający stosuje posiadaną wiedzę do rozwiązywania zadań teoretycznych i praktycznych:

POZIOM PODSTAWOWY:



1) posługuje się typowymi programami użytkowymi

2) wykorzystuje wybrane środowisko programistyczne do zapisywania,
uruchamiania i testowania programu

3) korzysta z zasobów i usług sieci komputerowych

4) stosuje metody wyszukiwania i przetwarzania informacji w relacyjnych
bazach danych

5) stosuje podstawowe algorytmy i struktury danych w rozwiązywaniu
problemów informatycznych

6) dobiera właściwy program (użytkowy lub własnoręcznie napisany)
do rozwiązywanego zadania

7) wykorzystuje zdobytą wiedzę i umiejętności do rozwiązywania zadań
z różnych dziedzin nauczania i problemów z życia codziennego

POZIOM ROZSZERZONY:

Jak na poziomie podstawowym oraz

1) stosuje metody wyszukiwania i przetwarzania informacji w relacyjnych
bazach danych z wykorzystaniem różnych technik i narzędzi

2) stosuje kolejne etapy prowadzące do otrzymania poprawnego rozwiązania
problemu: od sformułowania specyfikacji problemu po testowanie rozwiązania

3) stosuje narzędzia i techniki informatyczne do modelowania i symulacji
procesów oraz zjawisk



III. TWORZENIE INFORMACJI

Zdający stosuje metody informatyczne do rozwiązywania problemów:


POZIOM PODSTAWOWY:

1) tworzy specyfikację problemu, proponuje i analizuje jego rozwiązanie
2) formułuje informatyczne rozwiązanie problemu przez dobór
algorytmu oraz odpowiednich struktur danych i realizuje je w wybranym
języku programowania

3) projektuje relacyjne bazy danych i wykorzystuje do ich realizacji
system bazy danych

4) wykorzystuje różnorodne źródła i zasoby informacji do tworzenia
dokumentów tekstowych i multimedialnych


POZIOM ROZSZERZONY:

Jak na poziomie podstawowym oraz

1) projektuje i przeprowadza wszystkie etapy na drodze do otrzymania
informatycznego rozwiązania problemu

2) wykorzystuje metody informatyki w rozwiązywaniu problemów

3) uzasadnia poprawność, złożoność i efektywność rozwiązania problemu

4) projektuje relacyjne bazy danych i proste aplikacje bazodanowe

5) tworzy dokumenty sieciowe i multimedialne z użyciem zaawansowanych
technik, w tym programowania

6) opisuje nowe zastosowania narzędzi informatyki i antycypuje
ich konsekwencje dla życia społecznego,
gospodarczego (korzyści i zagrożenia)

Jak już wiemy czego trzeba się nauczyć to czas zacząć się uczyć ;D
Kolejne artykuły będą zawierać informację właśnie związane z maturą, jeżeli jest jakiś temat którego nie rozumiecie a chcielibyście bym omówił napiszcie w komentarzach.

Ukrywanie IP w czasie przeglądania sieci czyli jak zostać anonimowym w sieci

Wpierw jak, potem dlaczego tak i co nam to daje.

Jak ukryć IP?

Pierwszym sposobem jest skorzystanie ze stron proxy (agregator Web-Proxy)
Drugim jest wykorzystanie serwerów proxy (lista serwerów, 2 lista serwerów). Tutaj trzeba zaznaczyć że adres zmieniamy w opcjach przeglądarki lub w łatwiejszy sposób przy pomocy pluginów proxy (FF, Chrome, IE)
Trzecim sposobem i jednym najbezpieczniejszych jest wykorzystanie sieci TOR. (skonfigurowany FF pod TORa)

Dlaczego tak i co nam to daje?

W pierwszym sposobie odpowiedź jest oczywista Web-Proxy daje nam możliwość szybkiej zmiany IP bez dodatkowego oprogramowania i wiedzy.
Drugi sposób pozwala nam dokładnie określić z jakiego serwera chcemy korzystać (np możemy wybrać serwer amerykański jeżeli jakaś strona zezwala tylko na wchodzenie amerykanom).
Trzeci sposób jest przeznaczony dla tych którym najbardziej zależy na anonimowości. Użytkowników TORa z wyłączoną obsługą JavaScript nie da się wyśledzić. TOR pozwala również na wchodzenie na strony specjalnie utworzone dla sieci TOR. Adresy takich stron to:
The Hidden Wiki: http://pibn3ueheubjxv2z.onion/
Polska Ukryta Wiki: http://kpvz7ki2v5agwt35.onion/
Linkageddon - http://127.0.0.1:8888/USK@Isel-izgllc8sr~1reXQJz1LNGLIY-voOnLWWOyagYQ,xWfr4py0YZqAQSI-BX7bolDe-kI3DW~i9xHCHd-Bu9k,AQACAAE/linkageddon/196/

Teraz krótko o szybkości działania danego rozwiązania
Web Proxy są jednym z najszybszych, na równi z nimi są serwery proxy (wszystko zależy od serwera jakiego znajdziemy), najwolniejsza jest sieć TOR ale za to najbezpieczniejsza.






czwartek, 29 września 2011

Jak wysłać maila z czyjegoś adresu?

Wielu ludzi o tym wie ale jeszcze więcej nie wie więc, taki mały wpis informacyjny dla tych co nie wiedzą :)

Najprostszą opcją aby wysłać maila z cudzego adresu mailowego jest użycie jednej z poniższych stron:

emkei.cz/ - świetna stronka pozwala między innymi na zmianę daty wysłania wiadomości, załączenie plik do maila, wybrania z nagłówkiem którego programu pocztowego ma być wysłana.
hidemyass.biz - limit 10 maili

Trudniejsza wersja to znalezienie serwera zezwalającego na wysyłanie maili, z dowolnego adresu.
Aby sprawdzić czy dany serwer pocztowy będzie działał do wysyłania mail możemy użyć strony dnsstuff, na tej stronce w polu pod DNS Lookup wpisujemy adres serwera a z listy wybieranej wybieramy TXT, jeśli w wynikach znajdziemy w wiadomości "v=spf1 cośtam" to znaczy że serwer się nie nadaje. Jakby udało nam się znaleźć serwer który zwróci nam TXT bez "v=spf1 cośtam" to sprawdzamy teraz
serwer MX (z pola wyboru w DNS Lookup) i wybieramy serwer o najwyższym priorytecie.

Teraz wystarczy połączyć się z serwer np poprzez telneta wbudowanego windows XP do visty/7 trzeba go doinstalować:
Start->Panel sterowania->Programy i funkcje -> Włącz lub wyłącz funkcje systemu Windows - > zaznaczamy "klient telnet" -> ok

Gdy już mamy telneta uruchamiamy linie komend (start->uruchom->cmd) i wpisujemy:

telnet adresserwera 25
HELO nazwa_domeny

MAIL FROM: falszywy@mail.com
RCPT TO: do@kogo.jest
DATA

Tutaj wiadomosc
.
QUIT



czwartek, 14 kwietnia 2011

Automatyczne wznawianie systemu z uśpienia

Szybko i na temat informacja jak pozbyć się automatycznego wychodzenia komputera z Windows 7 / Windows 8 ze stanu uśpienia:
Start->Uruchom->cmd.exe
powercfg -devicequery wake_armed
powercfg -devicedisablewake "nazwa urządzenia"
Komenda 1 wyświetli nam urządzenia które mogą budzić system, druga wyłączy im taką możliwość.

PS. Ważne aby nazwę urządzenia podawać w cudzysłowach

sobota, 19 lutego 2011

Jak kradną twoją tożsamość?

Jakiś czas temu w instytucji prania mózgów (czytaj szkole) dostaliśmy listę tematów na prezentację z przedmiotu o nazwie Systemy Operacyjne i Sieci Komputerow (SOISK).

Temat mój już znacie z tytułu posta, a dopowiedzenie do niego brzmiało: "Koniec prywatności w Internecie!"

A więc projekt zrobiłem, w taki sposób aby zgodnie zasadami instytucji "szkoła" zmienić światopogląd nauczycielki i każdego kto obejrzy prezentacje z "Jestem bezpieczny, informacje które udostępniam w internecie nie stanowią realnego zagrożenia" na "K***a! muszę jak najszybciej skasować konto na facebooku, nk, fotce itd a zaraz potem wyrzucić modem za okno"

Prezentacja dostępna tutaj

poniedziałek, 7 lutego 2011

Jak szybko uczyć się słówek?

Nauka słówek w języku obcym jest niebywale prosta jeśli wiemy jak to robić.
Jeśli chcesz się uczyć ich szybko zastosuj się do poniższych zaleceń :)
Krok 1: Ucz się będąc w pełni skoncentrowanym na zadaniu (czytaj żadnej muzyki w tle, włączonego TV itp rozpraszaczy)
Krok 2: Zapoznaj się z technikami pamięciowymi (mnemotechniki)
Ich głównym założeniem jest wykorzystanie skojarzeń i wyobraźni podczas nauki.
Krok 3: Zapisuj słówka w kolejności: wpierw słowo po polsku a dopiero po nim słówko w języku którego się uczysz.

Do nauki słówek polecam programik Mnemosyne przypomina on fiszki z tym, że sam dobiera słówka których jeszcze nie umiemy i częstość powtórek.

niedziela, 23 stycznia 2011

Program Word nie może uruchomić konwertera mswrd632.wpc






Rozwiązanie:
Wykasowanie klucza rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\MSWord6.wpc

Spowoduje to nie korzystanie z konwertera mswrd632.wpc przez worda, a tym samym zlikwiduje wkurzający komunikat.


Można spróbować również zainstalować łatę: KB973904

Jeśli po tych operacjach otwierany plik ma dziwne znaki, to już niestety nic nie poradzimy, plik jest zepsuty albo pierwotnie miał inne rozszerzenie.

czwartek, 6 stycznia 2011

Jak uzyskać darmowy transfer na chomikuj.pl?

Kto nie słyszał o największym polskim portalu pozwalającego udostępniać pliki znajomym? Chomikuj.pl zawiera więcej zasobów polskojęzycznych niż jest na torrentach czy na rapidshare.
Pobieranie plików z chomika jest możliwe tak długo jak mamy na naszym koncie dostępny transfer. Za GB transferu zapłacimy około złotówki w zależności od ilości kupowanego transferu. Jest możliwość również wykupienia specjalnego konta ChomikExplorer które zwiększa tygodniowy limit transferu ze standardowych 50MB do 3GB, oraz konta ChomikManiac który zwiększy jeszcze bardziej transfer tygodniowy.

Oczywiście ani przez myśl mi nie przeszło płacenie za pobieranie plików z internetu. Pobieranie za darmo jest możliwe dzięki systemowi punktów. Punkty można wymieniać na transfer lub ulepszenia konta. Za co się dostaje punkty? Za każdy pobrany plik z twojego chomika. Taryfikator znajduje się tutaj

Skoro już wiemy za co dostajemy punkty to czas przejść do tego jak je uzyskać. Zaczynamy od stworzenia chomika którego nazwa będzie prosta do zapamiętania i będzie się kojarzyła z tym co będzie na chomiku. Dalej z pomocą przychodzi nam możliwość zachomikowania plików z innych kont. Wykorzystujemy tę możliwość jak najlepiej się da, czyli szukamy plików które nas interesują i chomikujemy je na nasze konto. Tworzymy foldery których nazwy będą oddawać najlepiej zasoby który umieszczamy i do tych folderów przenosimy pliki zachomikowane od innych.
Tip1: Jeśli nie mamy pomysłu co może zawierać nasz chomik skoncentrujmy się na rzeczach najpopularniejszych czyli grach, muzyce i filmach.
Tip2: Określić popularność pliku możemy poprzez posortowanie plików wg. pobrań.
Tip3: Awatar jaki wybierzemy niech wywołuje u ludzi pozytywne emocje.

Gdy już na naszym chomiku pojawiły pliki do pobrania czas go wypromować. Jest to niezwykle proste wystarczy wejść na spis najbardziej aktywnych chomików i na każdym z nich umieścić pozdrowienia.
Pozdrowienia oczywiście muszą przyciągać uwagę przeglądającego chomika a więc znając trochę HTML tworzymy pozdrowienia, które może zawierać niestandardowe czcionki, kolory, obrazki, gify itp rzeczy.
Ja się tutaj ograniczył do zastosowania dużych rozmiarów czcionki i linków do zasobów z mojego chomika. A wygląda to tak:

Składanki muzyczne!

Hity filmowe 2010 i ekranizacje lektur!

Kursy decoupage i biżuteri

>Seriale:

Big Bang Theory

Dexter

>Gry:

Call of Duty 4 Modern Warfare

Fallout 3

Euro Truck Simulator

Counter Strike 1.6

Grand Theft Auto Trylogia

18 Wheels Of Steel Haulin PL

Kod HTML:

Umieszczanie tych informacji próbowałem zautomatyzować jednak nie udało mi się to. Więc zostaje prosty sposób otwarcia wszystkich chomików aktywnych przez wciśnięcie kółka na myszy(otwiera stronę w nowej karcie) wcisnąć END(przenosi nas na koniec strony) i wkleić swój kod HTML w oknie do wysyłania pozdrowień.
Kolejnym sposobem promocji jest przyjaźń z innymi chomikami. Ludzie gdy widzą twój awatar na chomiku który im się podoba chętniej na niego wejdą. Więc przyjaźń się również z innymi chomikami, które jeśli tylko napiszesz odpowiednio przekonującą prośbę o przyjaźń na pewno dodadzą cię do swoich znajomych.

Najwyższy czas abym się pochwalił swoimi osiągnięciami:


Jak widać ilość odwiedzin ma bezpośredni wpływ na ilość punktów jaki uzyskujemy.

Cała operacja uzyskiwania statusu chomik explorer na 3 miesiące (70 tysięcy punktów) zajęła mi tydzień. Uważam jednak że czas potrzebny do uzyskania zmniejszyłby się gdybym:
1. Umieszczał treści pornograficzne na chomiku
2. Spędził więcej czasu na reklamowaniu chomika
3. Znał świetnie się na perswazji i marketingu

Obecnie bez reklamowania chomika codziennie mam około 100 wyświetleń i dostaję ok. 3000 punktów. Wystarczy to mi spokojnie na przedłużanie chomik explorera oraz w miarę potrzeb na zwiększanie transferu o dodatkowe GB.


A jak wasz przygoda z chomikuj.pl? Może znacie lepsze sposoby na zyskiwanie punktów? Jeśli tak podzielcie się nimi w komentarzach.