Zabawy z CSS

Dla wszystkich chcących się pobawić stylami CSS i przy okazji nauczyć czegoś nowego – CSS Play (www.cssplay.co.uk). Na stronie zaprezentowanych jest wiele ciekawych rozwiązań dotyczących m.in. tworzenia menu, galerii, animacji, dynamicznie otwieranych okienek. Wszystko bez użycia ani linijki kodu JavaScript – tylko CSS i HTML.

Polecam na początek przejrzenie działu Demos.

sobota, 3 Październik 2009 @ 13:44

Moje portfolio

Dzisiaj zacząłem robić porządki w moich programach. Przez te wszystkie lata nazbierało się trochę mniej lub bardziej ciekawych aplikacji, którymi chciałbym się pochwalić.

Zacząłem robić z nich swoje programistyczne portfolio. Znajdą się w nim moje starsze aplikacje, pisane w Delphi, Javie, C#, a także te najświeższe – pisane w PHP z wykorzystaniem JavaScript i technologii AJAX. Portfolio powstaje przede wszystkim po to, abym mógł zaprezentować swoje dokonania i umiejętności, ale także po to, aby każdy mógł skorzystać z moich programów (bo po co mają np. leżeć w przysłowiowej szufladzie :) ). Każdy program posiada jasno określone warunki korzystania, starałem się też je opisać w miarę jasno i czytelnie, więc mam nadzieję, że nie będzie żadnych problemów z korzystaniem.

Zapraszam do odwiedzin mojego portfolio. Z czasem będzie pojawiać się tam coraz więcej ciekawych aplikacji – zarówno Windowsowych, jak i webowych.

niedziela, 6 Wrzesień 2009 @ 12:49

Jak to jest z tymi licencjami?

Generalnie wszystko co tworzymy jest w jakiś sposób prawnie chronione. W przypadku polskiego prawa, każdy efekt Twojej pracy – czy to jest program komputerowy, czy jakiś artykuł, czy zdjęcie zrobione aparatem cyfrowym – jest domyślnie chroniony przez ustawę o prawie autorskim.

Zasadniczą kwestią osoby, która tworzy treść i chcę się nią podzielić z innymi, jest wybranie licencji, na jakiej tą treść chce udostępnić. Również osoby, które korzystają później z tych materiałów, stają przed problemem rozpoznania licencji oraz praw i obowiązków z nią związanych – zwłaszcza gdy zdobyte materiały chcą wykorzystać w swoim utworze. Przez pojęcie “utwór” rozumiem program, artykuł, lub dowolny inny efekt naszej pracy.

Długo miałem problem z jasnym rozróżnieniem dostępnych licencji. Praca nad portalem Aktywnie.org.pl i korzystanie z dostępnych w internecie bibliotek i materiałów różnego rodzaju, była jednak bodźcem do głębszego zapoznania się z licencjami. Jest ich cała masa, dlatego chciałbym się skupić jedynie na najważniejszych, które nam – programistom – mogą się najbardziej przydać. Na Wikipedii te licencje też są całkiem czytelnie przedstawione i warto tam zajrzeć.

Licencje można podzielić ze względu na restrykcyjność jak i ze względu na zastosowanie. Poniżej podział ze względu na restrykcyjność (ilość warunków, jakie należy spełnić aby móc wykorzystać dany utwór) – rozpoczynając od najmniej restrykcyjnych. Dodatkowe informacje o dokładnym zastosowaniu danej licencji (czy możemy ją wykorzystać do oprogramowania czy do pozostałych rodzajów utworów) zamieszczam indywidualnie przy każdej kategorii.
Czytaj dalej…

Prezentacja o Google Web Toolkit

Swego czasu robiłem prezentację o narzędziu Google Web Toolkit. Rozważałem ten framework jako jedno z narzędzi mogących przydać się przy realizacji portalu Aktywnie.org.pl. Doszedłem jednak do wniosku, że na razie taka technologia nie będzie mi potrzebna, przynajmniej w pierwszym etapie realizacji projektu.

Nie wykluczam użycia jej w kolejnych etapach – pomimo, że ma wysoki narzut objętościowy (”skompilowany” program w GWT jest dużo większy niż program o podobnej funkcjonalności napisany za pomocą standardowych narzędzi – HTML, CSS, AJAX), pozwala na szybką i efektowną implementację określonych funkcji i dosyć łatwe wstawienie ich do gotowej aplikacji.

