25 kwietnia 2017

Zwycięstwo Open Source nad pospolitą komercją



Zasady w świecie otwartego oprogramowania są dość naturalne:
  • stwórz sobie projekt, który możesz zrobić lub szukasz innych chętnych do jego realizacji
  • korzystaj z kodu innych i zgłaszaj swobodnie poprawki, błędy, pomysły, uwagi
  • kontrybuuj, czyli dorzucaj kiedy chcesz swoje trzy grosze zupełnie "za darmo" do projektów
  • ciesz się życiem, sukcesami i ew. dolarami za zdobycze/osiągnięcia całego świata IT bazującego na Open Source
  • nie narzekaj, po prostu poprawiaj niedoróbki jako wolontariusz - wielu też się teraz uczy
  • inne specyficzne zależne od konkretnych prawnych licencji
Jak to bywa w wielkim świecie oprogramowania są firmy, które pokazują co produkują i takie, co ukrywają tajnie swoje kody. Do niedawna było tak, że wielcy tego świata z branży IT robili kod tylko dla siebie i pokazywali wyjątkowo fragmenty na konferencjach branżowych. Lata mijały, coraz trudniej im się wiodło i od kilku lat mają swoje konta na github.com i tam świadomie dzielą się w ramach FLOSS za darmo wyprodukowanym kodem. Również respektują przytoczone na wstępnie zasady :-)

To jest WIELKI SUKCES OPEN SOURCE, kiedy przeglądając kod takich firm jak: Google, Allegro, Zelando, Amazon, eBay, Netflix, Uber, Facebook, Apple, IBM, Redhat, NASA, NSA itd. możemy podziwiać kunszt i uczyć się od najlepszych, o ile jaramy się warsztatem programistycznym innych programistów z całego świata. 

Osobiście "pożywiam" się takim otwartym kodem na co dzień i muszę tutaj wspomnieć, że analiza statyczna, testy bezpieczeństwa, testy jednostkowe, testy behawioralne to kanony, które już stanowią podstawę publikacji wielu projektów Open Source.
Nie ma już sytuacji, że tak jak kiedyś na sourceforge.org ściągaliśmy spakowane źródła z kodem, to nie było wiadomo, czy działa, czy nie działa. Obecnie na github, gitlab, bitbucket i wielu innych sitach mamy dostęp do wysokiej jakości kodu za darmo
TAK jest to wiedza, która jest za DARMOCHĘ.
Jeśli drogi czytelniku zamierzasz zostać programistą, to musisz wiedzieć, że istnieje ogromna ilość kodu do przejrzenia, wsparcia i współtworzenia. Co wiążę się z nowymi sposobami zdobywania wiedzy, poprzez społecznościowe przeglądy naszego kodu, dyskusje z ludźmi zaangażowanymi w brażę, z pasjonatami. Koniec z nudnymi wykładowcami - taki żarcik, nie wymrą zbyt szybko - bo współcześnie każdy nowy trend w IT ma swoich zwolenników, społeczność i darmowe kursy eLerningowe.

W tej sytuacji, jeśli jakaś komercyjna firma, która nie ma udziałów w OpenSource w sensie nie dokłada swojej cegiełki, a tylko korzysta jest pozbawiona najpewniej ludzi z pasją. Bo ludzie z zainteresowaniami chętnie wspierają innych, kontrybują do Open Source i są bardzo otwarci na dzielenie się wiedzą i kodem na zewnątrz. To stoi w sprzeczności z interesami firm, które zamykają się na Open Source, więc mam taką hipotezę, że inżynierowie oprogramowania jacy do nich trafią będą mniej otwarci na NOWE technologie niżeli fanatycy zmieniającej się branży.
Dochodzimy do sedna: jeśli zatrudniasz ludzi z pasją do Open Source to wiedz, że Twoja firma dzięki takim ludziom posiada przewagę konkurencyjną. Ludzie w zamkniętych technologiach/korporacjach czekają aż jakiś support rozwiąże za nich problem, a ludzie z otwartych firm sami robią Pull Requesrty ze zmianami do używanych przez nich projektów Open Source.

