Christian Alfredsson

Författare: Christian Alfredsson (sida 1 av 3)

Plandisc

Testa av ett planeringsverktyg som heter Plandisc

Här är kommunens planering.

Vill du se planeringen i större format klicka här

 

Kan du inte se plandisc klicka här

Bilder från Akvariehelg

Alla föredragshållare fick en eget fotomontage. Med deras favoritfisk eller något annat i anslutning till föredraget.

Akvariehelg 2018

Varje år anordnar Nordiska Ciklidsällskapet en akvariehelg tillsammans med en lokal förening. Denna gång Göteborgs Ciklid- och Akvariesällskap. Det blev ett lyckat och utsålt evenemang. Jag bidrog med att göra hemsida och allt reklammaterial

www.akvariehelg.se

Genom att ha samma adress varje år så byggs det upp ett varumärke kring akvariehelg. Detta år var lila temat på allt reklammaterial.

Många kända föredragshållare

Statistik under perioden för reklamsiten

IT-arkitektur 2018 – 2021

Nästkommande tre år fokuseras på att jobba med tre grundläggande områden:

  • Information – Hur hanterar vi vår viktigaste information?
  • Integration – Hur flödar information mellan system?
  • Användare – Hur kan vi ha god struktur och säkerhet på användarinformationen?

Genom att ha ordning och struktur men också säkerhet inom dessa områden är vi förberedda för framtida utmaningar. Denna IT-arkitektur går i linje med Alingsås kommuns IT-program och eStrategi. Den tar även hänsyn till nationella initiativ från E-delegationen och SKL.

Läs den bifogade pdf-filen. Observera att den inte är antagen av Alingsås kommun än, men att du gärna får ta om du hittar något bra.

Ladda hem den här: IT-arkitektur 2018-2021

Svart bakgrundsbild till presentationer

Blev så oerhört inspirerad av denna video

En av de saker man kan tänka på är att man i sin presentation kan ha en svart bakgrundsbild. Jag har gjort en mörk bild som jag själv tänkte använda i presentationer. Självklart är den licensierad så du har frihet att använda den.

Klicka på bilden för full storlek

Creative Commons-licens
Detta verk är licensierat under en Creative Commons Erkännande 4.0 Internationell Licens.

Inläsningstjänst – skapa importfil

Det kan vara riktigt jobbigt att skapa en importfil som en leverantör vill ha. Inläsningstjänst är bra då de har en bra specifikation som man får av dem, samt att de har sftp-servrar där man kan skicka upp filerna så eleverna automatiskt åker in.

Jag gjorde så här

1/ Installera Ubuntu 16.04 med en LAMP server. 

Jag valde att installera den i Vmware Fusion på min dator. Då blir det en lokal server. Den behöver komma åt LDAP-katalogen du vill läsa från.

2/ Kolla igenom scriptet nedan och bygg ett eget. Det är ganska logiskt och är inte så svårt. Du anropar scriptet med http://localhost/inlasningstjanst.php i webbläsaren.

Vad kan man göra mer? Någon form av felhantering kan vara bra att ha med. Jag har en metakatalog så alla konton är skapade med automatik så det är inte lika nödvändigt hos oss.

Hur ska vi kommuner slippa detta i framtiden?

Alingsås har två spår:

1/ En integration som klarar av att läsa LDAP och automatiskt skapa en .csv enligt styrfiler. Den håller Pulsen på att bygga åt oss och den kommer köras i Mule.

2/ SCIM och skolfederationsprojektet är så spännande . Det skulle lösa hela provisioneringsfrågan och standardisera om vi får snurr på det. Här kan du läsa mer om det: https://www.skolfederation.se/nyheter/2017/08/22/pocen-puttrar-pa/

Älmhults kommun är föredömliga och Max har gjort ett kanonjobb ni kan läsa mer om här: https://github.com/MaxWallstedt/SimpleSCIM

 

—> Scriptet <—

<?php

// Inställningar

$server = ‘192.168.1.200’; // IP-adress till LDAP server i mitt fall eDirectory
$dn = ‘cn=readonlyuser,ou=services,o=alingsas’; // Användare med rätt att läsa från LDAP
$pw = ‘ToyotaIsBest4Ever’; // Lösenord
$searchbase = ‘o=alingsas’; // Från vilken nivå ska vi söka. Här är översta nivån definerad

// Searchstring är ditt LDAP-filter där du ställer in vad du vill ha.
// Först tar jag med alla som är användare, sedan väljer jag ut elever och personal inom skolan
// Skolor kan byta namn så jag använder SCB’s skolkoder för att göra ett urval. Här får jag enbart med grundskolan i Alingsås

