Opdater Ubuntu uden reinstallation

$ tegnet viser at kommandoen udføres som almindelig bruger og skal derfor ikke medtages som en del af kommandoen

$ sudo apt-get update && sudo apt-get full-upgrade -y
$ sudo apt-get install update-manager-core -y
$ sudo do-release-upgrade --proposed --mode=desktop

Læs info på skærmen og besvar efter bedste evne 🙂

Grundlæggende linux installation – trin for trin

Arch Linux i Virtualbox

Det antages at du ved hvordan man laver en virtuel maskine i VirtualBox og ved hvordan man tilknytter en iso fil til opstart.
Vigtigt! Alle de viste kommander er i den virtuelle computer som root. # indikerer root og skal ikke medtages som en del af kommandoen.

Hent en iso på https://www.archlinux.org/download/. Tilknyt iso til cd drev i virtuel computer og start den.

Sæt dansk tastatur

# loadkeys dk

Sæt ur

# timedatectl set-ntp true

Partitioner

# cfdisk /dev/sdX

opret dos filtabel og partition for boot (512M), partition for root og evt også en partition for home

Formattering

# mkfs.vfat /dev/sda1
# mkfs.ext4 /dev/sda2

Hvis du har en partition for home formatteres denne på samme måde som root partition

Montering

root partition monteres altid først

# mount /dev/sda1 /mnt/

opret mappe til montering af boot

# mkdir /mnt/boot

monter boot

# mount /dev/sda2 /mnt/boot

hvis du har en partition for home er det på samme måde – opret mappen home i din monterede root partition og monter home partition

Installation af base

# pacstrap -i /mnt base

Monterings valg til fstab

# genfstab -U /mnt >> /mnt/etc/fstab

Opsætning af det endelige system i chroot miljø

# arch-chroot /mnt

Sæt tidszone

# ln -s /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime

Sæt hardware ur

# hwclock --systohc

System sprog

# nano /etc/locale.gen

rediger linjen med ‘da_DK.UTF-8 UTF-8’ ved at fjerne # og gem med F2.

Generering af system sprog

# locale-gen

X tastatur

# echo LANG=da_DK.UTF-8 > /etc/locale.conf

Terminal tastatur

# echo KEYMAP=dk > /etc/vconsole.conf

Sæt computer navn

ditcomputernavn erstattes med et relevant computer navn

# echo ditcomputernavn > /etc/hostname

Sæt samme computernavn i hosts

ditcomputernavn erstattes med dit computernavn jf. foregående trin

# echo '127.0.1.1 ditcomputernavn.localdomain {hostname];' >> /etc/hosts

Aktiver dhcp service ved opstart

# systemctl enable dhcpcd

Sæt root password

# passwd

Opret bruger

ditbrugernavn erstattes med et relevant brugernavn

# useradd -m ditbrugernavn

Sæt bruger password

ditbrugernavn erstattes med dit brugernavn jf. foregående trin

# passwd ditbrugernavn

Installer grub bootloader

# pacman -S grub

Opsæt grub bootloader

# grub-install --target=i386-pc /dev/sdx

Opret grub config

# grub-mkconfig -o /boot/grub/grub.cfg

Afslut

# exit

Afmonter partitioner

# umount -R /mnt

Genstart

Tast F12 og vælg harddisk – fjern cd

# reboot

Login i Arch Linux

Ajourføring pakke database

# pacman -Syyu

Installer xorg og skærm driver

# pacman -S xorg-server xorg-apps xorg-server-utils xf86-video-fbdev

Grafisk brugerflade aka desktop

Her er valgt xfce men det kunne være gnome, kde eller hvad du nu foretrækker

# pacman -S xfce4 xfce4-goodies numix-themes

Grafisk login – display manager

# pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings

Aktiver ved opstart

# systemctl enable lightdm

Start display manager og login

# systemctl start lightdm

SQL trigger insert merge update

Ved opdatering af tabel1 skal tabel2 opdateres

Der er andre der har lavet før mig. Et eksempel er fra SQL Blog

MERGE INTO Customers AS c
USING      Moved     AS m
      ON   m.SSN      = c.SSN
WHEN MATCHED
THEN UPDATE
     SET   Street  = m.Street,
           HouseNo = m.HouseNo,
           City    = m.City;

SQL trigger on update

-- =============================================
-- Object : Trigger [dbo].[fcs_itemUpdate]
-- Script Date: 08-10-2016 12:31:10
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author : Frede H.
-- Create date: 2016-10-08
-- Description: Trigger when inventable updates
-- =============================================
CREATE TRIGGER [dbo].[fcs_itemUpdate]
  ON [dbo].[INVENTABLE]
  AFTER UPDATE
