Podcast Programisty Odcinek 11

Zapis tekstowy 11 odcinku podcastu programisty. Możesz uczestniczyć w jego uzupełnianiu. W tym celu naciśnij przycisk "Edytuj" na dole po prawej i dopisz dalszy fragment podcastu. Nie musisz się rejestrować ani logować!

Witaj w 11 odcinku Podcastu Programisty. Po pierwsze najlepszy język programowania. Następny temat to zmiana organizacji stron internetowych. Następnie o zmianach na moim blogu, czyli o ankietach i wyglądzie bloga i o Global Translatorze, który teraz niestety nie działa. A następnie o gwoździu programu, czyli że założyłem własną stronę Wiki.

No więc może na początek kawał. Dwóch programistów idzie na rozmowę kwalifikacyjną w sprawie pracy gdzie dostali do wypełnienia test. Wypełnili ten test, oddali i okazało się, że obaj odpowiedzieli dobrze na 9 pytań, a na 10. źle. Ostatnie pytanie brzmiało: jaki język programowania jest najlepszy? I osoba rekrutująca patrzy na te ankiety i mówi: no pan… pan został przyjęty! I ten drugi się pyta: no jak? a dlaczego on? obaj nie odpowiedzieliśmy na jedno pytanie. A osoba rekrutująca mówi: no wie pan, rzeczywiście obaj nie odpowiedzieliście, ale on odpowiedział "nie wiem", a pan odpowiedział… no jak pan odpowiedział? Pan odpowiedział: "ja też".

No i to był ten kawał i właśnie. Dlaczego go poruszam? To jest dosyć płomienny temat. Jaki język programowania jest najlepszy? Przede wszystkim nowe osoby, które chcą zacząć programowanie zastanawiają się jaki język wybrać. Chciałbym odpowiedzieć na to pytanie, jest ono dosyć kontrowersyjne. Przede wszystkim każdy stara się polecić język programowania, w którym sam pisze. Ja jednak mam inną radę, akurat sam piszę w kilku językach, głównie w C# i w PHP, no ale jeżeli miałbym poradzić jaki język wybrać na początek to powiem tak: przede wszystkim to nie ma za dużego znaczenia, dlatego, że w trakcie pracy zawodowej jako programista poznaje się wiele języków i pierwszy język nie jest aż tak bardzo ważny. Natomiast osobiście uważam, że jeżeli już zacząć od czegoś to najlepiej od najnowszych rozwiązań i proponuję języki takie jak: C#, Java i Ruby, czyli te najnowsze, które są dostępne, dlatego, że to są języki wysokopoziomowe i one mają najwięcej nowoczesnych rozwiązań i zastosowań. I na początku dobrze jest się do nich przyzwyczaić, a nie przyzwyczajać się do gorszych rozwiązań, a później zmieniać swoje nastawienie na te nowe, co jest jeszcze trudniejsze i każdy kto uczy się nowych języków wie, że czasem przestawienie się na nowe koncepcje programowania nie jest aż takie łatwe. Np. programiści Windows Apy nie tak łatwo potrafią przeskoczyć na C#, gdzie mają dostępnych masę bibliotek, które wszystko realizują i uważają, że trzeba wszystko w Apy programować. To jest taka generalizacja, ale chodzi o to, że jak się pojawia jakaś nowa koncepcja programowania to trzeba się do niej przyzwyczaić jak się już nasiąkło inną koncepcją. Także od górnej półki, a później w dół można zawsze zejść i według mnie to jest łatwiejsze.

Druga rada jest taka, żeby zobaczyć jak wyglądają społeczności, dlatego, że w trakcie programowania trzeba mieć skąd czerpać wiedzę i oprócz tego, że muszą być książki, materiały dostępne, to jeszcze jest ważne czy jest dobra społeczność jak wszędzie, czy są odpowiednie osoby, które odpowiedzą na pytania. Przy okazji można zobaczyć na różnych forach i stronach społecznościowych, internetowych związanych z danym językiem programowania, jak zachowują się czy jak prezentują się osoby znające to środowisko. No i teraz jeżeli na takim forum spotka się osoby, które odpowiadają arogancko na pytania czy nie odpowiadają, czy w ogóle nie wiedzą, czy starają się pokazać, że są najlepszymi ekspertami, i że ty nic nie wiesz na ten temat, i że w ogóle po co zadajesz pytania. To w takim razie powinieneś sobie zadać pierwsze pytanie: "czy chcesz należeć do takiej społeczności?". Jeżeli odpowiedź brzmi: "nie", a będzie raczej ta odpowiedź tak brzmieć, to może lepiej zainteresować się innym środowiskiem i innym językiem, żeby znaleźć taką społeczność, do której chciałbyś należeć.

