Oversæt datoer i python via gettext / i18n

I et project bruger vi jinja2 og deres i18n plugin til at levere tekster i forskellige sprog.
Nu var der kommet en efterspørgsel til hvordan datoer også kunne komme i deres respektive format.

YYYY-MM-DD er jo ikke særlig dansk.

Jeg googlede jinja2 i18n date format, jinja2 gettext date format osv., men fandt intet brugbart, indtil jeg kom forbi en tråd der sagde:

Jamen, det er slet ikke et job for gettext, du skal jo bare bruge setlocale() (Oversat og fortolket af mig)

Så jeg kastede et kig på setlocale() og korrekt, ved at bruge setlocale() og strftime(), kunne jeg smide lige præcis den dato ud i lokale format som jeg ønskede.

Så nogle gange skal man tænke ud af boksen, hvilket jeg ikke lige gjorde.
Godt andre kunne give mig et hint.

Udgivet i Python | Tagget , , , , , | Skriv en kommentar

Super Duper Kanelsnegle

Dagen startede med slud og regn, så der skulle ske noget.
Jeg gik på jagt efter verdens bedste kanelsnegle og fandt 4 forskellige.
Jeg besluttede at tage det bedste fra alle 4 og se hvor det endte. (det endte faktisk ret godt, hvis jeg selv skal sige det) :o)

Hoveddelen af opskriften er dog lånt fra Hr Meyer: kanelsnurrer

Jeg lavede dog kun halv portion.
Så min opskrift blev som følger:

Dejen består af:
2½ dl sødmælk
25 g gær
1 æg
500 g hvedemel
75 g sukker
8 g salt
6 g stødt
1 tsk kardemomme
75 g smør
1 vaniljestang (kornene derfra)
1 tsk kanel

Fyld:
150 g blødt smør
50 g brun farin
50 g sukker
½ dl sirup
1 spsk kanel

Der plejer altid at mangle fyld, så brug gerne mere. :o)

Rør gæren ud i mælken. Efterfølgende puttes resten i (dog ikke smør) og det skal æltes i lang tid. Meyer siger 20 min, jeg synes nu dejen allerede slap efter 5-10 min, så jeg stoppede første æltning her. Så puttede jeg smør i tern i maskinen og lod den ælte igen. Efter 5-10 minutter igen, var dejen “fin”. (jeg var i tidsnød)
Dejen fik lov at hæve 30 minutter, Meyer siger 1½ time, dækket med et fugtigt klæde.
Dejen rulles ud i en rektangel (min var cirka 50x40cm)
Godt med fyld på dejen, rul sammen og skær i skiver og smid i en bradepande.
Lad dem hæve igen. (jeg nøjes med 30 minutter, Meyer sagde igen 1½ time dækket med fugtigt klæde)
I ovnen cirka 25 minutter ved 180 grader.
De smagte mums og blev selvfølgelig dekoreret med hvid glasur inden servering.

Udgivet i Opskrifter | Tagget , , , , | Skriv en kommentar

Piwik og Varnish

Jeg skulle opsætte Piwik bag en Varnish server.

Og det var ikke bare lige, især ikke når man fandt en “guide” på nettet der indeholdt fejl.

Men løsningen er som følger:

Åben/rediger filen: default.vcl

Tilføj disse linjer til: vcl_recv

if (req.http.host == "piwik.domain.com") {
  set req.http.X-Forwarded-For = client.ip;
  return(pass);
}

Tilføj disse linjer til: vcl_fetch

if (req.http.host == "piwik.domain.com") {
  return(hit_for_pass);
}

Tilføj / udkommenter disse linjer i filen: config/config.ini.php

[General]
proxy_client_headers[] = HTTP_X_FORWARDED_FOR
proxy_host_headers[] = HTTP_X_FORWARDED_HOST

Og så burde det faktisk bare spille.

Udgivet i Piwik, Varnish | Tagget , , , , | Skriv en kommentar

Tjen4000, hvem kan sige nej tak til det?

I forbindelse med Fodbold VM 2014, faldt jeg også i bookmakernes klør og endte med at tabe lidt penge.

Som den ludoman man selvfølgelig er, tænker man, hvordan kan jeg vinde de penge retur. I min søgen på den skudsikre fidus, faldt jeg over denne side: Tjen4000.dk

Jeg læste lidt om emnet og tænkte, det skal da prøves.

Dog er der nogle faldgruber, sørg for at få læst vilkår og betingelser korrekt igennem.

En god oversigt er denne: Bonusoversigt

De 4 bookmakere man spiller ud mod hinanden er:

Bet365, NordicBet, Tipico og UniBet.

