Pokazywanie postów oznaczonych etykietą konsekwentne kodowanie. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą konsekwentne kodowanie. Pokaż wszystkie posty

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 :-)



3 lutego 2010

PHP + HipHop ... i nigdy stop :)

Tytuł sam odkrywa szczegóły tej wypowiedzi. Chciałbym opisać swoimi słowami co myślę o rozwiązaniach sieciowych, które są wysoko skalowalne i produkcyjnie pozwalają na obsłużenie stron o ruchu ~400 mln odsłon miesięcznie. Temat do tyczy znanego wszystkim języka PHP oraz narzędzia poprawiającego niemalże o połowe wydajność tego języka tzn. prj. HipHop.



Wiele projektów udowodniło, że język PHP daje się osadzać na innych platformach (t.j. Java, .NET, Erlang VM)i konwertować do innych formatów wykonawczych. Niewiele miało tak wyjątkową rekomentację jak HipHop. Pierwotnie projekt zrodził się na potrzeby optymalizacji wydajności skryptów w serwisie społecznościowym Facebook. Od kilku dni źródła zostały uwolnione i umieszczono je na GitHub.

Wracając do alternatywnych prób kompilacji w PHP oraz osadzania warto przytoczyć następujące projekty:
phpcompiler
roadsend
Phalanger php compiler
Quercus - PHP in Java



Kwintesencja HipHop jest zarazem założeniem tego tworu. Jest to coś ala kompilator skrośny z języka PHP do języka C++. Dzięki takiej ścieżce ANSI C (Zend API), w którym napisany jest PHP, dalej PHP i na końcu skrypty CGI skompilowane kompilatorem G++ daje zysk ponoć dwukrotny w wydajności !!!
Co dla świata PHP jak i dla samego Facebooka jest REWOLUCYJNE :-) Pierwotnie produkt komenrcyjny ZendServer próbował optymalizować czas działania skryptów, poprzez pakowanie OPCODES (coś ala bytecode w PHP), lecz możliwości tego rozwiązania skończyły się bardzo szybko. Aktualnie zamiast np: dokupować kolejny rdzeń lub stawiać kolejną maszynę w farmie wystarczy użyć HipHop - nieprawdaż że proste ;) Poniższy schemat pokazuje ogólnie ten proces:





Materiały dodatkowe:

http://developers.facebook.com/news.php?story=358&blog=1
http://www.ustream.tv/recorded/4409735
http://www.facebook.com/video/video.php?v=124728580468&ref=mf

23 października 2008

Konsekwentne kodowanie i testowanie aplikacji internetowych

Wymiatający jest kod, który działa, ale taki, który działa w IE6 potrafi wymiatać podwójnie ...

Rozpoczynający dzisiejszą wypowiedź cytat/frazes nie jest przechwalaniem się jakiej to przeglądarki używam, ale raczej powieloną na mój sposób przestrogą, że w określonych okolicznościach warto pomyśleć o archaizmach. Ponoć każdy wytwór ludzkiej wyobraźni ma swój kres, gdyż rodzi się kolejny. Każda kolejna imaginacja może być jakościowo inna. Każdy produkt powinien pasować do marki i ją reprezentować. Moim zdaniem IE6 pasuje idealnie do marki M$ i ją także świetne reprezentuje.
Tak sobie spojrzałem i nawet specjaliści od testowania posiadają ratujący ich przed IE6 komentarz, który pozwolę sobie przytoczyć:


Testerzy kontra przeglądarki


Starając się dotrzeć do jak największej ilości odbiorców, dostarczając najlepszą jakość Testerzy.pl wyświetlają się poprawnie w:

* IE 7.0 i 8.0
* FireFox 2.0 i 3.0
* Opera 9.5 i wcześniejsze

Robimy wiele aby wyświetlać się poprawnie również w IE 6.0 jednak wymaga to od nas anielskiej cierpliwości i testów po każdej aktualizacji strony.



