Jak zweryfikować wiarygodność danych, gdy obie strony znają to samo hasło?

hashingZałóżmy, że systemy A i B ustaliły wspólne hasło: PASSWD. Aby w prosty sposób każdy z użytkowników mógł być pewny, że dane zawarte w transmisji są wiarygodne można zastosować następujący algorytm:

  1. System A chce wysłać dane D do systemu B.
  2. System A wysyła dane D1 = D oraz D2 = HASH(D + PASSWD) do systemu B.
  3. System B odczytuje dane D1, wylicza hasz D3 = HASH(D1 + PASSWD) i porównuje hasze D2 i D3.
  4. Jeśli D2 i D3 są zgodne, dane przesłane w transmisji są wiarygodne.

Czytaj dalej

Własny protokół URL Scheme, jak uruchomić aplikację desktopową z przeglądarki?

Podczas rozwijania aplikacji webowej np. klasy ERP / CRM, prędzej czy później będziemy musieli wykonać obsługę urządzeń zainstalowanych bezpośrednio na komputerze użytkownika. Może to być komunikacja z kolektorami danych, drukarkami fiskalnymi, obsługa skanera, czy podpisywanie dokumentów podpisem cyfrowym. Część takich rozwiązań mieliśmy w firmie obsłużonych za pomocą appletów Javy, a część za pomocą Java Web Start. Niestety zakończenie wsparcia appletów przez przeglądarki spowodowało konieczność zmiany wykorzystywanej technologii.

Tym razem wróciliśmy do standardowej aplikacji okienkowej instalowanej na komputerze użytkownika. Jednak głównym założeniem było to, aby użytkownik po zalogowaniu do systemu, nie musiał się ponownie logować w kolejnym programie. Jak to zrobić?

Czytaj dalej

AngularJS – czysty kod, recenzja kursu wideo

AngularJS. Czysty kodOd czasu gdy poznałem AngularaJS, znacznie bardziej polubiłem rzadko wykonywaną pracę nad frontendem web aplikacji. Mało tego, zaczęło mi to sprawiać przyjemność 🙂 To świetny framework dzięki któremu znacznie szybciej napiszemy program po stronie przeglądarki w porównaniu do wykorzystania np. samego jQuery. AngularJS kładzie nacisk na wykorzystanie wzorca projektowego MVC, co sprawia, że dosyć szybko możemy napisać łatwy w dalszym rozwijaniu kod aplikacji.

Niestety sam fakt dołączenia do projektu AngularaJS i rozwijaniu własnego modułu nie sprawi, że kod będzie rozszerzalny i wydajny o czym przekonałem się osobiście. Moja pierwsza produkcyjna aplikacja składała się z jednego modułu, jednego kontrolera i jednego szablonu. A ponieważ znacie z pewnością termin pączkowania w programowaniu, można się domyśleć jaki był dalszy efekt w miarę przybywania nowych wymagań. Kod kontrolera zaczął się rozrastać, a widoku html’owego jeszcze bardziej. Dochodziły kolejne repeaty, watchery, czy ng-showy, co w efekcie spowodowało że front praktycznie przestał być używalny w przeglądarce Internet Explorer, choć w pozostałych działał bez zarzutu.

Po przerobieniu niedawno wydanego kursu „AngularJS. Czysty kod” od Videopoint sądzę, że jest on właśnie lekarstwem na tego typu problemy początkujących.

Czytaj dalej

JS, ProcessingJS, kurs symulacji, trochę fizyki i matematyki

Dla chcących spróbowania sił w animacji JavaScript i symulacji natury z wykorzystaniem grawitacji czy przyspieszenia, polecam przerobienie darmowego kursu na khanacademy.org. Nie obejdzie się od przypomnienia podstaw z fizyki i matematyki.
W stosunkowy szybki i przyjemny sposób można poznać bibliotekę ProcessingJS. Kurs nawiązuje do książki „The Nature of CodeDaniela Shiffmana (natureofcode.com).

 

Źródło: https://www.khanacademy.org/

Źródło: https://www.khanacademy.org/

Źródło: https://www.khanacademy.org/

Źródło: https://www.khanacademy.org/

Źródło: https://www.khanacademy.org/

Źródło: https://www.khanacademy.org/

Źródło: https://www.khanacademy.org/ Czytaj dalej

Java JNA #2, Total Commander

totalcmdW poprzednim wpisie zrobiłem krótkie wprowadzenie do wykorzystywania biblioteki user32.dll przez Javę do pobierania informacji z innych aplikacji okienkowych. Poniżej rozszerzymy nasze klasy o możliwość pobierania dowolnie zagnieżdżonych komponentów za pomocą funkcji rekurencyjnej przeszukującej całe drzewo elementów. Wszystko na przykładzie Total Commandera.

Czytaj dalej

Java JNA, user32.dll – przechwytujemy aplikacje okienkowe

lib-dll-javaZdarzają się takie sytuacje, że chcielibyśmy naszym programem sterować inną aplikacją okienkową. W tym artykule wprowadzę was w temat pobierania danych z programów windowsowych za pomocą funkcji biblioteki user32.dll wywoływanych z poziomu Javy. W Javie możemy wywoływać natywny kod z bibliotek DLL w dosyć łatwy sposób dzięki JNA – Java Native Access.

Czytaj dalej

Duże zniżki z okazji Warszawskich Targów Książki – ostatni dzień

Dziś ostatni dzień targów książki w Warszawie i ostatni dzień dużych zniżek na pozycje w tematyce m.in. z IT.

Dla programistów mamy dostępne promocje w dwóch sklepach:

  1. Helion – książki -20%, a ebooki -50%, -55% i -60%.
    Wydawnictwo można osobiście odwiedzić na stoisku 25/D4.
    Helion wysyła książki za darmo Pocztą Polską.
  2. Ebookpoint – ebooki -50%, -55% i -60%.

W związku z tym krótki przegląd co warto kupić.

Czytaj dalej

PL/SQL, recenzja kursu wideo z Videopoint.pl

W kolejnym artykule recenzującym materiały z videopoint.pl zajmiemy się  kursem: „PL/SQL. Kurs video. Od podstaw do zagadnień zaawansowanych. Programowanie baz danych”. Tym razem opinię przygotował doświadczony programista Bartek Medoń.

Wstęp

vplsqlKorzystając z okazji pragnę podzielić się z Wami moimi odczuciami dotyczącymi kursu video “PL/SQL. Kurs video. Od podstaw do zagadnień zaawansowanych. Programowanie baz danych” od videopoint.pl.
Mam czasem wrażenie, że jest wiele programistów, którzy myślą, że relacyjna baza danych to tylko tabele, atrybuty, zapytania sql i nic więcej. Nie wiedzą o tym, że istnieją np. sekwencje, widoki, triggery czy właśnie dodatkowe języki pozwalające np. na napisanie funkcji w samej bazie danych niezależnie od kodu aplikacji np. PL/pgSQL dla PostgreSQL czy właśnie PL/SQL dla Oracle Database.
Myślę więc, że taki kurs może być bardzo dobrym uzupełnieniem wiedzy dla kogoś kto „coś już z bazami robił”.

Czytaj dalej