Nov. 26, 2008
Co ostatnio czytałem.
Myślę że warto tu podzielić się w kilku słowach taką informacją i o tym co warta jest dana książka. Co czytałem ostatnio, bo nie sposób spamiętać już tego
I nie chodzi tu o manuale - tych było zbyt dużo
Chodzi o książki. Dwie ostatnie - akurat z Helion’a:
SEO, czyli Pozycjonowanie w wyszukiwarkach internetowych, Wyd. II oraz Relacyjne bazy danych dla praktyków, autor C.J.Date.
Pierwsza książka jest ciekawa, nawet przy fakcie że miałem już trochę do czynienia z SEO. Autorka wie o czym pisze, a książkę warto przeczytać choćby dlatego aby poznać zasady - a jest ich nawet sporo, a także obalić pewne mity. Ja sam będę miał niedługo okazję spróbować swoich sił w SEO. Bo takimi rzeczami jak SEO, e-commerce itp. ostatnio się interesuję.
Polecam książkę wszystkim zainteresowanym, oraz tym mniej rozgarniętym czyli spamerom, żeby się w końcu czegoś nauczyli
Druga książka opisuje znakomicie teorie relacyjnego modelu danych, który w laboratoriach IBM stworzył matematyk E.F. Codd. I w tym sensie właśnie książka jest dla praktyków, którzy stosują różne metody w SQL na co dzień.
Wiadomo jak mocno praca programisty związana jest z bazami danych. Przyznam ze ja również mam sporo praktyki na tym polu.
W tej książce znalazłem balsam na swoja duszę, rozdrażnioną codziennym pędem do szybkich optymalnych praktycznych rozwiązań SQL. Jest tu opis formalny, który wręcz nudny - taki jakiego potrzebowałem do usystematyzowania wiedzy, i wyjaśnienia pewnych nieścisłości, które ma zapewne każdy praktyk. Dzięki niej można na chwilę oderwać się od języka SQL, który ma swoje niedoskonałości i spojrzeć na temat z trochę wyższego poziomu abstrakcji.
Teraz w kolejce manuale
Ale po nich ksiazki o High performance SQL, o zaawansowanym Perl’u, czyli tzw. wypas ![]()
Napisał Dominik w kategoriach Praca, Życie | Brak komentarzy
Nov. 11, 2008
Symfony 1.1 Forms, czyli nowość w Symfony, na którą warto zwrócić uwagę.
Cudo o którym mowa bazuje na nowych klasach: sfForm oraz sfWidget
Przykład:
// lib/form/ContactForm.class.php
class ContactForm extends sfForm
{
public function configure()
{
$this->setWidgets(array(
'name' => new sfWidgetFormInput(),
'email' => new sfWidgetFormInput(),
'message' => new sfWidgetFormTextarea(),
));
}
}
I… na tej podstawie budujemy nasz formularz!
$ php symfony generate:module frontend contact
Otrzymaliśmy nowy moduł: contact.
Teraz tylko akcja:
// apps/frontend/modules/contact/actions/actions.class.php
class contactActions extends sfActions
{
public function executeIndex()
{
$this->form = new ContactForm();
}
}
oraz widok:
<form action="<?php echo url_for('contact/submit') ?>" method="POST">
<table>
<?php echo $form ?>
<tr>
<td colspan="2">
<input type="submit" />
</td>
</tr>
</table>
</form>
Czyścimy cache, otwieramy contact/index. Pokaż żródło i widzimy elegancko wygenerowany kod.
DRY! Ku chwale obiektowości!
Co jeszcze ciekawego?
Dla uprzednio stworzonych pól możemy sobie zadefiniować na stałe etykiety, do tego wszystkiego - automatyczna ochrona przed atakami XSS.
Nie musimy także tracić za dużo czasu na walidację.
$this->setValidators(array(
'name' => new sfValidatorString(array('required' => false)),
'email' => new sfValidatorEmail(),
'subject' => new sfValidatorChoice(array('choices' => array_keys(self::$subjects))),
'message' => new sfValidatorString(array('min_length' => 4)),
));
Automatyczne walidatory! Bo przecież chodzi o to żeby programować jak najdokładniej ale i oczywiście jak najszybciej!
Temat jest spory, chciałem tylko zwrócić na niego uwagę.
Zapraszam do źródła:
http://www.symfony-project.org/book/forms/1_1/en/
Enjoy
Napisał Dominik w kategoriach O programowaniu | Brak komentarzy
Nov. 3, 2008
Jeśli jeszcze nie wspominałem to teraz wspomnę, że bawiłem się swojego czasu w programowanie GUI z użyciem PHP-GTK.
Mowa o rozszerzeniu PHP pozwalającym na programowanie interfejsów użytkownika w oparciu o GTK. Miałem do czynienia z tego typu rozwiązaniami, np. Perl Tk, i przyznam że PHP-GTK jest dość ciekawe.
Również programowanie idzie szybko i wymaga stosunkowo niewiele kodu.
Aby użyć tego cuda należy mieć skompilowane PHP o z obsługą rozszerzenia GTK. I żeby nie było że Linux i Linux, to zaprezentuje przykłady prosto z Windows
Skoro Windows to wersję PHP o której mowa można pobrać z internetu
Może prosty przykład:
function echoValue($spinButton) {
//dane beda widoczne w konsoli
echo $spinButton->get_value() . "\n";
}
$window = new GtkWindow();
$window->set_size_request(150, 150);$hScale = new GtkHScale(new GtkAdjustment(4, 0, 10, 1, 2));
$hScale->connect('value-changed', 'echoValue'); //przypisanie funkcji$vScale = new GtkVScale(new GtkAdjustment(4, 0, 10, 1, 2));
$vScale->connect('value-changed', 'echoValue');
$vScale->set_value_pos(GTK::POS_LEFT);$hBox = new GtkHBox();
$vBox1 = new GtkVBox();
$vBox2 = new GtkVBox();$window->add($hBox);
$hBox->pack_start($vBox1);
$hBox->pack_start($vBox2);$vBox1->pack_start(new GtkLabel('Skala pozioma'), false, false);
$vBox1->pack_start($hScale, false, false);$vBox2->pack_start(new GtkLabel('Skala pionowa'), false, false);
$vBox2->pack_start($vScale);$window->connect_object('destroy', array('Gtk', 'main_quit'));
$window->show_all();
Gtk::main();
Uruchamiamy kod w wierszu poleceń:
$> php ./kody/scroller.php i….
Toolbar zrobić jeszcze łatwiej:
$window = new GtkWindow();
