User since
2003-08-04
5246
Artikel
ModeratorIn
ich schlage eine strikte trennung zwischen cgi und statischen dokumenten vor, und zwar aus folgenden gruenden:
1. falls man mal die rechte falsch setzt, kann man cgi-scripte uebers web trotzdem nicht lesen (oder Konfigurationsdateien mit passwoertern oder so)
2. Es ist besser geordnet, und man koennte z.B. fuer statische dokumente auch was verwenden, was schneller als apache ist (z.B. tux)
Was denkst du darueber, jedes posting in der Datenbank doppelt abzuspeichern, einmal als originaltext und einmal als HTML-output (so als caching)? dann wuerde man beim output die ganze konvertierung sparen, und braucht beim editieren oder zitieren nicht alles zurueckumwandeln...
User since
2003-08-04
12208
Artikel
Admin1
eine gute idee fände ich
http://selfhtml.teamone.de/html/kopfdaten/beziehungen.htm
z.B. "next" für die nächste seite im thread (bzw. bei ende des
threads für den nächsten thread), "contents" für die startseite,
"glossar" und/oder "help" ein link aufs wiki, etc.
damit lässt es sich dann ganz komfortabel navigieren, da alle diese funktionen
(zumindest in opera und mozilla, bei IE weiss ichs nicht) mit shortcuts
erreichbar sind.
User since
2003-08-04
771
Artikel
HausmeisterIn
Mir ist grad noch ne Idee gekommen:
[ ] Diesen Thread möchte ich [1 Stunde|3 Stunden|1 Tag|3 Tage|1 Woche|1 Monat|immer] lang nicht mehr sehen
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
User since
2003-08-04
516
Artikel
BenutzerIn
Wenn Esskar das sagt,muss es stimmen :) (<-da ist kein funken Ironie drin! )
Eine Funktion wie im alten Bord, die das anhängen eines Scriptes ermöglicht, fände ich nicht schlecht.
Und was spricht gegen statische Seiten, die können ja aktualisiert werden, wenn sich etwas im Layout ändert(das Board wir ja nicht ständig bearbeitet wie dieses hier, da es ja von vorn herein den Wünschen entsprechend entwickelt wird).
Edit:
Mir fällt da ein Bug auf, schreibt man nen ! und ne )-Klammer nebeneinander passiert das !)\n\n
<!--EDIT|SirLant|1061758490-->
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
User since
2003-08-04
2536
Artikel
ModeratorIn
bzgl statisch / dynamisch: sachen wie die suche würde ich immer über die DB realisieren - aber die ausgabe eines threads, der sich nicht ändert, ist ein klassisches beispiel dafür, effizient zu cachen und das wäre in diesem fall ganz prima mit simplen htmldateien möglich. wozu, um mal ein drastisches beispiel zu nehmen, bei einem thread-seite1, die 1000 mal gelesen wird, ohne dass etwas hinzugefügt wird (werden kann, wenn der thread schon weiter ist als seite 1, nur ev. eine neue seitennummer), jedes mal die datenbank bemühen, die einzelnen daten hervorzukramen.
dass man dann etliche htmlseiten herumfliegen hat, stimmt schon, aber ich nehme an, das kann man sich irgendwie abnehmen, sei es durch unterverzeichnisse, in denen jeweils hundert threads liegen oder oder oder. eine layout-änderung würde einfach durch ein neu-erzeugen der htmls umgesetzt, ansonsten werden die nur geändert, wenn ein neuer beitrag kommt etc pp. imho gerade bei großem datenbestand ein vorteil, der sich in belastbarkeit ausdrückt. wenn (ich bin optimistisch ;)) die 2000 user erst mal wieder voll sind und vielleicht ein paar mehr dazukommen, dürfte die last ordentlich steigen - das kann man dann natürlich einfach mit einem zweiten dbserver und ein bisschen balancing abfangen, oder eben durch einen anderen ansatz. ist definitiv komplizierter zu schreiben, da stimme ich zu, dennoch eine interessante sache.
allerdings wäre ich auch glücklich, wenn's erstmal ohne gemacht wird, sowas kann man später ja immer noch implementieren, wenn man zeit und lust hat.
User since
2003-08-04
7321
Artikel
ModeratorIn
ich würde gern anfangen, das board zu schreiben, da ich ab oktober weniger zeit hab, da dann wieder die uni anfängt und ich nach dem semster alle meine Scheine haben will, damit ich semester drauf mit meiner Dipl.Arbeit anfangen kann.
momentan bin ich nur dahingehend gebunden, dass ich auf der arbeit eingespannt bin, dass bin ich aber während der vorlesungszeit auch, wodurch ich in der zeit, in der ich nur arbeiten gehe, quasi viel freizeit hab, in der ich produktiv sein kann. da meine freundin demnächst 8 Wochen Praktikum an einer Grundschule macht und ich sie deswegen nur am WE sehen kann, bedeutet dies für mich, dass ich im september und oktober viel zeit haben werde.
lange Rede, kurzer Sinn: Wie gehen wir es an?
soll es nun wirklich mod_perl sein? das kann für mich gefährlich werden, da man ja anscheind module in c schreiben und diese an den apache kleben kann. sowas verführt mich bestimmt!!!
CGI hat den vorteil, dass es kaum ne umstellung für mich bedeutet, und vielleicht mehrere von euch mit machen können und es (vielleicht) dadurch schnell und besser wird! obwohl bekanntlich ja viele köche den brei verderben können.
die statische Seiten generierung könnte auch ein toller anreiz sein, und dieses mod_rewrite könnte man doch über .htaccess simulieren, oder hab ich da was falsch verstanden?
User since
2003-08-04
704
Artikel
BenutzerIn
wenn es nu noch einen mechanismus gibt, %BoardConf::Actions dynamisch zu erweitern, ist das sehr flexibel.
wie wärs mit einem apache-ähnlichem callback design?
ParameterCheckHandler
PageHeaderHandler
ParameterParserHandler
PageContentHandler
PageFooterHandler
prozedural? oo? gemischtes eis mit sahne? ;)
-- stefan
User since
2003-08-04
7321
Artikel
ModeratorIn
so nebenbei...
damit das ganze funzt, müsste man es natürlich so machen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package BoardConf;
use strict;
use warnings;
use vars qw(%Actions);
%Actions = (
start => {
subs => [
\&BasicFunctions::WriteStandardHtmlHeader,
\&BasicFunctions::WriteLogonPage,
\&BasicFunctions::WriteStandardHtmlFooter,
],
},
logonUser => {
subs => [
\&BasicFunctions::WriteStandardHtmlHeader,
\&BasicFunctions::ValidateUser,
\&BasicFunctions::WriteStandardHtmlFooter,
],
},
);
1;
User since
2003-08-04
5246
Artikel
ModeratorIn
Habe gerade mal einen Scanner fuer tags geschrieben, in denen nicht mehr weitere Ersetzungen vorgenommen werden (z.B. perl, code, perldoc) und die die Form haben
[perldoc]text[perldoc]
(also nicht: [perldoc=attribute]text[/perldoc]
Taugt der was? oder habe ich was uebersehen?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
use warnings;
use strict;
use vars qw(@TagsBlocked);
@TagsBlocked = qw(perle codex perldocy);
&
my &
&ParseText(&
sub ParseText {
my (&
my @scanned = ();
foreach my &
unless (scalar (@scanned)) {
@scanned = &PostFilterBlocked(&
}
else {
my @scanned2 = ();
foreach (@scanned) {
push(@scanned2, &
push (@scanned2, &PostFilterBlocked(&
}
@scanned = @scanned2;
}
}
use Data::Dumper;
print "
", Dumper(\@scanned);
}
sub PostFilterBlocked {
my (&
my &
my &
my @scanned = ();
my &
my &
print "
Scanning for tag [&
while (&
print " $startPos";
my &
push (@scanned, &
&
print "-$lastPos";
unless (&
my &
&
push (@scanned, {&
}
else {
my &
if (ref &
push (@scanned, &
}
else {
&
}
last;
}
&
&
}
if (&
my &
push (@scanned, &
}
return @scanned;
}
Hallo Leute,
das ist mein erstes Posting:
[perldocy]CGI[/perldocy]
[perle]
use warnings;
use strict;
use CGI ();
my &
[/perle]
und das ist was anderes:
[perldocy]CGI[/perldocy]
[perle]
use warnings;
use strict;
use CGI ();
my &
my &
[/perle]
normaltext
[codex]
use warnings;
use strict;
use CGI ();
my &
[/codex]
[perle] this is perl without finishing tag
[codex]
[/codex]
Habe perle, codex und perldocy genommen, damit mir das forum nicht dazwischenpfuscht...
<edit>hmmm, irgendwie mag [perl] diesen code nicht... \ n wird durch einen Zeilenumbruch ersetzt, die formatierung ist auch nicht das wahre... wenn jemand den code haben will, einfach eine mail schicken an
martin@fabiani.net oder eine nachricht uebers forum\n\n
<!--EDIT|Strat|1061898246-->
User since
2003-08-04
5246
Artikel
ModeratorIn
[quote=Strat,26.08.2003, 19:55]ich richte gleich develop.perl-community.de ein...[/quote]
ist eingerichtet, und mail ist unterwegs