Skąd te wnioski ? Z praktycznego współtworzenia kodu i społeczności Open Source m.in. tutaj http://github.com/bieli oraz z edukacji znajomych (w tym licznych klas młodzieży) w tematyce programowania i budowy systemów komputerowych.

Zachęcam tym samym wszystkich do spróbowania, załóżcie konto na GITHUB, nauczcie się GITa i spróbujcie swoich sił w bardzo silnej branży IT. Świat otwartego oprogramowania liczy na waszą kontrybucję :-) i kto wie, może tak przełomowy projekt jak jądro Linuxa, czy rozproszony system kontroli wersji GIT.

Tutaj oczywiście ukłon w stronę Open Source i wyraz szacunku, że zaufanie jakie pokładałem w otwartym oprogramowaniu ładnych ~25 lat temu współcześnie jest normalnością, standardem i koniecznością. Jest to spójne ogniwo pomiędzy wieloma firmami i freakami, gdzie widać wspólny cel, kształtowanie etyki zawodowej i realny rozwój technologii przez każdego chętnego.


Open Source dzisiaj to synonim Otwartego Spokojnego Umysłu i niechaj tak pozostanie :-)



28 marca 2017

Rozpoznawanie mowy w chmurze i z procesorem języka naturalnego NLP-5x

Ostatnio wiele trendów wskazuje na to, że analiza i synteza mowy ludzkiej to niedaleka przyszłość branży IT. Chciałbym zwrócić uwagę, że już 5 lat temu wiele startupów podchodziło do tego tematu z niemal tytanicznym wysiłkiem konstruując dedykowany hardware. Oczywiście współcześnie wiemy, że zatrudnia się do tego całe chmury komputerów oraz sieci neuronowe, aby uzyskać wartościowe efekty. Wynalazcy, o których jest ten wpis stale wierzyli w powodzenie swojego pomysłu i utworzyli coś co nazwali procesorem języka naturalnego NLP-5x. Przyjrzymy się również historii rozpoznawania mowy oraz jakie produkty są obecnie na rynku konsumenckim dostępne.

Okazuje się, że słynny wynalazca Alexander Graham Bell, któremu przypisujemy taki wynalazek jak telefon pracował nad maszyną, której można dyktować tekst. Nie udało mu się osiągnąć celu, ale efektem ubocznym jego pracy jest mikrofon i oczywiście otwarcie epoki komunikacji międzyludzkiej w kolejnym ważnym wymiarze.
To dzięki telefonii mamy tak znaczący postęp technologiczny i szacunek dla Pana Bella za ten wynalazek :-) bo zsiedliśmy z siodła i możemy wymieniać informację siedząc :-)
W historii rozpoznawania mowy mamy niewiele znaczących wydarzeń od roku 1952, kiedy to Fonetograf Drayfusa-Grafa, maszyna zapisująca fonemy pokazała, że coś w tej dziedzinie można osiągnąć. Podstawowym i najbardziej naturalnym sposobem komunikacji międzyludzkiej jest mowa. Oczywistym faktem jest, że człowiek chciałby się w ten sposób komunikować również z maszynami. Własnie dlatego powstające odkrycia doprowadziły do utworzenia przez Google korpusu słownikowego rozpoznającego mowę w 2011 roku. Od tej daty, kiedy wiele firm i instytucji testuje i używa produktu Google do tłumaczeń oraz rozpoznawania mowy w wyszukiwaniu, wiele inwencji ukazuje nam rynek.

