piątek, 19 września 2008

Eclipse SVN vs. NetBeans SVN

Kilka projektów WWW na głowie, przeskakiwanie z jednego do drugiego i kontrolowanie zmian wprowadzonych w każdym z nich.
Nic prostego SVN!
Google umożliwia hosting SVN OpenSource'owych projektów.

W utrzymaniu wszystkiego pod kontrolą pomoże nam NetBeans 6.5 z wsparciem dla PHP lub plugin do Eclipse Subversive.

Pomijam proces instalacji SVN na komputerze i inne programy wspierające jak np. RapidSVN gdyż zależy mi wyłącznie na integracji SVN z IDE.

NetBeans 6.5 jest w wersji deweloperskiej ale obsługa SVN jest nadzwyczajnie przyjemna!

  • automatyczne wykrywanie katalogów SVN w projekcie i oznaczanie odpowiednią wizualizacją zakładek, plików, katalogów


    kolory
    • zielony - nowy plik
    • niebieski - plik zmodyfikowany różny od wersji SVN

  • wizualizacja katalogów podpiętych pod SVN

    Jak można zuwazyć na załączonym obrazku, nie koniecznie cały projekt (np.: "kontorx-cms") musi być podpięty do repozytorium SVN jako całość (np.: "widmogrod.info") jest możliwość wyselekcjonowania pojedynczego katalogu w projekcie (np. "KontorX" czy "application") poddanego kontroli wersji.
  • szybka analiza zmian (można sprawdzić określoną gałąź projektu np.: wybrany plik lub katalog)
  • wizualizacja różnic wersji lokalnej i na serwerze, IDEALNA!


Eclipse Subversive
  • wizualizacja projektu jako SVN
    W przeciwieństwie do NetBeans brak możliwości posiadania kilku oddzielnych repozytoriów SVN w jednym projekcie.
  • Analiza zawartości zdalnego repozytorium SVN

  • Nie znalazłem wizualizacji różnic pomiędzy wersją lokalną a serwerową
    brak diff .. chyba że jestem ślepy ..

Głownem kryterium, na którym bazuje jest możliwość posiadania w projekcie kilku oddzielnych bibliotek, które są wsparte obsługa SVN.
Ponadto brak kontroli różnic lokalnych i zdalnych w Eclipse dyskwalifikuje je całkowicie.

Wygrywa NetBeans 6.5 z wczesnym wsparciem dla PHP!

Dla zainteresowanych konfiguracją Subversive na Eclipse źródła, z których korzystałem.

czwartek, 21 sierpnia 2008

Zend_View_Helper_Action jako aplet + Zend_View_Helper_Url = niespodzianka

Wykorzystując Zend_View_Helper_Action w layout-cie (jako aplet w layout)


$this->action('list','index','calendar', array('rowCount' => 5));


dostałem wyjątek

Zend_Controller_Router_Exception: module is not specified in ..


O co chodzi?
Na początku anializy myślałem że jest błąd w tym helperze i dispachowaniu akcji ale naszczęście się myliłem. Rozwiązanie problemu okazało się dużo bardziej trywialne jak i zaskakujące!

Wykorzystując pomocnik widoku Zend_View_Helper_Url w pliku widoku dla wywoływanej akcji (czyli list.phtml) nie można korzystać z "skróconej" wersji generowani url!

tj. zamiast

$this->url(array('action' => 'display','id' => $row->id),'frontend')

należy stosować pełny zapis

$this->url(array('module' => 'calendar','controller' => 'index','action' => 'display','id' => $row->id),'frontend')


EDIT:
Można stosować skróconą wersję pomocnika widoku dla akcji tylko 2gi parametr określający url w/w przykładzie nie może być 'frontend' tylko musi być domyślnym tj. musi zostać pominięty

dixi.

poniedziałek, 18 sierpnia 2008

mktime - w przyładach

Jak ugryźć funkcję php mktime?

W poniższych przykładach zmienna $time posiada postać.

$time = time();


Początek dnia
np.: 2008-08-18 00:00:00

$startDay = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), date('d', $time), date('Y',$time)));


Koniec dnia
np.: 2008-08-18 00:00:00

$endDay = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), date('d', $time)+1, date('Y',$time)));


Początek tygodnia
np.: 2008-08-18 00:00:00

$startWeek = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), date('d', $time), date('Y',$time)));


Koniec tygodnia
np.: 2008-08-25 00:00:00

$endWeek = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), date('d', $time)+1, date('Y',$time)));



Pierwszy dzień miesiąca
np.: 2008-08-01 00:00:00

$firstDayInMonth = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), 1, date('Y',$time)));


Ostatni dzień miesiąca
np.: 2008-08-29 00:00:00

$lastDayInMonth = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time)+1, -1, date('Y',$time)));


Gdzie zastosować?
System statystyk. Wyłowienie z bazy danych rekordów z danego dnia, tygodnia, miesiąca.

SELECT * FROM stats WHERE time BETWEEN '$startDay' AND '$endDay'


Jedno pytanie mnie nurtuje. Czy 00:00:00 tj. północ - jest traktowana jako początek czy koniec dnia? wydaje mi się ze to jest ostatnia godzina danego dnia.

piątek, 1 sierpnia 2008

Backend - jak wygląda twoje zaplecze?

Na początku mojej przygody z PHP i tworzeniem paneli administracyjnych towarzyszył mi mały niedosyt. Zawsze byłem ciekaw jak wyglądają zaplecza, zarządzające, profesjonalne serwisy internetowe. Jakie rozwiązania stosują? w jakim stopniu są to rozwiązania innowacyjne a w jakim stare sprawdzone, użyteczne wzorce. Czy mój PA nie jest za skąpy czy zbyt lamerski.
Teraz mamy możliwość zaobserwowania jak prezentują się różnego rodzaju rozwiązania w wielu otwartych systemach zarządzania treścią. Weźmy pierwsze z brzegu


Teraz troszeczkę zmieniłem podejście do tworzenia backendów. Od czasu do czasu gdy nie mam natchnienia przeglądam już istniejące rozwiązania i szukam drogi środka - by wszystko bez nadmiaru niosło ze sobą intuicyjność i wygodę pracy.

Przegląd paneli administracyjnych jakie stworzyłem w roku 2008.

KontorX GWT - wszystko szło rewelacyjnie GWT zawładnęło moim sercem ale sam fakt płynącego czasu i ograniczeń EXT GWT i zachcianek klięta spowodował że ..
  • Strona głowna

  • Zarządzanie stronami
  • Dodanie nowego produktu
  • Zarządzanie produktami


.. powstał panel ..

KonotrX HTML
  • Zaraz po zalogowaniu wita nas mały dashbord

  • Kategorie w sklepie

  • Zarządzanie produktami
  • Załanczanie grafiki do produktu




WiDooM - prostota przeźroczystość to jest to!
  • Logujemy się

  • Strona głowna panelu administracyjnego
  • Zarządzanie treścią na stronie

A jak wygląda Twoje zaplecze?

piątek, 30 maja 2008

jQuery + Zend_Form = Form generator

Form generator demo

Wykorzystane biblioteki: Zend_Form od Zend Framework i jQuery

v0.3 - pierwsze publiczne wydanie (prezentacja)

Jest to nowy projekt, który wykonuję w ramach zlecenia.
Podstawową cechą tej aplikacji ma być (i mam nadzieje że jest ;)) intuicyjna możliwości tworzenia ankiet/formularzy, oczywiście bez wymaganej znajomości HTML przez użytkownika. Tak stworzony formularz ma być oddany w ręce potencjalnego klienta w celu wypełnienia i wysłania go na zdefiniowany adres e-mail.

Po raz kolejny w wykonaniu projektu posłużyłem się biblioteką jQuery. Pierwszą opublikowaną na tym blogu aplikacją, w której również została użyta w/w biblioteka jest jQuery ankieter.
Generowaniem formularzy zajmuje się świetny komponent od zend'a Zend_Form.

Kolejnym zastosowaniem tego skryptu, które nota bene wynika z jego charakteru jest przyśpieszenie tworzenia projektu z ZF.

środa, 28 maja 2008

Firebug - uzależnienie


Przymusowy format komputera i nowe Ubuntu 8.04 na pokładzie z Firefox3b4. Wszystko fajnie .. ale gdzie jest mój firebug!? Poprzez addons.mozilla.org/ nie mogę zainstalować .. nieeeee!!

.. w tym momencie zdałem sobie sprawę że jestem od niego uzależniony ..

W tej, jakże krótkiej chwili, zainstalowałem Opera dragonfly. Stwierdzam że to jeszcze nie to .. może .. jak będzie wersja stabilna to wtedy spróbuję. Obecnie firefox + firebug królują w webdeweloperce

.. a firebuga do "każdej" wersji firefoxa można pobrac z strony http://getfirebug.com/releases/index.html i po panice ;]

czwartek, 8 maja 2008

Trochę historii - www i ja

Internet ... co to było! pierwszy rok studiów stałe łącze, nieograniczone możliwości surfowania po sieci ... ach .. miło się to wspomina :)

Pierwszy raz (...) yhym .. ;) pierwsza strona WWW powstała w okresie Szkoły podstawowej - ślad po niej zaginął.

Pierwsza strona, od której zabawa zaczeła się na dobre to:
http://x100help.za.pl (jeszcze działa! ach te darmowe hostingi ;])
wykonana w: HTML



Następnie kontynuacją były jej modyfikacje
http://sghx100.za.pl - już wzobagacona w proste skryty PHP
wykonana w: HTML, CSS, PHP(wstawki)



Co to jest CMS? - też to chcę mieć! - zaczeło się powstała kolejna odsłona strony o samsung x100

http://www.widoom-cms.freehost.pl/x100/ - oparta na prostym CMS-ie
wykonana w: HTML, CSS, PHP(CMS WiDooM v1)




który napędzał też stronę:
http://www.widoom-cms.freehost.pl/
wykonana w: HTML, CSS, PHP(CMS WiDooM v1)




.. w międzyczasie
http://testament.za.pl/
wykonana w: HTML, CSS, PHP(wstawki)



miała być to strona o zespole TestAmenT .. wyszła strona z ogłoszeniami dla mojego kierunku .. hehe zabawne :P ..

Z serii stron dla ZiIP powstały jeszcze:

http://www.widoom-cms.freehost.pl/ziip/
wykonana w: HTML, CSS, PHP(CMS WiDooM v1)


http://www.widoom-cms.freehost.pl/ziip2/
wykonana w: HTML, CSS, PHP(CMS WiDooM v2)



http://samsung.ovh.org/ziip3/
wykonana w: HTML, CSS, PHP(CMS WiDooM v3)



Dwie powyższe strony zostały oparte na txtdb v1 - tekstowej bazie danych, wersja 1 obslugowala proste zapytania SQL, w puźniejszych z tego zrezygonowałem (nie działało to optymalnie wersja 3.1 dorobiła się jojnowania, sortowania, obsługi struktury hierarhicznej i wielu wielu bajerów :)

Teraz kolej na strony pod tytułem "dla innych" ;) nie zawsze za $

maszyny-jaro.prv.pl - strona wykonana w połączeniu PHP i MySQL, miała być katalogiem produktów sprzedawanych przez firmę Jaro - umarł projekt
wykonana w: HTML, CSS, PHP, MySQL


wpktuning.pl
wykonana w: HTML, CSS, PHP, txtdb v3.1



firmawpk.pl
wykonana w: HTML, CSS (blueprint - jak widać ;])



krzysztofzaba.pl -niedziala - ktoś czegoś nie opłacił ..
wykonana w: HTML, CSS, PHP

(znaleść screanshot ^^)

Dla promotor.krakow.pl

dietetyka.krakow.pl
wykonana w: HTML, CSS, jQuery, PHP(CMS Light v1)



psychodynamika.pl
wykonana w: HTML, CSS, jQuery, PHP(CMS Light v1.2)



http://www.eu1.pl/
wykonana w: HTML, CSS, jQuery, PHP(Light Framework)


http://krakkable.pl/
wykonana w: HTML, CSS, PHP
wkład: nie szablon :P


http://kalendarze.kr.com.pl/
wykonana w: HTML, CSS


kcp.krakow.pl
wykonana w: HTML, CSS, jQuery, PHP(CMS Light v1.5)


Dla kreatywni.net.pl

ramy-verso.pl
wykonana w: HTML, CSS, jQuery, PHP(CMS Light v1.3)
wkład: oparcie na CMS



fotorowecki.pl
wykonana w: HTML, CSS, jQuery, PHP(CMS Light v1.3)
wkład: oparcie na CMS


http://optotechmedical.pl/
wykonana w: HTML, CSS, PHP(CMS KontorX), Light Framework (czyli domowa produkcja ;)), jQuery
wkład: kodowanie od A-Z, cięcie szablonu


salonagd.com
wykonana w: HTML, CSS, PHP(CMS KontorX), Zend Framework, jQuery
wkład: kodowanie od A-Z, cięcie szablonu


Z tego projetu jestem zadowolony, nauczyłem się przy nim ZF + panel administracyjny w wersji pierwotnej był wykonany za pomocą GWT + EXT jednak z powodu - brak rąk do pomocy - zrezygnowałem z GWT i postawiłem na HTML + biblioteję jQuery

Wyciągłem z niego jeszcze jedną mądrą naukę, własne framework-i są ok, ale co jest dziełem tak ogromnej społeczność wychodzi poza wymiar ok!

Jest już kilka innych tytułów w drodze, nieomieszkam ich nie opisać.