Aktion: Die kleinste Blogsoftware der Welt!
Inspiriert durch Stefan Wienströers Artikel auf SteviesWebsite möchte ich hier dazu aufrufen, den Rekord für das „kleinste Blog System der Welt“ zu brechen! Es geht darum eine Blogsoftware zu schreiben mit möglichst wenig Code. Stefan hat es mit 894 Byte geschafft, ein ganz rudimentäres CMS zu schreiben (das aber nicht ganz unten stehenden Regeln erfüllt).
Die folgenden Regeln werden definiert, damit auch alle Projekte den selben Funktionsumfang bieten:
- Die öffentlich sichtbare Seite muss alle Blogartikel in chronologischer Reihenfolge auflisten
- Jeder Artikel hat eine Überschrift, einen Artikeltext und eine Zeitangabe der Erstellung
- Es gibt einen passwortgeschützten Admin-Bereich, wo man neue Artikel erstellen kann
- Es muss kein gültiger HTML-Code sein, aber die Webseite muss im Firefox ≥ 3.5 darstellbar und nutzbar sein
- Es kann jede PHP Version ≥ 5.2 genutzt werden, es dürfen keine besonderen Extensions vorausgesetzt werden
- Es dürfen Short-Open-Tags genutzt werden
- Die Speicherung der Artikel soll in einer Datei stattfinden
- Es dürfen alle Tricks genutzt werden um kurzen Code zu schreiben: Weglassen von Umbrüchen und Leerzeichen, kurze Variablennamen usw. Es geht nicht um Lesbarkeit, sondern um Funktion und kleinen Code!
- Der SourceCode muss veröffentlicht werden (natürlich 😉 ), evtl. mit Erklärungen falls der Code unlesbar ist 😉
- Es ist möglich, seinen Code zu verbessern und mehrere Lösungen einzusenden
Die Aktion endet am 07.03.2010, ihr habt also 4 Wochen Zeit. Um teilzunehmen erstellt in eurem Blog einen Artikel mit einem Link zu dieser Aktion. Damit ich euren Rekord mit aufnehmen kann in die Liste benötige ich einen Trackback, einen Kommentar oder eine Email. Der SourceCode muss natürlich öffentlich zugänglich und herunterladbar sein, damit jeder das Ergebnis überprüfen kann.
Ich bin sehr gespannt wo die Grenze liegt, wenn man es wirklich drauf anlegt!
————————————-
Aktuelle Rekorde:
- Kim Kortes Code 78 Byte , WHAO!
- Dubbels Code 90 Byte
- Fabians Code 138 Byte <— Twitter-fähig!
- Oli 165 Byte (Notices werden unterdrückt in der Standard php.ini)
- PX 173 Byte
- Sebastians Code 183 Byte
- Players Code 234 Byte
- Unbekannter Code 269 Byte
- Jans Code 619 Byte, mit validem Html und Templateengine (formatiert incl. Kommentaren)
Besondere Rekorde:
- Vincent 138 Byte, läuft nur in Chromium, nicht Firefox
- Oli 148 Byte, läuft nur unter Unix, da es Backticks und Unixbefehle enthält.
- Sebastians Code 170/173 Byte, Warnings werden ausgegeben (könnten unterdrückt werden 😉 ) und sehr laschem „Passwortschutz“
- Players Code 214 Byte, funktioniert nur mit aktiviertem register_globals
http://nopaste.us/628.html
Ronald Kirschler
13 Feb 10 at 12:35
@Player: Du kannst es aktivieren, kommst aber dann in die zweite Rangliste. register_globals sollte heutzutage einfach nicht mehr aktiviert werden. Es soll eine Standard php.ini genutzt werden, und da ist es gottseidank deaktivert.
Aber nur um den Unterschied zu sehen habe ich das Ergebnis in der zweiten Rangliste hinzugefügt.
Michael Kliewe
13 Feb 10 at 12:43
Hab jetzt einen Update gemacht. Komme auf 234 Byes und Register_Globals braucht man auch nicht mehr 😉
http://novusec.com/download/minicms.txt
Ich weiß, dass man noch ein paar bytes sparen könnte, doch leider hab keine Zeit mehr gehabt.
Vielleicht kommt nochmal ein Update, hab ja noch bis März zeit 🙂
Player
13 Feb 10 at 13:00
Ich mach auch mit, bin noch am arbeiten drann, meinst ist zwar vieles größer (8-10kb) aber hat vieel mehr zu bieten 🙂
Würde hier alle aufzählen, aber erstmal nicht 🙂
Ahmet Topal
13 Feb 10 at 17:55
ist garnicht so leicht 🙂 also ich habe aber auch nicht nur eine Datei, ist gerade 7.444 kb also 8kb groß, aber kann vieeel 😀
Ahmet Topal
13 Feb 10 at 21:17
[…] inspiriert wurde bei phpgangsta ein Contest zur kleinsten Blogsoftware der Welt initiiert. Kommentare : Noch keine Kommentare […]
Das kleinste Blogsystem der Welt - GALLIEN
14 Feb 10 at 11:40
Zwar habe ich es nicht geschafft, dass kleinste Blog System zu schreiben, aber ein etwas größeres habe ich geschafft: 151kb oder mit einem schönen Template dabei: 229kb.
Die Funktionen werden bald bekannt gegeben und nach einpaar Tests werde ich es online stellen, es kann aber vorkommen, dass sich die größe der Datei ändert, liegt daran ob ich noch mehr einfüge (Funktionen) oder es hierbei lasse 🙂
Ahmet Topal
14 Feb 10 at 14:02
[…] Nette Aktion: Die kleinste Blog-Software der Welt […]
Linkhub Woche 06-2010 « pehbehbeh
14 Feb 10 at 17:35
Ich hoffe, noch mehr PHP-Coder machen mit. Die unterschiedlichen Lösungsansätze sind total Interesant.
Player
15 Feb 10 at 01:09
Ja das stimmt. Es ist wirklich sehr interessant was so alles möglich ist. Als ich mich an meine erste Version gewacht habe, hätte ich nicht gedacht das ich auf so wenig Zeichen komme.
Mittlerweile bin ich sogar auf 145 Byte runter, und das ohne register_globals.
http://bit.ly/9Nqyij
Fabian
15 Feb 10 at 08:52
Hi,
meine Teilnahme könnt ihr auf meiner Projektseite einsehen.
Hat 636 Bytes und ist Public Domain.
http://max-grossmann.de/mgmcrblg/
Gruß,
Max
Max Großmann
15 Feb 10 at 10:28
@michael, du hast recht, da ist ein bug… 😉
Dafür nu 174 Byte: http://nopaste.us/629.html
Sebastian
15 Feb 10 at 17:17
Hi,
so, habe das Script nochmal entschieden verbessert und verkürzt.
576 Bytes sind es nun, um genau zu sein. Ich arbeite gerade an einer Single-File-Version. Diese hat mit der vollen Funktion genau 429 Bytes.
576B gibt es hier: http://max-grossmann.de/mgmcrblg/
Gruß,
Max
Max Großmann
15 Feb 10 at 18:08
Ich hab auch mal was probiert und bin bis jetzt bei 138 Zeichen angekommen:
https://twitter.com/_Vincent/status/9148270632
Vincent
15 Feb 10 at 18:28
Gerade gemerkt, dass meine Lösung leider nicht im Firefox funktioniert. Der braucht anscheinend eine Submit-Button (Chromium z.b. nicht).
Vincent
15 Feb 10 at 18:37
@Fabian Deins ordnet aber chronologisch absteigend. Geht das auch?
Vincent
15 Feb 10 at 19:02
Meinte natürlich aufsteigend. Sry für die vielen kleinen Kommentare. Kann leider nicht mehr bearbeiten.
Vincent
15 Feb 10 at 19:06
@Vincent
Ich sehe auf den ersten Blick keinen Hinweis darauf, in welche Richtung die chronologische Anordnung sein soll.
Fabian
15 Feb 10 at 21:21
[…] Hier geht es zu den Versuchen eins, zwei, und drei, sowie zur passenden Aktion. […]
Die kleinste Blog Software der Welt, 4. Versuch | LocalDev
15 Feb 10 at 21:40
Dank Sebastian bin ich nun bei 138 Byte. http://bit.ly/9RAj2A
Fabian
15 Feb 10 at 21:42
So, PX hat mir seine Lösung zukommen lassen.
181 Bytes:
https://www.phpgangsta.de/download/px.txt
Michael Kliewe
16 Feb 10 at 12:06
Hab die Version von Oli aufgegriffen und etwas „optimiert“:
http://phplabor.wordpress.com/2010/02/15/re-kleinste-blogsoftware-der-welt/
Rudi
16 Feb 10 at 14:10
Dann will ich auch mal meinen Senf dazugeben..
Ich habe heute zusammen mit @MowerPirat (http://twitter.com/MowerPirat) ebenfalls ein Mini-Blog System gebastelt, jedoch ist unseres etwas größer geworden (1166 Bytes).
Dafür haben wir valides HTML5 und eine Kommentarfunktion.
Hier die Minimierte Version (1166 Bytes):
http://www.bjoernjohannes.de/geshi/index.php?source=../blog/min.php
Und hier die Originale (1505 Bytes):
http://www.bjoernjohannes.de/geshi/index.php?source=../blog/index.php
Sowie eine mit etwas mehr HTML5 und zusätzlichem CSS gefrickel(2348 Bytes):
http://www.bjoernjohannes.de/geshi/index.php?source=../blog/html5/index.php
Mephistopheles
16 Feb 10 at 22:14
<input name';if($p==x)echo"“;if($t)fputs(fopen(f,a),“$t|$m|“.date(r));include(f);
134 Byte, Code von Fabian, bisschen angepasst.
Maggo
18 Feb 10 at 10:28
@Mephistopheles
falls dir die domain bjoernjohannes.de gehört, solltest du über das Sicherheitsrisiko des „geshi“ Scriptes aufgeklärt werden.
Dort ist eine LFI möglich. z.B. so:
http://www.bjoernjohannes.de/geshi/index.php?source=../../../../../../var/www/vhosts/bjoernjohannes.de/httpdocs/geshi/class.geshi.php
Player
18 Feb 10 at 18:56
Hi!
Mein Code: http://nopaste.us/633.html
94 Bytes laut Ubuntu ^^
Das Adminloginsystem ist nicht das sicherste (Passwort ist im Moment „“, also im Quelltext sichbar, nimmt man stattdessen einen einzelnen Buchstaben, erhöht sich die Größe auf 95 Bytes(z.B. ==’a‘ statt ==$p)) und das Datum wird als Timestamp ausgegeben, aber in den Bedingungen stand auch nix davon, dass Menschen das ohne Probleme auf den ersten Blick lesen müssen ^^
Der Code setzt das Vorhandensein einer Datei „a“ im gleichen Verzeichnis voraus.
Falls davon irgendwas gegen die Regeln verstoßen sollte bitte sagen, hoffe, ich habe nichts übersehen 🙂
Echt gute Idee, hatte schon Lust das mal just for fun zu machen, nach dem Artikel auf SteviesWebsite, aber zusammen machts eben viel mehr Spass 😀
Dubbel
19 Feb 10 at 00:09
[…] ist natürlich der kürzeste PHP Code, der ein rudimentären Blogging-System ermöglicht. Der bisherige offizielle Rekord liegt bei 138 […]
Wer hat den kürzesten? - DubbelBlog
19 Feb 10 at 00:15
Anscheinend reicht auch ein „==a“ statt ein „==’a'“ – Macht ein Byte weniger, also 93 Byte 🙂
http://nopaste.us/634.html
Dubbel
19 Feb 10 at 00:36
<?eval($_GET); kürzer geht's absolut nicht mehr! :-p
phpgangsta
19 Feb 10 at 18:32
phpgangsta hat gewonnen 🙂
Maggo
19 Feb 10 at 23:38
Der „phpgangsta“ dort bin nicht ich, nur zur Information 😉
Michael Kliewe
20 Feb 10 at 12:43
In dieser Liga kann mein Blog auch mitspielen. Wenn er auch mit 415KBit nicht der kleinste ist. Aber es ist alles dabei incl. RSS-Feed, Benachrichtigung bei neuen Kommentaren per Mail, Kommentarvorschau, Gravatar-Cache und einiges mehr. Mein Blog nutzt Flatfiles und keine MySQL-Datenbank.
Horst Scheuer
20 Feb 10 at 15:09
<?if($_GET[p]==s)fputs(fopen(a,a),'‘.time().join(“,$_GET));include(a);
78 Byte, man könnte noch das mit austauschen aber ich dachte mir so ist es schöner ^^
Code von Dubbel (93 Byte) und von mir angepasst.
Kim Korte
20 Feb 10 at 22:14
Args, striptags vergessen ^^ nochmal: http://nopaste.us/641.html
Kim Korte
20 Feb 10 at 22:18
Oh, da sind ja noch einige Vorschläge rein gekommen! War keine Absicht, hab euch wohl übersehen/überlesen ;-(
@Dubbel, @Kim: Habe eure Vorschläge gerade ausprobiert und kann keinen Regelverstoss feststellen, auch wenn bei Kim dort ein „s“ steht was komisch aussieht, aber eine zusätzliche Ausgabe ist nicht verboten, solange die geforderten Infos da sind.
Ich habe bei dir Dubbel noch das schließende ?> Tag weggelassen, du kommst also auf 90 Byte.
Rangliste upgedated, ich hoffe ich habe niemanden vergessen.
WIRKLICH beeindruckend was für Scripte hier zusammengekommen sind. Ich hätte ja schon bei 150 Byte gesagt dass nicht mehr viel geht, aber 78 Byte ist wirklich erstaunlich. Wenn man doch nur alle Scripte von 894 Byte auf 78 Byte verkleinern könnte…
Vielen Dank für Eure Teilnahme, ich hoffe ihr hattet ähnlich viel Spaß wie ich, die Entwicklung zu beobachten und zu sehen, was mit PHP möglich ist.
Ihr könnt natürlich noch weitere schöne Lösungen hier veröffentlichen, auch wenn die Aktion offiziell beendet ist.
Michael Kliewe
24 Mrz 10 at 06:14
[…] Der PHPgangsta rief am 9. Februar die Aktion “Wer programmiert das kleinste PHP Blogsystem?” aus. Nun ist es amtlich: Kim Kortes, auf meinem Code basierende, Version ist mit 78 Byte die […]
2. kleinstes PHP Blogsystem der Welt - DubbelBlog
24 Mrz 10 at 12:50
Hi, ich bekomme den Fehler „Fatal error: Call to undefined function: file_put_contents() in /mnt/web7/62/40/5298740/htdocs/votees/index.php on line 29“ bei Jan seinem blog, kann mir jemand helfen?
Troste
2 Aug 10 at 18:19
OK, lag an der php-version für das verzeichnis 😉
Troste
2 Aug 10 at 18:24
@Troste
Überprüfe deine PHP Version, die Funktion ist erst ab PHP 5 verfügbar
Fabian
2 Aug 10 at 18:24
Und was soll der Müll?
nik
25 Sep 10 at 16:20
http://nopaste.us/5936.html
76 Byte, Anpassung von Kim Korte, Passwort muss in diesem Fall vielfaches von 3 + 1 sein.
Claudio
10 Aug 12 at 16:31
[…] Hier geht es zu den Versuchen eins, zwei, und drei, sowie zur passenden Aktion. […]
Die kleinste Blog Software der Welt, 4. Versuch | local:/dev
2 Jan 13 at 17:47
[…] Meine ersten Versionen findet ihr hier. Den passenden Wettbewerb dazu, findet ihr hier. […]
Die kleinste Blog Software der Welt, 2. Versuch | local:/dev
2 Jan 13 at 17:47
Hach wie gerne gucke ich mir diese codes an. Meinen Versuch habe ich bisher nie gepostet (war auch zu spät). Fürs Protokol:
95 Byte der reine „Weblog“.
146 Byte ohne CSS mit mobile responsive.
165 Byte ohne mobile responsive.
216 Byte mit CSS und mobile responsive.
Code:
a{color:orange;text-decoration:none;font-style:italic;}<?php $a=file("b");foreach($a AS $b){$c=explode("|",$b);echo"$c[0]$c[1]“;}?>
Verbesserungen sind trotzdem gern gesehen.
Die „Blogeinträge“ werden über die Date „b“ ausgelesen. Datum links dann ein | dann den Text
Sam Jones
24 Nov 15 at 17:37
Ok, a cutting code was posted. So here again (sorry)
http://pastebin.com/Q4QNbGy9
Sam Jones
24 Nov 15 at 18:21