Niepełnosprawni mogliby być astronautami

Interesujący tekst o tym, że osoby niepełnosprawne mogą pod pewnymi względami lepiej nadawać się do roli astonautów niż osoby pełnosprawne. Niektórzy niepełnosprawni są często zmuszeni do polegania na zewnętrznych pomocniczych urządzeniach, do których muszą dostosować swoje ciało, swoją percepcję, przez co mają lepiej rozwiniętą koordynację ręka-oko. Taki niepełnosprawny byłby prawdopodobnie lepszym użytkownikiem kombinezonu astronauty niż osoba pełnosprawna. W stosunku do niepełnosprawnych świat zewnętrzny jest częściej “obcy” i muszą wypracować sobie zdolność adaptowania się do niego, improwizowania rozwiązań, znajdowania nieoczywistych sposobów poruszania sie i interakcji. To bardzo pożądane cechy dla kogoś, kto będąc w przestrzeni kosmicznej naprawdę znajdzie się w innym świecie o innych regułach ruchu i oddziaływania. Artykuł przywołuje też i inne ciekawe przykłady dając do myślenia, że “pełnosprawny” to zasadniczo człowiek przystosowany do świata na powierzchni planety a niekoniecznie do stanów nieważkości i ograniczeń stacji kosmicznej.

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

Zagrożenie wynikające z generowania numerów PESEL

Pewna pani za pomocą online-owego generatora numerów PESEL zaciągała pożyczki w bankach. Wyciągnęła 400 tys., złapali ją i teraz ma ponad 600 zarzutów. Przypadek jest ciekawy dlatego, że w zasadzie każdy może w każdej chwili sobie wygenerować jakiś PESEL za pomocą online-owych generatorów i posługując się nim zaciągać jakieś zobowiązania kosztem przypadkowych osób. Dodatkowo, ponieważ PESEL według RODO stanowi dane osobowe (Art. 2 pkt 1, Art. 87), to jeżeli ktoś sobie wygeneruje np. w Excelu wszystkie 1,826,210,000 kombinacje, to formalnie będzie miał bazę danych osobowych wszystkich Polaków. 😉

(Z ciekawostek: wiecie, że konstrukcja numeru PESEL narzuca ograniczenie na liczbę dzieci urodzonych danego dnia? Każdego dnia w całej Polsce może urodzić się maksymalnie 5000 chłopców i 5000 dziewczynek.)

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.

Git pull bez nadpisywania plików konfiguracyjnych

Czasami można użyć Git jako proste i szybkie narzędzie do deploymentu – zespół deweloperski wystawia zmiany do repozytorium, do określonej gałęzi, a serwer produkcyjny zasysa zmiany poprzez git pull. Problem jednak w tym, że czasami zmiany te mogą nadpisywać pliki konfiguracyjne. Czasami konfiguracja nie jest scentralizowana w jednym pliku, który jest konsekwentnie ignorowany prez .gitignore, lecz z różnych przyczyn jest rozproszona po wielu plikach (np. .htaccess), które z różnych przyczyn nie powinny być niewersjonowane, aczkolwiek zwersjonowane w nich dane (np. dane dostępowe, loginy i hasła) nie powinny być inne niż czysto deweloperskie.

Można na to znaleźć różne rozwiązania. Prostym wydaje się git stash. Jest to polecenie, które aktualne zmiany w plikach (czyli różnice w stosunku do tego, co jest w repozytorium) odkłada do swojego rodzaju schowka, który zachowuje się jak sterta albo stos. Można więc składować kolejne zmiany “jedna na drugą” a później je z tego stosu zdejmować poleceniem git stash pop lub git stash apply (apply nie usuwa zmian ze stosu).

W najbardziej podstawowej wersji, gdy składujemy tylko jeden zestaw zmian, otrzymujemy więc schowek, do którego “wycinamy” zmiany i później je “wklejamy”. Możliwy jest więc taki przebieg synchronizacji plików z repozytorium, że:

  1. git stash – wycinamy pliki konfiguracyjne i składujemy w schowku;
  2. git pull – synchronizujemy wszystko z repo (pliki konfiguracyjne zostaną nadpisane);
  3. git stash pop – przywracamy pliki konfiguracyjne ze schowka,

W okolicznościach, w których chcemy szczególnie nadzorować jakie pliki zostaną nadpisane i ewentualnie manualnie rozwiązywać potencjalne konflikty, można rozpocząć od git fetch (aktualizacja bazy danych repo), przejrzeć listę zmian za pomocą git status oraz zbadać indywidualne zmiany za pomocą git diff.

Generowanie twarzy przez sztuczną inteligencję

Wytwarzanie zdjęć ludzkich twarzy przez sztuczną inteligencję osiąga już naprawdę imponujący poziom. Poniższy film zawiera wyłącznie zdjęcia twarzy wygenerowanych przez komputer i ilustruje opracowane przez badaczy metody sterowania procesem wytwarzania. Magicznie to wygląda.

Jako ciekawostka polecam jeszcze filmik z 2017 roku – twarze są niedoskonałe, ale za to psychodeliczność jest 10/10. Dało mi to do myślenia na temat tego jak postrzegamy jako ludzie:

Mogę to oglądać i oglądać i się zastanawiać.

Nagrania i prezentacje PDF z konferencji “po RODO we PRZYPADKI” 13 grudnia

Otwarcie konferencji – Jarosław Feliński, Prezes SIODO

“po RODO we PRZYPADKI” – Jarosław Feliński, Prezes SIODO

“Po RODO wa rzeczywistość” – Przemysław Kuczkowski r.pr., SIODO

“RODO nie RODeO” – Natalia Bender, Wiceprezes SIODO

