Eurax

Chciałbym Zaznaczyć
Na swoim Blogu umieszczam nie tylko swoje artykuły.Przy innych publikacjach umieszczę źródło.

Praktyka - Pozycjonowanie Stron WWW - Meta Tagi

Meta Tagi

Każdy serwis internetowy, aby był widoczny w sieci dla mechanizmów wyszukujących i katalogujących, musi być odpowiednio przygotowany. Podstawa jest prawidłowe użycie znaczników META TAG w nagłówku strony. Aby osiągnąć dobre efekty, konieczne jest indywidualne przygotowanie znaczników, dla każdej strony lub grupy stron o tej samej tematyce. Ręczna edycja i poświecenie osobnego czasu na każdą stronę, pozwala na osiągniecie zadowalających efektów, przy indeksowaniu stron przez wyszukiwarki Internetowe. Możecie skorzystać z generatora meta-tagow dostępny przykładowo na stronie: http://webkatalog.pl/index.cfm?site=generator ale aby osiągnąć lepsze rezultaty proponuje poczytać dalej i dostosować się do moich sprawdzonych sposobów A wiec jak już mówiłem na stronie musza być tzw. Meta Tagi w części HEAD - czyli:

TITLE

Dla wyszukiwarek najistotniejszym elementem nagłówka dokumentu jest znacznik TITLE. Dlatego tez warto zadbać, aby tytuł każdej strony był dobrze zredagowany. Najprostsze rozwiązanie to użycie w tytule dwóch, trzech fraz, które określają jej zawartość. Tytuł musi być krotki i bardzo interesujący. Najlepiej wyobrazić sobie tytuły artykułów w gazetach. Element TITLE spełnia taka role - jest wyświetlany tylko w nagłówku wyszukiwarki np. "Najlepszy serwis o wyszukiwarkach" Pojawia się tez w wynikach wyszukiwania wszystkich wyszukiwarek, dlatego jego atrakcyjność zwiększa szanse wejścia na stronę. Wszystkie wyszukiwarki używają tego elementu do opisu strony. Zawartość elementu TITLE pojawia się w wynikach wyszukiwania jako link do znalezionego serwisu. Praktyka dobrego kodowania przemawia za umieszczeniem go na pierwszej pozycji. Czego nie należy zamieszczać w tagu tytułu - Wielu projektantów stron ma błędne przekonanie, ze powinni oni umieścić w nim nazwy firm. To jest dobry pomysł tylko wówczas, jeśli twoja firma jest znana i ludzie będą jej szukać posługując się jej nazwa - tak jak Coca-Cola. Należy założyć, ze większość potencjalnych klientów będzie poszukiwać produktów lub usług, a nie szczególnej nazwy firmy. Np., jeśli twoja firma nazywa się "Kena sp. z o.o.", to umieszczenie tylko nazwy firmy w Twoim tagu tytułu będzie poważnym błędem. Jeśli jesteś absolutnie przekonany do umieszczenia nazwy Twojej firmy w tagu tytułu, to umieść ja na końcu tagu po ważnych, kluczowych informacjach. ( Wg ekspertów niektóre wyszukiwarki przywiązują większa wagę do slow, które ukazują się jako pierwsze w tagu tytułów). Większość wyszukiwarek nie zwraca uwagi na charakter czcionki tytułu - czy jest pisany dużymi (CAPS) czy małymi literami. Jednak dla dwóch z wielkiej szóstki: AltaVisty i Hotbota jest to istotna różnica. Dlatego warto powtórzyć np. nazwę firmy pisząc np. "KENA sp. z o.o." i "Kena sp. z o.o.". Należy pamiętać, aby powtórzenia slow nie występowały bezpośrednio po sobie, lecz przedzielone innymi słowami kluczowymi i frazami. Generalna zasada konstrukcji stron jest planowanie tworzenia treści zawierających słowa kluczowe dla tematu. Następnie te słowa umieszcza się w elementach TITLE, KEYWORDS oraz DESCRIPTION.

  • Nie używaj slow, których nie ma w treści dokumentu. Jeśli jednak to zrobisz -zapomnij o dobrej pozycji twojej strony w wyszukiwarkach
  • Pisz słowa drukowanymi (wielkimi) literami - bardziej rzuca się w oczy wśród pozostałych linków w wynikach wyszukiwarki
  • Zaraz za omawianym znacznikiem dodaj dodatkowy znacznik (tzw. komentarz) - w nim wpisz to samo co napisałeś w znaczniku TITLE oraz dodatkowe słowa kluczowe wraz z wszelkimi możliwymi frazami o tej samej tematyce co zawartość Twojej strony WWW.

Przede wszystkim należy sobie zdać sprawę, co powinno być zrobione przed rozpoczęciem prac nad tagiem KEYWORDS.

  • Wybór slow i fraz określających temat strony lub serwisu.
  • Tworzenie treści strony przy wykorzystaniu wybranych slow.
  • Wykorzystanie fraz i slow kluczowych w elemencie TITLE

UWAGA

Powtarzanie slow - współczesne wyszukiwarki są bardzo wrażliwe na to nadużycie. Wielokrotne powtarzanie slow kluczowych - nawet w różnych formach (liczba mnoga, duże i małe litery, różne czasy itp) może doprowadzić do wpisania serwisu na "czarna listę" wyszukiwarki. Skutkuje to omijaniem przez roboty indeksujące takich stron. To co jest akceptowane przez wyszukiwarki to powtarzanie tych samych slow w rożnych frazach - lecz nie więcej niż 2-2 razy w jednym tagu.

DESCRIPTION

Tag DESCRIPTION jest ważnym elementem nagłówka dokumentu HTML. Słowa użyte w tym elemencie są brane pod uwagę przy ustalaniu przez wyszukiwarki rankinkingu stron. Element DESCRIPTION pojawia się tez zaraz po tytule w opisie strony w wynikach wyszukiwania. Jeśli Tag nie zawiera żadnej informacji lub został pominięty, wtedy wyszukiwarki do opisu strony używają pierwszych slow znalezionych na stronie HTML. Często zdarza się, ze taki opis jest nieczytelny, gdyż znajdują się w nim pierwsze linie kodu HTML będące linkami do stron w serwisie lub menu strony. Takie strony nie mogą liczyć na częste wizyty Internautów.

Jak napisać optymalny tag DESCRIPTION ?

W związku z różnorodnym wykorzystaniem elementu należy do jego tworzenia podejść inaczej niż do elementów TITLE czy KEYWORDS. W związku z tym wykorzystując słowa kluczowe dla dokumentu należy tak skonstruować opis, by zachęcał do odwiedzenia serwisu. Jeśli masz kłopoty z wyborem właściwego opisu można skopiować pierwsza linie tekstu dokumentu HTML - ale tego osobiście nie polecam.

Pamiętaj o kilku ważnych regułach dotyczących tagu DESCRIPTION:

  • Najważniejsze są pierwsze wyrazy opisu
  • Warto powtórzyć wyrazy z tagu TITLE w opisie strony, Opis powinien zachęcać do odwiedzenia serwisu bo słowa zawarte w tagu DESCRIPTION będą widoczne w wynikach wyszukiwarki pod linkiem
  • Wyszukiwarki zazwyczaj indeksują pierwszych 200 znaków opisu

ROBOTS

Tag ROBOTS instruuje roboty wyszukiwarek, jak maja indeksować serwis. Za pomocą 2 parametrów można określić, gdzie chcemy wpuścić robota i co może indeksować.

Parametry polecenia:

  • NOINDEX - zapobiega indeksowaniu strony przez roboty
  • INDEX - pozwala robotom indeksować dokument HTML
  • NOFOLLOW - zabrania robotom indeksowania stron, do których linki znajdują się na stronie
  • FOLLOW - pozwala robotom indeksować wszystkie strony, do których dotrze poprzez linki na odwiedzanej stronie
  • NOIMAGEINDEX - zapobiega indeksowaniu grafiki na stronie HTML - tekst może być indeksowany.

Końcowe dobre rady:

Google nie chce zindeksować Twoich stron? - dodaj je do katalogu ODP (www.dmoz.org). Zgłaszając stronę do katalogu zamieść w opisie słowa, na które pozycjonujesz. Jeśli pozycjonujesz w Polsce, nie wybieraj domeny globalnej. Staraj się wszystkie pliki z grafika (*.jpg *.gif) opisywać słowami zawartymi w "KEYWORDS" lub tytułami strony

Praktyka - Pozycjonowanie Stron WWW

  • Co to jest promocja strony WWW ?
  • Jaka treść wybrać na stronę WWW ?
  • Jak zaprojektować szatę graficzna strony WWW ?
  • Co zrobić, aby Twoja strona była odnajdywana w wyszukiwarkach ?
  • Jak podwyższać pozycje strony WWW w wyszukiwarkach internetowych ?
  • W jaki sposób wyszukiwarka Google ustala wartościowość strony WWW ?
  • Jak zrobić skuteczny banner? W jaki sposób zareklamować się za darmo ?
  • Jak otworzyć okienko reklamowe ?
  • Co to jest spamowanie i dlaczego nie warto go stosować ?
  • Jak można zwiększyć renomę swojego serwisu WWW ?
  • Jak można jeszcze zwrócić uwagę na swoja stronę WWW ?
  • W jaki sposób zebrać i zatrzymać użytkowników w swoim serwisie WWW?
  • Jak wprowadzić interaktywność?
  • Co jeszcze może przyciągnąć użytkowników do serwisu WWW ?
  • Jak zbudować bardziej profesjonalny serwis ?
  • Co zrobić, aby serwis WWW był bardziej znany ?

