Strona główna » Informatyka

Kategoria: Informatyka

Dostęp do wyszukanych osób w planie bezpłatnym MyHeritage

MyHeritage, zgodnie z prawem, nie chroni danych osób zmarłych. Natomiast w wynikach wyszukiwania (“zbadaj osobę”) po kliknięciu na link do profilu osoby zmarłej wyświetlony zostanie monit o zakup płatnego abonamentu i nie ma sposobu, aby go ominąć – brak jakiegoś przycisku “Pomiń”, “Zamknij” czy “Przejdź do osoby”. Taki sposób MyHeritage ma na zdobywanie części klientów. Kto jednak używał MyHeritage przez dłuższy czas, ten wie, że do tych profili istnieje link dostępowy, bo różnymi drogami można do tych osób dotrzeć i czasami sam serwis go podpowiada. Taki link można również wytworzyć bazując na wynikach wyszukiwania. Poprawnie skonstruowany będzie miał on postać taką:

https://www.myheritage.pl/person-X_Y_Z/

Gdzie X to numer osoby, a Y i Z to numer witryny oraz drzewa (zazwyczaj często ten sam, nie zajmowałem się ustaleniem który jest który).

Tymczasem w wynikach wyszukiwania są linki typu:

https://www.myheritage.pl/FP/search-plans.php?s=103900133&colId=1&itemId=385852852-1-500030&indId=individual-103900133-7500002&rfr=tree

W powyższym linku interesujące nas dane są zawarte w “itemID”, czyli “385852852-1-500030”. Pierwsza liczba to jest nasze Y i/lub Z. Druga i trzecia liczba razem złączone dają X. Czyli działający link do osoby będzie taki:

https://www.myheritage.pl/person-1500030_385852852_385852852/

Zmienianie linków można sobie zautomatyzować do tzw. bookmarkletu, czy do postaci zakładki na pasku przeglądarki, której naciśnięcie przepisze wszystkie widoczne linki “search-plans” do “person”. Przykładowo, w przeglądarce Chrome należy z menu wybrać “Zakładki” i później “Menedżer zakładek”. W nowym widoku należy z menu wybrać “Dodaj zakładkę”. Można jej nadać jakąś nazwę, np. “Przepisz linki MyHeritage” i następnie w polu URL zamiast adresu WWW należy wprowadzić poniższy kod JavaScript (jest to jedna linia tekstu):

javascript:(function() { $('.record_link.recordTitle').each(function (i) { var result = /itemId=(\d+)-(\d+)-(\d+)/.exec(this.href); if (result) this.href = 'https://www.myheritage.pl/person-' + result[2] + result[3] + '_' + result[1] + '_' + result[1] +'/'; }) })();

Od tej pory kliknięcie w zakładkę w widoku wyszukiwania przepisze linki na prowadzące do osoby.

Powyższe to tylko przykład przepisujący linki do osób z drzew genealogicznych. MyHeritage wyświetla wyniki też i z innych źródeł i tam przepisywanie linku musiałoby działać inaczej.

Czasopisma policyjne w głębokiej sieci

Głęboka sieć to część Internetu, która nie jest indeksowana przez wyszukiwarki internetowe i tym samym pozostaje poza zasięgiem typowego Internauty. Niektóre czasopisma policyjne są elementem głębokiej sieci z przyczyn technologicznych – z jednej strony są one publicznie dostępne dla każdego poprzez oficjalną stronę Policji http://www.gazeta.policja.pl/ , ale z drugiej strony zakodowano je w formacie PDF z istotnymi utrudnieniami dla wyszukiwarek:

  • Te PDFy, które zawierają w sobie przeszukiwalny tekst, stosują bardzo dziwne kodowania znaków i rozbicia lub połączenia wyrazów, które są niewidoczne dla człowieka, ale skutecznie utrudniają pracę robotom wyszukiwarek;
  • Wiele PDFów zawiera po prostu skany starych czasopism a wyszukiwarki obecnie nie radzą sobie dobrze z taki treściami graficznymi (chociaż kiedyś sobie poradzą);

W związku z tym, chcąc przeszukiwać treść takich czasopism Internauta ma poważny problem – musi przeglądać wszystkie ręcznie. Do przeglądu ma 800+ numerów od 12 do 50 stron każde wydanie. Chodzi tutaj o czasopisma:

  • Policja 997,
  • Policja 997 wydanie specjalne,
  • Gazeta Policyjna,
  • Magazyn Kryminalny,
  • Patrol,
  • Wiadomości Sekcji Polskiej IPA,
  • Policja Łódzkie,
  • Przegląd Prewencyjny,
  • Stołeczny Magazyn Policyjny,
  • Kwartalnik Prawno-Kryminalistyczny,
  • Kwartalnik policyjny.

Częściowo można sobie z tym problemem poradzić i zbudować lokalną wyszukiwarkę lub wykorzystać jakiś dostępny mechanizm wyszukujący. Najpierw jednak trzeba wszystkie PDFy pobrać a następnie przetworzyć ich zawartość programem do optycznego rozpoznawania znaków (OCR) na poprawną tekstowo postać. Aby wspomóc pobieranie PDF-ów przygotowałem odpowiedni skrypt i zamieściłem w serwisie GitHub:

https://github.com/gakowalski/czasopisma-policyjne

Do pobrania skryptem jest 9+ GB danych.

Do OCR polecam NAPS2, które to oprogramowanie jest darmowe, obsługuje język polski i z tego, co sobie testowo uruchamiałem, to względnie radzi sobie z tymi PDFami. Do przetworzenia jest sporo, więc radzę uzbroić się w cierpliwość.

Wynik przetworzenia polecam zawrzeć również w pliki PDF, aby móc skorzystać z “Wyszukiwania zaawansowanego” w darmowym oprogramowaniu Adobe Reader.

Dlaczego nie przejmuję się wirusami komputerowymi

Wiele lat temu porzuciłem stosowanie programów antywirusowych i przejmowanie się wirusami. Było to jeszcze zanim nastała era systemów komputerowych z domyślnym podstawowym antywirusem takich jak współczesne Windowsy. Dlaczego od tego odszedłem? Powody były dwa:

  1. Zrozumiałem dobrze którędy wirusy mogą dostać się do mojego komputera i przyjąłem takie reguły pracy, aby nigdy nie stworzyć możliwości zarażenia.
  2. Zaobserwowałem, że programy antywirusowe są bardzo obciążające dla pracy komputera i bardzo często przeszkadzają w sprawnym działaniu systemu.

Warto zauważyć, że w pewnym momencie niektóre antywirusy same stały się “wirusowe” – obciążały komputer znacząco a instalowały się niemalże potajemnie (np. McAffee dołączany cichcem do Flasha). Pojawiły się też w pewnym momencie programy szpiegujące, które udawały narzędzia do usuwania tzw. malware i adware, czyli “złośliwego oprogramowania”.

Wszystkiemu temu postanowiłem powiedzieć: nie.

Jakie są podstawowe zasady, które przyjąłem, aby chronić się przed wirusami? Oto one:

  1. W systemie operacyjnym należy wyłączyć tzw. autoodtwarzanie, czyli automatyczne uruchamianie programów z dysków CD, USB, kart pamięci i innych.
  2. Nie używać nielegalnego oprogramowania albo oprogramowania z podejrzanego źródła. Kiedyś nielegalne oprogramowanie było dosyć powszechne, bo jakoś mentalnie my w Polsce nie mogliśmy się szybko przestawić na legalność. Dzisiaj w zasadzie do każdego zadania można znaleźć legalny, darmowy software i to jeszcze open-source. Ważne jest jednak to, aby pobierać taki software z sensownego źródła, czyli np. strony internetowej autora czy producenta a nie z jakieś dziwacznej domeny “pobieram24h-programooosy.pl”. Swoją drogą, gro wirusów dawniej przenosiło się w crackach do gier. Dzisiaj szczęśliwie świat się zmienił i ludzie nie chcą nawet legalnej gry, jeżeli nie jest podłączona do platformy typu Steam czy podobnej. Legalne i płatne oprogramowanie znalazło sposób na bycie atrakcyjniejszym niż nielegalne.
  3. Należy utrzymywać aktualne wersje oprogramowania. Nie tylko przeglądarek internetowych, ale też każdego, które ma związek z danymi pochodzącymi z sieci. Czyli: czytnik PDF-ów, arkusz kalkulacyjny, edytor tekstu.
  4. Należy mieć włączone wyświetlanie na rozszerzeń plików w systemie Windows. Jest to ważne, bo jeżeli szukamy dokumentu PDF albo Word a dostajemy plik z rozszerzeniem EXE, BAT, COM czy CMD, to od razu powinno to wzbudzić niepokój – rzekłbym nawet, że zwykły użytkownik powinien taki plik usunąć natychmiast. Znajomość rozszerzeń plików to istotna wiedza, warto ją nabyć i nie polegać na uproszczeniach, które w tym zakresie oferują niektóre systemy operacyjne i aplikacje.
  5. Należy pilnować się w Internecie. W szczególności dotyczy to chyba poczty elektronicznej i jej rozmaitych załączników. Po pierwsze, musimy widzieć rozszerzenia załączników i je oceniać tak jak przy zwykłych plikach. Po drugie, musimy ocenić źródło maila i samego maila. Czy źródło jest znane, podejrzane? Czy mail jest jakiś niespodziewany, niezamówiony, sensacyjny, nawołujący do podjęcia jakieś akcji typu “kliknij w link”, “otwórz załącznik”? Jeżeli tak, to należy mieć się na baczności.

