Programowanie: programowanie to przyszłość nauki. Bez tego nie mógłby istnieć współczesny świat. To programiści tworzą obecnie cywilizację. Skoro tak, winni mieć tu swój kącik.
Programowanie: programowanie to przyszłość nauki. Bez tego nie mógłby istnieć współczesny świat. To programiści tworzą obecnie cywilizację. Skoro tak, winni mieć tu swój kącik.
Wczoraj cojack na swoim blogu napisał notkę zatytułowaną "Inicjalizacja != Inicjacja". Tytuł powinien mówić wszystko, co tam znajdziemy, zaś ja pragnę zaprezentować komentarz z punktu widzenia osoby, która mimo bycia zwyzywaną tam od umysłowo upośledzonych i dzieci neo, dalej woli zmienne inicjować. Mój grudniowy limit na ilość emocji we wpisach został już prawie wyczerpany, jak to zauważyli czytelnicy, dlatego będzie spokojnie i rzeczowo.
Każdy internetowy framework, aby nie został wyśmiany, musi koniecznie implementować wzorzec projektowy MVC. Twórcy każdego frameworka starają się przede wszystkim pokazać, że "ich MVC" jest lepszy, spychając wszystkie pozostałe aspekty na dalszy plan. Jednak czy wiesz, czym tak naprawdę jest MVC? Czy jesteś pewien, że spotykając taki wzorzec na ulicy, będziesz potrafił go rozpoznać, czy też może pomylisz go z kimś innym? Sprawdź i przekonaj się.
Sprzęt sprawdzony? Światła? Mikrofony działają? W porządku, jest perkusja, basy gotowe... ej, debilu! Gdzie po kablach łazisz? Chcesz, by nam MIDI wywaliło w środku koncertu?! Skaranie boskie z tymi nowymi pomocnikami... na czym to, aaa tak. Basy są, gitara jest, kołki do stukania w zęby (odjechane pomysły ma ten producent), zatem jedziemy. Trzy, dwa, jeden... tumdurrumdumtumdurrumdum... This is a story of UML, the language that did not want to be used.
W trzeciej części serii poświęconej systemom transakcji rozproszonych zajmiemy się samym protokołem oraz przejrzymy ostateczną implementację, którą zastosowałem, bowiem pomysł zaproponowany w ostatnim wpisie został znacznie rozszerzony, czyniąc kod bardziej idiotoodpornym poprzez zwyczajne zablokowanie szeregu niedozwolonych kombinacji funkcji.
W ubiegłym tygodniu omówiliśmy sobie, czym są transakcje rozproszone, do czego mogą być wykorzystywane oraz zaznajomiliśmy się z koncepcją ich działania. Ponieważ prace posunęły się naprzód, czas omówić krótko budowę systemu do realizowania internetowych połączeń transakcyjnych oraz przyjrzeć się projektowi API.
Powoli dobiega końca drugi rok moich studiów informatycznych, tymczasem na blogu raczej nie pojawiały się dotąd wpisy i artykuły związane z różnymi interesującymi tematami przerabianymi w ich trakcie. Tymczasem kilka dni temu oddałem ostatnie z dziesięciu semestralnych zadań z przedmiotu systemy operacyjne i do szczęśliwego zakończenia pozostał mi projekt - Symulacja mechanizmów transakcji rozproszonych i protokołów niepodzielnego zatwierdzania transakcji przy użyciu mechanizmów systemowych. W ramach eksperymentu postanowiłem spróbować udokumentować proces projektowania i implementacji serią wpisów w Dziennikach i właśnie czytacie odcinek pierwszy.
W bazach danych serwisów internetowych (i nie tylko) hasła użytkowników nie są trzymane w postaci jawnej. Przed ich zapisaniem przepuszcza się je przez funkcję haszującą (zwaną też funkcją mieszającą), która podany ciąg odwzorowuje jednoznacznie na pewien klucz o stałej długości (kilkaset bitów). Haszowanie jest procesem jednokierunkowym, w trakcie którego część informacji jest bezpowrotnie gubiona. Na forach dyskusyjnych stale pojawiają się propozycje nowych programistów, żeby hasło haszować podwójnie: H(H(hasło)), co ma zwiększyć bezpieczeństwo. O tym właśnie chciałbym dziś napisać.
Przez ostatnie kilka lat poznałem PHP wzdłuż, wszerz i wspak. Chociaż jeszcze trochę mógłbym się nauczyć, jeśli chodzi o frameworki, jest to specjalizacja dość wąska i zwyczajnie nie bardzo już mam co w niej robić, jeśli chodzi o dalszy rozwój. Widać to choćby po aktywności wpisowej w kategorii "PHP". Zdecydowana większość tego, co można o tym języku napisać, została już napisana, a nie chce mi się przekształcać tego bloga w coś, gdzie po raz 29328379839 można przeczytać o tym, jak łączyć się z MySQL-em.
Powoli zaczynam dochodzić do wniosku, że postawienie na polskich programistów, jeśli chodzi o projekty z serii OPL, było poważnym błędem. Przez ostatnie miesiące powoli i mozolnie budowaliśmy całą infrastrukturę internetową nastawioną na pełną dwujęzyczność i trafienie w gusta rodzimych odbiorców, idąc im na rękę, jak to tylko możliwe. Efekt jest taki, że na forum mamy pustkę, a zagraniczni potencjalni użytkownicy nie mają nic.
Na forum Invenzzia toczy się aktualnie dyskusja dotycząca stylu kodowania w Open Power Libs, w związku z tym postanowiłem poświęcić temu zagadnieniu nieco miejsca na własnym blogu. Skoncentruję się głównie na perypetiach związanych z moim stylem oraz paru przemyśleniach na tę kwestię.