Suche Leute die lust haben mit ein kleinen Blog zu schreiben

Tuxist

Commander
Mitglied seit
02.05.2005
Beiträge
154
Renomée
0
Moin,

suche Leute die Lust haben nen kleines Blog Programm zu schreiben.
Als Sprache würde ich C++ präferieren. Das gute ist die Socket Libary ist fertig und die Datenbank ist angefangen.

Habe mir das so gedacht:

BlogXMLAPI -> Websockets -> Javscript

Wer Lust hat einfach mal melden.
 
Also da sag ich einfach mal: Häh?

Oder anders ausgedrückt: Das versteh ich nicht? Du willst Dir ein Blog inklusive HTTP-Server etc. pp. komplett in C++ programmieren? Warum die Umstände? Soll das zum Beispiel irgendwelche besonderen Funktionen haben?
 
Man schreibt einen Daemon in C++ welcher xml verarbeiten und über http angesprochen wird.
Das Javascript bereitet die Information dementsprechend auf und schickt es zu dem Socket,
dadurch ließe sich viel Rechenlast auf dem Server vermeiden.
 
Nur damit ich das richtig verstehe...
Du willst einen Demon,der HTTP-Anfragen entgegennimmt, der XML übergeben bekommt, das parst und in die DB einträgt.
Dann soll es eine Webseite geben, die irgend ein Javascript einbettet, welcher den in der Webseite eingegebenen Text in die XML-Struktur bringt, und per AJAX-artigen-Aufruf an deinen Demon schickt, sowie evtl. zurückgegebene Antworten / Fehlermeldungen in das HTML-Dokument einfügt? - oder wie versteh ich das?
Dazu sage ich dir als Webentwickler:
- Im Zeitalter der Mobilanwendungen ist es gar keine gute Praxis dem Client soviel Rechenlast aufzubürden, besonders in Javascript.
- Du umgehst nur einen Teil der Serverlast, weil trotzdem irgend eine HTML-Seite her muss die das JS einbettet etc.
- Du musst dich um character escaping etc. selber kümmern, was bei einem HTTP POST unkritisch ist.
- Größere Spielchen in XML macht man 100 mal lieber in einer mächtigen Framework-Sprache wie C++ als dass man sich das freiwillig auf JS-Ebene antut.
- Sind websockets überhaupt halbwegs konsistent von allen Bowsern supportet?
Und den ganzen Aufwand allen ernstes dafür der ohnehin relativ fetten Server-CPU ein paar ms Rechenzeit einzusparen!? :o
 
Ob der Server jetzt HTML oder XML zurückliefert ist vom Rechenaufwand wohl egal. Um die Performance zu steigern sollte man sich lieber ein Konzept überlegen, um pro Anfrage nur wirklich das nötigste neu zu berechnen und möglichst viel zwischenzuspeichern. Außerdem sollte man jede Information nur einmal zum Client übertragen. Wenn sich z.B. die Sidebar mit paar Links nie verändert, macht es wenig Sinn diese bei jeder Anfrage des Clients nochmal zu schicken.

Dank JavaScript und AJAX ist das auch kein Ding der Unmöglichkeit mehr. Es wäre z.B. denkbar ledglich strukturierte Daten vom Server anzufordern (z.B. als schlankes JSON oder mit deutlich mehr Overhead als XML) und das Rendering (Templates etc.) dem Browser zu überlassen. Je nach Einsatzzweck ist das sogar durchaus empfehlenswert, auch auf mobilen Geräten.

Websockets werden übrigens noch nicht "flächendeckend" unterstützt. Für den Einsatzzweck wäre das eh nicht die Technik der Wahl. Hier gehts ja wohl eher um einen relativ statischen Blog?!

Einen HTTP-Server selbst zu programmieren halte ich für nicht sonderlich sinnvoll. Das schränkt die Einsatzmöglichkeit des Blogs massiv ein. Außerdem gibt es bereits mehr als genügend etablierte HTTP-Server. Ob man den Blog jetzt aber mit Perl, PHP, Ruby, JavaScript oder was auch immer schreibt dürfte egal sein. Da ein Blog meist keine Rechenintensiven Funktionen hat, wird sich die Performance auch nicht spürbar unterscheiden.

Gruß,
Max
 
Für etwas außergewöhnlich performantes, würde ich auch mal eher in Richtung Node.js schauen.
 
Das Problem an den Scriptsprachen ist das sie sehr viele Abhängigkeiten haben. Mir geht es eher um Devices wie Rasperry. CGI ist langsam und fcgi Schwerig zu Debuggen.
Ist einfacher aus meiner Erfahrung solche Programme hinter einem Proxy laufen zu lassen, zum Beispiel nginx.
Xml mit javascript zu verarbeiten ist nicht sonderlich schwer . Hier mal einfaches Beispiel für eine Navbar:

Code:
function Navbar() {
  var navbarXml;
  var Path;
  var Container;
  
  this.setPath=function(path){
    Path=path;  
  }
  
  this.setContainer=function(container){
    Container=container;
  }
  
  this.ReadXml = function(){
    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("GET",Path,false);
    xmlhttp.send();
    var xmlDoc=xmlhttp.responseXML; 
    navbarXml=xmlDoc.documentElement;
  };
  
  this.Display = function(){
    this.ReadXml();
    document.getElementById(Container).innerHTML=this.drawMenu(navbarXml);
  };
  
  this.drawMenu = function(xmldat){
    var html = "<ul class=\"navbar\">";
    for(var i=0; i<xmldat.childNodes.length; i++){
      if(xmldat.childNodes[i].nodeName=='link'){
        html+="<li><a href=\"";
        if(xmldat.childNodes[i].getAttribute("url")){
          html+=xmldat.childNodes[i].getAttribute("url");
        }else{
          html+="#";
        }
        html+="\" >"+xmldat.childNodes[i].getAttribute("name")+"</a>";
        if(xmldat.childNodes[i].hasChildNodes()){
          html+=this.drawMenu(xmldat.childNodes[i]);
        }
        html +="</li>";
      }
    }
    html+="</ul>";
    return html;
  }
}

Für C++ benutze ich gerne tinyxml2:
http://www.grinninglizard.com/tinyxml2/index.html

@BoMby sieht interessant aus

Für die UI hatte ich an Dojo gedacht:
http://dojotoolkit.org/
 
Zuletzt bearbeitet:
Naja, da muss man schon ein ganz schön langsames Gerät haben, damit man mit den üblichen Skriptsprachen an Grenzen kommt. Der Raspberry hat auch für ein übliches LAMP-Setup mehr als genug Leistung, sofern nicht zuviele Zugriffe auf einmal kommen.

Aber gut, wenns dir mehr ums programmieren und die Herausforderung geht, sprich es mehr Weiterbildung oder Spaß als sinnvolles Projekt ist, dann ist das natürlich was anderes.

Gruß,
Max
 
Kenne ich fande ich nicht so toll und bei Witty ist die Lizens schwierig zudem habe ich die Socket und Http Geschichte fertig.
 
Zurück
Oben Unten