Taka rada, jeżeli jakieś środowisko, jakiś język jest nieciekawy i ciężki do zrozumienia to powoduje frustrację i z kolei użytkownicy i programiści w tym języku też są sfrustrowani. To prowadzi do tego, że można bardzo łatwo rozpoznać takie objawy na forach czy stronach społecznościowych po sposobie w jakim osoby, doświadczone w danym języku programowania, odpowiadają. To jeszcze taka prozaiczna rada trochę, ale skuteczna i radzę, żeby tak właśnie sprawdzać jaki język wybrać i nie słuchać rad w stylu wybierz taki język, bo coś tam…, dlatego, że przeważnie każdy programuje…, dobry programista zna kilka języków i specjalizuje się w jednym, dwóch i on ci nie poradzi jak wybrać z grupy dwudziestu języków, od którego zacząć się uczyć. To jest niemożliwe, nikt nie zna dwudziestu języków naraz w jednoczesnym stopniu. Także po prostu zobacz, gdzie Ci będzie odpowiadać najbardziej. To tyle na ten temat. To był temat programistyczny.

Teraz chciałbym powiedzieć o zmianach jakie zaszły na moim blogu ostatnio. Po pierwsze wczoraj na żywo…, nie wiem czy umieszczę dzisiaj ten podcast jeszcze w Internecie, także możliwe, że przedwczoraj zrobiłem parę zmian na żywo na blogu. Każdy mógł obserwować jak blog się psuje, aby w końcu uzyskać nową formę i wydaje mi się, że teraz wygląda lepiej, ma lepsze kolory, może logo jest bardziej widoczne, czytelne. Zapraszam na bloga, żeby zobaczyć jak wygląda po tych zmianach, czy się podoba czy nie, proszę o komentarze. Czy się dobrze czyta, o to przede wszystkim chodzi, teraz te zmiany wprowadzam, żeby lepiej się czytało wpisy na blogu. Druga zmiana , którą wprowadziłem to dodałem ankiety. Wydawało mi się, że na ankiety na blogu nikt nie odpowiada i myliłem się, bo masę odpowiedzi już było. Dlatego dodałem parę nowych ankiet, na które chciałbym poznać odpowiedzi, bo one będą mi potrzebne później do pisania wpisów na różne tematy. To właśnie jest zrobione tak, że pojawia się któraś z ankiet i można odpowiedzieć. Ankiety pojawiają się, jak się przewinie bloga na dół, po prawej stronie jest ankieta zawsze. Także zachęcam do odpowiedzi w ankietach. Pytania są ciekawe związane z informatyką, technologią, Internetem.

Chciałbym powiedzieć jeszcze, że muszę zaktualizować sobie jeszcze Global Transalotora. Global Translator to jest dodatek do Word Pressa, który tłumaczy bloga na inne języki. On przez jakiś czas działał. Ludzie wchodzili z innych krajów nawet czasem. Teraz przestał działać, bo miałem wersję 1.6.1, a bodajże teraz jest już najnowsza 1.6.3. Nie wiem czy to z powodu tego, że Google Translator coś zmienił czy zmieniło się coś w Apy Google translatorach. Chyba tak, a dlatego, że Global Translator korzysta z Google Translatora. No i niestety Google Translator jest jedynym translatorem, który obsługuje język polski. Także muszę zaktualizować. Niedługo to zrobię, bo myślę, że warto, bo jednak parę osób z zagranicy wchodzi i nawet już parę komentarzy zostawili, dlatego zachęcam, żeby zainstalować ten dodatek Global Translator.

Jeszcze teraz temat aktualny, który ostatnio mnie zainteresował, to jak inne serwisy internetowe wprowadzają zmiany u siebie. Ostatnio takim serwisem był Grono, które wprowadziło zmianę polegającą na tym, że wygląda bardzo podobnie do Facebook'a. Ostatnio widziałem zresztą na Naszej Klasie, że jest taki jeden przycisk, który ma bardzo podobny wygląd do Facebook'a. Także nie tylko Grono nawiązuje do tego serwisu. Jakie jeszcze zmiany były ostatnio na stronach? Ostatnio Last FM ogłosił, że wprowadzi abonament trzy dolary na miesiąc czyli około dziesięć złotych za słuchanie właściwie dowolnej muzyki, czyli radia dostosowanego do własnych zainteresowań. To wywołało ogromny opór, ale w końcu wprowadzili i myślę, że bardzo dobrze. Dlatego, że po pierwsze transfer kosztuje i coś o tym wiem, dlatego, że prowadzę stronę z video tutorialami, a wbrew pozorom muzyka nie zabiera dużo mniej transferu niż filmy. Martwiłem się w pewnym momencie jaki jest ich modek biznesowy. Dobrze, że wprowadzili opłaty. Teraz śpię spokojnie, że mogę sobie słuchać radia dalej jutro i pojutrze, i to będzie stabilne, będzie działać. Oczywiście zapłaciłem od razu za trzy miesiące, bo myślę, że warto. Kawał dobrej roboty zrobili na tej stronie. Nie wiem czy konkurencyjnie opensourcowe wersje Last FM'a oprócz rozgłosu odniosą sukces, dlatego, że będą musiały i tak zarobić jakoś na transfer.

Jeżeli chodzi o darowizny to mam z tym złe doświadczenia. Kiedyś chciałem na domenę zebrać pieniądze i napisałem szczerze na blogu, że potrzebowałbym pieniądze, ze byłoby fajnie, gdyby czytelnicy bloga złożyli się na to. Dostałem piękny czteroakapitowy komentarz o tym co dana osoba uważa o żebractwie, jak negatywnie to ocenia. Była to krytyka bardzo ostra, ja się nie zgadzam ze zdaniem, żeby to było coś złego, że się zbiera pieniądze. To jest kwestia dobrowolności, przecież nikt nie zmusza, no ale to z tej strony znam to. Natomiast ze strony tej, ze sam kiedyś na coś potrzebowałem kasę, to znaczy nie potrzebowałem, bo mogłem zapłacić jakoś, ale jak ktoś czyta to się może poczuć lepiej, że jakoś wesprze autora czy blogera w tym, żeby pisał dalej. W pewnym sensie to jest gest, bo to nie jest duża kasa. W każdym bądź razie to taka dygresja weszła tutaj, ale wracając do tematu różne strony muszą wprowadzać w różnych momentach zmiany. Np. Facebook zrobił ostatnio głosowanie dotyczące tego, czy użytkownicy chcą móc usuwać swoje treści, dlatego, że pojawiły się kontrowersje w stosunku do tego. Przypominam, że wcześniej nie można było zmieniać treści na Facebook przez jakiś czas. W wyniku głosowania Face Book zastanawia się czy wprowadzić. Nie wiem jak jest aktualnie teraz. Wiem, że ankieta dała odpowiedź: "tak, użytkownicy chcą móc usuwać swoje treści". Facebook zaczął się zastanawiać później czy to wprowadzić czy nie wprowadzić, czy ankieta ma rację sensu. Dlatego, że mało osób w stosunku do liczby użytkowników odpowiedziało, itd. Facebook zastosował ankietę, żeby się dowiedzieć, co użytkownicy myślą o zmianie, którą mieli niby wprowadzić.