“RODO a Kultura Bezpieczeństwa” – Prof. Marian Cieślarczyk, WAT

“RODO EDUKACJA” – Jarosław Feliński, Prezes SIODO

“RODO PRZYPADKI” – Justyna Aniszewska, SIODO

“RODO a UODO i prawo resortowe” – Katarzyna Staśkowiak, SIODO

“RODOWANIE” – Przemysław Kanikowski, SIODO

Sądownie nakazana cenzura mediów w Australii

Ciekawy przypadek blokowania informacji ze strony państwa, którego bym o takie blokowania nie podejrzewał.

Podobno newsem dzisiejszego dnia w Australii jest orzeczenie winy pewnej wysoko postawionej, znaczącej osoby. O kogo chodzi? Wszyscy w Australii wiedzą, piszą o tym na twitterach i blogach, ale… nie wolno o tej osobie i szczegółach orzeczena sądu informować żadnym mediom. Dziennikarze nie mogą o tym pisać, bo sąd zabronił a australijskie prawo okazuje się móc narzucać takie blokady. Podobno zresztą nie są one wcale rzadkie, ale nigdy nie robi się z tego specjalnego szumu. Tym razem jest szum, bo chodzi o kardynała Georga Pella, który jest nie tylko najwyższym rangą austalijskim duchownym ale też jest nazywany trzecią w kolejności najważniejszą osobą w Kościele Katolickim (pełnił funkcje głównego watykańskiego skarbnika). Niektóre media już teraz piszą, że australiski Kościół Katolicki właśnie otrzymał “śmiertelny cios”. A to dopiero początek sądzenia kardynała, bo zarzuty nadużyć seksualnych jakie mu postawiono, rozdzielono na kilka oddzielnych spraw sądowych.

Podobno jutrzejsza okładka “The Daily Telegraph” będzie zawierać napis “TO NAJWIĘKSZA NARODOWA HISTORIA” a nad nim “Okropna zbrodnia, ta osoba jest winna, może już czytałeś wiadomości online, lecz nie możemy tego opublikować. Ale zaufaj nam…”. Serwisy “The Age”, “Sydney Morning Herald”, “Canberra Times” opublikowały artykuł o tytule “Dlaczego media nie mogą raportować o sprawie, która wzbudziła ogromne zainteresowanie online”. “The Advertiser” opublikował “Historia, której nie możemy Ci opowiedzieć”. Inne serwisy australisjkie też albo coś takiego opulikowały albo nie publikowały nic. Watykan się nie wypowiedział – podobno “z szacunku do postanowienia sądu”.

Wieść niesie, że podobno na terenie Ausrtalii zablokowano już treści jakiegoś *zagranicznego* serwisu, który skądś zdobył jakieś informacje i je opublikował.

Podobno blokada informacyjna ma trwać do czerwca.

Dana i datum w informatyce

Ostatnie dwa wpisy poświęciłem tematyce pojedynczej “danej” głównie w kontekście danych osobowych. Natomiast chyba warto też wskazać gdzie słowo “dana” oraz “datum” występują w informatyce.

Bazy danych

Na początek warto zaznaczyć, że informatyka jest bardzo obszerną dziedziną. Dwóch informatyków może mieć niewielkie pojęcie o swoich własnych niszach nawet jeżeli obaj tworzą elementy tego samego systemu. Przykładowo, programista może mieć szczątkową wiedzę na temat teorii baz danych. Z drugiej strony, administrator baz danych może mieć szczątkową wiedzę o programistycznej podbudowie silnika bazodanowego, na którym działa baza, którą administruje.

No ale do rzeczy.

Mówi się raczej powszechnie o “danej liczbowej”, “danej całkowitej”, “danej tekstowej” czy “danej typu tekstowego”. Rzadziej się słyszy o “danej elementarnej”. W bazach danych występuje abstrakcyjna dana – np. w bazach Oracle jest oracle.sql.Datum z którego dziedziczą wszystkie typy danych:

The root of Oracle native datatype hierarchy.

W PostgreSQL wewnętrzny typ danej abstrakcyjnej (widoczny z poziomu języka C) to “Datum” (zdefiniowana w postgres.h, funkcje do jej obsługi są w datum.h) .

 /* A Datum contains either a value of a pass-by-value type or a pointer to a value of a pass-by-reference type. Therefore, we require:
sizeof(Datum) == sizeof(void *) == 4 or 8
The macros below and the analogous macros for other types should be used to convert between a Datum and the appropriate C type. */

typedef uintptr_t Datum;

W GDBM również podstawowa struktura bazodanowa to “datum”.

The basic unit of data in gdbm is the structure:

typedef struct { char *dptr; int dsize; } datum;

Zresztą, drugi postulat Codd’a, twórcy modelu baz relacyjnych, posługuje się “datum”:

“Each and every datum (atomic value) in a relational data base is guaranteed to be logically accessible by resorting to a combination of table name, primary key value and column name.”

Teoria informacji

Pojęcie “danej” znalazłem ostatnio przypadkiem będąc w bibliotece w książce “Informacja” autorstwa prof. dr hab. Bogdana Stefanowicza, wydanie I, 2004 rok. Poniżej fragmenty:

Pojawia się ono także kilkukrotnie w innych publikacjach tego autora, np. w dostępnej online “Informacja. Wiedza. Mądrość” z 2013 roku.

Słownik angielsko-polski

Przeglądając książki na półce znalazłem stary słownik polsko-angielski przeznaczony dla informatyków z 1990 roku. A w nim “datum” jako “dana”. Poniżej zdjęcia.

“Datum” (liczba mnoga od “data”) znaczy “dana”