Accesskontrol

2 views
Skip to first unread message

Bertel Lund Hansen

unread,
May 6, 2020, 11:32:28 AM5/6/20
to
Jeg har fået lavet mig et adgangstjek til mine sider som jeg (som
sædvanlig) selv synes er smart.

Jeg har fundet en webside hvor man kan bede om lister med
ip-intervaller der tilhører et land. Jeg har så lavet et
Python-script der kan samle listerne fra udvalgte lande,
komprimere dem så nabointervaller slås sammen til ét, og derefter
oversætte ip-numrene til decimaltalsintervaller som så gemmes i
en fil.

Rå fil (.cn = China):

1.0.1.0-1.0.1.255
1.0.2.0-1.0.3.255
1.0.8.0-1.0.15.255
1.0.32.0-1.0.63.255
...
(Den opmærksomme læser vil have opdaget at to af intervallerne er
naboer)

Færdig fil klar til brug:

<?php
$banned_intervals = [
[16777472,16778239],
[16779264,16809983],
[16842752,16843007],
[16843264,16875519],
...

I en mappe på serveren lægger jeg så denne liste samt et script
der tjekker brugeren og exit'er hvis det er en uønsket gæst. De
ser kun en tom side.

Scriptet skal bare inkluderes (med den rigtige serversti) i
begyndelsen af index.php.

Den version jeg selv bruger, gemmer en logfil med 6 data per
ønsket bruger sådan at man kan få en statistik der ser sådan ud:

http://fiduso.dk/_statistics.php

Aflæsningen af hvilket land ip-nummeret tilhører, forudsætter at
der er adgang til de nødvendige lister. Det betyder at der skal
hentes en ny hver gang der dukker et ip-nummer op uden tilhørende
nationalitet.

Er det noget som andre kan have interesse i? Jeg stiller gerne
alle relevante scripts til rådighed, både Python- og PHP-scripts,
men måske Python-operationerne er for indviklede for hvermand
(stierne er lokale og specifikke)? Det PHP-script der tjekker
brugeren, er derimod rimeligt simpelt at forstå og at anvende, og
man kan let fjerne de logninger som jeg selv bruger.

Jeg vil ikke offentliggøre filerne her medmindre I overbeviser
mig om at det ikke er noget problem. Ellers kan I få dem i en
mail.

PS. Jeg spærrer også ved at aflæse brugerens tld hvis den er
tilgængelig. Der er nemlig nogle domæner fra ét land der hostes i
et andet land.

PPS. Jeg kan ikke garantere for korrektheden. Det website jeg
bruger, er ikke altid enig med sig selv. Men scriptet har fjernet
en stor mængde uønskede besøg.

--
/Bertel

Arne Vajhøj

unread,
May 6, 2020, 12:38:36 PM5/6/20
to
On 5/6/2020 11:32 AM, Bertel Lund Hansen wrote:
> Jeg har fået lavet mig et adgangstjek til mine sider som jeg (som
> sædvanlig) selv synes er smart.
>
> Jeg har fundet en webside hvor man kan bede om lister med
> ip-intervaller der tilhører et land.

Sådanne findes - bl.a. MaxMind.
En god use case for auto_prepend_file måske?

> PPS. Jeg kan ikke garantere for korrektheden. Det website jeg
> bruger, er ikke altid enig med sig selv. Men scriptet har fjernet
> en stor mængde uønskede besøg.

Geolocation er aldrig perfekt.

Arne


Kim Ludvigsen

unread,
May 6, 2020, 1:02:14 PM5/6/20
to
Den 06.05.2020 kl. 17.32 skrev Bertel Lund Hansen:
> Jeg har fået lavet mig et adgangstjek til mine sider som jeg (som
> sædvanlig) selv synes er smart.

Sådan har jeg det også, når jeg laver noget nyt. Desværre holder
følelsen ikke altid i længden.

> PPS. Jeg kan ikke garantere for korrektheden. Det website jeg
> bruger, er ikke altid enig med sig selv. Men scriptet har fjernet
> en stor mængde uønskede besøg.

Jeg ville ikke turde/ønske at fjerne adgang, medmindre det er et klart
forsøg på hacking, og selv der ville jeg normalt ikke gide gøre noget.
Det generer vel ikke, at der er ekstra trafik på serveren (den fjernes
jo så alligevel ikke helt), og du risikerer at nægte legitim trafik
adgang til siderne.

Hvorfor ikke bare acceptere trafikken og så i stedet sortere dem fra i
statistikken? Der betyder det jo ikke så meget, om du får sorteret en
for meget fra eller til i en statistik.

--
Mvh. Kim Ludvigsen

Bertel Lund Hansen

unread,
May 6, 2020, 1:04:06 PM5/6/20
to
Arne Vajhøj skrev:

> En god use case for auto_prepend_file måske?

Måske - hvis man er sikker på at man vil udelukke de samme
nationer på alle sine websider. Jeg har forskellige målgrupper på
forskellige sider.

--
/Bertel

Bertel Lund Hansen

unread,
May 6, 2020, 1:24:56 PM5/6/20
to
Kim Ludvigsen skrev:

> Hvorfor ikke bare acceptere trafikken og så i stedet sortere dem fra i
> statistikken?

Fordi jeg så skal opdatere løbende.

Jeg bruger scriptet på obese.dk og fiduso.dk. Begge websider er
decideret rettet mod dansktalende, så det vil være et mindretal
der bliver afskåret. Jeg har ikke spærret for Thailand ...

> Der betyder det jo ikke så meget, om du får sorteret en
> for meget fra eller til i en statistik.

Nej, det er mere irritation over dem der forøger at hacke
serveren, der har motiveret mig.

--
/Bertel

Kim Ludvigsen

unread,
May 6, 2020, 1:41:18 PM5/6/20
to
Den 06.05.2020 kl. 19.24 skrev Bertel Lund Hansen:
> Kim Ludvigsen skrev:
>
>> Hvorfor ikke bare acceptere trafikken og så i stedet sortere dem fra i
>> statistikken?
>
> Fordi jeg så skal opdatere løbende.

Jeg forstår ikke forskellen. Hvis din løsning virker automatisk til
blokering af sidevisninger, virker den vel også automatisk til at
forhindre, at der gemmes i statistikken.

Nu er det nok ikke så sandsynligt i øjeblikket, men det kunne jo tænkes,
at en søgemaskine som Google oprettede et datacenter i Kina eller et
andet blokeret land, som så skulle bruges af deres webcrawler. I så
fald, ville siderne risikere at blive slettet fra søgemaskinen.

--
Mvh. Kim Ludvigsen

Jan Hansen

unread,
May 6, 2020, 3:17:25 PM5/6/20
to
Bertel Lund Hansen skrev:

> Er det noget som andre kan have interesse i? Jeg stiller gerne
> alle relevante scripts til rådighed, både Python- og PHP-scripts,
> men måske Python-operationerne er for indviklede for hvermand

Det er for mig i hvert fald. Jeg hentede en ntpserver på
<https://github.com/fygrave/honeyntp/blob/master/ntpserver.py>
og brugte et halvt døgn på at få den til at lyve en time under
sommertid. Kan det ikke laves i php i stedet for? Det er man jo
alligevel tvunget til at lære for at lave hjemmeside.

> Jeg vil ikke offentliggøre filerne her medmindre I overbeviser
> mig om at det ikke er noget problem.

Det er nok ikke noget problem, de kan jo ligge i en mappe, hvor
der ikke er nogen adgang. PHP filerne kan så vises frem med
highlight_file fra en anden mappe.
Python filerne kan om ikke andet pakkes med zip.



--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!

Bertel Lund Hansen

unread,
May 6, 2020, 3:32:06 PM5/6/20
to
Kim Ludvigsen skrev:

>> Fordi jeg så skal opdatere løbende.

> Jeg forstår ikke forskellen.

Du har ret. Jeg havde min tidligere løsning i baghovedet.

--
/Bertel

Bertel Lund Hansen

unread,
May 6, 2020, 3:44:06 PM5/6/20
to
Jan Hansen skrev:

>> Er det noget som andre kan have interesse i? Jeg stiller gerne
>> alle relevante scripts til rådighed, både Python- og PHP-scripts,
>> men måske Python-operationerne er for indviklede for hvermand

> Det er for mig i hvert fald. Jeg hentede en ntpserver på
> <https://github.com/fygrave/honeyntp/blob/master/ntpserver.py>

Den er sørme også indviklet. Men jeg bliver skeptisk når jeg ser
sådan noget som dette her:

def _to_int(timestamp):
"""Return the integral part of a timestamp.
Parameters:
timestamp -- NTP timestamp
Retuns:
integral part
"""
return int(timestamp)

Alt mellem """ er kommentarer, så funktionen er her:

def _to_int(timestamp):
return int(timestamp)

Skulle _to_int() være så meget bedre forklarende end int() at det
kræver en hel funktion?

> og brugte et halvt døgn på at få den til at lyve en time under
> sommertid. Kan det ikke laves i php i stedet for?

Man kan lyve så tosset man vil med PHP, men det kan nok ikke
pille ved opsætningen af en veldrevet server. Skal du virkelig
have serveren til at lyve, eller er det nok på hjemmesiden?

Kan du ikke bare stille om på uret?

> Det er man jo alligevel tvunget til at lære for at lave
> hjemmeside.

Ja. PHP er sådan set nemt at gå til, men det er desværre et
kaotisk organiseret sprog.

> Det er nok ikke noget problem, de kan jo ligge i en mappe,[...]

Jeg kikker på det i morgen.

--
/Bertel

Jan Hansen

unread,
May 6, 2020, 5:26:52 PM5/6/20
to
Bertel Lund Hansen skrev:

> Jan Hansen skrev:
>
> >> Er det noget som andre kan have interesse i? Jeg stiller gerne
> >> alle relevante scripts til rådighed, både Python- og PHP-scripts,
> >> men måske Python-operationerne er for indviklede for hvermand
>
> > Det er for mig i hvert fald.

Det jeg mente var, at sådan noget python er svært for mig, og om ikke
dine python filer kunne laves i php.

> > Jeg hentede en ntpserver på
> > <https://github.com/fygrave/honeyntp/blob/master/ntpserver.py>
>
> Den er sørme også indviklet. Men jeg bliver skeptisk når jeg ser
> sådan noget som dette her:
>
> def _to_int(timestamp):
> """Return the integral part of a timestamp.
> Parameters:
> timestamp -- NTP timestamp
> Retuns:
> integral part
> """
> return int(timestamp)
>
> Alt mellem """ er kommentarer, så funktionen er her:
>
> def _to_int(timestamp):
> return int(timestamp)
>
> Skulle _to_int() være så meget bedre forklarende end int() at det
> kræver en hel funktion?

Sikkert ikke, og det bliver ikke bedre af, at han skriver variabel og
funktions navne på engelsk, så flader det hele i mine øjne ud til
det rene volapyk. Det havde været meget nemmere, hvis han skrev urdu
eller serbokroatisk: Står der noget engelsk-agtigt, skal jeg finde
forklaringen i python-manualen, står der noget anderledes, skal jeg
finde forklaringen andetsteds i samme fil. I php kan man da i det
mindste kende variablerne på $.

> Man kan lyve så tosset man vil med PHP, men det kan nok ikke
> pille ved opsætningen af en veldrevet server. Skal du virkelig
> have serveren til at lyve, eller er det nok på hjemmesiden?

Det var nu ikke på hjemmeside, jeg skulle bruge den ntp-server.
Jeg har et kamera mage til
https://www.pinterest.dk/pin/402931497892329366/
Det er så smart lavet, at det virker via noget direktX eller aktivX
eller hvad det nu hedder, noget der kun er i windows. I opsætningen
på det kan man vælge tidszone, og skrive adresse og port på en
ntp-server, men sommertid har konstruktøren åbenbart ikke hørt om.
Jeg havde så valget imellem at skulle starte windows og skifte
tidszone på det ved skift mellem sommer og vintertid, eller jeg
kunne lave noget ntp, der skifter om for det.

Skulle andre have noget elektronik med samme fejl er løsningen:
udskift

def system_to_ntp_time(timestamp):
return timestamp + NTP.NTP_DELTA

med

def system_to_ntp_time(timestamp):
localtid = time.localtime()
if localtid.tm_isdst>0:
timestamp = timestamp + 3600
return timestamp + NTP.NTP_DELTA

Bertel Lund Hansen

unread,
May 6, 2020, 11:38:04 PM5/6/20
to
Jan Hansen skrev:

> Det jeg mente var, at sådan noget python er svært for mig, og om ikke
> dine python filer kunne laves i php.

Nå jo, det kunne de godt. Men Python er sådan ca. 100 gange
hurtigere at skrive programmer i fordi det er så smart et sprog.

Jeg ved ikke om jeg orker at lægge det om til PHP, men det ville
ikke være første gang jeg lavede den operation.

--
/Bertel

Bertel Lund Hansen

unread,
May 7, 2020, 1:37:25 PM5/7/20
to
Bertel Lund Hansen skrev:

> Jeg har fået lavet mig et adgangstjek til mine sider som jeg (som
> sædvanlig) selv synes er smart.

Nu kan I få filerne at se. De ligger på det domæne der ender på
lundhansen.dk og som starter med temp.

Hvis I skriver den webadresse og tilføjer links+html, åbner en
side med fire links.

Hvis I vil hente filerne, skal I bare bruge det nederste link.

--
/Bertel

Jan Hansen

unread,
May 7, 2020, 4:38:46 PM5/7/20
to
Bertel Lund Hansen skrev:

> Hvis I vil hente filerne, skal I bare bruge det nederste link.

Så er der lidt at øve sig på igen.
Hvad skal der ligge i mappen
originals = AC_base+'csv_files_originals/'
er det IP2LOCATION-LITE-DB1.CSV
eller
GeoLite2-Country-Blocks-IPv4.csv
eller noget helt tredie?

Arne Vajhøj

unread,
May 7, 2020, 10:44:15 PM5/7/20
to
On 5/6/2020 3:17 PM, Jan Hansen wrote:
> Kan det ikke laves i php i stedet for? Det er man jo
> alligevel tvunget til at lære for at lave hjemmeside.

PHP er uhyre udbredt til hjemmesider og en mulighed
hos næsten alle web hoteller.

Men du er ikke nødt til at bruge PHP til en
(dynamisk) hjemmeside.

Du kan vælgeÆ C# (ASP.NET), VB.NET (ASP.NET), Java,
Ruby (RoR), JavaScript (Node), Python og flere andre.

Arne

Bertel Lund Hansen

unread,
May 8, 2020, 1:17:47 AM5/8/20
to
Arne Vajhøj skrev:

> Du kan vælgeÆ C# (ASP.NET), VB.NET (ASP.NET), Java,
> Ruby (RoR), JavaScript (Node), Python og flere andre.

... afhængigt af serverens opsætning. Hos den hoteludbyder jeg
har valgt, er Python f.eks. (desværre) ikke en mulighed.

--
/Bertel

Bertel Lund Hansen

unread,
May 8, 2020, 1:23:23 AM5/8/20
to
Jan Hansen skrev:

> originals = AC_base+'csv_files_originals/'

På siden

https://www.countryipblocks.net/acl.php

kan man bestille IP-ranges for f.eks. Danmark. Listen bliver vist
i den blå firkant til højre med en knap nedenunder der får
indholdet kopieret til clipboard.

Det indhold sætter jeg så ind i en fil jeg kalder dk.txt, som så
skal ligge i AC_base+'csv_files_originals/'. Formatet er:

aaa.bbb.ccc.ddd-eee.fff.ggg.hhh

Hvorfor så csv? En ren forglemmelse. De første filer jeg brugte,
var fra en anden webside hvor man fik csv-filer, og derfor brugte
jeg det i min kode - og glemte at rette det til da jeg gik over
til tekstfiler.

--
/Bertel

Jan Hansen

unread,
May 8, 2020, 5:06:32 AM5/8/20
to
Bertel Lund Hansen skrev:

> På siden
>
> https://www.countryipblocks.net/acl.php
>
> kan man bestille IP-ranges for f.eks. Danmark. Listen bliver vist
> i den blå firkant til højre med en knap nedenunder der får
> indholdet kopieret til clipboard.
>
> Det indhold sætter jeg så ind i en fil jeg kalder dk.txt, som så
> skal ligge i AC_base+'csv_files_originals/'. Formatet er:
>
> aaa.bbb.ccc.ddd-eee.fff.ggg.hhh

Den side er der ikke meget liv i lige i øjeblikket, heller ikke fra
https://www.isitdownrightnow.com/countryipblocks.net.html

Men bortset fra at jeg har sat en > og et par mellemrum på, må det vel
være mage til det fra http://www.sniper-pistol.com/myip/findip.php
Når ellers siden er oppe, kommer 167.99.37.81 så med på en liste
over Holland?

Der står i usercheck.inc.php noget med
require_once '/home/www/lundhansen.dk/access_control/banned_intervals.inc.php';
Hvad står der i den fil?

Bertel Lund Hansen

unread,
May 8, 2020, 5:40:50 AM5/8/20
to
Jan Hansen skrev:

>> https://www.countryipblocks.net/acl.php

> Den side er der ikke meget liv i lige i øjeblikket,

Jeg har ingen problemer med den.

> Når ellers siden er oppe, kommer 167.99.37.81 så med på en liste
> over Holland?

Når jeg slår nummeret op på siden, får jeg at vide at det er et
usa-nummer.
I listen over NL-numre er det ikke med. Der er kun følgende to
linjer med 167:

167.81.0.0-167.81.255.255
167.202.192.0-167.202.223.255

I listen med USA-numre forekommer følgende linje:

167.99.0.0-167.99.255.255

> Der står i usercheck.inc.php noget med
> require_once '/home/www/lundhansen.dk/access_control/banned_intervals.inc.php';
> Hvad står der i den fil?

<?php
$banned_intervals = [
[16777472,16778239],
[16779264,16809983],
[16842752,16843007],
[16843264,16875519],
...

Det var det jeg viste i det første indlæg som
"Færdig fil klar til brug:".

--
/Bertel

Jan Hansen

unread,
May 8, 2020, 5:55:39 AM5/8/20
to
Arne Vajhøj skrev:

> On 5/6/2020 3:17 PM, Jan Hansen wrote:
> > Kan det ikke laves i php i stedet for? Det er man jo
> > alligevel tvunget til at lære for at lave hjemmeside.
>
> PHP er uhyre udbredt til hjemmesider og en mulighed
> hos næsten alle web hoteller.
>
> Men du er ikke nødt til at bruge PHP til en
> (dynamisk) hjemmeside.

Det er korrekt. Jeg retter mig selv:
... at lave hjemmeside på webhotel.

> Du kan vælgeÆ C# (ASP.NET), VB.NET (ASP.NET), Java,
> Ruby (RoR), JavaScript (Node), Python og flere andre.

På min egen computer har jeg også stadig mod-perl installeret,
selvom det er mange år siden, jeg har brugt det. Min counter
strike server laggede, når hjemmesiden brugte alt båndbredden,
så til sidst bed jeg i det sure æble og flyttede på webhotel.
Der var jeg så tvangsindlagt til at lære PHP, og siden da er
alt min fritid gået med at lappe hjemmesider, der forsvinder
hver gang det bras bliver opdateret.

Men når fibernet bliver udbredt, så der er båndbredde nok,
kommer det måske på mode igen at lave hjemmesider, når man kan
bruge andet end php.

Krabsen

unread,
May 8, 2020, 8:50:03 AM5/8/20
to
Den 08-05-2020 kl. 11:55 skrev Jan Hansen:

> På min egen computer har jeg også stadig mod-perl installeret,
> selvom det er mange år siden, jeg har brugt det. Min counter
> strike server laggede, når hjemmesiden brugte alt båndbredden,
> så til sidst bed jeg i det sure æble og flyttede på webhotel.
> Der var jeg så tvangsindlagt til at lære PHP, og siden da er
> alt min fritid gået med at lappe hjemmesider, der forsvinder
> hver gang det bras bliver opdateret.

Sådan har vi forskellige oplevelser.

Jeg har en del php-drevne sites kørende, alt fra simple databaser til
avancerede medlemskartoteker med booking system m.v.

Og jeg har aldrig problemer med opgraderinger:

- Webhotellet fortæller, at der er en ny php version.
- Jeg checker om den giver problemer i relation til min kode.

De fleste går glat; i enkelte tilfælde skal der laves små justeringer.
Så aftaler jeg bare med webhotellet, at de lader mit site køre på den
gamle php-version til jeg melder klar.

Bertel Lund Hansen

unread,
May 8, 2020, 11:56:19 AM5/8/20
to
Jan Hansen skrev:

>> Men du er ikke nødt til at bruge PHP til en
>> (dynamisk) hjemmeside.

> Det er korrekt. Jeg retter mig selv:
> ... at lave hjemmeside på webhotel.

Jamen, det er heller ikke rigtigt. Der er skam udbydere der har
sat nogle af de andre webkodesprog op på deres servere.

> Der var jeg så tvangsindlagt til at lære PHP, og siden da er
> alt min fritid gået med at lappe hjemmesider, der forsvinder
> hver gang det bras bliver opdateret.

Jeg vælger selv tegnsæt og PHP-version på alle mine domæner. Jeg
får ikke at vide om der er kommet en ny PHP-version. Det opdager
jeg først hvis jeg vipper valglisten ned og ser at der er kommet
flere muligheder til.

> Men når fibernet bliver udbredt, så der er båndbredde nok,
> kommer det måske på mode igen at lave hjemmesider, når man kan
> bruge andet end php.

Kik dig omkring på nettet. Der er mange hjemmesider der ikke er
lavet i PHP.

En træffer på DuckDuckGo:

Webhoteller med CMS, JSP, TOMCAT, Java, ASP, .NET, Open Source
CMS, VELKOMMEN TIL CMS-HOTEL & WEB-HOTEL [...]

--
/Bertel

Jan Hansen

unread,
May 8, 2020, 1:09:30 PM5/8/20
to
Bertel Lund Hansen skrev:

> Jeg vælger selv tegnsæt og PHP-version på alle mine domæner. Jeg
> får ikke at vide om der er kommet en ny PHP-version. Det opdager
> jeg først hvis jeg vipper valglisten ned og ser at der er kommet
> flere muligheder til.

Ja, jeg bliver også på gigahost, jeg gider ikke "opdatere" mere php.

> > Men når fibernet bliver udbredt, så der er båndbredde nok,
> > kommer det måske på mode igen at lave hjemmesider, når man kan
> > bruge andet end php.
>
> Kik dig omkring på nettet. Der er mange hjemmesider der ikke er
> lavet i PHP.
>
> En træffer på DuckDuckGo:
>
> Webhoteller med CMS, JSP, TOMCAT, Java, ASP, .NET, Open Source
> CMS, VELKOMMEN TIL CMS-HOTEL & WEB-HOTEL [...]

Ja, men prisen er også derefter: 29 kr pr. md. for 10 MB, 49 for 100 MB,
og hvis der skal være subdomæner starter prisen ved 149 kr pr md. Det er
ingen stavefejl, der står MB og ikke GB. Til den pris tror jeg de fleste
tager til takke med php, eller holder deres egen server på noget fibernet.

Kim Ludvigsen

unread,
May 8, 2020, 1:21:41 PM5/8/20
to
Den 08.05.2020 kl. 19.09 skrev Jan Hansen:

> ingen stavefejl, der står MB og ikke GB. Til den pris tror jeg de fleste
> tager til takke med php, eller holder deres egen server på noget fibernet.

Det med egen server kan jeg ikke anbefale. Jeg startede i sin tid med at
bruge min egen computer som webserver, men det gav en masse stress,
fordi det blev meget vigtigt, at computeren altid kørte. Ikke mindst,
hvis jeg var hjemmefra i flere dage i træk, var det stressende.

Jeg regnede desuden dengang ud, at ved at bruge en ekstra computer,
kostede det ca. 2.000 kroner ekstra om året i strøm - jeg ved ikke, hvad
det vil koste i vore dage. Bruger man sin almindelige computer, skal man
naturligvis kun regne med ekstra strøm, hvis man plejer at slukke den om
natten.

Hertil kommer naturligvis sådan noget som sikkerhed, som webhotellerne
nok har mere styr på end de fleste almindelige nørder.

--
Mvh. Kim Ludvigsen

Bertel Lund Hansen

unread,
May 8, 2020, 1:29:32 PM5/8/20
to
Jan Hansen skrev:

> Ja, men prisen er også derefter:

Det var bare et tilfældigt eksempel. I sin tid faldt jeg over
mange websider der kørte ASP (almindelig - ikke den nette
udgave). Men måske er de blevet udkonkurreret?

--
/Bertel

Arne Vajhøj

unread,
May 8, 2020, 1:50:44 PM5/8/20
to
On 5/6/2020 5:26 PM, Jan Hansen wrote:
> Sikkert ikke, og det bliver ikke bedre af, at han skriver variabel og
> funktions navne på engelsk, så flader det hele i mine øjne ud til
> det rene volapyk. Det havde været meget nemmere, hvis han skrev urdu
> eller serbokroatisk: Står der noget engelsk-agtigt, skal jeg finde
> forklaringen i python-manualen, står der noget anderledes, skal jeg
> finde forklaringen andetsteds i samme fil. I php kan man da i det
> mindste kende variablerne på $.

Normalt foretrækker man at variabelnavne fortæller hvad variablen
indeholder.

Det kræver et beskrivende navn i et sprog som læseren forstår.

Engelsk er normalt et god bud på sådant et sprog.

Arne

Jan Hansen

unread,
May 8, 2020, 2:03:57 PM5/8/20
to
Kim Ludvigsen skrev:

> Jeg regnede desuden dengang ud, at ved at bruge en ekstra computer,
> kostede det ca. 2.000 kroner ekstra om året i strøm - jeg ved ikke, hvad
> det vil koste i vore dage. Bruger man sin almindelige computer, skal man
> naturligvis kun regne med ekstra strøm, hvis man plejer at slukke den om
> natten.

Ja, lidt strøm bruger det selvfølgelig, hvis computeren står og kører alene
for at holde hjemmeside. Men... hvis den står et sted, der alligevel er
opvarmet, er det gratis om vinteren. Den varme, computeren laver, er nok
ikke så meget dyrere end den, der ellers ville komme fra en radiator.
Jeg skal så ikke gøre mig klog på, om det giver et bedre indeklima, at
blæserne sætter luften i bevægelse, eller om det medfører træk, der kan
give gigt.
Der skal nok være nogle meget tunge udregninger på hjemmesiden, for at det
ikke kører udmærket på en raspberry pi. Strømforsyningen til min pi2 kan
give 2 ampere ved 5 volt, det må være 10 watt eller 87 kWh på år. Men det
er jo kun når cpu arbejder, at den bruger så meget strøm. Den har også den
fordel, at "harddisken" er et sd-kort til 80 kr. Hvis det skulle holde op
med at virke, tager det ikke et minut at sætte et kort med sikkerhedskopi
i den, og få hjemmesiden op og køre igen.

Jan Hansen

unread,
May 8, 2020, 2:13:30 PM5/8/20
to
Bertel Lund Hansen skrev:

> Det var bare et tilfældigt eksempel. I sin tid faldt jeg over
> mange websider der kørte ASP (almindelig - ikke den nette
> udgave). Men måske er de blevet udkonkurreret?

Hos surftown kunne man selv vælge imellem php og asp til samme
pris, det ser ud til det stadig gælder hos det simply.com, som
de kalder sig nu.

Arne Vajhøj

unread,
May 8, 2020, 2:30:39 PM5/8/20
to
On 5/8/2020 5:55 AM, Jan Hansen wrote:
> Arne Vajhøj skrev:
>> On 5/6/2020 3:17 PM, Jan Hansen wrote:
>>> Kan det ikke laves i php i stedet for? Det er man jo
>>> alligevel tvunget til at lære for at lave hjemmeside.
>>
>> PHP er uhyre udbredt til hjemmesider og en mulighed
>> hos næsten alle web hoteller.
>>
>> Men du er ikke nødt til at bruge PHP til en
>> (dynamisk) hjemmeside.
>
> Det er korrekt. Jeg retter mig selv:
> ... at lave hjemmeside på webhotel.

Du kan godt få web hoteller med andre sprog.

Men de er normalt dyrere.

> så til sidst bed jeg i det sure æble og flyttede på webhotel.
> Der var jeg så tvangsindlagt til at lære PHP, og siden da er
> alt min fritid gået med at lappe hjemmesider, der forsvinder
> hver gang det bras bliver opdateret.

Jeg vil mene at man kan undgå mange problemer ved at
tænke lidt fremad.

Eksempel:

Den gamle mysql extension forsvandt i 7.x, men erstatningerne
havde været klar i et årti, og de sidste år inden 7.x kom
på gaden var mysql extension dokumenteret som deprecated. Det
er ikke rettidig omhu at vente til den forsvandt i 7.x

Arne

Arne Vajhøj

unread,
May 8, 2020, 2:34:14 PM5/8/20
to
ASP/IIS/Windows kræver licens, hviket koster penge.

Men derudover så er seneste version af ASP (3.0)
20 år gammel og dermed aldeles forældet.

Arne


Jan Hansen

unread,
May 8, 2020, 3:39:21 PM5/8/20
to
Arne Vajhøj skrev:

> Normalt foretrækker man at variabelnavne fortæller hvad variablen
> indeholder.

Det er sikkert rigtigt nok, hvis man ved hvad man har med at gøre.
Jeg aner intet om python, og ser en linie med

def system_to_ntp_time(timestamp):

Så er det store spørgsmål, hvad er timestamp? Er det en variabel,
eller er det noget python, der svarer til php's time()?
Eller måske det, som uret i hjørnet af skærmen viser, når nu det
hedder system_to_ntp_time?
Efter at have googlet "python timestamp" kom jeg frem til at det
må være en variabel. Det havde jeg kunnet gætte med det samme,
hvis der havde stået zeit, zeitstempel eller horodatage.
Samtidig må det give programmøren en vis anseelse, at have lært
andet end easy engelsk i skolen.

Arne Vajhøj

unread,
May 8, 2020, 4:06:12 PM5/8/20
to
On 5/8/2020 3:39 PM, Jan Hansen wrote:
> Arne Vajhøj skrev:
>> Normalt foretrækker man at variabelnavne fortæller hvad variablen
>> indeholder.
>
> Det er sikkert rigtigt nok, hvis man ved hvad man har med at gøre.
> Jeg aner intet om python, og ser en linie med
>
> def system_to_ntp_time(timestamp):
>
> Så er det store spørgsmål, hvad er timestamp? Er det en variabel,
> eller er det noget python, der svarer til php's time()?
> Eller måske det, som uret i hjørnet af skærmen viser, når nu det
> hedder system_to_ntp_time?
> Efter at have googlet "python timestamp" kom jeg frem til at det
> må være en variabel.

Python:

def system_to_ntp_time(timestamp):

svarer til PHP:

function system_to_ntp_time($timestamp) {

Udfra konteksten så skal det være et argumentnavn.

Arne


Bertel Lund Hansen

unread,
May 9, 2020, 2:35:09 AM5/9/20
to
Jan Hansen skrev:

> Jeg aner intet om python, og ser en linie med

> def system_to_ntp_time(timestamp):

> Så er det store spørgsmål, hvad er timestamp?

Det kan kun være en variabel. Funktioner får overført variable på
den måde.

Jeg er lidt forundret over at du er så glad for $-tegnene. De
irriterer mig til stadighed. PHP er det eneste sprog jeg har
prøvet, der mærker variable.

--
/Bertel

Martin Larsen

unread,
May 9, 2020, 4:47:04 AM5/9/20
to
On 08.05.2020 11.55, Jan Hansen wrote:

>> Men du er ikke nødt til at bruge PHP til en
>> (dynamisk) hjemmeside.

> Det er korrekt. Jeg retter mig selv:
> ... at lave hjemmeside på webhotel.

Nope!

Jeg bruger mere og mere Vue.js. Det er et javascript-framework som er
uhyre elegant, intuitivt og lækkert at arbejde med. Og tilmed meget let
at lære.

Man arbejder deklarativt, dvs. en stor del af funktionaliteten
deklareres direkte i HTML-koden. Det gør at den samlede kode bliver
koncis, letforståelig og effektiv.

Et godt eksempel er https://motionsorientering.dk/ som jeg har lavet som
en del af et større igangværende projekt.

Det er en samlet oversigt over arrangementer i Dansk Orienterings-Forbund.

Data fås fra en bagvedliggende JSON-fil der opdateres to gange dagligt.
Resten renderes direkte i browseren.

Prøv at kigge på HTML-koden og se hvor simpel den er. Og det er ikke
fordi den tilhørende JS-fil så omvendt er specielt indviklet:
https://motionsorientering.dk/js/index.js

Et par udvalgte eksempler fra koden:

<input type="search" placeholder="Filtrér på klubnavn" v-model="filter"
title="ESC sletter feltet" autofocus @dblclick="resetFilter"
@keydown.esc="resetFilter">

v-model er det datasæt elementet er bundet til. Der er tale om en
tovejsbinding. Hvis data ændrer sig, gør indholdet af inputfeltet det
også. Og omvendt.

@dblclick kalder funktionen resetFilter når man dobbeltklikker på
elementet. Det samme med @keydown.esc som kalder samme funktion. Det er
altså kun hvis man trykker Escape. Man kunne også have valgt fx
@keydown.enter, så ville den reagere på Enter osv.

resetFilter sætter bare filter="".


<div class="klub" v-for="klub in klubber">

Dette er containeren for hver klub. Denne DIV bliver gentaget for hver
klub i klubber. Det sørger Vue selv for. Inde i hver DIV vil klub
referere til den aktuelle klub i iterationen.

<a target="_blank" :href="klubUrl(klub.fbID)">{{klub.name}}</a></h1>

Dette laver en A tag hvor href sættes ud fra klubbens facebook-ID.
Teksten {{klub.name}} erstattes af Vue automatisk af klubbens navn.


Jeg har arbejdet professionelt med programmering siden 1992 eller
deromkring og jeg har været forbi mange sprog og frameworks. Vue.js er
ubetinget det der har givet mig den bedste oplevelse!

Jeg kan klart anbefale det. Det er meget let at lære og egner sig også
til helt små projekter som Kim Ludvigsens valutaomregner. Og det kan
snildt bruges drypvis til en enkelt ting på en eksisterende hjemmeside.

--
tv4ever.dk
bedrevejr.dk

Jan Hansen

unread,
May 9, 2020, 7:34:55 AM5/9/20
to
Bertel Lund Hansen skrev:

> Jan Hansen skrev:
>
> > Jeg aner intet om python, og ser en linie med
>
> > def system_to_ntp_time(timestamp):
>
> > Så er det store spørgsmål, hvad er timestamp?
>
> Det kan kun være en variabel. Funktioner får overført variable på
> den måde.

Ja, det ved du. Men når man intet aner om python, er det ikke nemt
at gennemskue, når det er maskeret som noget, der ligeså godt kunne
være en del af python.

> Jeg er lidt forundret over at du er så glad for $-tegnene.
De gør det muligt at se, hvad der er variabler. Hvis variablerne har
navne, der helt åbenlyst ikke er en del af programmeringssproget,
er $ selvfølgelig ganske overflødige.

> De irriterer mig til stadighed. PHP er det eneste sprog jeg har
> prøvet, der mærker variable.

Så har du ikke leget med basic på Vic-20 eller Commodore64, der
markeres strenge med $, og heltal med %.
De er beskrevet på side 6 (36) i brugsanvisningen på
https://www.commodore.ca/manuals/c64_users_guide/c64-users_guide-03-beginning_basic_programming.pdf

Jan Hansen

unread,
May 9, 2020, 9:27:17 AM5/9/20
to
Martin Larsen skrev:

> On 08.05.2020 11.55, Jan Hansen wrote:
>
> >> Men du er ikke nødt til at bruge PHP til en
> >> (dynamisk) hjemmeside.
>
> > Det er korrekt. Jeg retter mig selv:
> > ... at lave hjemmeside på webhotel.
>
> Nope!
>
> Jeg bruger mere og mere Vue.js. Det er et javascript-framework som er
> uhyre elegant, intuitivt og lækkert at arbejde med. Og tilmed meget let
> at lære.
...
> Data fås fra en bagvedliggende JSON-fil der opdateres to gange dagligt.
> Resten renderes direkte i browseren.

Er den events.json noget, der bliver uploaded færdigt på siden? Hvis
webserverens eneste opgave er at sende færdige filer ud, virker det
selvfølgelig, uden hverken php eller andet programmering er nødvendig.

Bertel Lund Hansen

unread,
May 9, 2020, 2:21:31 PM5/9/20