Dokonania lat 60-tych XX wieku to opracowania algorytmu szybkiej transformacji Fouriera (ang. Fast Fourier Transform - FFT), która skróciła znacznie obliczenia pozwalające na analizę widma oraz niejawne modele Markowa (ang. Hidden Markov Model- HMM) stosowane do modelowania mowy. HMM wykorzystuje prawdopodobieństwo wystąpienia głosek przy zaobserwowanych parametrach mowy. Zarówno FFT jak i HMM do dzisiaj są podstawami systemów rozpoznawania mowy.
W latach 90-tych wprowadzono pierwsze dostępne dla przeciętnego użytkownika systemy ASR (ang. Automatic Speech Recognition - systemy rozpoznawania mowy) takie jak Dragon, czy IBM ViaVoice.

Obecnie systemy ASR możemy podzielić na dwa podstawowe typy: systemy rozpoznawania słów izolowanych z ograniczonym słownikiem (IWRS, ang Isolated Word Recognition Systems) oraz system rozpoznawania mowy ciągłej i swobodnej z bardzo duzym słownikiem (LVCSR, ang. Large Vocabulary Continuous Speech Recognition).

Analiza mowy to wyzwanie dość śmiałe i każda firma w tych czasach chciałaby wykrywać i rozpoznawać mowę, analizować i móc wyciągać wnioski lub oferować coś za pieniądze. Marzenia te powolnie się spełniają i co tutaj kryć napędzają je dość prozaiczne sprawy: literatura/kino SCI-FI; potrzeba posiadania przez konsumentów np: do sterownia otoczeniem przy pomocy głosu (urządzeniami w domu, drzwiami do garażu, telewizorem); zmierzenie się z algorytmami z dziedziny analizy sygnałowej (DSP) oraz możliwość serwowania takiej usługi w chmurze. Ten ostatni punkt to ciasteczko na torcie, bo kolejne produkty będą płaciły za używanie takiej chmury "gadająco-słuchającej" :-) Przykład, który najbardziej dałoby się spieniężyć to doradca telefoniczny, który potrafi z nami porozmawiać o problemach technicznych i nigdy się nie myli. Sprzedawca, który zna dokładnie szczegóły całej oferty i dobiera nam idealnie do potrzeb produkt, a jeśli nie dobierze i tak coś sprzeda (patrz konsultaci w bankach). Taki bot gadający na VoIP to idealny produkt przyszłości.

Na rynku obecnie istnieje coraz więcej produktów sterowanych głosem hucznie nazywanych Internet Of Things, które zapoczątkował produkt Amazon Echo. W jednej z pierwszych wersji wyglądał tak:

Kolumna widoczna powyżej to komputer, który posiada stałe połączenie z chmurą obliczeniową firmy Amazon. Potrafi słuchać rozkazów i kilka sztuczek związanych z zakupami. Doradza jak ubrać się zależnie od pogody i przypomina wydarzenia z terminarza. Ogólnie może być użyty w różnych aplikacjach, bo posiada dedykowane API. Nowsza wersja tego wynalazku to ALEXA lub Echo Dot/ Informacyjnie filmik, jakie są podstawowe możliwości tego wynalazku:

Niezbyt długo trzeba było czekać na odpowiedź konkurencji i tak pojawił się Google Home - oto proste porównanie:

Oczywiście Siri to odpowiedź firmy Apple na potrzeby rozpoznawania mowy i aplikacje wokół tego tematu. Oto rzut okiem i uchem:

Mercedes, Audi, Ford i Fiat wykorzystują do sterowania wyposażeniem multimedialnym i telefonem pokładowym samochodu rozwiązania lidera rynku – firmy Nuance. Podobnie jak Siri w iPhone'ie 4S, sterowany głosem system nawigacji jest w stanie rozpoznawać nazwiska z książki adresowej podłączonego do niego telefonu.

Skoro już przebrnęliśmy przez przedstawienie tematu rozpoznawania mowy, czas na prezentację firmy, która zamknęła rozpoznawanie mowy w krzem i postanowiła, że wyda procesor mowy NLP-5x.

A całość to RISC 16-bitowy DSP dedykowany do dziedziny ASR. Posiada specyfikację techniczną wraz z szeroko rozumianym opisem możliwości aplikacyjnych. Posiada w sobie HMM i jest energetycznie mało zasobożerny jeśli chodzi o zasilanie. Jest to pierwszy tego typu kompletny produkt na rynku, ale rodzi się pytanie, czy rynek na pewno potrzebuje takiego podejścia ... zobaczymy wkrótce.
Poniżej diagram blokowy takiego procesora:

