poniedziałek, 16 września 2024

Prosty program do weryfikacji skanów w 10 minut

Ostatnio furorę w świecie AI robi serwis CURSOR – Edytor kodu wspomagany przez sztuczną inteligencję (genAI). Zawsze chciałem zagłębić się w programowanie i choć kiedyś udało mi się stworzyć słynne "Hello World", to teraz postanowiłem przetestować tę "zabawkę" na poważnie.

Po instalacji CURSOR i założeniu konta, napisałem prompt, w którym poprosiłem o stworzenie prostego programu do wsadowej weryfikacji plików w formacie TIFF. Zależało mi na tym, by aplikacja sprawdzała, czy dany plik TIFF jest prawdziwy.

Po chwili CURSOR wygenerował kod. Nie znam się czy kod jest poprawny czy, więc poprosiłem o jego weryfikację kodu. Następnie chciałem otrzymać instrukcję, jak uruchomić program, aby działał poprawnie. Wygenerowany kod napisany był w Pythonie, a model LLM, który odpowiadał na moje prompty, to Claude 3.5. Warto wspomnieć, że CURSOR obsługuje również najnowsze modele OpenAI.



Część komend, odbywała się w wierszu poleceń. Samodzielnie musiałem dodać do kodu ścieżkę do katalogu, w którym znajdowały się pliki TIFF. Natomiast w  wierszu poleceń wpisywałem następujące komendy:


Po uruchomieniu ostatniej komendy rozpoczęła się weryfikacja skanów.

Na czym polegała weryfikacja?

W kodzie odpowiedź była prosta – program analizował plik na podstawie kilku kryteriów, które zawierała funkcja python weryfikator_tiff.py. Fragment kodu:


Program sprawdzał więc:

  • Format pliku – czy jest to rzeczywiście TIFF.
  • Rozmiar pliku – czy jego wielkość przekracza 1 MB.
  • Rozdzielczość DPI – minimalnie 300 DPI, co jest standardem w przypadku skanów o wysokiej jakości.
  • Tryb koloru – obsługiwane są tylko tryby: 1-bitowy, grayscale (skala szarości) i RGB.

Jeśli któryś z tych warunków nie został spełniony, program zwracał odpowiednią informację o błędzie. Całość działała sprawnie. Jednak te podane warunki są jeszcze do dopracowania. Na przykład standardowy skan A4 w formacie TIFF, 300 DPI waży około 24 MB, w przypadku A3 i 600 DPI plik będzie ważył ponad 200MB

CURSOR nie tylko pozwolił mi stworzyć kod ale też uruchomić. Na pewno jest to narzędzie rzeczywiście ułatwia pracę programistyczną dla osób które dopiero zaczynają swoją przygodę z kodowaniem.


czwartek, 12 września 2024

Jak chronić skany

Jednym z rozwiązań zapewniających wiarygodność i ochronę skanów są znaczniki czasu, które pozwalają określić moment utworzenia lub zmiany dokumentu. 

Czym są znaczniki czasu?

Znacznik czasu to metadane dodawane do pliku, określające moment jego utworzenia. W kontekście skanów znaczniki te stanowią zabezpieczenie przed późniejszymi manipulacjami. Każda zmiana w pliku opatrzonym znacznikiem zostanie zarejestrowana, co podnosi jego wiarygodność.

Jak działają znaczniki czasu?

Proces dodawania znacznika czasu opiera się na kryptografii. Kluczowe kroki obejmują:

  • Generowanie haszu dokumentu.
  • Weryfikacja haszu przez zaufaną trzecią stronę.
  • Podpisanie haszu znakiem czasu.
  • Dołączenie znacznika do dokumentu, co zabezpiecza jego autentyczność.
  • Znaczenie znaczników czasu

Znaczniki czasu oparte są na kilku technologiach:

  • Podpisy cyfrowe: Weryfikują autentyczność i nienaruszalność dokumentu.
  • Certyfikaty cyfrowe: Wydawane przez zaufane instytucje, potwierdzają tożsamość i integralność pliku.
  • Blockchain: Umożliwia przechowywanie znaczników w sposób odporny na manipulacje.

Ochrona prywatności

Chociaż znaczniki czasu zapewniają wysoką ochronę, mogą ujawniać informacje o dacie utworzenia dokumentu, co nie zawsze jest pożądane. W wielu systemach dodanie znacznika jest opcjonalne, choć jego wartość w  sytuacjach, takich jak dowody sądowe, jest nieoceniona. W miarę rozwoju technologii znaczniki czasu staną się jeszcze bardziej popularne. Wzrośnie ich zastosowanie w codziennych systemach oraz rozwój nowych metod ochrony wiarygodności dokumentów, takich jak blockchain.

Prosty program do weryfikacji skanów w 10 minut

Ostatnio furorę w świecie AI robi serwis CURSOR – Edytor kodu wspomagany przez sztuczną inteligencję (genAI) . Zawsze chciałem zagłębić się...