Strekmann

2018-04-06
sigurdga

Coredump after Gnome upgrade

Today, I upgraded to Gnome 3.28 as the last thing I did at work before heading home. I think this is the first time I got into upgrade problems, after several years of running from the Gnome Testing repository in Arch Linux.

  • I could not start Vim, Emacs, Atom or other programs as they failed with trying to use undefined symbols in Libc. For some reason I had some Glib packages installed from AUR, maybe because I tried installing Gtk-Webkit from there. This may have gotten me into this. Installing the corresponding Glib2 packages from the main repositories replaced these.
  • I could not log into Gnome. journal -xe pointed in the directions of Wayland, Glibc or Gdk-Pixbuf. In the Arch forums i found a solved issue where it helped to update the Pixbuf cache:
gdk-pixbuf-query-loaders --update-cache

After that, everything worked as expected (after learning that loginctl and especially loginctl show-session SESSION_ID -p Type can tell if you run on X or Wayland).


And: Yes, I have disabled the Gnome Testing repository and downgraded the packages that were newer in Testing (using yaourt -Su --downgrade), as I am no longer interested in this kind ow trouble at work. I also cleaned out some unused AUR packages. (Hint: Listing packages from AUR can be done with yaourt -Qm.)

2017-04-10
sigurdga

flex-basis på ios9

Det ser ut som flex-basis ikke bør være noe annet enn auto eller andre former for full bredde når flex-direction: column. Hvis denne for eksempel er satt til 25 % fordi elementet skal ta 25 % av bredden for desktop med flex-direction: row, og du ikke har endret flex-basis, så vil dette føre til at elementene legger seg oppå hverandre.

Dette ser ut til å gjelde Chrome og Safari på IOS9. Ikke IOS8, eller andre operativsystemer. For eksempel vil flex-basis 25% likevel gjøre at elementet fyller hele bredden når flex-direction: column, for alle andre.

Det er kanskje bedre å rendre mobilversjonene først, og så endre for større skjermer med media-query, enn motsatt. Men det er sikkert merkelige problemer da også.

2017-03-21
sigurdga

Hvordan vi gjør backup

Backup er vanskelig. Det er mange hensyn å ta, med tanke på sikkerhet, personvern og stabilitet. Vi tar automatisk, kryptert, inkrementell backup med Borg, som vi lagrer på to steder.

For hvert av våre prosjekter kjører vi en nattlig cronjobb som gjør backup med Borg. For prosjekter med mye tekst, f.eks dumper fra databaser, bruker vi komprimering. Vi har en sentral backupserver som mottar allerede krypterte backupdata, og tar vare på dem. Vi tar vare på én kopi per dag den første uka, så tar vi vare på ukeskopi resten av måneden, og seinere månedskopier for ti år.

Vi har sekundær backupserver som henter siste versjon av all backup tidlig på morgenkvisten, slik at vi har alt i minst to kopier.

På grunn av krypteringen, kan ikke backupdata åpnes på backupserverne uten nøkkelen som ble opprettet da første backup ble laget. Denne nøkkelen har vi lagret i PGP/GnuPG-kryptert distribuert Git-repository (med Pass). Og nøkkelen for å åpne dette hemmelige nøkkelrepositoriet ligger på tre krypterte minnepenner. Det kan høres voldsomt ut, og vi bør kanskje vise dette med en tegning, men det er alltid vanskelig å ta vare på passord, for om det lagres noe sted, trenger man alltid et nytt passord eller en ny nøkkel.

For prosjektene som vi deployer med Ansible, har vi backup av database for seg, og backup av opplasta eller genererte filer (shared) for seg. For prosjektene som vi ennå ikke har satt opp med Ansible, tar vi backup av prosjektrota med alle filer. Etter hvert som flere prosjekter blir deployet med Ansible, tar vi bare backup av database og opplasta data. Selve koden er lagret i Git, hos oss og hos Gitlab.

Alle backupsett har blitt testet med kopi av opprinnelig nøkkel, så vi vet at det vil virke om uhellet skulle være ute. Og backup-oppsettet har vi dokumentert på vår lukkede wiki på Gitlab.

Andre ting, som mail og annen serverkonfig, gjør vi backup av på samme måte i det samme systemet, men for noen eldre systemer bruker vi Attic som Borg har blitt bygget på.

2017-02-20

Eslint-regler

Vi prøver å ha et minimalt sett av Eslint-regler, samtidig som vi baserer oss på Airbnbs regelsett. Det betyr motsetninger, men akkurat nå er regelsettet vårt definert slik:

{
    "parser": "babel-eslint",
    "extends": "airbnb",
    "rules": {
        "arrow-body-style": ["error", "always"],
        "brace-style": [ 2, "stroustrup", {
            "allowSingleLine": true
        }],
        "indent": [ 2, 4, {"SwitchCase": 1} ],
        "max-len": 1,
        "no-underscore-dangle": ["error", {
            "allow": [
                "_id",
                "_type",
                "_json",
                "__INITIAL_STATE__"
            ]
        }],
        "no-unused-vars": [ 1, {
            "vars": "all",
            "args": "after-used",
            "argsIgnorePattern": "req|res|next"
        }],
        "quotes": [ 2, "single"],
        "react/forbid-prop-types": 0,
        "react/jsx-filename-extension": [2, {
            "extensions": [".js", ".jsx"]
        }],
        "react/jsx-indent": [2, 4],
        "react/jsx-indent-props": [2, 4],
        "react/prefer-stateless-function": 0,
        "react/require-default-props": 0,
    },
}

Vi håper å lage en pakke for å forenkle vår definisjon av hvordan koden ser ut. Men det får bli en annen gang.

2017-01-24
sigurdga

Aggressiv telefonselger

For ca en halvtime ringte det en telefonselger. Han het Anders og ringte fra 180.no. Og så mista han headsettet.

Han fortalte hva tjenesten gikk ut på, og at firmaet mitt kunne være oppført under bransjeord. Det sa jeg at jeg ikke var interessert i.

Han prøvde å si at 1.3 millioner bruker appen deres før de søker i google. Og jeg var tydelig på at jeg ikke trengte det.

Han spurte rett ut om jeg ikke ville ha flere kunder. Det stemmer, sa jeg, vi trenger ikke flere kunder.

Vi hadde en samtale om at det var lett å bli lurt av sånne telefoner, og at om han var en good guy i forhold til de andre, så skulle jeg likevel ikke ha noe.

Jeg var tydelig på at jeg ikke skulle ha noe.

Han skulle ikke si noe til sjefen, og skulle bare la det stå. Fint, sa jeg.

Så får vi se. Nå har jeg i alle fall skrevet det ned mens jeg fortsatt husker det, i tilfelle det skulle dukke opp en regning.

Telefonterror-appen fanget ikke opp nummeret hans, men det gjør det nå.

Arkiv