AS
BEGIN
  -- SET NOCOUNT ON added to prevent extra result sets from
  -- interfering with SELECT statements.
  SET NOCOUNT ON;
  -- Update statements for trigger here
  merge into fcs_catalog as c
        using INVENTABLE as i
        on i.ITEMNUMBER = c.itemnumber
  when matched
  then update
      set isBlocked = i.BLOCKED,
          itemGroup = i.GROUP_,
          itemName1 = i.ITEMNAME1,
          itemName2 = i.ITEMNAME2,
          itemName3 = i.ITEMNAME3,
          picture   = i.IMAGEFILE;
END
GO

Ved indsæt i tabel1 kopier til tabel2

SQL trigger on insert

-- =============================================
-- Object : Trigger [dbo].[fcs_itemInsert]
-- Script Date: 07-10-2016 20:16:10
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author : Frede H.
-- Create date: 2016-10-07
-- Description: Copy item to fcs_catalog
-- =============================================
CREATE TRIGGER [dbo].[fcs_itemInsert]
  ON [dbo].[INVENTABLE]
  AFTER INSERT
AS
BEGIN
  -- SET NOCOUNT ON added to prevent extra result sets from
  -- interfering with SELECT statements.
  SET NOCOUNT ON;
  -- Insert statements for trigger here
  insert into dbo.fcs_catalog(
         isBlocked,
         isOnline,
         itemGroup,
         itemName1,
         itemName2,
         itemName3,
         itemNumber,
         lastModified,
         picture)
  select BLOCKED,
         0,
         GROUP_,
         ITEMNAME1,
         ITEMNAME2,
         ITEMNAME3,
         ITEMNUMBER,
         LASTCHANGED,
         IMAGEFILE
  from inserted
END
GO

Virtuel computer – hvordan?

Hvilken software?

Der er adskillige muligheder og nogle er nemmere at bruge end andre.

De første to muligheder er ganske enkle at gå til.

For private er de gratis at hente, installere og bruge.

Vmware Workstation Player er et kommercielt udviklet og supporteret produkt kendt for sit stabilitet og problemfri afvikling af virtuelle computere.

Er man en virksomhed og ønsker at bruge Vmware produkter skal man til lommerne for en licenseret version.

Oracle VirtualBox er kendt som FOSS alternativ til VmWare og ejes af Oracle.

Virtuel Windows med VirtualBox

Ubuntu trin for trin guide

Installation af VirtualBox

Installer VirtualBox med

$ sudo apt-get install virtualbox

Adgang til usb-enheder
Hent og installer VirtualBox Extension Pack fra https://www.virtualbox.org/wiki/Downloads. Du kan lade browseren åbne filen og den installeres automatisk.

Åbn terminal og check dit logins gruppemedlemskab med

$ groups

Hvis gruppen ’vboxusers’ ikke er i listen så føjer du din bruger til gruppen med

$ sudo gpasswd -a $USER vboxusers

Opret virtuel maskine

I VirtualBox håndtering

Klik Ny.

  • Udfyld Navn (windows-10).
  • Udfyld Type – hvis den ikke er korrekt.
  • Udfyld Version – hvis den ikke er korrekt.

Klik Næste.

  • Vælg størrelse på hukommelse.
  • Windows 10 – mindst 2048MB.

Klik Næste.

  • Virtuel harddisk.
  • Brug forvalg.

Klik Opret.

Virtuel harddisk fil-type

  • Brug forvalg.

Klik Næste.

Virtuel harddisk lagring på fysisk disk

  • Brug forvalg.

Klik Næste.

Virtuel harddisk fil, placering og størrelse.

  • Brug forvalg.

Klik Opret.

Virtuel maskine opsætning

  • Marker den maskine du lige har oprettet. Hvis der kun er en er den allerede markeret.

Klik Opsætning.

For at kunne installere Windows skal du opsætte en installations kilde under Lagerenheder.

Opsætning

Generelt::Avanceret

  • Delt udklipsholder – aktiveres ved behov.
    • Gør det muligt at overføre tekst fra vært til virtuel og omvendt.
  • Træk og slip – aktiveres ved behov.
    • Gør det muligt at trække en fil fra vært til virtuel og omvendt.

System::Bundkort

  • Fjern unødvendigt diskettedrev.

System::CPU

  • Hvis det er muligt sættes til 2 CPU.

Skærm::Skærm

  • Ved HiDPI skærm sættes skaleringsfaktor til 150 % eller 200 %.
  • 3D og 2D aktiveres ved behov f.eks. CAD eller DTP.

