piątek, 10 lipca 2009

Potrzebujesz małe forum ?

...dodatkowo z darmowym hostingiem...bez reklam...w domenie appspot.com

Właśnie napisałem malutkie forum w GAE bazujące na stylu phpBB.

jak to wygląda? tutaj jest przykład: small-forum

Stąd można pobrać najnowszą wersje: small forum na google code

Jak zainstalować?

znaleść w pliku main.py linijkę:


class AclUser:
__admin__ = 'Twój google login' #(login administratora)

w pliku app.yaml:
application: small-forum #zmienić na własną nazwę aplikacji
i wgrać forum:
$python appcfg.py update forum

piątek, 5 czerwca 2009

log1 CMS (video) HD

czwartek, 14 maja 2009

log1 CMS Beta Release

Kolejny CMS, tylko po co?

Pomysł napisania własnego systemu zarządzania treścią zrodził się już dawno. Głównym motywem była moja strona domowa składał się z kilku chaotycznych skryptów. System został napisany właściwie od zera. A jego najważniejsza cecha to prostota i wygoda użytkowania.
Najważniejsze jest w tym wszystkim to, ze nie wymaga bazy danych, tak więc aby przenieść stronę na inny serwer wystarczy, że przeniosę sobie katalog db/

Mówi się, że najlepsze programy to takie, które nie wymagają instrukcji. Według mnie to zależy do kogo dedykowany jest produkt, chociaż przyznam się, że rzadko sięgam do jakiekolwiek instrukcji :) Wydaje mi się, że to co napisałem nie wymaga instrukcji...

Najważniejsze cechy tego CMS's:

- łatwa instalacja, a właściwie jej brak:) wystarczy skopiować pliki z archiwum do katalogu serwera WWW z modułem do wykonywania skryptów PHP5. I zmienić prawa dostępu do 1 katalogi i 2 plików. Nie wymaga bazy danych:)

- łatwa obsługa. wszystko bazuje na 3 krokach.
1. pierwszy to podstawowe ustawienia takie jak: tytuł, opisy, słowa kluczowe itp.

2. drugi to tworzenie menu i tu fajne narzędzie: przesuwanie elementów menu



3. trzeci to uzupełnianie zawartości.

log1 CMS pozwala ( na razie) tylko na tworzenie jednopoziomowego menu.

Posiada również kanał RSS2, oraz własny silnik wyszukiwarki, interface dostępny w wersji polskiej i angielskiej.

Jednym słowem jest to ukierunkowany na prostotę system zarządzania treścią, do budowania stron opartych o jednopoziomowe menu.

Kilka słów o silniku:)

Program ten, jak wspomniałem nie wymaga bazy danych, wszystkie ustawienia zapisuje do plików XML a potem cache'uje w plikach tektowych.

bardziej obrazowo:
XML ---(0dczyt danych)---> modyfikacja --->( zapis)---> XML ----> .inc/.txt/.php

Jeszcze na koniec uwaga, log1 CMS nie posiada zbyt wielu opcji, został stworzony z myślą o małych stronach. Dlatego jeśli potrzebujesz czegoś o możliwościach Drupal'a czy Joomla'i nawet go nie pobieraj, bo się nie nada.

Oficialna strona:

log1 CMS oficjalna strona
pobierz

Jak na razie dostępne są 2 template'y
Oczywiście można łatwo tworzyć swoje.

Miłego użytkowania.

piątek, 24 kwietnia 2009

Google App Engine :: Klasa User

Google App Engine sprytnie rozwiązuje kwestie użytkowników, także przy tworzeniu aplikacji możemy łatwo wykorzystać klasę user z google api ( from google.appengine.api import users). Wystarczy, że użytkownik posiada konto w google, a my w łatwy sposób możemy 'wyciągnąć': nickname, user_id oraz jego adres mailowy.
Służą do tego metody - odpowiednio:
  1. nickname()
  2. user_id()
  3. email()
Co więcej dla naszego użytkownika przewidziany jest odpowiedni typ w bazie danych
- db.UserProperty()

A teraz zakładamy scenariusz: jak użytkownik nie jest zalogowany to przekierowywujemy go na stronę logowania, a jak jest zalogowany to wyświetlamy jego nickname oraz dajemy możliwość wylogowania się.


user = users.get_current_user()
if user:
self.response.out.write(user.nickname() + """ |
<a href="users.create_logout_url(self.request.uri)" >
Sign out</a>""")
else:
self.redirect(users.create_login_url(self.request.uri))


jeszcze możemy sprawdzić czy użytkownik ma uprawnienia administratora:
is_current_user_admin() - zwraca True jeśli tak.