$searchstring=”(&(objectClass=user)(|(pidEduPersonScopedAffiliation=student@edu.alingsas.se)(pidEduPersonScopedAffiliation=faculty@edu.alingsas.se))
(|(pidschoolunitcode=74064638)
(pidschoolunitcode=74064638)
(pidschoolunitcode=63452058)
(pidschoolunitcode=49115714)
(pidschoolunitcode=78832157)
(pidschoolunitcode=34338735)
(pidschoolunitcode=32478204)
(pidschoolunitcode=28639614)
(pidschoolunitcode=78273632)
(pidschoolunitcode=87109819)
(pidschoolunitcode=46546067)
(pidschoolunitcode=84581048)
(pidschoolunitcode=92770341)
(pidschoolunitcode=76908037)
(pidschoolunitcode=38957274)
(pidschoolunitcode=90924483)
(pidschoolunitcode=98272016)
(pidschoolunitcode=71895385)
(pidschoolunitcode=57136802)
(pidschoolunitcode=70153094)
(pidschoolunitcode=63399058)
(pidschoolunitcode=87109819)
(pidschoolunitcode=75101306)
(pidschoolunitcode=70304200)
(pidschoolunitcode=70079232)
(pidschoolunitcode=63399058)
(pidschoolunitcode=87109819)
(pidschoolunitcode=75101306)
(pidschoolunitcode=70304200)
(pidschoolunitcode=70079232)
(pidschoolunitcode=63399058)
))”; //LDAP searchstring

//Skicka ut huvudrubrikerna. I Alingsås är alla fyllda utom Office365ID som vi inte har
echo “Name;Email;Username;Type;Class;Organization;SchoolfederationID;Office365ID;GSuiteEmail<br>”;

// Välj vilka attribut som ska returneras. Ni ser att Office365ID lämnas tomt
$attnames=array(“fullname”,”mail”,”cn”,”pidcategory”,”ou”,”pidschoolunitcode”,”pidedupersonprincipalname”,””,”mail”); //Returned attributes

// Koppla mot servern
$ds=ldap_connect($server);

//Koppla upp mot LDAP
if ($ds) {
$r=ldap_bind($ds, $dn, $pw);
if($r) //echo “LDAP_bind gick bra<br>”;

//ldap_search söker från $searchbase och alla underkataloger
$r=ldap_search($ds,$searchbase, $searchstring, $attnames);

if($r)

$entries = ldap_get_entries($ds, $r);

//Snurra igenom alla träffar och välj vad som ska visas
for ($i=0; $i<$entries[“count”]; $i++) {
foreach($attnames as $attname){
if(is_array($entries[$i][$attname])){
$lastcount = $entries[$i][$attname][“count”] – 1;
for($j=0;$j<$entries[$i][$attname][“count”];$j++){

//Om det är en skolkod så vidar jag inte det. Jag visar inte heller pidcategory som kommer senare
if (($attname == ‘pidschoolunitcode’) || ($attname == ‘pidcategory’)) {
// Här visar vi inte något
}else{
// Skicka ut värdet
echo str_replace(“,”,””,$entries[$i][$attname][$j]);
}

//Om det är ett attribut som är en kategori så vill Inläsningstjänst ha andra namn. Stu blir lika med Student. Emp blir lika med Teacher
if ($attname == ‘pidcategory’) {
if ($entries[$i][$attname][$j] == ‘Stu’) {
echo “Student”;
}
if ($entries[$i][$attname][$j] == ‘Emp’) {
echo “Teacher”;
}
}

//Här tar jag skolkoderna och skickar ut namnen istället
if ($attname == ‘pidschoolunitcode’) {
if ($entries[$i][$attname][$j] == ‘74064638’) {
echo “Gustav Adolfsskolan”;
}
if ($entries[$i][$attname][$j] == ‘63452058’) {
echo “Hemsjö Kyrkskola”;
}
if ($entries[$i][$attname][$j] == ‘49115714’) {
echo “Ingaredsskolan”;
}
if ($entries[$i][$attname][$j] == ‘78832157’) {
echo “Kullingsbergsskolan”;
}
if ($entries[$i][$attname][$j] == ‘34338735’) {
echo “Lendahlsskolan”;
}
if ($entries[$i][$attname][$j] == ‘28639614’) {
echo “Långareds skola”;
}
if ($entries[$i][$attname][$j] == ‘78273632’) {
echo “Magra skola”;
}
if ($entries[$i][$attname][$j] == ‘46546067’) {
echo “Nolbyskolan”;
}
if ($entries[$i][$attname][$j] == ‘84581048’) {
echo “Nolhagaskolan”;
}
if ($entries[$i][$attname][$j] == ‘92770341’) {
echo “Noltorpsskolan”;
}
if ($entries[$i][$attname][$j] == ‘76908037’) {
echo “Sollebrunns skola”;
}
if ($entries[$i][$attname][$j] == ‘38957274’) {
echo “Stadsskogenskolan”;
}
if ($entries[$i][$attname][$j] == ‘90924483’) {
echo “Stora Mellby skola”;
}
if ($entries[$i][$attname][$j] == ‘71895385’) {
echo “Västra Bodarna skola”;
}
if ($entries[$i][$attname][$j] == ‘57136802’) {
echo “Ängaboskolan”;
}
if ($entries[$i][$attname][$j] == ‘70153094’) {
echo “Ödenäs skola”;
}
if ($entries[$i][$attname][$j] == ‘63399058’) {
echo “Östlyckeskolan”;
}
if ($entries[$i][$attname][$j] == ‘75101306’) {
echo “Nolhagaskolan”;
}
if ($entries[$i][$attname][$j] == ‘70304200’) {
echo “Noltorpskolan”;
}
if ($entries[$i][$attname][$j] == ‘70079232’) {
echo “Ängaboskolan”;
}
if ($entries[$i][$attname][$j] == ‘63399058’) {
echo “Östlyckeskolan”;
}
if ($entries[$i][$attname][$j] == ‘75101306’) {
echo “Nolhagaskolan”;
}
if ($entries[$i][$attname][$j] == ‘70304200’) {
echo “Noltorpskolan”;
}
if ($entries[$i][$attname][$j] == ‘70079232’) {
echo “Ängaboskolan”;
}
if ($entries[$i][$attname][$j] == ‘63399058’) {
echo “Östlyckeskolan”;
}

}
}
} else {
echo str_replace(“,”,””,$entries[$i][$attname]).””;
}
// En avgränsare efter varje värde då filen ska vara semikoloseparerad
echo “;”;
}
// Ny rad efter en post
echo “</br>”;
}
ldap_close($ds);

} else {
echo “Kan inte koppla mot LDAP-servern”;
}
?>