Niestety każdy nowy serwis boryka się zwykle z tym samym problemem: w jaki sposób zwiększyć odwiedziny swojej strony? Zakładam, że pisząc własna stronę WWW Twoim celem było pokazanie jej jak największej liczbie gości, zatem ten problem dotyczy również Ciebie.

Jest wiele sposobów promowania swojego dzieła. Jedne są mniej wyszukanie, inne bardziej, a są nawet takie, którymi zajmują się wielkie firmy internetowe i pobierają za to duże wynagrodzenia.

Jednak są pewne elementarne metody - zupełnie darmowe, choć wymagają niejednokrotnie poświęcenia dużo własnego czasu - dostępne dla każdego.

Odpowiednia treść zdawać by sie mogło, że ten punkt jest oczywisty, jednak nie wszyscy zdają sobie sprawę jak duża ma on wagę. Najprościej można powiedzieć, ze strona o nieciekawej i zbyt krótkiej treści praktycznie nie da sie bardziej wypromować. Sa oczywiście wyjątki, np. strony oferujące u siebie darmowe i bardzo przydatne rzeczy. Jednak niewłaściwy dobór treści serwisu może przekreślić wszystkie pozostałe i czasem bardzo czasochłonne metody promocji. Dlatego radze nie bagatelizować tego punktu! A oto podstawowe błędy:

Interesuje mnie wszystko...

O co chodzi? Wiele osób nie bardzo wie na początku o czym miałaby być ich strona. W

konsekwencji tworzą pewien zlepek tematów - wszystkiego po trochę. łatwo rozpoznać taka stronę, bo autorzy często juz na wstępie piszą, ze jest to strona o wszystkim. Taka strategia rzadko pozwala uzyskać dobre rezultaty, bo internauci wchodzą na jakaś konkretna stronę w poszukiwaniu ściśle określonych informacji i zwykle nie są zainteresowani "wszystkim", co autor chciał pokazać. Dlatego dużo lepiej skupić się na wybranym temacie, a nie na wszystkim na raz.

Oczywiście i od tej zasady są wyjątki: jeśli serwis jest prowadzony fachowo przez duża grupę specjalistów i zawiera obszerna wiedze, potrafi przyciągnąć czytelników. Niestety początkujący webmasterzy nie maja takich możliwości. Zastanów się, czy warto konkurować z największymi portalami wielotematycznymi i czy jest cień szansy, żeby ta walkę wygrać?

Interesuje mnie to co wszystkich...

Nie zawsze wybór popularnej tematyki strony jest dobrym rozwiązaniem. Jeśli coś interesuje wielu ludzi, to prawdopodobnie w Internecie jest masa stron o takiej tematyce. W tym gąszczu na pewno są strony bardzo wartościowe, które juz wcześniej zdobyły renomę i po prostu trudno Ci będzie z nimi rywalizować bez ściśle sprecyzowanego planu rozwoju. To trudna praca i bez doświadczenia może nie przynieść oczekiwanych rezultatów. Dobrym pomysłem może być wcześniejsze wybadanie rynku - po prostu odszukaj wszystkie strony potencjalnej konkurencji i ocen czy masz szanse wśród nich się wybić.

Mam słomiany zapal...

No, tutaj nie będę mógł Ci pomoc. Prowadzenie własnej dobrej strony WWW to naprawdę trudne, pracochłonne i czasochłonne zadanie. Jeśli strona będzie martwa i nie będzie na niej aktualizacji, stracisz czytelników. Dobrze jest informować o wprowadzonych zmianach na stronie głównej lub przez e-mail (tylko jeśli użytkownicy wyrażą na to zgodę).

Chce się tylko pochwalić...

No tak, stron tego typu jest naprawdę dużo w Internecie, ale ile z nich jest naprawdę popularnych? Zatem zastanów się czy warto umieszczać w sieci króciutka stronę, w której opisujesz wyłącznie własną osobę. Oczywiście nie ma w tym nic złego... jeśli robisz to tylko na użytek znajomych i rodziny, którzy mogliby być tym zainteresowani. Nie oczekuj jednak, ze uda Ci się łatwo przyciągnąć na taka stronę masę internautów. Nie zrozum mnie źle - nie próbuje Cię tutaj przekonać, żeby absolutnie nie zamieszczać na stronie żadnych informacji osobistych, chodzi tylko o to, żeby to nie były jedyne informacje. Chyba każdy woli czytać teksty konkretnej istniejącej osoby, która ma jakieś imię, wiek, zainteresowania i miejsce zamieszkania - rodzi to pewna wie? pomiędzy czytelnikami a autorem. Dlatego dobrze jest napisać coś o sobie w jednym z rozdziałów serwisu.

Znowu i w tym w tym wypadku są wyjątki. W Internecie dość duża popularnością cieszą się tzw. blogi. W najprostszych słowach są to internetowe pamiętniki. Autorzy zamieszczają w nich regularnie opisy swoich osobistych przeżyć z każdego dnia. Prowadzenie takiej strony jest jednak dość trudne, ponieważ jest duża konkurencja w tej dziedzinie. Dodatkowo taka strona zmusza do systematyczności. Jeśli uda Ci się przyciągnąć na stronę czytelników, nie możesz ich zawieść, przestając ja aktualizować. A poza tym pozostaje rzecz najważniejsza: nie każdy jest literatem i nie każdy potrafi pisać ciekawie o swoim życiu tak, aby zainteresować tym nie tylko siebie, ale przede wszystkim innych. Tym niemniej taka forma serwisu internetowego przynosi autorom duża satysfakcje.

Niech czytają i będą mi wdzięczni

Chyba juz wiesz o co chodzi z tym cytatem powyżej? Nigdy nie traktuj swoich czytelników z góry. Zawsze odnoś się do nich z szacunkiem, nawet jeśli maja jakieś głupie - Twoim zdaniem - problemy. Jeśli nie zamierzasz regularnie odpowiadać na listy, lepiej zapomnij o prowadzeniu własnej strony WWW.

Słyszałem, ze można na tym zarobić...

Z takim podejściem nic nie wskórasz. Żeby zarobić, najpierw musisz przyciągnąć czytelników, wiec tak czy inaczej musisz stworzyć ciekawa stronę. Nawet jeśli uda Ci się wypromować serwis, nie licz na to, ze z nieba automatycznie zaczną spadać sztabki złota. Jeśli chodzi Ci tylko o to, jest wiele lepszych, szybszych i efektywniejszych sposobów aby osiągnąć ten cel. Przygotuj się na prace całkowicie społeczna i nie licz na to, ze od razu wszyscy będą Ci za nią wdzięczni.

Idealny temat (?)

Jaki temat strony zatem najlepiej wybrać? To wbrew pozorom bardzo trudne pytanie. Idealnym rozwiązaniem byłoby wymyślenie czegoś na tyle oryginalnego, ze w danej chwili w Internecie jest mało serwisów na ten temat, ale jednocześnie na tyle popularnego, żeby mogła być tym zainteresowana większa grupa ludzi. Niestety nie zawsze można to pogodzić. Jednak pamiętaj, ze rynek zawsze należy do pionierów - jak ktoś jest pierwszy, to nie ma konkurencji! Oczywiście chyba nikt rozsądny nie wyobraża sobie dobrowolnego prowadzania strony WWW o tematyce, która go zupełnie nie interesuje. Taki wybór wcześniej czy później musi się skończyć porażką. Jak widzisz wybór odpowiedniego tematu strony wcale nie jest łatwy, ale zawsze warto poświęcić na to nawet trochę więcej czasu i wszystko dokładnie przemyśleć, bo korzyści mogą być ogromne. Zatem jeśli pomimo wielu zabiegów marketingowych Twoja strona nadal nie jest wystarczająco popularna, zastanów się czy problem nie tkwi właśnie w nieodpowiedniej tematyce serwisu. W każdym przypadku należy bezwzględnie przestrzegać praw autorskich! Umieszczenie we własnym serwisie cudzej własności intelektualnej bez wiedzy i zgody autora, może szybko powiększyć zasoby strony, ale po wykryciu oszustwa, Twój serwis może zniknąć z Internetu z dnia na dzien. W ekstremalnych sytuacjach możesz mieć nawet problemy prawne. Uwagi te nie dotyczą wyłącznie treści tekstowej, lecz także grafiki. Jeśli chcesz zapożyczyć cos unikalnego z innej strony, spytaj o zgodę autora, a przynajmniej podaj adres źródła.

Projekt graficzny

Ten punkt jest również niezwykle ważny. W dzisiejszym Internecie jest taki natłok informacji, ze bardzo trudno się w nim przebić. Właśnie przyjazny projekt serwisu może być czynnikiem decydującym, ze ktoś zacznie czytać Twoja stronę a nie konkurencji. Z drugiej strony rażąco zły projekt może odstraszać potencjalnych czytelników i wtedy nic nie pomoże odpowiedni dobór treści. Internauci stali się bardzo wybredni. Nie łatwo zaspokoić ich gusta. Nie chodzi o to, żeby Twoja strona była arcydziełem sztuki webdesignerskiej, ale dobrze jest trzymać się przynajmniej elementarnych zasad projektowania tak, aby wygląd serwisu juz na wstępie nie odrzucał odwiedzających. Dobrym pomysłem może być konsultowanie każdego etapu swojej pracy z innymi. Można np. poddać stronę do oceny na forum dyskusyjnym jednego z wielu popularnych serwisów webmasterskich. Oczywiście narażamy się wtedy na drwiny ludzi którym tylko o to chodzi, ale z drugiej strony możemy otrzymać bardzo pomocne wskazówki od prawdziwych specjalistów. Nie oburzaj się jeśli ktoś wytknie Ci pewne błędy. Dzięki konstruktywnej krytyce możesz znacznie udoskonalić swój serwis.