Przykłady działania dostępne są w sieci:

Dużo napisałem o generowaniu mowy, ale synteza mowy też jest elementem ten dziedziny i można poznać jej historię w przystępny sposób tutaj
Na szczególną uwagę zasługuje też nowy kierunek Biometryczna Identyfikacja Tożsamości, który rokuje wielkie nadzieje w użyciu unikalnych cech każdego człowieka jakim jest aparat mowy do potwierdzenia wiarygodności danej osoby rozpoznawalnej wysławianiem się.

Czekam z niecierpliwością, kiedy ten chip stanie się standardem w wyposażeniu wielu urządzeń RTV/AGD i będzie można poznać jego kolejne generacje, jak ma to miejsce w mikrokontrolerach z rodziny ARM.

Linki:
Rozpoznawanie mowy w python wlasny jarvis kopii zapasowej speech_recognition moduł języka Python Kolejny projekt Elona Muska rodem z science-fiction. Chce połączyć komputer z mózgiem - nowa firma Elona Muska NEURALINK

15 grudnia 2016

UbuntuBSD - bezpieczny kernel z FreeBSD + popularna dystrybucja Linuxa Ubuntu + system plików ZFS

Przypomniałem sobie ostatnio 2001 rok, kiedy to po raz pierwszy zainstalowałem system FreeBSD i był to nie lada wyczynem. Podłączenie do łącza/internetu poprzez dialup/SDI również wyamgał czasu. Pomogła mi na pewno "salka internetowa", czyli taka mała kańcapa którą mieliśmy w Technikum Łączności nr. 2 w Lublinie i faktycznie tam terminal tekstowy na FreeBSD to była codzienność :-) Po kilku latach stabilnego działania serwerka/bramy do internetu postawionego na FreeBSD, nastał na czas na PLD, wiele Live CD distros, RedHat Linux a następnie w ok. 2008 roku na Ubuntu Linux.

Jestem użytkownikiem Ubuntu Linux ~9 lat i doceniam korzenie odziedziczone z Debian Linux w tym systemie. Jednak ciekawostki z DistroWatch są dla mnie codzinnością i w związku z pewnym kontrowersyjnym newsem czynię ten wpis.


Objawił się moim oczom pewnego dnia UbuntuBSD i pomyślałem, że diabełek z widłami oraz koło wsparcia dla wszystkich to moze być ciekwe połączenie :-)
Oczywiście jak każdy ciekawski dystrybucji Linuxa pobrałem ISO i zainstalowałem na dostępnym storagu. I tutaj niespodzianka, bo od razu moim oczom rzuciło się pomieszanie komend z dwóch systemów ... co spowodowało u mnie na początku zdziwienie. W sumie czegoś takiego mogłem się spodziewać, ale kiedy człowiek nie poczuje mixów w praktyce, nie zdaje sobie sprawy, jak artyści-programiści mieszają różne koncepty ;-) 
Z jednej strony jądro FreeBSD a z drugiej shell/środowisko/komendy używane na codzień w Ubuntu.

Najważniejsze funkcje i właściwości oferowane przez UbuntuBSD:
– wsparcie dla technologi jail (wirtualizacja i zabezpieczenie dla jądra systemu)
– OSS jako domyślny system dźwięku
– OpenBSD Packet Filter (pf)
– wsparcie dla systemu plików ZFS (to jest mega wyczyn i moim zdaniem wielki plus)
– GNU userland
– nie zawiera żadnych pakietów własnościowych (non-free)
– używa pakietów Debuana "deb" do instalowania oprogramowania
– pakiety mogą być obsługiwane za pośrednictwem menadżera pkietów APT
– wsparcie dla maszyn wirtualnych, takich jak VMware oraz VirtualBox