Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.
19:48

FLabs.org WallpaperPack

Das erste FLabs Wallpaper Pack mit 4 verschiedenen Wallapern.

20:29

Was wir gerade machen, gemacht haben und noch machen werden.

Es ist zwar hier im Blog still geworden, dennoch arbeiten wir hart und das bei diesem schönen Wetter, hier in Niedersachsen. Meine Kollegen im Süden ärgern sich über das schlechte Wetter bei ihnen. Pech gehabt. ;). Doch zum Thema: Was geht aktuell bei Flabs ab?

Wir sind endlich umgezogen, virtuell. Auf einen neuen leistungsstarken vServer der soliden Firma netcup. Nette Jungs. Auch sind nun alle unsere Webseiten umgezogen. Heute war es die Letzte, Flabs.org, daran, deshalb auch die Downtime am Vormittag (blöder, dummer Webserver). Auf dem neuen Server haben wir uns es schon so richtig gemütlich gemacht und können nun auch endlich größere Projekte starten, die etwas mehr Leistung benötigen. Dazu irgendwann später mehr.

Außerdem hat mein geschätzter Freund Nick seinen neuen Blog ”This is Rock ‘n’ Roll Radio” gestartet. Dort schreibt er Musikrezessionen im Bereich Punk, Indie und Alternative. Zwar ist nicht ganze meine Musikrichtung, dennoch wünsche ich Nick viel Glück und Spaß bei seinem neuen Projekt.

Was sagt die Flabs.org Glaskugel? Nichts, die ist mir gestern kaputt gegangen. Aber eins könnte sie noch vor dem Zerfall zeigen: Die nächsten Projekte werden Fotoreich und beleben das Teamleben. Was ist wird, wie immer bald hier - auf Flabs.org!
09:59

Warum auch bei mir Photoshop nie im Einsatz war

Die Jungs von 37signals haben sich geoutet, sie nutzen kein Photoshop. Und sie liegen mit ihren Argumenten goldrichtig. Auch ich nutze kein Photoshop, mag auch daran liegen, dass ich von PS keine Ahnung hab. Photoshop ist einfach zu starr und detailreich.

Es ist zwar ein tolles Programm und viele Leute können damit Zauberhaftes machen, aber für mich, der Konzepte sich im Kopf ausdenkt, niemanden was sagt und dann einfach macht, ist es nichts. Zwar nutze ich einen Pixelschieber, aber dieser arbeitet im Vektorbereich und ist flexibler. Meist mache ich nur die Grundzüge und der Rest entsteht auf Basis von Papier und Bauchentscheidungen. Meist auch wegen der dummen Kritik und Wünsche von Pascal und Nick ;).

Zudem habe ich einen Designstill der simple ist. Ich kann kaum was mit 3D anfangen, ich bin mehr der Fan von flach, aber Typo-Reich. Ich verwende meist 2 oder mehr Schriften für eine Webseite. Außerdem, wie oben schon erwähnt, bin ich der, der gerne Konzepte innerhalb von Minuten über Bord wirft. Manche Designs von mir sind nicht Idee eins oder zwei, sondern vielleicht 13 oder 14. Was nützt es mir dann stundenlang in Photoshop & Co. mühsam Grafikpunkte zu verschieben und mich in Details zu ertränken?

20:14

Das Ziel

Eigentlich wollte ich mich euch mit einem Artikel über “Warum Tiere stinken und Blumenwiesen wichtiger sind” vorstellen. Ich bin Nick und bin bei Flabs für das Design! verantwortlich und der Photoshop Gott Freak.

Aber heute hat sich eine andere Möglichkeit ergeben mich vorzustellen, denn heute Mittag hatte ich eine Idee. Wie ihr vielleicht wisst sind wir für “Fresh Flowers for the Web”, aber das machen wir natürlich nicht ganz ohne Hintergedanken. Um es knapp zu sagen: wir wollen die Weltherrschaft an uns reissen! ;)

Da sich die zwei anderen, Pascal und Dennis, immer noch um die richtige Waffe streiten um dieses Ziel zu erreichen, bringe ich uns diesem Ziel lieber aktiv etwas näher. Deshalb will ich hiermit weltherrschaft.flabs.org vorstellen, unsere Coming Soon Seite für dieses Ziel!

Falls ihr Verbesserungsvorschläge oder Kritik an eurem zukünftigen Herrschern habt, bitte ich doch einfach mal um Kommentare (oder falls es um Dinge geht die noch illegal sind, einfach eine verschlüsselte Email an nick@flabs.org).

12:34

Generic Views wiederverwerten