Poniższa prezentacja omawia ogólnie możliwości narzędzia.

poniedziałek, 13 Lipiec 2009 @ 15:47

Generowanie arkuszy Excela w PHP

Implementując ostatnio jedną z funkcji portalu potrzebowałem sobie wygenerować plik w formacie XLS. Chodziło mi o przygotowanie pliku XLS w locie, po kliknięciu przez użytkownika przycisku i podanie tak stworzonego pliku użytkownikowi do ściągnięcia.

Znalazłem sporo prostych skryptów, które miały jedną wspólną cechę – nie działały dobrze. Generowały albo uszkodzone pliki XLS, albo stosowały różne obejścia (np. generowanie tabeli w HTML i zapisanie jej z rozszerzeniem XLS :) ).

W końcu udało mi się znaleźć chyba idealną bibliotekę.

PHPExcel

PHPExcel jest to rozbudowana biblioteka (zajmuje około 5 MB) napisana w PHP do obsługi plików Excela. Nie dość, że zapisuje pliki XLS, to jeszcze potrafi je odczytywać. W dodatku obsługuje różne wersje dokumentów XLS.

Poniżej sposób, który wykorzystałem przy generowaniu przykładowego pliku Excela oraz wyświetleniu użytkownikowi okna pobierania pliku.

<?php
// PHPExcel
include 'PHPExcel.php';
// PHPExcel_IOFactory
include 'PHPExcel/IOFactory.php';

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0); // ustawienie aktualnego arkusza

// tu wypełniamy komórki arkusza
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($Column, $Row, $Value);
// (...)

// wygenerowanie u użytkownika okna zapisu pliku o podanej nazwie
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $NazwaPliku . '"');
header('Cache-Control: max-age=0');

// zapis pliku do katalogu tymczasowego i wysłanie użytkownikowi do ściągnięcia
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); // albo 'Excel2007'
$objWriter->setTempDir("./");
$objWriter->save('php://output');
?>

Pliki generują się bezproblemowo – nie spotkałem się jeszcze z sytuacją, żeby plik był uszkodzony albo jakichś danych nie było. Jak widać powyżej, można generować zarówno pliki dla starszych wersji Office’a (XLS), jak i dla Office 2007 (XLSX). Tej drugiej możliwości nie testowałem, ale polecam przejrzenie dokumentacji, która jest całkiem przystępnie opracowana i okraszona przykładami.

Biblioteka jest darmowa, na licencji LGPL, zatem można ją swobodnie wykorzystywać do większości zastosowań.

wtorek, 7 Lipiec 2009 @ 9:02

Hello world!

Witam wszystkich z programistycznym pozdrowieniem Hello World! :)

Na początek pozwolę sobie na kilka słów wprowadzenia. Od wielu lat programuję – moja pasja zaczęła się od języka Basic na Commodore 64, jakieś 15 lat temu. Stworzyłem wiele ciekawych programów, które potem zapisywałem na kasecie magnetofonowej.

Następnie przesiadłem się na PC-ta i przez dobre kilka lat programowałem w Delphi, trochę też w Assemblerze oraz Javie. Później zainteresowałem się językiem C++, z którym jednak nie miałem zbyt dużo do czynienia, gdyż zaraz potem przeskoczyłem na C#.

Praca zawodowa spowodowała, że przez ostatnie kilka lat programuję w języku C# na platformie .NET oraz .NET Compact Framework. W ostatnim czasie, m.in. w związku z implementacją portalu Aktywnie.org.pl coraz więcej programuję w PHP i MySQL, korzystając także z technologii AJAX oraz CSS.

Niektóre z moich programów możecie pobrać na mojej pierwotnej stronie domowej. Do części programów dołączyłem także źródła, które możecie dowolnie modyfikować.

Na tym blogu będę chciał się podzielić z czytelnikami swoją wiedzą i doświadczeniem w zakresie szeroko pojętego programowania, projektowania oprogramowania oraz tematów pokrewnych (np. licencji). Będę też porządkował i utrwalał tutaj swoją wiedzę, bo zawsze łatwiej jest zapamiętać coś nowego, jeśli się to zapisze.

Wszystkie treści są publikowane na tej stronie na licencji Creative Commons BY-NC-ND.

Mam nadzieję, że wiele osób znajdzie tutaj coś ciekawego dla siebie.

niedziela, 5 Lipiec 2009 @ 22:13