Oczywiście jest to przykłądowy i zupełnie przypadkowo odnaleziony komunikat informujący o tym, że nawet profesjonaliści od kontroli jakości mogą mieć IE6 w d.... bo powodów jest cała masa i rozmawiać można o nich wypijając przy tym skrzynkę ciemnego miodowego trunku. Oczywiście są tacy, którzy stają w obronie i udają, że im się udaje sprostać wymaganiom IE6. Ludzie, nie tędy droga :) Gdzie są wasze wymagania, założenia projektowe, konsekwencja w trzymaniu się założeń, hahahaaa ... niektórzy skomentują to śmiechem, ale wiele wielkich firm kupuje produkty działające tylko pod jedną przeglądarką. Pytanie, czy tylko nie są aplikacje intranetowe, w których problem jest z góry załatwiony.

W dobie ogólnej GPL, GPL2, *BSD i wszelkichj OpenSourcowych dowolności niekiedy zapominamy o tym, że pisząc coś dla publikacji w internecie warto się liczyć ze statystykami. Na co dzień pojawiają się wielce znaczące artykuły, które podają udział przeglądarek w rynku, lecz to często poszlaki. Nie jest tajemnicą, że tylko giganci internetowi mogą takie realne statystyki posidać, kiedy na ich portalach i stronach są treści różne i przyciągają użytkowników w różnym wieku oraz wszelakich zainteresowaniach. Ta wiedza tajemna jest też na sprzedaż i nie oszukujmy się, że z koleji inni giganci ją po prostu kupują i artykuły jakie na jej podstawie się rodzą będą bardziej na tą a mniej na tą psioczące i nie koniecznie obiektywne. Chciałbym pominąć artykuły zlecane przez M$, bo to są sztuczki marketingowe, ale nie pomijam bo to są działania skutecznie utrudniające życie teserom i deweloperom aplikacji internetowych. O tych właśnie grupach zawodowych będzie poniżej mowa :)

Z deweloperką aplikacji internetowych spotykam się na co dzień i z testerami także. Każdy ma swój zakres obowiązków oraz zakreśla fragment koła wokół którego obraca się internet. Patrząc z punktu widzenia praktycznego jeden i drugi boryka się często z problemem zakresów, w ramach których jest coś realizowane. Tak też można egzystować, ale pytanie jak długo ... pewnie do pierwszego grubego klienta, który ewidentnie powie dość i straty spowodują koniec zabawy. Dokładniej, czy czasem robienie aplikacji bez określonych wytycznych nie jest zabawą ? Na to pytanie spróbujmy sobie sami odpowiedzieć ...

Osobiście zachęcam do kartki papieru, ołówka i trzeźwego myślenia w kwestiach zasadniczych, które dotyczą przyszłego projektu. Wiele spraw, które założymy na wstępie pojawi się w trakcie, a te których nie założyliśmy zależnie od naszej konsekwencji pewnie też się pojawią. Trzymanie się ram jest o tyle ciężkim zajęciem, że zarówno indywidualnie jak i w grupie projektowej jest mnóstwo zajęć rozpraszających. Także pośrednio jesteśmy skazani na robienie wszystkiego i niczego pod warunkiem, że wiemy co znaczy konsekwencja. Dzięki niej wiele projektów jest kończonych na czas i ich jakość jest na wysokim poziomie.
Pomyślałem, że umieszczę link do wikipedii, bo nam wszystkim się przyda. Przypominanie sobie o niej uratowało niejeden projekt, więc zachęcam do kodowania konsekwentnego, któro po kodowaniu zwinnym ma tą zaletę, że nikt nam nie zarzuci, że coś mu nie działa w IE6 :-)

Kilka linków:
Testowanie w agile 2
Wojna przeglądarek
Przeglądarki używane przez internautów łączących się z polskimi witrynami z obszaru Polski. Ranking jest tworzony na podstawie liczby odsłon.

Exciting times in python testing world

Python Testing Tools Taxonomy

Agile Testing Articles and Tutorials