Alle giver 100% bonus retur på en indsats på 1000,-

 

Kommentarer:

Bet365 udbetaler først bonus, når du har gennemspillet din indsats engang, så det skal man lige huske på.

Tipico kan lave en begrænsning, hvis du ender der efter første bet. Så anbefalingen må være at prøve sig frem.

Skulle man ende med at kunne smide 4000 et sted og ikke kunne matche hos bookmaker 2, må man evt. til lommen og smide 4000 ind et 3. sted, så man dermed er “sikret” sin gevinst.

Udgivet i Diverse | Skriv en kommentar

Powershell ISE crasher når man vil starte programmet

Når jeg vil starte Powershell ISE, så crasher det med fejlen: Powershell ISE stopped working…

Ved at gå ind i mappen: C:\Windows\System32\WindowsPowerShell\v1.0 og oprette filen: powershell_ise.exe.config med følgende indhold:

<?xml version=”1.0″?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy=”true”>
<supportedRuntime version=”v4.0.30319″/>
<supportedRuntime version=”v2.0.50727″/>
</startup>
</configuration>

Så ville Powershell ISE gerne lege igen.

Udgivet i PowerShell, Programmering | Tagget , , , , , | Skriv en kommentar

Verdens bedste pizzadej

Jeg har flere gange forsøgt at finde den bedste pizzadej og har været forbi flere forskellige.
Men denne tager nu prisen: Pizzadej

Dejen er så simpel som:

  • 2,5 dl. Lunkent vand
  • 15 gram gær
  • 2 tsk salt
  • Ca. 500 gram hvedemel (pizza-mel kan sagtens bruges, men almindelig hvedemel gør det ok)
  • 2-3 spsk. olivenolie (jeg bruger gerne 3)

Rør gæren ud i vandet og tilsæt noget af melet. Jeg har i en kagebagebog læst, at salt direkte i vand / gær, skulle ødelægge hæveevnen, så den gemmer jeg altid indtil der er godt med mel i.

Når dejen er færdigæltet deler jeg den i 3 og smider den på en tallerken med film over og i køleskabet. Så har man den bedste pizzadej dagen efter.

Lille fif, når dejen skal rulles/svinges eller lignende ud til pizza’er, så gør jeg det gerne i durummel, det kan jeg godt lide. :o)

Udgivet i Opskrifter | Tagget , , , , , , | Skriv en kommentar

Powershell blev igen dagens helt

Jeg stod over for den “store” opgave at skulle arkivere ca. 400 sider på en gammel hjemmeside. Det kørte på en Sharepoint og havde desværre ikke en direkte mulighed for at blive eksporteret til noget efterfølgende brugbart data.

Jeg fik “lov” til at lave et pdf print af samtlige sider. Tak tror jeg nok. :o)

Så en kombination af dette script: http://gallery.technet.microsoft.com/scriptcenter/1f08824a-c9db-415e-83b1-2c49ebda195c

og så lidt søgning på google, endte jeg op med dette script:

Scriptet kræver en installation af PDFCreator, og det kan hentes her:
http://www.pdfforge.org/pdfcreator

[System.Reflection.Assembly]::LoadWithPartialName("System.web") | out-null

$OUTPUT_FOLDER="C:\pdf\"

#PDF Creator settings
$ErrorActionPreference="Stop"
$WarningPreference="Stop"
$PDFINFOPATH="HKCU:\Software\PDFCreator\Program"
$AUTOSAVEFNAMEPROPERTY="AutoSaveFilename"
$AUTOSAVEDIRPROPERTY="AutoSaveDirectory"
$USEAUTOSAVEPROPERTY="UseAutoSave"

try{
get-itemproperty -path $PDFINFOPATH -name $AUTOSAVEDIRPROPERTY |out-null
set-itemproperty -path $PDFINFOPATH -name $AUTOSAVEDIRPROPERTY -value $OUTPUT_FOLDER |out-null
}catch{
new-itemproperty -path $PDFINFOPATH -name $AUTOSAVEDIRPROPERTY -value $OUTPUT_FOLDER |out-null
}
try{
get-itemproperty -path $PDFINFOPATH -name $USEAUTOSAVEPROPERTY |out-null
set-itemproperty -path $PDFINFOPATH -name $USEAUTOSAVEPROPERTY -value "1" |out-null
}catch{
new-itemproperty -path $PDFINFOPATH -name $USEAUTOSAVEPROPERTY -value "1" |out-null
}

#File to load URLS from... (1 on each line)
$data = Get-Content .\urls.txt

