AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Multi Blogger HTTP Server
Thema durchsuchen
Ansicht
Themen-Optionen

Multi Blogger HTTP Server

Ein Thema von littleDave · begonnen am 13. Aug 2008 · letzter Beitrag vom 24. Aug 2008
Antwort Antwort
Benutzerbild von littleDave
littleDave
Registriert seit: 27. Apr 2006
Servus

Was ist der Multi Blogger
Multi Blogger ist ein HTTP-Server, der ein komplettes Blogging-System beinhaltet. Dabei ist Multi Blogger komplett unabhängig von externen Programmen/Libraries. Das besondere dabei: Das Blogging-System ist nur optional. Doch was heißt das jetzt genau? Ganz einfach: die komplette Website ist nicht in die exe hineinkompiliert - sie wird dynamisch während der Laufzeit erzeugt und kann somit auch während der Laufzeit geändert werden. Die Erstellung der Website übernimmt dabei meine eigene Script-Engine die hier die Aufgaben übernimmt, die z.B. php auf einer normalen Website machen würde. Eigendlich war dies nur ein Testprojekt für meine Script-Engine, doch ich hab mich dann doch dazu entschlossen, dieses Projekt noch seperat zu veröffentlichen. Natürlich mit dem Hintergedanken, etwas Werbung für mein Script-Sprache zu machen, doch das ist wirklich nur nebensächlich.

Hinter den Kulissen
Die Websiten werden komplett dynamisch während der Laufzeit erstellt. Das hat den Vorteil, dass das komplette System auch während der Laufzeit geändert werden kann. Die Erstellung der einzelnen Seiten übernimmt dabei die eingebaute Sysygy Script Engine. Diese Script-Engine kompiliert die Befehle in Byte-Code, der dann extrem schnell von einem Interpretor ausgeführt wird. Dabei bietet der Server intern sehr viele Funktionen für die Script-Engine an. Mit Hilfe dieser Funktionen kann aus der Script-Engine heraus z.B. auf die Datenbank zugegriffen werden.
Die eingebaute Datenbank ist ebenfalls komplett selbst geschrieben und ist ebenfalls unabhänig von externen Libraries. Natürlich ist die Datenbank keine Konkurenz zu anderen Datenbanken wie z.B. MySQL - jedoch reicht diese vollkommen dafür aus.

Welche Fremdkomponenten werden benutzt?
Eigendlich sind es nur zwei (abgesehen von der VCL): der idHTTPServer (für den Server an sich) und SynEdit (für den Script-Editor). Jedoch ist auch nicht alles an den generierten HTML-Seiten von mir gemacht. Das Design (bis auf ein Paar Änderungen) hab ich von Arcsin Web Templates (Lizenz: Creative Commons Attribution 2.5).
Der WYCSIWYG-Edior ist der TinyMCE-Editor (Lizenz: LGPL).

Wofür brauch ich den Multiblogger?
Das ist an sich eine berechtigte Frage. Das Projekt ist wie gesagt nur ein Test/Demonstrationsprojekt für meine Script-Engine. Aber ich hab mir auch schnell noch ein paar Sachen einfallen lassen:
Denkbar wäre z.B. der Einsatz auf einem kleinen Firmen-Server, auf dem nicht extra zusätzliche Programme installiert werden sollen. Auch die Installation ist komplett einfach: man muss nur das Archiv, das man gedownloaded hat, einfach in einen Order mit Schreibrechten entpacken, die exe starten und fertig.
Gerade diese einfache Installation ist auch für ein kleines LAN von großem Vorteil - lästige Installationen entfallen und man hat sofort ein lauffähiges Programm.

Schon wieder Schreibrechte im Anwendungsordner?
Ich hab mir gedacht, dass dies im Moment für ein Demoprogramm am sinnvollsten ist. Wahrscheinlich werden einige wieder sagen: das soll man nicht, jedoch werden wahrscheinlich die wenigsten (wenn überhaupt) das Programm wirklich benutzen - daher wollt ich die "deinstallation" bzw. das Löschen so schnell und simpel wie möglich machen: einfach den Ordner löschen und fertig. Es werden keine Registry-Einträge sowie keine Dateien außerhalb des Ordners erstellt, bearbeitet oder gelöscht.

Screenshots?
Nun ja, das ist schwer. Das Interface des Programms ist relativ unspektakulär und somit eher nicht für Screenshots geeignet. Das sinnvollste wäre wahrscheinlich ein paar Screenshots der erstellten HTML-Seiten, doch so ganz sinnvoll sind diese auch nicht - es geht ja um Interaktion. Sinnvoller wäre eher eine Live-Demo. Dafür hab ich bei mir zu Hause den Server laufen und jeder, der Lust hat, kann sich das ja mal im Betrieb anschauen. Natürlich läuft der Server nicht 24/7, da es ja mein normaler Heim-PC ist und der auch nicht immer an ist bzw. ich auch nicht immer daheim bin. Wenn der Server an ist, ist er unter folgender URL erreichbar:

http://littledave.globedns.info