Ostatnio pojawiła się też zmiana na Naszej Klasie, była ona zaskoczeniem dla wszystkich, nikt nie wiedział o ty, że taka zmiana się pojawi. Nagle w galerii wszystko się zmieniło, pojawiły się albumy, nowe możliwości, itd., ale w przypadku Naszej Klasy nikt nie wiedział o tym, że takie zmiany mają nastąpić. W przypadku Grona, które ma się upodobnić do Facebook'a, to chyba ktoś wiedział, chyba informowali o tym użytkowników. Czyli serwisy wprowadzają różne zmiany i teraz jakie są reakcje na wprowadzanie płatności, na zmiany w funkcjonalności, na jakieś dodatki. Tutaj nie ma odstępstwa od reguły, przeważnie wszystko sprowadza się do czterech kroków. Po pierwsze wszyscy przeżywają szok, coś nowego się pojawiło to jest szok. Człowiek jest przyzwyczajony już, czasem mechanicznie wykonuje pewne operacje na stronie i nagle coś mu nie dzieła, coś inaczej wygląda i jest szok, coś nowego. Ktoś nie może robić tego co zwykle, np. przejrzeć galerię, bo teraz musi zapoznać się z co się zmieniło i jak tego używać, tej nowej funkcji. Następnym etapem jest opór, bo po szoku, jak już rozpoznajemy, że jest zmiana jakaś to mamy opór przed ty, żeby ta zmiana nastąpiła. Wtedy pojawią się takie akcje jak na Naszej Klasie, że ludzie sobie wklejają w avatary opór przeciwko wprowadzaniu opłat, itd. Taka akcja rozwija się spontanicznie, naprawdę ludzie nie myślą w tym momencie za bardzo jakie mają korzyści z tego, że zaszła zmiana, tylko chcieliby, żeby powróciło wszystko do starego stanu. Następnym etapem jest eksperymentowanie, kiedy już ten opór maleje, opór też związany z tym pierwotnym szokiem, to zaczynają eksperymentować z nowymi funkcjami, zaczynają z nich korzystać, jeżeli jest coś do zapłacenia to płacą. Eksperymentują i patrzą co z tego wynika, co można z tym robić, czy można robić coś nowego, czy nowe funkcje są lepsze czy gorsze i jakie im to daje możliwości. No i na koniec przechodzi to w etap zaangażowania, kiedy korzystają z tego, są optymistycznie nastawieni do zmiany. Porównując do przeszłości nie chcieliby wrócić do etapu przed zmianą, nowe funkcje na stronie im się podobają i wtedy już nie ma odwrotu, już są zadowoleni z tego, ze takie zmiany zostały wprowadzone i będą też mówili innym, że to są dobre zmiany. Także takie cztery etapy zawsze są i nie da się ich uniknąć, jednak w różne strony, w różny sposób sobie radzą różne firmy, z tym że, aby te etapy przebiegły jak najszybciej, jak najłagodniej, żeby jak najszybciej od szoku przejść do zaangażowania.

Obserwuję taką tendencję, że na polskim rynku przede wszystkim jest stosowana terapia szokowa, np. Nasza Klasa, która nie informowała nikogo o zmianach w galerii, nie było żadnych zapowiedzi z tego co wiem, blog Naszej Klasy, który powinien informować o takich rzeczach nie informuje. Użytkownicy są nastawiani na terapię szokową, nie wiem czy to jest dobre rozwiązanie. Według mnie nie, dlatego, że w takim momencie serwis nie komunikuje się za bardzo z użytkownikami i z ludźmi, np. z z blogerami, którzy mogą informować ludzi z o zmianach i użytkownicy nie mają czasu na przyzwyczajenie się do myśli, że coś się zmieni. To tak jakby na drodze drogowcy wykopali dół i by nikogo nie poinformowali, tabliczek by nie postawili, jak już jest dziura, jak wjedzie to będzie wiedział, że jest dziura. Także tak to wygląda wg mnie w polskich serwisach.

Najnowsze serwisy…, kurczę, mało jest serwisów, które by informowały przed pojawieniem się zmiany. Takim serwisem, który pamiętam, że coś takiego zrobił był Flacker, który pamiętam przed zmianami głośno informował o tym, że będą zmiany, czyli to jest guru. Może to jest prekursor takiego sposobu komunikacji z użytkownikami a Polsce. Nie wiem, mi odpowiada takie coś żeby były te informacje, jako też, że jako bloger jestem zainteresowany też tym co się stanie, żeby móc o tym pisać wcześniej. Chociaż akurat mój blog nie należy do takich serwisów i tak to się przydaje. W każdym bądź razie wcześniej powinny być informacje o tym. Jeżeli chodzi o to , jak to rozwiązywane jest w innych branżach, no bo w innych branżach też są zmiany. Np. firmy, w firmach, organizacjach zachodzą jakieś zmiany organizacyjne, jak wtedy pracownicy są informowani o tych zmianach i jak są przyzwyczajani do tych zmian. To jest dosyć podobna sytuacja w pewnym sensie, dlatego, że można przełożyć tą wiedzę, wiedzę z tej dziedziny na wiedzę w Internecie, na zmiany w stronach internetowych, gdzie organizacja równa się strona internetowa, a pracodawcy równają się użytkownicy. Czyli po pierwsze trzeba rozpoznać jakich grup ludzi dotknie zmiana, w przypadku stron internetowych trzeba rozpoznać, którzy użytkownicy zostaną dotknięci prze zmianę. Nie wszyscy muszą być dotknięci przez zmianę, prawda? W przypadku zmiany powiedzmy na Naszej Klasie dotknięte były te osoby, które aktywnie korzystają z galerii, mają dosyć dużo zdjęć. Mają dużo zdjęć, czyli co z tego wynika? Może mają problemy z zarządzaniem tymi zdjęciami. Teraz jak już wiemy, że mają jakiś problem, to możemy określić też jakie będą musiały zajść zmiany w ich zachowaniu. Mamy powiedzmy tę galerię i możemy podzielić ją na mniejsze podgalerie, to wiadomo, że trzeba będzie organizować zdjęcia w różne typy.

Teraz warto wskazać na tym etapie, jakie zmiany w zachowaniu będą potrzebne. Czyli np. teraz organizujemy zdjęcia wg różnych podkategorii, że możemy dodawać do nich uprawnienia, itd., że nie wrzucamy wszystkiego do jednego worka, że zdjęcia mogą być oceniane, itd. Następna rzecz, którą trzeba by było zanegować to to, że trzeba pokazać jakie będą przeszkody związane z tą zmianą, dlatego, że zmiana zawsze powoduje za sobą jakieś przeszkody i trzeba wskazać użytkownikom jakie przeszkody to będą. Nie chodzi o to, żeby mówić: "no słuchajcie, teraz nie będziecie już mogli edytować zdjęć, ale za to będziecie mogli dodawać filmy". Nie, nie o to chodzi, żeby mówić na tym etapie jakie jest rozwiązanie tej przeszkody, tylko jakie będą to przeszkody. Dlatego, że jeśli użytkownicy będą wiedzieć jakie będą to przeszkody, to będą mogli je omijać w trakcie tej zmiany, do czasu kiedy przyzwyczają się do nowego sposobu działania, do nowych funkcji, albo po prostu omijać te miejsca, omijać albo zastanowić się jakie teraz nowe zostało zaproponowane rozwiązanie. Następny etap jest taki, jakie użytkownik osiągnie korzyści z tej zmiany? Na tym etapie można się zastanowić jakie korzyści odniesie, co nowego będzie mógł robić i po analizie dwóch poprzednich punktów, czyli jakie zmiany będzie musiał zrobić, co będzie musiał zmienić w swoim dotychczasowym zachowaniu, jakie przeszkody pojawia się na jego drodze w trakcie zmian, można określić jakie odniesie korzyści i przełożyć to na to jak może pokonać swoje przeszkody i jak zmiana w jego zachowaniu, do której go de facto zmuszamy, co ona z tego zyska, jaką będzie miał korzyść z tego, dlaczego warto, żeby on zmienił to zachowanie? Myślę, że jeżeli informacja będzie przed zmianą, w trakcie i po o tych wszystkich rzeczach, użytkownicy lepiej rozumieją wtedy jakie zmiany będą wprowadzane, jaki jest ich sens, jaki jest ich cel i że to są zmiany skierowane na nich, na ich potrzeby. To jest oczywiste, że jeżeli autor robi zmianę to dla swoich użytkowników, ale to trzeba pokazywać użytkownikom, że zmiany i to co się robi jest dla nich i powiem szczerze tego mi brakuje w polskich ??? Już nie mówię o samej komunikacji z kimkolwiek, o czymś takim jak prowadzenie bloga itd., ale o zmianach, o tym, żeby informować o tych zmianach, to nie jest tak, że można to zostawić, że ludzie sobie wejdą i sami rozpoznają zmiany, bo nikt tego nie zauważy. A jeżeli ktoś nowy wejdzie, to po pierwsze nie będzie widział zmian, a po drugie będzie uważał, że nic się nie rozwija na stronie. Użytkownicy, którzy są dotychczasowi będą sfrustrowani, będą dodawać swoje awatary, teksty w stylu: anarchia, powrót do poprzedniej wersji, itd. Nie chcemy, żeby użytkownicy mieli długi etap szoku i oporu, tylko chcemy, żeby jak najłagodniej to przeszli i żeby zaczęli eksperymentować z tym co im dostarczyliśmy, co wymyśliliśmy, żeby spełnić ich potrzeby i żeby znowu byli zaangażowani w nasz projekt.