Źródło (więcej na): http://code.google.com/appengine/docs/python/gettingstarted/

czwartek, 23 kwietnia 2009

Google App Engine - test możliwości

Google App Engine to świetne narzędzie do tworzenie dynamicznych stron oraz aplikacji webowych.
Ale to nie wszystko, bo to również darmowy hosting tych aplikacji + baza danych i wiele innych pożytecznych funkcji włącznie z panelem administracyjnym.

Co o bazie danych i języku Gql?

Niby obiektowe, ale z możliwością zadawania zapytań w języku gql - googlowa wersja sql'a :)
Co więcej zapytanie do bazy zwraca kolekcję obiektów.

Wpis w bazie jest obiektem stworzonej przez nas klasy, po kontakcie z ZODB czy Gadfly nie powinno to już nikogo dziwić.

Prosty przykład:

class BazaObiektow(db.Model):
author = db.UserProperty()
title
= db.StringProperty()
body
= db.TextProperty()

obiekty = db.GqlQuery("SELECT * FROM BazaObiektow")
# oczywiście można dodać jeszcze WHERE :)
# GqlQuery Class
for obiekt in obiekty:
#iterujemy po obiektach
self.response.out.write(str(obiekt.author) + '...wypisujemy co chcemy')


A jak się pisze kontroler i widok:

też fajnie, jest nawet system template'ów, co do google.appengine.api i cgi jest, jak narazie, troche słabo udokumentowane - trzeba się dużo naszukać, żeby znaleść informacje jak na przykład zapisać ciastka. Chociaż można się tego domyśleć :)

Dla zabawy napisałem prostą aplikacyjke do operacji na obrazach: zmiana wielkości( resize), obracanie o kąt( wielokrotność 90 stopni), odbicie symetryczne i poprawa kontrastu - a wszystko w oparciu o google.appengine.api - klasa images.

Można testować tutaj: My Images

aha, aplikacja jest po angielsku, ale łatwo się pokumać jakie funkcje do czego służą.

No i to by było na tyle...

Podsumowując - google app engine wywiera pozytywne wrażenia :)

sobota, 14 lutego 2009

Linux Live USB

Bardzo dużo dystrybucji Linuxa dostępnych jest w wersji Live CD, aby można było sobie przetestować możliwości dystrybucji bez instalacji na dysku. Dzięki narzędziu takiemu jak

UNetbootin

(Universal Netboot Installer), możemy zainstalować różne dystrybucje na nośnikach USB, na przykład Pendrive'ach. Oczywiście na podobnej zasadzie jak Live CD. Jak jest plus takiego rozwiązania?
System ładuje się nieco szybciej niż CD/DVD i nie musimy słuchać kręcącej się płytki ( dotyczy to głównie głośnych napędów).

Ponieważ startujący system 'rozpakowuje się' w RAMie zazwyczaj nie ma możliwości dokonania zmian na lokalnej kopii plików systemowych znajdujących sie na dysku USB( Oczywiście wyniki naszej pracy możemy zapisać na pendrivie.). Co jest jednocześnie wadą(1) i zaletą(2):

-ad 1: nie możemy zapisać zmian dokonych w systemie( na przykład zainstalowanych programów).
-ad 2: zazwyczaj nie możemy 'zepsuć systemu' :)

Ciekawe według mnie rozwiązanie zaproponował twórca dystrybucji Slax
Po pierwsze na stronie możemy powybierać moduły, które nas interesują i dołączyć do naszego systemu Live. Po drugie możemy zadecydować, które moduły mają być startowane w momencie bootowania systemu( katalog 'modules') lub które mają być uruchamiane na życzenie( katalog 'optional').

Zastosowania? na pewno jest wiele:
- Router
- Przenośny bezpieczny system na przykład do odtwarzania multimediów i dostępu do internetu.
- Ratunkowy
- itp.

Aby wystartować z dysku USB, nasz BIOS musi mieć taką opcje ( zazwyczaj nie ma z tym problemu w większości Laptopów), gorzej ze starszymi PC-tami. Należy w Boot sequence zaznaczyć jako pierwszy 'USB Drive' ( nazwa może być nie co inna, ale na pewno z 'USB' :) )

Gdy zaczynałem zabawe z Live USB w ręce wpadł mi MySlax Creator
bardzo fajna zabawka umożliwiająca w łatwy sposób wyklikać własnego Slaxa( a nawet wybrać tapetę na pulpit i ustalić hasło dla root'a :) )

Niestety programik nie działa z najnowszą wersją Slaxa 6.x, ( ja bawiłem się wtedy wersją Slaxa 5.1.8)