Strekmann

2019-04-26
sigurdga

China registrar-spam

Da har vi fått det også. En epost som spør oss om et kinesisk firma virkelig er en del av vårt nettverk.

(It’s very urgent, please transfer this email to your CEO. Thanks)

This email is from China domain name registration center, which mainly deal with the domain name registration in China. On April 22, 2019, we received an application from Kaisheng Ltd requested “strekmann” as their internet keyword and China (CN) domain names (strekmann.cn, strekmann.com.cn, strekmann.net.cn, strekmann.org.cn). But after checking it, we find this name conflict with your company name or trademark. In order to deal with this matter better, it’s necessary to send email to you and confirm whether this company is your distributor or business partner in China?

Dette firmaet er ikke en del av vårt nettverk, og det er selvfølgelig ikke bra for oss om de registrerer domenet og gjør det vanskeligere for oss om vi plutselig finner et marked i Kina.

Men dette er et kjent triks, som blant andre Online Threats Alerts advarer mot: En aktør som utgir seg for å hjelpe oss vil egentlig få oss til å registrere domenet gjennom dem, for å sikre oss mot domenehaiene. Men som artikkelen sier, så vil de bare ta pengene våre.

Selv om spamsituasjonen blir bedre i at det blir sendt færre spam nå enn før (i alle fall til vår epostserver), så blir de mer utspekulerte.

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.

Arkiv