Lagerenheder

  • Marker det tomme CD drev.
  • For indsætning af installations CD-aftryk .
  • Klik CD-skiven til højre.
  • Udpeg cd-aftryk eller dit fysiske drev.

Lydkort

  • Aktiveres eller deaktives efter behov.

Netværk
Ved netværksproblemer checkes at der bruges det rigtige netkort.

  • Klik på Avanceret for at se hvilket netkort der er anvendt.
    • Dvs. hvis du bruger WiFi skal det være dit WiFi kort der er markeret.
    • Der findes yderligere mulighed for at begrænse den virtuelle computers netværksadgang.
    • I nogle tilfælde er det nødvendigt at skifte forbindelse måde fra NAT til Netværksbro.

USB

  • Sættes ikke til bedre end det den fysiske computer har til rådighed f.eks. bruges ikke USB 3 hvis der kun er USB 2 til rådighed.

Delte mapper

Klik Mappe+ til højre.
Ved Mappesti klikkes PilNed
Klik Andet.

  • I din hjemmemappe kan du udpege en mappe du vil have adgang til i den virtuelle maskine.
  • Hvis du undlader at vælge mappe men blot klikker Åbn vil du have adgang til hele din hjemmemappe.

Klik Åbn.

  • Du kan redigere stien – fx hvis ændre fra bruger/doks til bruger.
  • Marker evt. tilvalg (skrivebeskyttet, automatisk tilslutning).

Klik OK.

Start virtuel maskine

 
Dobbeltklik på maskinen eller marker og klik på Start og Windows installeres på sædvanlig måde.
 
Når din virtuelle maskine er færdiginstalleret skal du have VirtualBox Gæstetilføjelser installeret. Disse har betydning for integration med mus og tilpasning af skærmopløsning.
 
Med den virtuelle maskine startet og du er logget ind.
 
Klik i VirtualBox vindues menu Enheder og vælg derefter Indsæt gæstetilføjelser CD-aftryk
 
Herefter vil Windows spørge dig hvad du vil gøre.
 
– Kør installationsprogrammet og accepter standard indstillinger.

Den delte mappe i Windows

  • Åbne Windows Stifinder.
  • Klik på Netværk.
  • Windows advarer: Netværksregistrering er slået fra.
  • Klik OK.

Nu vil der åbne en linje i toppen af Stifinder.

  • Klik på linjen og vælg Slå netværksregistrering og fildeling til.
  • Vælg at netværket skal gøres til privat netværk.

Nu kan du under Netværk vil du finde en sted med navnet VBOXSVR. Der finder du også den mappe du delte fra din linux.

Hvis du kaldte mappen doks vil du have en mappe der hedder \\VBOXSVR\doks.

Hvis du gerne vil have en genvej til i Windows kan du trække den op til Hurtig adgang.

Windows kan godt finde på selv at tilknytte et drev-bogstav typisk E: som du vil finde under Denne pc.
 
Ellers du kan højreklikke på den og vælge Tilknyt netværksdrev... – her kan du give den et bogstav fx Z:.

Ubuntu – apt-get tricks

output fra uname -rv

     $ uname -rv
     4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64

output fra apt-get –version

    $ apt-get --version
    apt 1.12.12

output fra udokumenteret kommando full-upgrade

    $ sudo apt-get full-upgrade
    Indlæser pakkelisterne... Færdig
    Opbygger afhængighedstræ        
    Læser tilstandsoplysninger... Færdig
    Beregner opgraderingen... Færdig
    0 opgraderes, 0 nyinstalleres, 0 afinstalleres og 0 opgraderes ikke.

output apt-get –help

    $ apt-get --help
    apt 1.2.12 (amd64)
    Usage: apt-get [options] command
           apt-get [options] install|remove pkg1 [pkg2 ...]
           apt-get [options] source pkg1 [pkg2 ...]
    
    apt-get is a command line interface for retrieval of packages
    and information about them from authenticated sources and
    for installation, upgrade and removal of packages together
    with their dependencies.
    
    Most used commands:
      update - Hent nye lister over pakker
      upgrade - Udfør en opgradering
      install - Installer nye pakker (pakke er libc6, ikke libc6.deb)
      remove - Afinstaller pakker
      purge - Fjern pakker og konfigurationsfiler
      autoremove - Afinstaller automatisk alle ubrugte pakker
      dist-upgrade - Distributionsopgradering, se apt-get(8)
      dselect-upgrade - Følg valgene fra dselect
      build-dep - Sæt opbygningsafhængigheder op for kildetekstpakker
      clean - Slet hentede arkivfiler
      autoclean - Slet gamle hentede arkivfiler
      check - Tjek at der ikke er uopfyldte afhængigheder
      source - Hent kildetekstarkiver
      download - Hent den binære pakke til den aktuelle mappe
      changelog - Hent og vis ændringsloggen for den angivne pakke
    
    See apt-get(8) for more information about the available commands.
    Configuration options and syntax is detailed in apt.conf(5).
    Information about how to configure sources can be found in sources.list(5).
    Package and version choices can be expressed via apt_preferences(5).
    Security details are available in apt-secure(8).
                                       Denne APT har »Super Cow Powers«.