To powyżej to są podstawowe zasady. Oprócz nich mam kilka bardziej technicznych trików polegających na wyłączaniu lub blokowaniu pewnych zaawansowanych możliwości systemu operacyjnego, aby utrudnić działanie takiego wirusowi-spryciarzowi, który by się jednak przedostał. Wydaje mi się jednak, że powyższe pięć zasad na czasy współczesne zupełnie wystarcza.

Kiedy być może warto mieć antywirusa? Gdy współdzielisz komputer z użytkownikami, którym nie można zaufać, którzy nie stosują się do wskazanych reguł bezpieczeństwa. Zamiast antywirusa można próbować ograniczyć uprawnienia tych osób, ale nie wydaje mi się, aby to było wystarczalne.

Moje narzędzia pracy w 2019 roku

W ślad za podobnym postem z 2017 roku chciałbym przedstawić co najczęściej pojawia się w mojej codziennej pracy.

Systemy operacyjne

Najczęściej Windows 10 oraz Windows 7 do prac w środowisku graficznym. Do prac innego rodzaju – a w szczególności prac serwerowych – Linuxy. Najczęściej CentOS 6/7, rzadziej Ubuntu i jego warianty.

Oprogramowanie

  • Za menedżer plików w systemie Windows służy mi darmowy Double Commander. W Linuxach nie korzystam z żadnego specjalnego menedżera. Jeżeli czegoś nie chce mi się wypisywać z linii poleceń to stosuję prosty webowy menedżer zawarty w Webmin.
  • Klient bazy danych dla Windows to HeidiSQL. Z poziomu Linuxa po prostu polecenie mysql. Gdy się nie da inaczej, używam webowego phpMyAdmin lub Adminer. Ostatnie lata skierowały mnie w zasadzie głównie do pracy z MySQL i MariaDB. Gdzieś się zapodziały Oracle i PostgreSQL.
  • Do przesyłu plików tylko WinSCP.
  • Do pracy przez SSH tylko PuTTY z dodatkiem Pageant jako że preferuje łączenie z użyciem kluczy SSH nad loginy i hasła. Takie połączenie jest wspierane przez HeidiSQL i WinSCP. Poza tym, często korzystam z tunelowania SSH i wymienione narzędzia dobrze je wspierają.
  • Do wersjonowania kodu: tylko git i do wygodnej pracy desktopowej GitHub for Desktop. Naturalnie na Linuxach git z linii poleceń. Wykupione płatne konto w GitHub.
  • Edytory kodu: w środowisku desktopowym najczęściej Atom a gdy się nie da to Notepad++. W najgorszym wypadku może być cokolwiek, np. Notatnik. Nie przeszkadza mi brak kolorowania składni czy innych bajerów. W systemach Linux przekonałem się natomiast do Vim.
  • Przeglądarki internetowe bardzo standardowe: Chrome, Firefox, Edge.
  • Do prac graficznych: IrfanView oraz Paint.Net.
  • Do różnych diagramów wykorzystuję yEd.
  • Menedżer haseł: KeePass 2.
  • Do prac z webservice’ami: SoapUI. Nowe wersje trochę działają chyba inaczej (gorzej?) niż starsze, ale SoapUI używam i tak wtedy, gdy naprawdę już nie chce mi się napisać kodu albo muszę coś bardzo szybko sprawdzić.
  • Obsługa kontenerów – docker z linii poleceń, ale częściowo webowa obsługa z użyciem Portainer . Szczególnie użyteczne przy rożnego rodzaju dziedziczonym kodzie, ale nie tylko. Kontenery dużo porządkują.

Frameworki i języki programowania

  • Ostatnie lata to głównie PHP z okazjonalnym pojawianiem się jakiś odmian Javy, Pythona i innych takich. Tym nie mniej przyszłość rysuje się bardzo PHP-owo.
  • Stawiam Laravel ponad Symfony.
  • Arkusze stylów: SASS.
  • VanillaJS ponad jQuery i inne takie, chociaż nie zawsze się da, bo nie działając w zespole nie każdy ma chęć pisać w czystym JS.