Nachdem Dennis gestern schon einen ziemlich kontrovers diskutierten Artikel zu seinem lila Elefanten geschrieben hat, möchte ich heute lieber mal was Praktisches beschreiben und euch nochmal zeigen, welche wirklich netten Details die Gitarren spielende Komikergruppe noch so für einen bereit stellt. Wie schon kommentiert, kommt es für mich auf das Feeling eines Frameworks an, und ich finde, mit ein bisschen “Recycling” kann man das ganz gut beschreiben.

Django an sich ist ganz im Sinne von “Don’t repeat yourself”1 geschrieben, was durch intelligente Objekt Orientierung auch sehr gut umgesetzt ist. Das ermöglicht es einem, nicht nur die vorhanden Django-internen, High-Level-Frameworks zu benutzen, sondern man hat auch direkten Zugriff2 auf die darunter liegenden Funktionen bzw. Low-Level-Frameworks. So kann man verdammt viel von Djangos Kern- oder mitgelieferten Modulen in seinen eigenen Modulen wiederverwerten. Ich möchte das mal an dem Beispiel von den äußerst praktischen Generic Views erläutern.

Was sind Generic Views?

Generic Views” sind Djangos Antwort auf immer wiederkehrende, langweilige Views3. Anstatt immer wieder Views zu schreiben, die einfach nur ein bestimmtes einzelnen Queryset ausführen und an ein Template weitergeben, bietet Django in django.views.generic eine Ansammlung von allgemeinen Views, denen man ein paar Argumente übergibt und die dann solche Aufgaben für einen schnell mit nur einer Zeile in der URL-Config bewältigen.

Hier ein Beispiel direkt aus der URL-Config von Flusicr, dadurch werden die Startseite und die Einzelseiten erstellt (ich hab den Code noch etwas schöner formatiert):


urlpatterns = patterns('',
    url(
        r'^$', 
        'django.views.generic.list_detail.object_list', 
        dict(flusicr_dict, paginate_by=2, template_name="blog/home.html"),
        name="flusicr-home"
    ),
    url(
        r'^artikel/(?P.*)/$', 
        'django.views.generic.list_detail.object_detail', 
        dict(flusicr_dict, slug_field='slug', template_name="blog/detail.html"),
        name="flusicr-detail"
    ),
)

So gibt Generic Views um direkt ein Template anzuzeigen, um einfach zu einer anderen URL weiterzuleiten, oder aber, um die Einträge von einem bestimmten Tag/Woche/Monat/Jahr anzuzeigen, um eine einfache List- und Detail-Ansicht mit Pagination zu machen, oder auch um ganze CRUD Aufgaben zu übernehmen.

Das will ich auch haben!

Bis jetzt haben wir Seiten, deren Daten wir mit einem einfachen Queryset gefüllt haben (im obigen Beispiel ist das in fluscir_dict enthalten). Aber was, wenn wir plötzlich die Daten immer noch so einfach anzeigen möchten, sie aber komplizierter filtern müssen?

Auch das ist kein Problem, denn wir können ganz einfach unsere eigenen Views die Funktion eines Generic Views ausgeben lassen! Damit müssen wir unseren View nicht unnötig überfüllen mit Pagination, Template-Auswahl etc. sondern überlassen das einfach dem Generic View (als Keyword-Argumente):


from django.shortcuts import get_object_or_404
from django.views.generic.list_detail import object_list
from conescy.apps.everything.models import *

def author(request, author, app=False, **kwargs):
"""Displays the articles one author has written"""
if app == False: app = kwargs.pop("app")
u = get_object_or_404(User, username=author)
e = Entry.objects.filter(author=u, status="public", app=app).order_by("-created")
if not kwargs.get("extra_context", False): kwargs["extra_context"] = {}
kwargs["extra_context"]["author"] = author
return object_list(request, e, **kwargs)

Damit können wir so bequem und schnell wie mit “richtigen” Generic Views eine Autor-Seite einrichten. Hier auch wieder ein Teil aus der original Flusicr-Config4:

url(
    r'^autor/(?P.*)/$', 
    'conescy.apps.everything.views.author', 
    dict(app="flusicr", paginate_by=10, template_name="blog/autor.html"), 
    name="everything-author"
),

PS: Ein ähnlicher Artikel mit noch ein paar Zusatz-Informationen Zu Generic Views gibt es bei B-List!

1 Die Idee, eine Aufgabe oder eine Angabe nur genau einmal zu lösen bzw. zu machen, siehe auch Wikipedia

2 Wir erinnern uns an gutes OOP, klare Strukturen und natürlich Namespaces, Dennis?

