sobota, 13 czerwca 2009

zaplanowane zadania czyli windows scheduler

Przyszło mi dziś napisać skrypt Pythona, który będzie automatycznie wgrywać pliki na serwer ftp - dokładniej rzecz ujmując prosty mechanizm tworzenia kopii bezpieczeństwa na serwerze ftp. Skrypt okazał się bardzo krótki i prosty, więc jego przygotowanie zajęło kilkanaście minut. Bardzo rzadko używam windowsowego schedulera do automatycznego wykonywania zadań, dlatego miałem przez chwilę wątpliwości jak przygotowany przeze mnie skrypt należy dodać do zaplanowanych zadań. A oto najszybsze rozwiązanie problemu na jakie trafiłem:
at 20:15 cmd /c d:\skrypt.py

Wykonanie powyższego polecenia spowoduje wykonanie skryptu d:\skrypt.py o godzinie 20:15.

Komenda konsolowa at pozwala bardzo szybko dodać nowe zaplanowane zadanie, bez uruchamiania zbędnych okienkowych wizardów. Możliwości komendy at można zgłębić tutaj.

wtorek, 24 marca 2009

"uszkodzone" instalatory msi

Dziś po raz drugi zdarzyło mi się pobrać z sieci instalator msi (instalator Pythona 2.6.1 pod Windows) który nie zadziałał po uruchomieniu. Każda próba instalacji kończyła się błędem 2755: internal error 2755 -  brak dostępu do urządzenia. No to już dziwny błąd a ponieważ powtórzył się po raz drugi postanowiłem sprawę nieco zgłębić. Okazało się, że problem tkwi we wbudowanych w Windows XP mechanizmach zabezpieczeń. Najpierw myślałem, że chodzi o to, że plik był oznaczony jako "obcy" - domyślnie mają tak wszystkie pliki ściągane za pośrednictwem przeglądarek. Ale nie. Okazało się, że przyczyna była mniej oczekiwana: plik instalacyjny msi był zaszyfrowany EFS (EFS to wbudowany w Windows XP Prof mechanizm szyfrowania plików). Po odszyfrowaniu instalator zadziałał bez zarzutu. Drugi instalator po odszyfrowaniu pliku także zadziałał. Teraz powstaje poważne pytanie: Czy to zapowiedź jakichś problemów z zabezpieczeniami w Windows XP? EFS miał być kompletnie transparentny dla programów i usług. A nie jest. Niedobrze gdy pojawiają się problemy z mechanizmami wpływającymi bezpośrednio na bezpieczeństwo....

czwartek, 6 listopada 2008

Dejavu...

Przez ostatnich kilka tygodni miałem przyjemność implementować (w C#) model danych dla aplikacji w oparciu o bibliotekę Dejavu. Dziś mogę powiedzieć, że biblioteka sprawuje się świetnie! Operacje undo chyba nigdy nie były łatwiejsze. Narzut na wydajność nie jest duży, a funkcje oferowane przez bibliotekę świetnie spełniają swoją rolę. Okazało się, że mimo pewnych problemów udało się także zaimplementować serializację i deserializację całego modelu. Jeśli zatem ktoś z Was planuje zaimplementowanie jakiegoś "niebanalnego" i uniwersalnego  mechanizmu undo w swoich aplikacjach DejaVu mogę polecić bez zawahania.

piątek, 29 sierpnia 2008

DreamHost

Dziś wszedłem w posiadanie nowego konta hostingowego. Zdecydowałem się na DreamHost. Dlaczego? Kilka ważniejszych opcji tego konta:
  • Transfer z/do konta: 20TB/miesiąc (tak jest, dwadzieścia terabajtów!)
  • Pojemność konta: 2TB (czy ktoś zna sensowny sposób zagospodarowania takiej przestrzeni?)
  • obsługa Ruby on Rails!
  • Pearl, Python, Php, MySql i inne...
  • cena!
No więc zastanawiacie się ile coś takiego kosztuje? 600PLN. Ale tu właśnie jest haczyk :) To jest opłata za 5 lat z góry! W Polsce nikt nie ma porównywalnej oferty! A jeśli ma, to jest droższa co najmniej kilka razy. Do tego, przestrzeń dyskowa rośnie co tydzień o 2GB, a dozwolony transfer o 40GB/tydzień. W pakiecie oczywiście domena (.com, .net) za free! A wszystko to dzięki kuponom rabatowym udzielanym przez DreamHost. Jeśli chcecie otrzymać taki kupon rabatowy, piszcie w komentarzach!

A ja zabieram się za konfigurację mojego konta... :)

środa, 27 sierpnia 2008

Funkcjonalność "do/undo" w aplikacjach .NET

Przeglądając dziś przepastne zasoby codeproject.com w poszukiwaniu informacji o wzorcu projektowym "Memento" natrafiłem na wspaniałą bibliotekę, dzięki której można w stosunkowo prosty sposób zaimplementować funkcjonalność 'do/undo' w swojej aplikacji. Biblioteka DejaVu stworzona w 2007 roku przez Sergeya Arhipenko oferuje funkcjonalności takie jak:
  • operacje undo/redo
  • podział modelu danych na obszary izolowane
  • brak ograniczeń w stosunku do modelu danych i logiki biznesowej
Artykuł opisujący możliwości DejaVu można przeczytać tutaj, a stroją domową jest obecnie ta witryna. Zapowiada się ciekawie!

W najbliższych dniach przetestuję bibliotekę i postaram się zamieścić tu jakieś przemyślenia.

sobota, 23 sierpnia 2008

bezpieczny dostęp do Gmail

Czy kiedykolwiek zastanawialiście się, jak w sposób "bezpieczny" odczytać pocztę z Gmaila? Domyślnym protokołem logowania jest https ale już przeglądanie poczty odbywa się przez zwykły nie szyfrowany http. Jak temu zaradzić? Bardzo prosto - wystarczy wchodzić na pocztę przy pomocy linku będącego adresem https czyli: https://mail.google.com/mail/ Od teraz cała komunikacja z serwerami Gmaila jest szyfrowana! Taki prosty, acz przydatny trick :)