Sluta göra om – gör nytt

Jag skulle så gärna se att fler tittade på detta exempel: https://standards.usa.gov/

Tänk om svenska kommuner och myndigheter kunde standardisera en sådan sak som e-tjänster. Att slippa göra saker igen som vi redan har en bra standard på. Både Helsingborg och Göteborg har gjort bra styleguides, men jag efterlyser den nationella.

Bättre att vi betalar pengar ihop till något som funkar riktigt riktigt bra och underhålls. Sedan anropar vi den och jag som medborgare känner igen mig vilken e-tjänst jag än går till. Just när det gäller e-tjänster tycker jag själv att funktion går före särprofilering.

Helsingborg: http://styleguide.helsingborg.se/accessibility
Göteborg https://goteborg.se/wps/portal/component-framework/

Reklam

Idag gjorde jag klart reklam för ett företag som säljer akvariefiskar. De har jubileum och har rabatt för Nordiska Ciklidsällskapets medlemmar. Himlans trevligt.

Annonsen har texten som kunden ville ha. Jag har gjort den grafiska designen och fotat fisken. Jag har inte gjort logotypen, den tycker jag är grymt snygg.

Deras hemsida är: www.akvarievalvet.se

En instruktionsfilm för Zoopet

Det är väl inte alltid så kul att höra sin egen röst, men det är väldigt nyttigt. Förutom att det är en instruktionsfilm till en modul jag själv programmerat så är det just övning i att prata framför kameran.

Ta en titt på filmen och lägg framförallt märke till modulen jag byggt. Den gör att medlemmar kan lägga in sina egna akvarium. Den är kopplad till artregistret på ett smart sätt som ni ser framåt slutet på filmen.

Små idéer som kan vara viktiga – LDAP till CSV

Vi har redan en integration i Mule som kopierar en fil från A till B. Den kan kolla filen så allt är okey i den mellan.

I fredags satt jag och funderade på om man inte kan använda samma tänk på användardata. Man hämtar upp data via LDAP, kontrollerar det och trycker ut en .csv fil på ett ställe där man vill ha den.

Flera leverantörer vill inte läsa direkt från katalogtjänsten utan vill ha fil. Detta har tidigare ofta varit ett manuellt jobb som nu blir mycket enkelt att automatisera. Det fina är att vi har möjlighet att trycka ut användardata hur ofta som helst.

Självklart går inga lösenord denna vägen, de sköter vi med federation. Uppgifterna i filen är dessutom så lite som möjligt, bara så systemet funkar.


Äldreinlägg

Copyright © 2019 Christian Alfredsson

Tema av Anders NorenUpp ↑