Rejestracja w wyszukiwarkach

Pierwsze co należy zrobić po wprowadzeniu strony do Internetu, to zarejestrować ją w

najpopularniejszych katalogach a szczególnie wyszukiwarkach sieciowych. W obecnej chwili najpopularniejsze wyszukiwarki w Polsce to: Google, Onet.pl i Wirtualna Polska. Możesz to na bieżąco kontrolować na stronie ranking.pl. Dlatego właśnie na tych trzech wyszukiwarkach należy skupić największa uwagę, bo zdecydowana większość polskich użytkowników używa właśnie ich. Od pozycji na ich listach wyszukiwania zależy w głównej mierze popularność Twojego serwisu. Chociaż tak duża ilość ruchu internetowego pochodzi od wyszukiwarek, nie należy bagatelizować roli katalogów stron WWW. Dzięki nim roboty innych wyszukiwarek (specjalne programy sieciowe, które ciągle odwiedzają wszystkie strony w Internecie, żeby przekazać później dane zebrane o nich do wyszukiwarek i aby te mogły pokazać je w swoich wynikach wyszukiwania) będą mogły dotrzeć do Twojej strony i zaindeksować ja. Poza tym dla niektórych stron będących daleko na listach wyszukiwania, katalogi stron są praktycznie jedyna metoda zapewnienia wzrostu popularności. Ważne, żeby dodawać strona do właściwych kategorii katalogu. Jest jeszcze jedna zaleta płynąca z rejestracji stron w katalogach: niektóre wyszukiwarki (np. Google) tworzą swoje rankingi na podstawie ilości zewnętrznych linków prowadzących to Twojej strony. Katalogi to właśnie takie linki, mające jeszcze ta cechę, ze są dobrze znane wyszukiwarkom i traktowane często jako baza stron do indeksacji.

Pozycjonowanie

Pod tym tajemniczym hasłem kryją się wszelkie metody, mające na celu podniesienie pozycji strony w rankingach wyszukiwarek. Niestety nie ma tu jednego uniwersalnego sposobu, który skutkowałby w każdej wyszukiwarce. Wiedza ta jest tak rozległa, a niektóre sposoby pozycjonowania tak czasochłonne, ze za profesjonalna usługę tego typu trzeba zapłacić naprawdę dość duże pieniądze. Są jednak pewne podstawowe zasady, które mogą w tym pomoc:

  • Znaczniki META