foreach ($url in $data){
#Make nice looking filename
$Decode = [System.Web.HttpUtility]::UrlDecode($url)
$filename = $Decode.split("/")[-1]
$cleaned = $filename -replace '[^\w -]', [String]::Empty
$slug = ((-split $cleaned) -join "-").ToLower()

try{
$ie=new-object -com internetexplorer.application
$ie.navigate($url)
$ie.visible = $true
#depending upon the website sleep parameters here onwards may need adjustment
start-sleep -seconds 2
try{
set-itemproperty -path $PDFINFOPATH -name $AUTOSAVEFNAMEPROPERTY -value "$slug.pdf" | out-null
}catch{
echo "---===Fejlet===---"
echo $url
}
start-sleep -seconds 2
$ie.execWB(6,2)
start-sleep -seconds 2
$ie.quit()
} catch [Exception] {
echo "---===Exception===---"
echo $_.Exception.Message
echo $url
}
}

Udgivet i Diverse, PowerShell | Tagget , , | Skriv en kommentar

Tilføj ServicePrincipalName til AD-bruger

Jeg havde behov for at skulle tilføje ekstra Service Principal Names (SPN) til en AD-bruger.

Efter jeg havde tilføjet SPN til brugeren og oprettet en ny keytab, kunne jeg se denne fejl i min apache log: Minor code may provide more information (, Key version number for principal in key table is incorrect)

Jeg tænkte, hvad pokker er der nu galt, det har jo lige virket perfekt.

Efter at fået hul igennem til de kloge folk på mod_auth_kerb mailinglisten, viste det sig, at fejlen opstod, fordi den Kerberos Ticket jeg allerede havde på min pc, selvfølgelig ikke matchede den ny keytab fil der var på serveren. Så da jeg kørte kommandoen:

klist purge (sletter alle kerberos tickets lokalt)

Og testede mod serveren igen, så virkede det som forventet.

Udgivet i Apache, mod_auth_kerb, Windows Server | Tagget , , , , , , , , | Skriv en kommentar

Minidav spørger i Apache

Vi er ved at udvikle et intranet i Ringsted Kommune og i den forbindelse, oplevede vi problemer, når vi forsøgte at åbne Microsoft Office dokumenter via Internet Explorer.

Intranet er SSO aktiveret via Kerberos. Men når man åbnede dokumenter via Internet Explorer, så kom der en login boks op (det var Microsoft Office, der ville logge ind). Den fik jeg deaktiveret via nogle Apache mod_rewrite regler:

# Intercept Microsoft Office Protocol Discovery
RewriteCond %{REQUEST_METHOD} ^OPTIONS
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Protocol\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Existence\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\-WebDAV\-MiniRedir.*$
RewriteRule .* – [R=405,L]

Som jeg fandt i denne tråd: http://serverfault.com/questions/301955/stopping-microsoft-office-2010-from-integrating-with-subversion-server-as-if-it

Dog oplevede jeg stadig problemer. Når nu dokumentet var åbnet, kunne jeg rigtig nok se at dokumentet var i skrivebeskyttet tilstand, men rettede jeg i dokumentet og trykkede CTRL + S (GEM), så kom der “fandeme” en ny login boks op. Trykkede jeg Annuller, virkede alt som planlagt, men brugervenlighed…

Så faldt jeg over denne tråd: http://social.technet.microsoft.com/Forums/office/en-US/f5654437-81e0-49ad-b470-f66364e9b0db/annoying-authentication-prompt-when-opening-a-word-document-in-ie8-on-windows7-in-word-2010

Og der stod “tricket”. HTTP response fra Apache skal være 501 og ikke 405. Så nu ser min apache config således ud:

# Intercept Microsoft Office Protocol Discovery
RewriteCond %{REQUEST_METHOD} ^(OPTIONS|PROPFIND)$ [NC]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Protocol\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Existence\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\-WebDAV\-MiniRedir.*$
RewriteRule .* – [R=501,L]

Og indtil videre sidder den lige i skabet.

Udgivet i Apache, Microsoft Office, mod_rewrite, Ubuntu | Tagget , , , , , | Skriv en kommentar

Ktpass smed fejlen 0x00000020

Jeg sad og skulle oprette en AD bruger, som skulle bruges i noget kerberos SSO sammenhæng. Hver gang jeg kaldte ktpass.exe, smed den fejlen 0x00000020.

Det viste sig at være fordi CN / NAME indeholdt ÆØÅ.

Fjernede jeg ÆØÅ i disse 2 værdier, virkede det perfekt.

Lidt af en aha oplevelse.

Udgivet i Apache, mod_auth_kerb, Windows Server | Tagget , , , | Skriv en kommentar