Teraz 90% stron to jest społeczność, ludzie i powinno zależeć nam na tym, żeby ci użytkownicy byli zaangażowani i żeby rozwijali z nami tę stronę. Tyle jeśli chodzi o zmiany w stronach internetowych. Mam nadzieję, że ten temat przyda się dla ludzi, którzy robią strony internetowe. Też robię stronę internetową już od kilku lat i trochę wiem na ten temat, wciąż się uczę. Także chętnie posłucham waszego zdania na ten temat i zapraszam do komentowania.

Na koniec chciałem powiedzieć nowość zupełną, dlatego, że założyłem własną stronę wiki. Po ostatnim artykule, który pewnie stali czytelnicy pamiętają, o wikipedii, postanowiłem założyć własną wiki. Co to będzie za wiki? Więc mam pewne plany co do tej wiki. Założyłem stronę na wikidot.com, tam można założyć wikipedię, to jest za darmo, itd. Na razie chcę, żeby tam się pojawiały ewentualnie transkrypcje podcastów, to już należy do was drodzy słuchacze, dlatego, że ja tam ewentualnie będę dawał zajawki czyli początki. Jeżeli ktoś będzie się czuł na siłach, to może tam wpisywać treść podcasta. Dlaczego? Przede wszystkim dlatego, żeby był bardziej widoczny dla wyszukiwarek i po drugie dlatego, żeby ludzie, którzy z różnych względów nie mogą słuchać podcasta, mogli go przeczytać. Także zachęcam do tego, żeby to robić. Będzie to taka piaskownica dla mnie, jeśli chodzi o zarządzanie mechanizmem wiki i dla was może to być ciekawym doświadczeniem, żeby poeksperymentować, jak się edytuje artykuły na wiki. Przypominam, że na wiki każdy może edytować artykuły i każdy może mieć swój wkład. Powiem tylko tyle, ze ta wiki będzie bardzo liberalna i dopóki nie pojawią się jakieś śmieci to jestem otwarty na to, żeby każdy dodawał treści. A co później się rozwinie z tego, to na razie może nie zdradzę, ale mam plany związane z informatyką oczywiście, z Internetem, szczególnie polskim, ale to niedługo. Teraz zbieram materiały i ciężko się zbiera. To jest jeden z powodów, dla których ta wiki powstanie taka czy inna. Na razie nie wiadomo. Jeżeli masz jakieś własne domysły to pisz w komentarzach, a może już masz jakiś pomysł, to pisz też. Może coś ciekawego się pojawi, może coś wymyślimy razem. taki temat otwarty, w ogóle nie wiadomo o co chodzi, jakaś konspiracja totalna.

To w sumie wszystkie tematy, jakie chciałem poruszyć w tym podcaście. Mam nadzieję, że w następnym będzie gość, ale jak nie będzie to nie. Mam zamiar nagrywać dalej podcast oczywiście. To już drugi sezon podcastu, dlatego, że pierwsza dziesiątka się skończyła, teraz jest druga dziesiątka. Do usłyszenia w następnym odcinku podcastu. Jeszcze mam pytanie na koniec. Może słuchają mnie inni podcasterzy, lub ktoś kto słucha innych podcastów. Słuchajcie, gdzie umieścić jeszcze tego podcasta, bo umieściłem na podcast.pl i zastanawiam się gdzie jeszcze go umieścić, żeby inne osoby, które też słuchają podcastów informatycznych mogły go znaleźć. Jeżeli wiesz o takich miejscach to napisz proszę komentarz, bo szukam i trudno mi znaleźć. Trudno mi znaleźć takie miejsce, oprócz oczywiście stron rekomendowanych blogów, gdzie są podcasty też na polishwords, które można znaleźć w stopce. To taka mini dygresja autoreklamowa.

Naprawdę zależy mi, żeby znaleźć miejsce, żeby umieścić. To tyle i do usłyszenia. Na razie.

Podcast w wersji dźwiękowej

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License