Dla większości wyszukiwarek ten znacznik ma kluczowe znaczenie (w końcu nawet tak się nazywa - słowa kluczowe . W jaki sposób określić właściwe słowa kluczowe? To proste: wyobraź sobie, ze zapomniałeś adresu Twojej strony (wiem, ze to mało prawdopodobne . Teraz pomyśl chwile, jakie wyrazy wpisałbyś w wyszukiwarce, aby odnaleźć Twoja "zgubę", a potem wpisz je w powyższym znaczniku. Główna role grają słowa kluczowe na stronie głównej (index.html), ale nie należy ich pomijać na pozostałych stronach, bo stanowią one dodatkowa szanse na nowe odwiedziny serwisu. Na każdej pod stronie wyrazy kluczowe powinny być inne - odpowiednie do treści, która się tam znajduje. Nie należy zbyt często powtarzać jednakowych slow kluczowych na tej samej stronie, bo większość wyszukiwarek uznaje to za oszustwo i efekt jest odwrotny do oczekiwanego – niższa pozycja w rankingu. Długość tego znacznika to 75 do 1024 znaków (należy się trzymać w tych granicach). Wyrazy o większym znaczeniu należy umieszczać na początku listy. Rola tego znacznika jest dwojaka: opis który podamy pojawi się w większości wyszukiwarek po odnalezieniu naszej strony (ciekawy opis może zachęcić użytkownika do odwiedzenia strony), a po drugie wiele wyszukiwarek również tutaj szuka slow kluczowych, dlatego przynajmniej niektóre wyrazy kluczowe z poprzedniego znacznika powinny występować i tutaj - to zwiększy pozycje strony w rankingu. Trzeba pójść na pewien kompromis: dużo wyrazów kluczowych dla wyszukiwarek czy zachęcający opis dla czytelników.

  • Tytuł

Tytuł strony również pojawia się wynikach wyszukiwania, a ponadto najczęściej jest wyświetlany na belce tytułowej przeglądarek. Jednak jest jeszcze jedno bardzo ważne znacznie tego znacznika: odczytują go również wyszukiwarki, dlatego także tutaj należy umieścić podstawowe słowa kluczowe. Często tytuł znanych serwisów ma następujący format:

  • Tytuł serwisu - wyrażenia kluczowe

Jest to dobry pomysł, ponieważ użytkownikowi najpierw ukazuje się przyjazny tytuł serwisu, a dopiero potem wyrażenia kluczowe, które niekoniecznie musza go interesować. Wpisywanie tytułu w postaci np. "Strona główna" albo "Bez tytułu" jest poważnym błędem, który może skutkować niższa pozycja w rankingu wyszukiwania.

Długość tytułu nie powinna przekraczać 65-75 znaków.

  • Inne miejsca na słowa kluczowe

To wbrew pozorom nie wszystkie miejsca, gdzie można umieścić ważne słowa kluczowe. Oczywiście niezwykle duże znaczenie maja słowa umieszczone bezpośrednio w treści strony (szczególnie głównej). Problem w tym, ze nie możemy ich tam wpisywać tyle, ile byśmy chcieli, bo strona stanie się po prostu nieczytelna dla człowieka. Niektóre wyszukiwarki traktują jednak "mocniej" wyrażenia umieszczone w takich miejscach jak: tytułu (szczególnie pierwszego rzędu), treść alternatywna obrazków (atrybut alt="..."), dymki narzędziowe odsyłaczy (atrybut title="...") albo tekst (opis) samych odsyłaczy. Dodatkowe punkty można również dostać, jeśli ważne słowo kluczowe znajduje się bezpośrednio w adresie strony. Lepiej jest także jeśli sam adres jest krótszy.

Linki

We wszystkich powyższym metodach możliwe jest pewne oszukiwanie wyszukiwarek, ponieważ to autor strony wpisuje słowa kluczowe, które przecież mogą nie mieć nic wspólnego z treścią.

Można swobodnie wpisać wyrażenia które są najczęściej wyszukiwane i tym sposobem próbować zwiększyć oglądalność strony. Na dłuższą metę nie jest to jednak dobre rozwiązanie, ponieważ jeśli czytelnik nie znajdzie na naszej stronie spodziewanych informacji, to prawdopodobnie więcej juz na nią nie powróci. Poza tym jeśli wyszukiwarki zorientują się, ze chcemy je oszukać, mogą na zawsze usunąć stronę z wszelkich wyników wyszukiwania! Twórcy wyszukiwarek juz dawno zauważyli możliwość oszustwa i dlatego starają się mu przeciwdziałać. W jak sposób? Najpopularniejsza obecnie wyszukiwarka Google zwraca małą lub nawet zupełnie żadną uwagę na powyższe metody, a swój ranking opiera przede wszystkim na linkach. Jeśli na różnych stronach internetowych jest wiele linków do Twojego serwisu, to strona jest wysoko w rankingu.

Dodatkowo bardziej liczą się linki ze stron popularnych, które są juz wysoko na listach wyszukiwania. Taki system naprawdę trudno oszukać, a przynajmniej jest to dużo bardziej czasochłonne.

Bannery i Butony

Wymień sie buttonami lub bannerami z jak największą liczba stron, a szczególnie tych bardziej znanych (inna sprawa jak ich namówić do wymiany . Jeśli trudno Ci znaleźć chętnych, możesz się zapisać do jednego bądź nawet kilku systemów wymiany bannerów . Taka wymiana polega na tym, ze umieszczasz na swojej stronie (albo lepiej na wszystkich podstronach) banner systemowy, który powoduje wyświetlanie reklam innych uczestników systemu, a w zamian za to Twój banner jest wyświetlany na innych stronach. Podstawa oceny przydatności takiego systemu jest tzw. ratio - np. ratio = 2:1 oznacza, ze na każde 2 wyświetlenia bannerów systemowych na Twoich stronach, otrzymasz 1 wyświetlenie Twojego banneru u innych uczestników systemu. Zatem im wyższa jest druga liczba ratio (w stosunku do pierwszej), tym lepiej, bo Twój banner będzie częściej wyświetlany. Następne pojecie z tym związane to CTR - jest to procentowy stosunek ilości kliknięć w banner do ilości jego wyświetleń. Im wyższy CTR, tym wyższa skuteczność reklamy. Przy czym należy zauważyć, ze są dwa rodzaje wskaźnika CTR: Twojego banneru wyświetlanego na innych stronach (skuteczność Twojej reklamy) oraz bannerow wyświetlanych w Twoim serwisie (skuteczność reklamy na stronach Twojego serwisu). Z naszego punktu widzenia znaczenie ma tylko pierwszy z nich, ale wiele systemów wymiany wymaga również, aby drugi wskaźnik był na określonym poziomie. Często od tego zależy także, czy Twój banner będzie wyświetlany na popularnych stronach - z wysokim CTR - czy na takich, gdzie ilość kliknięć (skuteczność reklamy) jest niewielka.

Jednak wymiana bannerem czy buttonem z wieloma serwisami to nie wszystko. Aby zachęcić użytkowników do klikania w banner, należy go odpowiednio przygotować. Samo statyczne logo serwisu to bardzo zły pomysł. Wskazane jest tutaj używanie animacji, jaskrawych kolorów, które od razu zwracają uwagę oraz napisów zachęcających do klikania. Tekst na bannerze powinien być w miarę krotki - zostawienie pewnych niedopowiedzeń może dodatkowo zachęcić do odwiedzin. Dobrze jest dobrać właściwe wyrazy na reklamie: umieszczenie napisu "za darmo" da raczej lepsze rezultaty niż np. "zadłużyć się" . Często dobre rezultaty dają bannery imitujące różnorakie kontrolki i okna dialogowe systemu Windows - np. przycisk OK, rozwijane menu, które zachęcą do sprawdzenia co jest dalej albo pole z częściowo zakrytym tekstem i z widocznymi suwakami do przewijania treści (użytkownik chcąc zatwierdzić wybór przyciskiem OK, rozwinąć menu lub przesunąć suwaki, podświadomie kliknie banner, co spowoduje przejście do Twojego serwisu).

Nie będę tutaj więcej się o tym rozwodził, ponieważ w sieci znajdziesz mnóstwo artykułów opisujących jak zrobić skuteczny banner. Często są one zamieszczone nawet na stronach systemów wymiany bannerow. Ważne jest, aby przestrzegać przyjętych rozmiarów bannerow (468x60 lub 400x50 pikseli – ten drugi rozmiar przyjoł się szczególnie w polskim Internecie) oraz buttonow (88x31 pikseli). Pilnuj również, aby pliki bannerow i buttonow nie miały zbyt dużej objętości, ponieważ wydłuża to wczytywanie strony i zmniejsza prawdopodobieństwo kliknięcia. Zmniejszenie objętości można uzyskać przez kompresje graficzna obrazków, która obsługuje praktycznie każdy bardziej zaawansowany program graficzny. Nie bój się przesadnie konkurencji - wymiana linków może przynieść pozytywny rezultat tylko na stronach o podobnej tematyce. Raczej trudno będzie znaleźć czytelników, którzy zechcieliby przenieść się na stronę np. o motoryzacji, poprzez klikniecie linku na stronie z wierszami . Zyskujesz na tym podwójnie: czytelnicy będą mogli przenieść się na Twoja stronę bezpośrednio z innych serwisów, a ponadto podniesiesz swoja pozycje na listach wyszukiwania (dzięki pojawieniu się nowych linków do Twojej strony WWW).

Pop-upy

Ta forma reklamy jest zdecydowanie najmniej lubiana przez czytelników stron WWW. Powoduje ona wyświetlenie przy wchodzeniu na nasza stronę dodatkowego okienka reklamowego (typu pop-up lub pop-under). Istnieją również systemy wymiany takich okienek - podobnie jak bannerow. Chociaż taka reklama jest bardzo skuteczna, bo użytkownik nie musi klikać w żaden banner, a strona i tak się otwiera, to taktyka ta nie zawsze jest dobra. Czytelnicy po otwarciu takiego okna zwykle od razu je zamykają - zatem właściwie nie wiadomo ile razy nasza strona została tylko otwarta, a ile razy ktoś się nią rzeczywiście zainteresował. Poza tym wielu internautów ma zainstalowane specjalne programy blokujące okienka pop-up. Zatem ta forma reklamy jest bardzo niebezpieczna i może czasem przynieść więcej szkód niż korzyści (zniechęcenie dotychczasowych czytelników serwisu, którzy przestana nas odwiedzać), dlatego dobrze rozważ, czy rzeczywiście Ci się to opłaca. Właśnie ze względu na te uciążliwość, aktualnie prawie wszystkie przeglądarki internetowe potrafią automatycznie blokować wyskakujące okna pop-up i pop-under. Trwale zmniejszyło to popularność tej formy reklamowej. Obecnie jest ona niezmiernie rzadka (skoro i tak prawie nigdy nie działa), a wielu nowych użytkowników może wręcz nie zdawać sobie sprawy, ze kiedyś okna pop-up były prawdziwa zmora dla internautów.

Spamowanie

O tym nie będę wspominał. Chyba nikt nie lubi dostawać niechcianych listów . Jeśli nie chcesz zostać okrzyknięty oszustem, absolutnie nie stosuj tej metody!

Rankingi i Konkursy

Zgłaszając stronę do rożnych konkursów WWW oraz rankingów stron możesz również powiększyć odwiedziny serwisu. Jeśli otrzymasz nagrodę, Twój serwis może zostać opisany w bardziej znanym portalu, co podnosi renomę Twojej strony oraz zwiększa odwiedziny - zalety są oczywiste. Rankingi stron to natomiast pewne uporządkowane zestawienia serwisów o podobnej tematyce. Ponieważ wiele osób poszukuje wartościowych stron właśnie w takich rankingach, wiec nie musze chyba dodawać jakie to może wywrzeć skutki na odwiedzalności serwisu. Aby uzyskać wyższe miejsce w rankingach zwykle trzeba umieszczać na swojej stronie specjalny button. Użytkownicy, którzy klikną w niego, zagłosują tym samym na Twoja stronę w rankingu, dzięki czemu przesunie się ona na wyższa pozycje.

Powiedz o swojej stronie

Wydawać by się mogło, ze to juz wszystkie podstawowe metody promocji. Zapomnieliśmy jeszcze o najprostszej, ale bardzo często niesłusznie bagatelizowanej. Możesz po prostu osobiście lub poprzez swoich czytelników powiadomić o swojej stronie innych internautów. Można to robić przez e-mail, znane komunikatory internetowe np. Gadu-Gadu czy Tlen (dobre rezultaty może dać ustawienie w statusie opisowym adresu swojej strony), informując o stronie na grupach i forach dyskusyjnych (szczególnie o zbliżonej tematyce) - możesz podać adres swojej strony w działach "Nowe strony" lub "Ocen stronę". Często nie zdajemy sobie sprawy, jak wielki przyrost oglądalności może przynieść ta prosta metoda. Naprawdę warto poświęcić trochę czasu, a rezultaty same Cię zaskoczą... oczywiście, jeżeli Twoja strona jest naprawdę dopracowana i ciekawa. Inna forma powiadamiania o stronie może być postaranie się o umieszczenie jej na CD-ROMie jakiegoś znanego czasopisma .

Gromadzenie społeczności

Co to naprawdę oznacza? Strony WWW to cos więcej niż zwykła książka czy czasopismo. Serwisy internetowe pozwalają na pewna interaktywność z użytkownikiem - to właśnie najważniejsza przyczyna, która sprawia, ze gry komputerowe sa tak popularne. Jak można zwiększyć interaktywność serwisu? Najprostsze metody to dodanie księgi gości, forum dyskusyjnego czy chat-room'u . Czytelnicy wpisując się do księgi, a jeszcze lepiej wypowiadając się na forum - szczególnie takim z możliwością rejestracji użytkowników i edycji profilu - czuja się bardziej związani z serwisem i częściej go odwiedzają. Maja tez większa skłonność powiadamiania o nim innych, co znowu zwiększa oglądalność. Natomiast chat-room'y pozwalają nawiązać znajomości miedzy czytelnikami serwisu, co również jest dobra metoda zatrzymania użytkowników na dłużej. Do księgi gości czytelnicy wpisują się zwykle tylko raz, na forum nie każdy lubi przebywać, natomiast utrzymanie dobrego chat-room'u wymaga wielu aktywnych użytkowników. Aby zapewnić stały kontakt z czytelnikami, można wprowadzić możliwość dodawania komentarzy do artykułów na stronie. Po pierwsze doda to większą interaktywność do serwisu, a po drugie następni czytelnicy widząc wcześniejsze komentarze odniosą wrażenie, ze strona jest bardzo popularna. Oczywiście w takim przypadku trzeba się również liczyć z nieprzychylnymi opiniami, które naprawdę mogą człowieka zdołować - szczególnie jeśli są nieprawdziwe Poza tymi metodami bardzo dobre rezultaty daje lista subskrypcyjna (tzw. newsletter). Na pewno widziałeś takie rozwiązania w wielu popularnych serwisach. Użytkownicy którzy chcą być na bieżąco informowani o wszystkich nowościach w serwisie, podają - zwykle na stronie głównej - swój e-mail. Potem autor, kiedy wprowadzi jakieś zmiany na stronie, wysyła informacje o tym do wszystkich zapisanych. Pamiętaj, ze należy dać użytkownikom możliwość wypisania się z takiej listy (tzn. usunięcia własnego adresu e-mail z bazy)! Nie udostępnienie takiej opcji to zwykły spam, a to na pewno nie przysporzy Ci zadowolonych czytelników. Oczywiście ręczne tworzenie listy subskrypcyjnej mija się z celem. Istnieją wyspecjalizowane programy, które robią to automatycznie. Większość serwisów korzysta jednak ze specjalnych skryptów (najczęściej PHP), które rozwiązują wiele problemów. Pamiętaj jednak, ze adresów e-mail powierzonych w ten sposób, musisz pilnować jak oka w głowie. Jeśli wyda się, ze wpadły w niepowołane ręce, Twój serwis zapewne straci cala - jakże trudno wypracowana - renomę. Do Ciebie należy decyzja czy zdecydujesz się skorzystać z darmowych komponentów udostępnianych przez innych i ryzykować, ze przejma oni adresy Twoich czytelników. Następny sposób przyciągnięcia czytelników do serwisu na dłużej to wprowadzenie mechanizmu rejestracji i logowania użytkowników. Można np. udostępniać jakieś zasoby na stronie tylko osobom zalogowanym. Chociaż rejestracja może być darmowa (taka polecam), to każdy zarejestrowany użytkownik będzie raczej pamiętał o serwisie, skoro się juz w nim logował i jest bardzo prawdopodobne, ze jeszcze kiedyś tu powróci. Z drugiej strony nadużywanie konieczności rejestracji i logowania odstrasza czytelników, bo choćby było ono darmowe, to trzeba poświęcić trochę czasu na rejestracje no i pamiętać kolejny login oraz hasło Darmowe gadżety Każdy wie, ze do serwisu najbardziej przyciągają przydatne gadżety oferowane za darmo. Jeśli możesz udostępnić na swojej stronie cos takiego, na pewno skusi to więcej internautów. Ważne jest jednak, aby oferta była naprawdę przydatna i poszukiwana. Nikt przecież nie przyjmie - nawet za darmo - czegoś co mu jest zupełnie niepotrzebne i mało atrakcyjne. Dobre rezultaty

daje także naprawdę przemyślany dział "Download", który współgra z tematyka strony. Nie ma sensu umieszczać tam co popadnie, lecz tylko rzeczy potencjalnie przydatne czytelnikom tej właśnie strony. Możesz również organizować na swojej stronie różnorodne konkursy. Rodzaj nagród zależy od Twojej pomysłowości.

Współpraca

Po co rywalizować z konkurencja, skoro można ja zupełnie zlikwidować, podejmując z nią współprace? Oczywiście nie w każdym przypadku jest to możliwe, a jeśli nawet, to wymaga zwykle daleko idących kompromisów, ale myślę, że warto spróbować. Nie od dzisiaj wiadomo jakie korzyści płyną z fuzji kilku firm - duży koncern może znacznie więcej! Inna metoda współpracy to szukanie współredaktorów serwisu. Każdy ze zwerbowanych autorów otrzymuje własny dział i zobowiązuje się regularnie pisać do niego artykuły. Jest to sposób przydatny szczególnie dla serwisów o bardziej rozleglej tematyce i może przynieść niezwykle duże korzyści. Również ta metoda nie jest dla wszystkich, ponieważ czasami po prostu charakter strony na to nie pozwala.

Udostępnianie materiałów

Po co udostępniać cześć swojej pracy w innych - nierzadko konkurencyjnych - serwisach? Chociaż na pierwszy rzut oka nie widać tutaj sensu, jest to naprawdę dobra metoda promocji. Np. pod każdym naszym artykułem możemy wymagać wstawienia specjalnej stopki z naszym imieniem i nazwiskiem oraz linkiem do naszej strony, dzięki któremu czytelnik będzie się mógł przenieść do źródła. Ponadto jeśli internauta natrafi na nasze artykuły w wielu miejscach sieci, wyrobi sobie o nas i o naszym serwisie lepsze zdanie, a dodatkowo zapewniamy sobie następne linki do naszej strony WWW (wyższa pozycja na listach wyszukiwania). Oczywiście udostępniać można nie tylko artykuły, ale również grafikę, skrypty i inne ciekawe rzeczy związane z charakterem strony. Jest to jednak metoda raczej dla juz popularnych serwisów, ponieważ nikt nie będzie chciał umieszczać materiałów mało znanej osoby, chyba ze są naprawdę dobre i potrafimy o tym przekonać innych.

Zakończenie

To na pewno jeszcze nie wszystkie metody zwiększania popularności stron WWW, niemniej przedstawione tutaj porady powinny Ci przynajmniej pomoc wybić się z internetowego "szumu informacyjnego". Niektóre z opisanych sposobów bez przeszkód można zastosować na każdej stronie, inne są bardziej skomplikowane. Jedne dają szybkie rezultaty, a na wynik drugich trzeba czekać nieraz bardzo długo. Jednak każdy może wybrać jakaś formę promocji - im więcej tym lepsze rezultaty uzyskamy. Człowiek uczy się całe życie, a realia w sieci zmieniają się niemal każdego dnia. żeby być na bieżąco, trzeba ciągle pogłębiać swoja wiedze. Dlatego zachęcam do

większego zainteresowania się tym tematem.

Python - Implementacja Algorytmu RSA

W roku 1977 trzej profesorowie z MIT w USA, Ronald L. Rivest, Adi Shamir i Leonard Adleman, opublikowali nowy rodzaj szyfrowania danych, który nazwano od pierwszych liter ich nazwisk systemem RSA. Jest to niesymetryczny algorytm szyfrujący, którego zasadniczą cechą są dwa klucze: publiczny do kodowania informacji oraz prywatny do jej odczytywania. Klucz publiczny (można go udostępniać wszystkim zainteresowanym) umożliwia jedynie zaszyfrowanie danych i w żaden sposób nie ułatwia ich odczytania, nie musi więc być chroniony. Dzięki temu firmy dokonujące transakcji poprzez sieć Internet mogą zapewnić swoim klientom poufność i bezpieczeństwo. Drugi klucz (prywatny, przechowywany pod nadzorem) służy do odczytywania informacji zakodowanych przy pomocy pierwszego klucza. Klucz ten nie jest udostępniany publicznie. System RSA umożliwia bezpieczne przesyłanie danych w środowisku, w którym może dochodzić do różnych nadużyć. Bezpieczeństwo oparte jest na trudności rozkładu dużych liczb na czynniki pierwsze.

Załóżmy, iż dysponujemy superszybkim komputerem, który jest w stanie sprawdzić podzielność miliarda dużych liczb w ciągu jednej sekundy. Aby złamać szyfr RSA należy rozbić klucz publiczny na dwie liczby pierwsze będące jego dzielnikami. Znajomość tych liczb pozwala rozszyfrować każdą informację zakodowaną kluczem prywatnym i publicznym.

Brzmi dosyć prosto. Jednakże nie ma prostej metody rozbijania dużych liczb na czynniki pierwsze. Nie istnieje żaden wzór, do którego podstawiamy daną liczbę i w wyniku otrzymujemy wartości jej czynników pierwszych. Należy je znaleźć testując podzielność kolejnych liczb.

Z rozważań o liczbach pierwszych wynika, iż w przypadku dwóch różnych dzielników pierwszych jeden musi leżeć poniżej wartości pierwiastka z danej liczby, a drugi powyżej (dlaczego?). Zatem, aby go znaleźć musimy wyliczyć pierwiastek z rozkładanej liczby, a następnie testować podzielność przez liczby nieparzyste leżące poniżej tego pierwiastka.

Statystycznie poszukiwany czynnik pierwszy powinien znajdować się w górnej połówce zakresu od 2 do pierwiastka z n. Ile działań musimy wykonać? Policzmy.

Klucz 128 bitowy. Pierwiastek jest liczbą 64 bitową. W zakresie od 2 do 264 co druga liczba jest nieparzysta, zatem jest ich około 264 / 2 = 263. Ponieważ interesuje nas tylko górna połówka, to ilość liczb do sprawdzenia jest dwa razy mniejsza, czyli wynosi 263 / 2 = 262. Ile czasu zajmie naszemu superkomputerowi sprawdzenie podzielności przez około 262 liczb, jeśli w ciągu 1 sekundy wykonuje on miliard sprawdzeń? Odpowiedź brzmi:

zajmie to około:

262 / 109 = 4611686018 sekund = 76861433 minut = 1281023 godzin = 53375 dni = 146 lat

Czy sądzisz, że ktoś będzie czekał przez prawie dwa życia na złamanie szyfru? Zatem można podać do publicznej wiadomości liczbę będącą iloczynem dwóch dużych liczb pierwszych i mieć prawie pewność, iż nikt jej nie rozbije na czynniki pierwsze w rozsądnym czasie. Ostatecznie zamiast 128 bitów możemy zwiększyć klucz do np. 1024 bitów, a wtedy czas łamania szyfru liczy się miliardami miliardów... miliardów lat.


Algorytm RSA składa się z trzech podstawowych kroków:
  • Generacja klucza publicznego i tajnego. Klucz publiczny jest przekazywany wszystkim zainteresowanym i umożliwia zaszyfrowanie danych. Klucz tajny umożliwia rozszyfrowanie danych zakodowanych kluczem publicznym. Jest trzymany w ścisłej tajemnicy.
  • Użytkownik po otrzymaniu klucza publicznego, np. poprzez sieć Internet, koduje za jego pomocą swoje dane i przesyła je w postaci szyfru RSA do adresata dysponującego kluczem tajnym, np. do banku, firmy komercyjnej, tajnych służb. Klucz publiczny nie musi być chroniony, ponieważ nie umożliwia on rozszyfrowania informacji - proces szyfrowania nie jest odwracalny przy pomocy tego klucza. Zatem nie ma potrzeby jego ochrony i może on być powierzany wszystkim zainteresowanym bez ryzyka złamania kodu.
  • Adresat po otrzymaniu zaszyfrowanej wiadomości odczytuje ją za pomocą klucza tajnego.
Generacja klucza publicznego i tajnego dla algorytmu RSA.
  • Znajdź dwie duże liczby pierwsze (mające np. po 1024 bity). Oznacz je jako p i q. Istnieją specjalne algorytmy generujące duże liczby pierwsze.
  • Oblicz:
    Ø = (p - 1) • (q - 1)
    oraz
    n = p • q

    Wygenerowane liczby pierwsze usuń, aby nie wpadły w niepowołane ręce. Ø to tzw. funkcja Eulera, n jest modułem.

  • Wykorzystując odpowiednio algorytm Euklidesa znajdź liczbę e, która jest względnie pierwsza z wyliczoną wartością funkcji Eulera Ø
  • Oblicz liczbę odwrotną modulo Ø do liczby e, czyli spełniającą równanie

    de mod Ø = 1.

  • Klucz publiczny jest parą liczb (e, n), gdzie e nazywa się publicznym wykładnikiem.
  • Klucz tajny to (d, n), gdzie d nazywa się prywatnym wykładnikiem. Klucz ten należy przechowywać pod ścisłym nadzorem.
Szyfrowanie kluczem publicznym RSA
  • Otrzymujesz od adresata klucz publiczny w postaci pary liczb (e, n).
  • Wiadomość do zaszyfrowania zamieniasz na liczby naturalne t, które muszą spełniać nierówność
    0 < style="font-style: normal;"> <>
  • Na tak otrzymanych liczbach wykonujesz operację szyfrowania i otrzymujesz liczby
    c = t e mod n.
  • Liczby c są zaszyfrowaną postacią liczb t i przekazuje się je adresatowi wiadomości. Klucz (e, n) umożliwił ich zaszyfrowanie, lecz nie pozwala ich rozszyfrować.
Rozszyfrowywanie RSA
  • Jesteś adresatem zaszyfrowanych wiadomości. Wcześniej wszystkim korespondentom przesłałeś wygenerowany klucz publiczny (e,n), za pomocą którego mogą oni szyfrować i przesyłać ci swoje dane. Otrzymujesz więc zaszyfrowaną wiadomość w postaci liczb naturalnych c, które muszą spełniać warunek:
    0 < style="font-style: normal;"><>
  • Liczbę c przekształcasz na pierwotną wartość t stosując wzór:
    t = c d mod n
  • Z otrzymanej liczby t odtwarzasz wg ustalonego systemu znaki tekstu. Teraz możesz odczytać przesłaną wiadomość.



import random
import os
def cls():
os.system("cls")

def Czekaj():
print
raw_input("Zapisz te dane i nacisnij Enter")

# Funkcja obliczająca NWD dla dwóch liczb

def nwd(a, b):
while b: a, b = b, a % b
return a

# Funkcja obliczania odwrotności modulo n

def odwr_mod(a, n):
p0, p1, a0, n0 = 0, 1, a, n
q, r = n0 // a0, n0 % a0
while r:
t = p0 - q * p1
if t >= 0:
t = t % n
else:
t = n - ((-t) % n)
p0, p1, n0, a0 = p1, t, a0, r
q, r = n0 // a0, n0 % a0
return p1

# Procedura generowania kluczy RSA

def klucze_RSA():
tp = [11, 13, 17, 19, 23, 29, 31, 37, 41, 43]
cls()
print "Generowanie kluczy RSA"
p = q = 0
while p == q:
p, q = tp[random.randint(0, 9)], tp[random.randint(0, 9)]
phi, n = (p - 1) * (q - 1), p * q

e = 3
while nwd(e, phi) != 1: e += 2
d = odwr_mod(e, phi)

print "KLUCZ PUBLICZNY"
print "wykladnik e = %4d" % e
print " modul n = %4d" % n
print
print "KLUCZ PRYWATNY"
print "wykladnik d = %4d" % d
Czekaj()

# Funkcja oblicza modulo potęgę podanej liczby

def pot_mod(a, w, n):

pot, wyn, q = a, 1, w
while q:
if (q % 2) == 1: wyn = (wyn * pot) % n
pot = (pot * pot) % n
q //= 2
return wyn

# Kodowania danych RSA

def kodowanie_RSA():
cls()
print "Kodowanie danych RSA"
print
e = int(raw_input("Podaj wykladnik = "))
n = int(raw_input(" Podaj modul = "))
print "----------------------------------"
print
t = int(raw_input("Podaj kod RSA = "))
print
print "Wynik kodowania =", pot_mod(t, e, n)
Czekaj()

w = 1
while w:
print "[ 0 ] - Koniec"
print "[ 1 ] - Generowanie kluczy RSA"
print "[ 2 ] - Kodowanie RSA"
print
w = int(raw_input("Jaki jest twoj wybor? (0, 1 lub 2) : "))
if w == 1: klucze_RSA()
elif w == 2: kodowanie_RSA()

Albert Einstein - Ciekawostki z Życia

Albert Einstein przez większość swego życia był wegetarianinem, chociaż czasem robił w diecie wyjątki. W ostatnim roku swojego życia Einstein aktywnie propagował wegetarianizm.

Nieznanym sposobem Albert Einstein obliczył, że w ciągu całego swojego życia wykorzystał zaledwie 5 procent swojego mózgu.

Podobno zapytany kiedyś:
(...)czy to prawda, że teorię względności rozumie tylko dwóch ludzi? - odpowiedział pytaniem „A kto jest drugi?.

Dyrektor szkoły Einsteina o nim gdy był młody:
Nie ważne czego będzie próbował, i tak do niczego w życiu nie dojdzie.


Albert Einstein zaczął czytać dopiero w wieku dziewięciu lat, zawsze miał też w szkole kłopoty z pisaniem, za to z myśleniem żadnych problemów. Podobnie jak wielu innych uczonych, Einstein pochłonięty pracami naukowymi nie przywiązywał wielkiej wagi do spraw życia codziennego. Po co na przykład czyścić buty, gdy ciągle pada deszcz, lub nosić w tym czasie kapelusz, kiedy schnie on o wiele wolniej niż jego włosy?

Osobisty kierowca Einsteina podczas każdego z wystąpień miał zwyczaj siadać z tyłu sali i przysłuchiwać się wywodom słynnego naukowca. Po kilku takich sesjach stwierdził, że to żadna sztuka i prawdopodobnie sam mógłby poprowadzić wykłady. Einstein, znany z ekscentrycznego poczucia humoru, dał mu szansę. Na jednym z wykładów zamienił się z kierowcą miejscami. Uczony usiadł za plecami szofera przebrany w jego uniform, natomiast kierowca poprowadził wykład.
I rzeczywiście, wystąpienie było nadzwyczaj udane. Na końcu jeden ze słuchaczy zadał szczegółowe pytanie. Nie zmieszany szofer stwierdził:
- Odpowiedź na to pytanie jest całkiem prosta, założę się, że mój siedzący z tyłu kierowca, mógłby na nie odpowiedzieć.

W pewnym okresie życia, gdy sławny uczony regularnie prowadził zajęcia na uczelni, jeden z jego studentów ze zdziwieniem stwierdził:
- Panie profesorze, pytania na tegorocznym egzaminie były takie same jak w latach poprzednich!
- To prawda - powiedział Einstein - lecz w tym roku odpowiedzi są inne.

Einstein, kiedy był studentem, nie był zbyt lubiany przez profesorów. Pewnego razu jeden z nich zwrócił się drwiąco do niego:
- Jak pan sądzi, czy skutek może wyprzedzać przyczynę?
- Może - odparł Einstein - na przykład taczki popychane przez człowieka.

Na jednym z ekskluzywnych party z udziałem znanych osobistości, Marilyn Monroe zadała Einsteinowi pytanie:
- Jak pan sądzi, profesorze, czy nie powinniśmy razem spłodzić dziecka? Miałoby moją urodę, a pański rozum.
- Obawiam się, droga pani, że mogłoby być odwrotnie... - odpowiedział słynny uczony.

Na innym przyjęciu w Ameryce na którym przebywał Einstein, Pani domu chcąc się pochwalić wiedzą z astronomii wskazała na obiekt na niebie mówiąc:
- To jest Wenus, poznaję ją, bo zawsze lśni jak piękna kobieta.
- Przykro mi - odpowiedział Einstein - Ale planeta, którą pani pokazuje, to Jowisz.
- Ach, panie profesorze, pan jest naprawdę niezwykły, z tak olbrzymiej odległości potrafi pan rozpoznać płeć planety!

W początkach naukowej kariery Alberta Einsteina pewien dziennikarz spytał panią Einstein, co myśli o swoim mężu.
- Mój mąż to geniusz! On umie robić absolutnie wszystko, z wyjątkiem pieniędzy.
Einstein przyjechał w 1923 roku do Kopenhagi na spotkanie z Bohrem. Uczeni po spotkaniu się na stacji kolejowej wsiedli do tramwaju, ale zatopieni w rozmowie zapomnieli wysiąść na właściwym przystanku. Wsiedli więc w tramwaj jadący w przeciwnym kierunku, ale znów pojechali za daleko. Historia powtórzyła się jeszcze kilkakrotnie, zanim wreszcie wysiedli na właściwym przystanku.

Albert Einstein był namiętnym palaczem. W młodości palił przeważnie cygara, zresztą liche. Potem zaczął palić fajkę i bardzo się do niej przywiązał. Podobno nie wypuścił jej z rąk nawet wtedy, gdy pewnego razu wywróciła się jego żaglówka i wpadł do wody. Wśród licznych, także dziwacznych, wyróżnień i honorów Einsteina znalazło się dożywotnie członkostwo Klubu Palaczy Fajek w Montrealu. Przyjmując to wyróżnienie, Einstein miał powiedzieć, że: Palenie fajki zapewnia spokojny i obiektywny osąd spraw ludzkich.

Zapytano pewnego razu Einsteina, w jaki sposób pojawiają się odkrycia, które przeobrażają świat. Wielki fizyk odpowiedział:
- Bardzo prosto. Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie.

Einstein nie potrafił bez pomocy drugiej osoby wypełnić deklaracji podatkowej.
To jest zbyt skomplikowane dla matematyka - mawiał - do tego trzeba być filozofem

Na pytanie 9-letniego syna czym się wsławił w nauce, Albert Einstein odpowiedział:
Gdy ślepy żuczek pełznie po powierzchni kuli, nie zauważa, że jego droga jest zakrzywiona. Mnie szczęśliwie udało się to zauważyć.

Na pytanie 9 letniego syna czym się wsławił w nauce Albert Einstein odpowiedział:
Gdy ślepy żuczek pełznie po powierzchni kuli , nie zauważa , ze jego droga jest zakrzywiona. Mnie szczęśliwie udało się to zauważyć.

Fraktale - Benoit Mandelbrot

Benoît B. Mandelbrot (ur. 20 listopada 1924, w Warszawie) – francuski matematyk, pochodzenia polskiego.

W latach 1949-1957 mieszkał we Francji. Pracował w Centre national de la recherche scientifique w Paryżu, a następnie na Uniwersytecie w Lille. Od 1957 roku pracował w USA dla firmy IBM, miał zatem dostęp do najnowocześniejszych (na owe czasy) komputerów. Mandelbrot dotarł do prac dwóch francuskich matematyków: Gastona Julii i Pierre'a Fatou, którzy badali zachowanie się iteracji pewnych funkcji zespolonych. Mandelbrot wykorzystał do tego celu komputery. Uzyskane przez niego wykresy przerosły najśmielsze oczekiwania. Otrzymane rysunki miały fantastyczne kształty. Niezależnie od powiększenia ukazywały coraz to nowe szczegóły. Były to fraktale.

Mandelbrot w 1993 r. został uhonorowany Nagrodą Wolfa w fizyce, a w 2003 r. został wyróżniony prestiżową Nagrodą Japońską.

Fraktale

Przykłady fraktali, będących tematem prac naukowych Mandelbrota.



Przykład - Implementacja w Javie



import java.awt.*;
import java.applet.*;

public class FracApp extends Applet {
public void init() {
setBackground(new Color(255,255,255));
}


public int checkC(double reC,double imC) {
double reZ=0,imZ=0,reZ_minus1=0,imZ_minus1=0;
int 0;
for (i=0;i<30;i++) {
imZ=2*reZ_minus1*imZ_minus1+imC;
reZ=reZ_minus1*reZ_minus1-imZ_minus1*imZ_minus1+reC;
if (reZ*reZ+imZ*imZ>4) return i;
reZ_minus1=reZ;
imZ_minus1=imZ;
}
return i;
}


public void paint (Graphics g) {
double reC, imC, zelle=0.00625;
int x,y;
Color colAppleman = new Color(0,129,190);

imC=-1.1;
for (y=0;y<350;y++) {
reC=-2.1;
for (x=0;x<440;x++) {
if(checkC(reC,imC)==30) {
g.setColor(colAppleman);
g.drawLine(x,y,x,y);
}
reC=reC+zelle;
}
imC=imC+zelle;
}
}
}


Fraktale : Sierpinski ( Implementacja Java )

Implementacja Fraktala - Trójkąt Sierpińskiego w Javie.

Sierpiński Wacław, urodził się w 1882, zmarł w 1969, matematyk, jeden z twórców warszawskiej szkoły matematycznej, autor licznych prac z dziedziny teorii mnogości, teorii liczb, teorii funkcji rzeczywistych i topologii. Studiował na uniwersytecie w Warszawie, a następnie podjął pracę w szkolnictwie średnim. Przyłączywszy się do strajku szkolnego w 1905, porzucił tę pracę i wyjechał do Krakowa, gdzie się doktoryzował. Od 1910 był profesorem na uniwersytecie we Lwowie. Prowadzony tam przez Sierpińskiego wykład teorii mnogości był pierwszym w świecie systematycznym wykładem tej teorii. W czasie I wojny światowej Sierpiński był internowany w Rosji przez władze carskie. W 1918 powrócił do Lwowa, a od nowego roku akademickiego 1918/19 objął katedrę matematyki w odrodzonym po latach niewoli Uniwersytecie Warszawskim (UW). W 1920—51 Sierpiński wraz z S. Mazurkiewiczem (do 1945), następnie z K. Kuratowskim pełnił funkcję redaktora naczelnego polskiego czasopisma matematycznego „Fundamenta Mathematicae". Był inicjatorem Pierwszego Kongresu Matematyków Krajów Słowiańskich, który odbył się w 1929 w Warszawie; reprezentował matematykę polską na sześciu kongresach międzynarodowych. W 1931 — 51 był prezesem Towarzystwa Naukowego Warszawskiego. W okresie okupacji hitlerowskiej wykładał na tajnym uniwersytecie, nie przerywając pracy naukowej. W 1945, po krótkim pobycie na Uniwersytecie Jagiellońskim, powrócił na UW i kontynuował działalność naukową oraz dydaktyczną. W 1958—69 był redaktorem naczelnym wznowionego czasopisma polskiego „Acta Arithmetica", jedynego wówczas na świecie czasopisma poświęconego głównie teorii liczb. W czasie niezwykle aktywnego życia Sierpiński wykładał na 47 uniwersytetach świata i wykształcił kilka pokoleń matematyków. Jego imieniem nazwano jedną z nagród Polskiego Towarzystwa Matematycznego. Dorobek naukowy Sierpińskiego obejmuje około 900 publikacji, w tym kilkadziesiąt książek, m. in. monografie, podręczniki akademickie, podręczniki szkolne, książeczki popularnonaukowe (kilka ważnych dzieł ukazało się tylko w językach obcych). Pierwsze prace Sierpińskiego dotyczyły teorii liczb. Później (1909) skierował Sierpiński zainteresowania ku teorii mnogości, przyczyniając się do przekształcenia tej dyscypliny matematycznej w usystematyzowaną teorię. Zajmował się głównie aksjomatem wyboru, hipotezą continuum, a także arytmetyką liczb kardynalnych i liczb porządkowych. Niektóre prace Sierpińskiego były poświęcone zagadnieniu przystawania przez rozkład i rozkładom paradoksalnym. W topologii znana jest krzywa Sierpińskiego, zwana także -dywanem Sierpińskiego. Wyniki Sierpińskiego w zakresie funkcji rzeczywistych dotyczą m. in. szeregów funkcyjnych i różniczkowalności funkcji. Sierpiński jest autorem takich książek, jak: Teoria liczb niewymiernych (1910), Teoria liczb (1914), Zarys teorii mnogości, część l Liczby pozaskończone (1923), część 2 Topologia ogólna (1928), Wstęp do teorii mnogości i topologii (1930), Wstęp do teorii funkcji zmiennej rzeczywistej (1932), Wstęp do teorii liczb (1933), Przekroje. Wstęp do teorii liczb niewymiernych (1934), Zasady algebry wyższej (1946), Trójkąty pitagorejskie (1954), Arytmetyka teoretyczna (1955), O rozwiązywaniu równań w liczbach całkowitych (1956), Czym się zajmuje teoria liczb (1957), O rozkładach liczb wymiernych na ułamki proste (1957), O stu prostych, ale trudnych zagadnieniach arytmetyki, z pogranicza geometrii i arytmetyki (1959), Teoria liczb (część 2 1959), Co wiemy, a czego nie wiem v o liczbach pierwszych (1961), Liczby trójkątne (1962), 200 zadań z elementarnej teorii liczb (1964), O teorii mnogości (1964).

Implementacja w Javie.











import java.applet.*;
import java.awt.*;

public class Sierpinski extends Applet {

Graphics g;
Point a1,b1,c1, a2,b2,c2, a3,b3,c3;

int level = 0;

public void init() {
setBackground(new Color(255,255,255));
}

public boolean mouseDown(Event ev, int x, int y) {
if (!ev.metaDown()) level += 1;
else if (level>0) level -= 1;
repaint();
return true;
}


public void paint(Graphics g) {


int xCoords[] = {10, 390, 200};
int yCoords[] = {390, 390, 10};
g.drawPolygon(xCoords, yCoords, 3);

drawTriangle(g, new Point(10,390),new Point(390,390),new Point(200,10), level);
}


public void drawTriangle(Graphics g, Point a, Point b, Point c, int level) {

if (level==0) return;

level -= 1;

int xCoords[] = {c.x, (c.x+b.x)/2, (a.x+c.x)/2};
int yCoords[] = {b.y, (c.y+a.y)/2, (c.y+a.y)/2};

g.drawPolygon(xCoords, yCoords, 3);


a1 = a;
b1 = new Point(c.x, b.y);
c1 = new Point((a.x+c.x)/2, (c.y+a.y)/2);
drawTriangle(g, a1, b1, c1, level);

a2 = new Point(c.x, b.y);
b2 = b;
c2 = new Point((c.x+b.x)/2, (c.y+a.y)/2);
drawTriangle(g, a2, b2, c2, level);

a3 = new Point((a.x+c.x)/2, (c.y+a.y)/2);
b3 = new Point((c.x+b.x)/2, (c.y+a.y)/2);
c3 = c;
drawTriangle(g, a3, b3, c3, level);
}
}

1001 - Liczba Szeherezady

Liczba Szeherezady (1001) widnieje w tytule nieśmiertelnych bajek "Z tysiąca i jednej nocy". Choć nie jest ona tak użyteczna, jak np. liczba π, to jednak z punktu widzenia matematyki jest nie mniej ciekawa. Posiada ona bowiem kilka bardzo interesujących własności.

Jedną z tych własności jest jej rozkład na czynniki pierwsze. Liczba Szeherezady jest bowiem iloczynem trzech kolejnych liczb pierwszych.

7 x 11 x 13 = 1001

Drugą ciekawą własnością Liczby Szeherezady jest fakt, że jest ona najmniejszą czterocyfrową liczbą naturalną, którą można zapisać w postaci sumy sześcianów dwóch liczb naturalnych:

1001 = 103 + 13

Jeśli założymy, że rok składa się z 52 tygodni, to dojdziemy do wniosku, że 1001 nocy to dokładnie:

1 + 1 + 1/2 + 1/4 roku

Niby nic takiego, jednak część tej sumy jest fragmentem początkowym bardzo często spotykanego w rachunkach szeregu:

S = 1 + 1/2 + 1/4 + 1/8 + ...

Kolejną interesującą własność tej liczby odkryjemy przy próbie pomnożenia jej przez dowolną liczbę trzycyfrową. Odkryjemy wówczas, że wynikiem tego mnożenia jest zapisana dwukrotnie dana liczba trzycyfrowa.

124 x 1001 = 124124
372 x 1001 = 372372

Python - Wprowadzenie Do Liczb Rzymskich


Nie tak dawno pisałem na temat zapisu liczb w notacji rzymskiej oraz zadań testowych w Javie .

Dziś to samo zadanie ale w Pythonie.


def int2roman(number):
numerals = { 1 : "I", 4 : "IV", 5 : "V", 9 : "IX", 10 : "X", 40 : "XL",
50 : "L", 90 : "XC", 100 : "C", 400 : "CD", 500 : "D", 900 : "CM", 1000 : "M" }
result = ""
for value, numeral in sorted(numerals.items(), reverse=True):
while number >= value:
result += numeral
number -= value

return resultprint int2roman(input("Enter an integer (1 to 4999): ")


Rezultat wykonania programu:

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]
Type "help", "copyright", "credits" or "license" for more information.
>>>
Evaluating romantoint.py
Enter an integer (1 to 4999): 1967
MCMLXVII
>>>

Chyba nie muszę komentować program napisany w Javie to 176 linii , a w Pythonie 10.

Źródła.



Java - Wprowadzenie Do Liczb Rzymskich

Tekst (opis) ten pochodzi z wikipedi.pl - implementacja w Javie już nie. Dokończenie mojego posta

"Java - Zadania Testowe " z Marca 2008

Najprawdopodobniej spotkaliśmy się już gdzieś z liczbami rzymskimi. Można je spotkać w starszych filmach oglądanych w telewizji (np. "Copyright MCMXLVI" zamiast "-Copyright 1946") lub na ścianach bibliotek, czy uniwersytetów (napisy typu "założone w MDCCCLXXXVIII" zamiast "założone w 1888 roku"). Mogliśmy je także zobaczyć na przykład w referencjach bibliograficznych. Ten system reprezentowania liczb sięga czasów starożytnego Rzymu

W liczbach rzymskich wykorzystuje się siedem znaków, które na różne sposoby się powtarza i łączy, aby zapisać pewną liczbę:

  • I = 1
  • V = 5
  • X = 10
  • L = 50
  • C = 100
  • D = 500
  • M = 1000

Poniżej znajdują się podstawowe zasady konstruowania liczb rzymskich:

  • Znaki są addytywne. I to 1, II to 2, a III to 3. VI to 6 (dosłownie, „5 i 1”), VII to 7, a VIII to 8.
  • Znaki dziesiątek (I, X, C i M) mogą się powtarzać do trzech razy. Za czwartym należy odjąć od następnego większego znaku piątek. Nie można zapisać liczby 4 jako IIII. Zamiast tego napiszemy IV ("o 1 mniej niż 5"). Liczba 40 zapisujemy jako XL (o 10 mniej niż 50), 41 jako XLI, 42 jako XLII, 43 jako XLIII, a potem 44 jako XLIV (o 10 mniej niż 50, a potem o 1 mniej niż 5).
  • Podobnie w przypadku 9. Musimy odejmować od wyższego znaku dziesiątek: 8 to VIII, lecz 9 zapiszemy jako IX (o 1 mniej niż 10), a nie jako VIIII (ponieważ znak nie może się powtarzać cztery razy). Liczba 90 to XC, a 900 zapiszemy jako CM.
  • Znaki piątek nie mogą się powtarzać. Liczba 10 jest zawsze reprezentowana przez X, nigdy przez VV. Liczba 100 to zawsze C, nigdy LL.
  • Liczby rzymskie są zawsze pisane od najwyższych do najniższych i czytane od lewej do prawej, więc porządek znaków jest bardzo ważny. DC to 600, jednak CD jest kompletnie inną liczbą (400, ponieważ o 100 mniej niż 500). CI to 101, jednak IC nie jest żadną poprawną liczbą rzymską (nie możemy bezpośrednio odejmować 1 od 100, musimy to zapisać jako XCIX, o 10 mniej niż 100, dodać 1 mniej niż 10).{mospagebreak}

Zasady tworzenia liczb rzymskich prowadzą do kilku interesujących obserwacji:

  1. Istnieje tylko jeden poprawny sposób reprezentowania pewnej liczby w postaci rzymskiej.
  2. Odwrotność też jest prawdą: jeśli ciąg znaków jest poprawną liczbą rzymską, to reprezentuje ona tylko jedną liczbę (tzn. możemy ją przeczytać tylko w jeden sposób).
  3. Tylko ograniczony zakres liczb może być zapisany jako liczby rzymskie, a dokładniej liczby od 1 do 3999 (Liczby rzymskiej posiadają kilka sposobów wyrażania większych liczb np. poprzez dodanie nadkreślenia nad cyframi rzymskimi, co oznacza, że normalną wartość tej liczby trzeba pomnożyć przez 1000, jednak nie będziemy się wdawać w szczegóły. Dla potrzeb tego rozdziału, założymy, że liczby rzymskie idą od 1 do 3999).
  4. Nie mamy możliwość zapisania 0 jako liczby rzymskiej. (Co ciekawe, starożytni Rzymianie nie wyobrażali sobie 0 jako liczby. Za pomocą liczb liczymy, ile czegoś mamy, jednak jak możemy policzyć coś, czego nie mamy?)
  5. Nie możemy w postaci liczby rzymskiej zapisać liczby ujemnej.
  6. W postaci liczby rzymskiej nie możemy zapisywać ułamków, czy liczb, które nie są całkowite.

Biorąc to wszystko pod uwagę, co możemy oczekiwać od zbioru funkcji, które konwertują z i na liczby rzymskie? Wymagania RomanNumeral.java

  1. RomanNumeral.java powinien zwracać rzymską reprezentację wszystkich liczb całkowitych z zakresu od 1 do 3999.
  2. RomanNumeral.java powinien nie zadziałać (ang. fail ), gdy otrzyma liczbę całkowitą z poza przedziału od 1 do 3999.
  3. RomanNumeral.java powinien nie zadziałać, gdy otrzyma niecałkowitą liczbę.
  4. RomanNumeral.java powinien zawsze zwrócić liczbę rzymską korzystając z wielkich liter lub małych liter.
/*******************************************************************************************************
* @(#)RomanNumeral.java
*
* RomanNumeral application
*
* @author Andre W
* @version 1.00 2008
*******************************************************************************************************/
public class RomanNumeral
{
private String _value;
private int _intValue;

public RomanNumeral(int number)
{
_intValue = number;
_value = evaluate(_intValue);
}

public int getIntValue()
{
return _intValue;
}

public String toString()
{
return this._value;
}

public String getValue()
{
return this._value;
}

public String getLowerCaseValue()
{
return this._value.toLowerCase();
}

public static String evaluate(int value)
{
StringBuffer ret = new StringBuffer();

value = doThousands(value, ret);
value = doHundreds(value, ret);
value = doTens(value, ret);
doOnes(value, ret);

return ret.toString();
}

private static int doThousands(int value, StringBuffer buff)
{
int ret = value;
int subtract = 0;

while (value >= 900)
{
if(value >= 1000)
{
buff.append("M");
subtract += 1000;
value -= 1000;
}
else if(value >= 900)
{
buff.append("CM");
subtract += 900;
value -= 900;
}
}

return ret - subtract;
}

private static int doHundreds(int value, StringBuffer buff)
{
int ret = value;
int subtract = 0;

while (value >= 90)
{
if(value >= 500)
{
buff.append("D");
subtract += 500;
value -= 500;
}
else if(value >= 400)
{
buff.append("CD");
subtract += 400;
value -= 400;
}
else if(value >= 100)
{
buff.append("C");
subtract += 100;
value -= 100;
}
else if(value >= 90)
{
buff.append("XC");
subtract += 90;
value -= 90;
}
}

return ret - subtract;
}

private static int doTens(int value, StringBuffer buff)
{
int ret = value;
int subtract = 0;

while (value >= 9)
{
if(value >= 50)
{
buff.append("L");
subtract += 50;
value -= 50;
}
if(value >= 40)
{
buff.append("XL");
subtract += 40;
value -= 40;
}
else if(value >= 10)
{
buff.append("X");
subtract += 10;
value -= 10;
}
else if(value == 9)
{
buff.append("IX");
subtract += 9;
value -= 9;
}
}

return ret - subtract;
}

private static void doOnes(int value, StringBuffer buff)
{
while (value > 0)
{
if(value >= 5)
{
buff.append("V");
value -= 5;
}
else if(value == 4)
{
buff.append("IV");
value -= 4;
}
else if(value < 4)
{
buff.append("I");
value -= 1;
}
}
}

public static void main(String[] args)
{
for(int x = 1; x <= 3999; x++)
{
RomanNumeral rn = new RomanNumeral(x);
System.out.println("Int value: " + rn.getIntValue() + " = " + rn.toString() + " or " + rn.getLowerCaseValue());
}
}
}