3 Bei Django ist das die “Controller”-Funktion, der die Daten ausliest und verarbeit, also bestimmt was angezeigt wird.

4 Die fertige Seite könnt ihr übrigens hier sehen!

21:18

Darum PHP!

Was Pascal kann schreiben, kann Dennis doch besser. Und das viel besser. Denn PHP ist besser. Auf jeden Fall besser als die Schlange Python. Na gut in einigen Sachen besser als Python. Deshalb mein „Darum PHP!“.

Diese pompöse Einleitung zeigt wie überzeugt ich von PHP bin. Denn meine Sprache mit dem Elefanten ist einfach gehalten, hat alles eingebaut (Man braucht für ein md5 keine import md5 sonstwas zu machen1) und läuft fast überall, außer auf einem 4-Takt Benziner, aber selbst das kommt noch. Der Hauptgrund für PHP ist doch, dass es innerhalb von Minuten läuft. Eine einfache index.php reicht und man hat ein Hallo Welt im Browser:


<?php
echo "Hallo Welt!"; // Ausgabe: Hallo Welt!
?>

Im Vergleich zu Python muss man erst Module laden, Apache einrichten, dann braucht es noch eine Einstellung für wsgi usw. Bei PHP ist dies alles nicht notwendig. Zwar ist Python sauberer in Sachen OOP, aber PHP hat dort etwas Einfaches geschaffen. OOP in PHP ist simple und schlicht. Und nicht jede neue Webtechnik von Java oder Ruby muss sofort übernommen werden. Sachen müssen reifen, so wie Namespaces. Sie sind jetzt nötig, deshalb kommen sie auch. In Version 5.3.

PHP ist für das Web ausgelegt und dort auch super. Wozu eine Eierlegende Wollmilchsau, wenn eine Sprache in einem Bereich top ist und nicht in 300 nur etwas top. PHP ist Web 2.0. Wieso haben sich Konzerne dafür entschieden? Zum Beispiel IBM, Yahoo, Flickr, (das neue) del.icio.us oder Last.fm. Nur um einige zu nennen.

Auch bei PHP gibt es Techniken wie MVC. Dies sind auch gut so. Hier dreht PHP keine eigene Wurst, wie Django zum Beispiel. Aber eins muss man Python lassen, das Logo ist toll, aber Old-School-PHP aus den 90er hat doch auch etwas.

P.S.: Wieso ich nur auf Python hacke? Naja, Ruby ist schon tot und Java zu mächtig. Da blieb nur die Schlange.

1 Bekommt PHP zwar auch in Version 5.3, aber man muss nichts Grundlegendes wie md5 oder sha1 importieren.

20:05

Flusicr startet!

Keine 10 Tage ist Flabs.org jetzt alt, und schon haben wir unsere nächste Seite fertig! Auf dem “FLabs Tech Talk” Blog namens Flusicr gibt es ab sofort von uns Artikel zu der Technik hinter unseren Projekten sowie unseren Vorlieben in der Programmierung bzw. im Design, gepickt natürlich mit Neu- und Wiederentdeckungen.

Aber was wäre ein Technik-Blog ohne eine richtig schöne Meinungsverschiedenheit? Deshalb gibt es auf Flusicr nicht nur Friede-Freude-Freakcontent, sondern auch den Ernst des Lebens und den harten Krieg zwischen PHP (Dennis, der lila Elefant) und Python (Pascal, die grüne Schlange aus der Komikergruppe)!

Viel Vergnügen auf Flusicr.de!

20:05

Flusicr startet!

Keine 10 Tage ist Flabs.org jetzt alt, und schon haben wir unsere nächste Seite fertig! Auf dem “FLabs Tech Talk” Blog namens Flusicr gibt es ab sofort von uns Artikel zu der Technik hinter unseren Projekten sowie unseren Vorlieben in der Programmierung bzw. im Design, gepickt natürlich mit Neu- und Wiederentdeckungen.

Aber was wäre ein Technik-Blog ohne eine richtig schöne Meinungsverschiedenheit? Deshalb gibt es auf Flusicr nicht nur Friede-Freude-Freakcontent, sondern auch den Ernst des Lebens und den harten Krieg zwischen PHP (Dennis, der lila Elefant) und Python (Pascal, die grüne Schlange aus der Komikergruppe)!

Viel Vergnügen auf Flusicr.de!

13:18
8449 8708 450
Kleine Vorschau auf flusicr

Bald geht es mit flusicr los. Bis dahin: Blaupause!

13:18
8348 d5bc 450
Kleine Vorschau auf flusicr

Bald geht es mit flusicr los. Bis dahin: Blaupause!

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!

Schweinderl