Inne

  • Rejestracja domen: od lat w gnum.pl. Ceny mają najlepsze, ale trzeba się pilnować, bo czasami wyślą powiadomienie o wygasaniu a czasami nie.
  • Certyfikaty SSL – Let’s Encrypt wszędzie, gdzie to możliwe.

Sprawne określanie użycia dysku w określonym folderze systemie Linux

Podstawowym narzędziem do oceny użycia dysku jest du, które można dodatkowo okiełznać użytecznym aliasem, aby wyniki od razu sortować np.:

alias folder-size='du --all --human-readable --max-depth=1 --block-size=1M | sort --human-numeric-sort'

Albo wersja o wyższych uprawnieniach:

alias folder-size-sudo='sudo du --all --human-readable --max-depth=1 --block-size=1M | sort --human-numeric-sort'

Powyższe rozwiązania wciąż mają istotną wadę: nie wykrywają poprawnie plików ukrytych (.) i w związku z tym próbując dociec co zajmuje miejsce na serwerze możemy namierzyć folder, ale możemy nie móc namierzyć konkretnego pliku.

Jedynym sensownym rozwiązaniem powyższego jest tak naprawdę użycie narzędzia ncdu, które w sposób interaktywny (z użyciem ncurses) pozwala badać dany folder.

W przypadku CentOS instalacja jest banalna: sudo yum install ncdu. W przypadku innych Linuxów zapewne będzie analogicznie.

Wklejenie tekstu przez symulowane wpisywanie

Niektóre interfejsy blokują możliwość wklejenia tekstu poprzez standardowe CTRL+V lub wybranie pozycji “Wklej” z menu a wymuszają wpisywanie tekstu ręcznie. Taki przypadek miałem ostatnio korzystając z Platformy Usług Elektronicznych ZUS, która obsługę formularzy realizuje przez już trochę przestarzałą technologię Flash.

Aby sobie dać radę z takim czymś należy zainstalować sobie aplikację AutoHotkey a następnie utworzyć sobie gdzieś skrypt podpinający pod CTRL+SHIFT+V wklejanie przez symulowanie użycia klawiatury i go uruchomić. Od teraz wskazany skrót klawiszowy wkleja tekst symulując naciśnięcie serii klawiszy.

Kalkulatory kolorów dla funkcji SCSS

Dla czystości kodu można chcieć utrzymywać w arkuszu SCSS niewielką liczbę podstawowych kolorów, które są przypisane do odpowiednich zmiennych, oraz na ich podstawie generować kolory pochodne za pomocą palety funkcji transformujących, które udostępnia SCSS – np. darken, adjust-hue i inne. Co jednak zrobić, gdy kolory są nam zlecane z zewnątrz już gotowymi wartościami RGB? Jeżeli znane są tutaj kolory podstawowe oraz pochodne, to można skorzystać z kalkualtorów wyznaczających zestaw funkcji transformujących!

Załóżmy, że głównym kolorem na naszej stronie WWW jest #679340, ale oto nagle nasz klient zgłasza nam potrzebę, aby w jednym miejscu tekst był “w tym kolorze ale ciemniejszy” i po chwili podsyła konkretnie dobrany odcień: #34523a. Wówczas korzystamy z jednego z wielu online-owych kalkulatorów:

Jak widzimy, wyniki są bardzo podobne. Różnią się szczegółami, ale ich wynik ostatecznie jest ten sam.

Aby ewentualnie dopomóc sobie i naszym klientom w doborze kolorów w taki sposób, aby od razu znać funkcję transformującą, warto skorzystać z Sass Color Generator, który pozwala w przejrzysty sposób obejrzeć i porównać różne warianty zmiany podstawowego koloru za pomocą funkcjo lighten, darken, saturate, desaturate.

Cyberpunkowe efekty do wykorzystania na stronach WWW

Instalacja mcrypt dla PHP 7.2 w CentOS 7

Mcrypt został wyrzucony z pakietu PHP i teraz jest modułem PECL. Aby go uruchomić w CentOS 7 trzeba go pobrać i skompilować. Będziemy potrzebować takich pakietów:

sudo yum php72w-devel install gcc libmcrypt libmcrypt-devel re2c
sudo pecl install mcrypt-1.0.2

Później jeszcze trzeba dopisać do konfiguracji PHP: extension=mcrypt.so. Dopisek można zrobić w php.ini albo można utworzyć plik mcrypt.ini w folderze /etc/php.d.

Na końcu sprawdzamy czy wszystko działa jak należy: php –info | grep mcrypt. Jeżeli będzie OK, to dostaniemy rozmaite informacje a jeżeli nie, to nie będzie żadnego tekstu wynikowego.