man page cheat sheet

URL rewrites for Angular

Apache

.htaccess

RewriteEngine On
  # If an existing asset or directory is requested go to it as it is
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
  RewriteRule ^ - [L]
  # If the requested resource doesn't exist, use index.html
  RewriteRule ^ /index.html

IIS

web.config

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <!-- rewrite to https -->
        <rule name="Redirect to HTTPS" stopProcessing="true">
          <match url="(.*)" negate="false"/>
          <conditions logicalGrouping="MatchAny">
            <add input="{HTTPS}" pattern="^OFF$"/>
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent"/>
        </rule>
        <!-- ignore static files -->
        <rule name="Angular Conditions" stopProcessing="true">
          <match url="(assets/.*|b/.*)"/>
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{REQUEST_FILENAME}" matchType="IsFile"/>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory"/>
          </conditions>
          <action type="None"/>
        </rule>
        <!-- rewrite everything else -->
        <rule name="Angular Wildcard" enabled="true" stopProcessing="true">
          <match url="(.*)"/>
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{REQUEST_FILENAME}" matchType="IsFile"/>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory"/>
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
    <!-- set default document -->
    <defaultDocument>
      <files>
        <clear />
        <add value="index.html" />
      </files>
    </defaultDocument>
  </system.webServer>
</configuration>

Tidsregning – hvordan?

Tidsregning

At man i den buddhistiske kalender anvender et år 0 overgår min fatteevne (og her vil nogen nikke).

År 0 giver mening i en astronomisk kalender – med computer baserede udregninger – at år før udgangspunktet angives med negativ notation f.eks. -607.

Men for almindelige mennesker giver det mere mening, når opslagsværket wikipedia skriver:

Udtrykket år 0 bruges gerne om noget, som tager sin begyndelse, eller om noget, som begynder helt forfra efter en udslettelse. Som betegnelse for en række perioder, man løbende tæller, fungerer betegnelsen år 0 imidlertid ikke. Det år, som et menneske lever fra sin fødsel, kalder man netop for det første år. Tilsvarende kalder man det første år i kalenderen for år 1.

I dag bruges globalt betegnelserne ‘Før Kristus’ f.Kr. og ‘Efter Kristus’ e.Kr. for at angive en begivenheds placering på tidens strøm.

Disse betegnelser er i mine øjne misvisende – af i hvert fald to grunde:

  1. Jesus blev ikke født i slutningen af december (hvorfor er et afsnit for sig)
  2. Han blev ikke Kristus (græsk: den Salvede) før hans dåb i efteråret 29 e.v.t.

Betegnelserne ‘før vor tidsregning’ f.v.t. og ‘efter vor tidsregning’ e.v.t. giver meget mere mening, da det mere korrekt betegner det nulpunkt, hvorfra årene regnes.

Når tal ikke bare er tal

Når man beskæftiger sig med tidsregning, er det vigtigt at vide

  • hvordan tallene bruges
  • hvordan der er forskel på tal

Mængde tal

Mængdetal, er hele enheder – hverken mere eller mindre.

  • uge = 7 hele dage
  • år = 12 hele måneder
  • årti = 10 hele år
  • snes år = 20 hele år
  • århundrede = 100 hele år

Ordens tal

Ordenstal er hele enheder plus dele af enheder.

  • 1. uge = mindre end 7 hele dage
  • 1. år = mindre end 12 hele måneder
  • 2. år = 1 helt år plus nogle måneder
  • 19. århundrede = 18 hele århundreder plus nogle årtier

Konklusion

Når man bruger angivelser som det 1. århundrede taler man om årene fra 1 til 100 e.v.t.

Kejser Konstantin fastslog i det 4. århundrede ved dekreter – vedtaget på 2 kirkemøder i henholdsvis 325 og 381 e.v.t./e.Kr. – at den kristne gud skulle være en treenig gud.

Læseværdige artikler om tidsregning
http://www.kristeligt-dagblad.dk/kirke-tro/baggrund-tidsregning-i-andre-kulturer
http://www.kristeligt-dagblad.dk/kirke-tro/den-kristne-tidsregning-dominerer-verden