Nun noch kurz eine Installationsanleitung:
Nachdem du das zip-Archiv heruntergeladen hast, entpackst du es in einen Ordner, in dem du Schreibrechte hast. Danach startest du das Programm BlogServer.exe. Ein kleines Fenster in der rechten unteren Ecke deines Bildschirm wird dann erscheinen. Dort wählst du im Hauptmenü unter Server den Eintrag Start Server aus. Der HTTP-Server läuft jetzt. Nun öffnest du deinen Webbrowser und gehst auf die Addresse http://localhost/ (alternativ kann man auch im Programm unter Tools den Eintrag Open Browser). Jetzt findest du dort den Startbildschirm der Seite. Zuerst solltest du dich registrieren. Da der aller erste Benutzeraccount automatisch admin-Rechte bekommt, solltest du als Benutzername auch admin nehmen, dies steht dir jedoch total frei. Nachdem du dich registriert und eingeloggt hast, siehst du rechts unter Verschiedenes zwei wichtige Administrationspunkte: Benutzerliste und Servereinstellungen. Diese beiden Einträge sind nur für Administratoren sichtbar. Dort kannst du alles in Ruhe einstellen.
Hinweis:
Der Server minimiert sich beim Schließen in die TNA (Task Notification Area) links neben der Uhr in der Taskleiste. Mit einem Doppelklick auf das Symbol öffnet sich das Fenster wieder. Wenn du das Programm komplett beenden willst, musst du unter File den Eintrag Shut Down auswählen.

Was ist mit dem Source-Code des Programms?
An sich will ich den Source nicht komplett freigeben, da ich ein paar Komponenten von mir mitbenutzt habe, dich ich ungern freigeben möchte. Falls sich jemand brennend für den Quelltext interessiert, kann er mich ja anschreiben.

Abschluss
Falls sich jemand dazu überwindet, sich das Programm mal anzuschauen wäre ich sehr froh über jegliches Feedback.
Miniaturansicht angehängter Grafiken
screenshot_154.gif  
Angehängte Dateien
Dateityp: zip multiblogger_640.zip (1,90 MB, 27x aufgerufen)
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
 
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#2
  Alt 17. Aug 2008, 15:52
Ich hab im Originalbeitrag zwar geschrieben, dass es keinen wirklichen Screenshot gibt, doch da mein PC, auf dem ja die "Live-Demo" läuft, nicht immer an ist, hab ich nun doch einen Screenshot erstellt. Also falls jemand sich das Programm live anschauen will, mein PC nicht läuft und somit die Live-Demo nicht verfügbar ist, kann er sich ja dann den Screenshot anschauen.

Außerdem hab ich noch eben einen kleinen Bug in einem Script gefunden. Durch eine unnötige Umwandlung des Zeichens & in & in einem Link wurde der Link ungültig. Dies trat immer auf, wenn man im WYCSIWYG-Editor einen Beitrag schreibt und Bilder/Links aus der eigenen Link-Liste hinzufügt.

Grüße
Dave

PS: Ach nochwas zur Live-Demo: ihr könnt euch darin ruhig austoben, euch registrieren, Blogs oder Kommentare schreiben. Die Demo ist komplett anonym.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#3
  Alt 24. Aug 2008, 20:21
Schade dass niemand sich dafür interessiert - kann es aber auch verstehen - nicht jeder braucht das Programm.

Für alle, die es interessieren sollte, ich hab gerade eine neue Version hochgeladen. An der exe hat sich nichts geändert, jedoch hab ich die Website-Scripts zum Teil etwas überarbeitet. Außerdem gab es noch einen Fehler mit dem WYSIWYG-Editor und einen kleinen Fehler in den css-Dateien.
  Mit Zitat antworten Zitat
Win32.API
 
#4
  Alt 24. Aug 2008, 20:29
Hallo,

ich habe leider keine verwendung dafuer, aber ich moechte dir hier mal meinen groeßten Respekt aussprechen. Finde es wirklich super, dass du an dem Projekt (Scriptengine) drann bleibst und sie staendig erweiterst und verbesserst, obwohl sie zu unrecht sehr wenig beachtung bekommt.

In meinen Augen ist sie eins der Interessantesten Projekte, die hier in den letzen Jahren veroeffentlicht wurden.

Hochachtungsvolle Grueße - Win32.API
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#5
  Alt 24. Aug 2008, 20:39
Zitat von Win32.API:
Hallo,

ich habe leider keine verwendung dafuer, aber ich moechte dir hier mal meinen groeßten Respekt aussprechen. Finde es wirklich super, dass du an dem Projekt (Scriptengine) drann bleibst und sie staendig erweiterst und verbesserst, obwohl sie zu unrecht sehr wenig beachtung bekommt.

[...]

Hochachtungsvolle Grueße - Win32.API
Danke erstmal für dein Feedback

Ich glaub, ich würd diese Komponente auch nicht weitermachen, wenn ich nicht selbst drann so sehr interessiert wäre. Ich arbeite gerade an einem neuen Projekt, welches meine Script-Engine wiedermal extrem ausnutzen wird. Das aktuelle Development-Tagebuch führe ich in der in der Live-Demo dieses Projekts. Das wird dann auch mal ein Projekt, welches ein wenig mehr Nutzen hat, als dieser HTTP-Server (Link funktioniert nur, wenn mein Server an ist )

Zitat von Win32.API:
In meinen Augen ist sie eins der Interessantesten Projekte, die hier in den letzen Jahren veroeffentlicht wurden.
so was hört man gerne Danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz