Martin Kristiansen

Reflektioner om at stole på hardware

Sidder og overvejer om ikke jeg skal gå i kælderen og sætte strøm til min gode gamle Power6+ 4,7 Ghz maskine er vist nok den enste som er bygget til in-order, den bliver dog lidt tung hvis den skal bruges som mobil cpu da den er bygget på 65nm :-)

In-order CPUer spekulerer også (branch prediction og data prefetch). F.eks er Cortex A8 sårbar for nogle af disse side-channel attacks.

AMD er resistent imod Meltdown fordi de ikke spekulerer en hukommelse-reference hvis referencen er til et højere privilegieniveau.

4. januar 2018 kl. 15:50
5, 17 eller 30 procent? Stor usikkerhed om performance-tab efter Meltdown-patch

Ydelsesomkostningen er afhængig af hvor mange kald man har ind i kernen. For de fleste desktop programmer vil prisen nok ligge nede i støjen, men for en du eller en find er 50% blevet nævnt. 17-23% performance-tab for Postgresql er også blevet nævnt.

Hvem samlingen regningen op for shared kernel løsninger som Docker/Jails? Cloud provideren eller kunden (Eller Intel) ?

4. januar 2018 kl. 15:05
Google retter ind efter EU-bøder

...

27. september 2017 kl. 11:42
Region Midt i kæmpe udskiftning af forældet Windows XP: »Det giver noget murren i krogene«

Man opgraderer til en version af Windows der havde "End of mainstream support" i januar 2015????

Så er man da også sikret ansættelse, for så snart denne opgradering er gennemført skal man igang med den næste; Windows 7 mister extended support januar 2020.

27. september 2017 kl. 11:33
Visual Studio og Eclipse er udviklernes foretrukne værktøjer

Vim højere end NetBeans og IntelliJ ?

17. august 2017 kl. 15:11
Microsoft søsætter .Net Core 2 sammen med ny standard og Visual Studio

datamat (computer), op- og nedlaste (upload/downloade), elektronisk post (e-mail), søger (browser), kæde (link), valgmuligheder (options)

Jeg brugte engang lang tid på at finde ud af hvad rundkastningsadresse var (broadcast address).

Det var sidste gang jeg installerede Linux på ikke-engelsk.

16. august 2017 kl. 11:20
Under kølerhjelmen hos MobilePay: Cowboy-analytikere og Excel-ark, der crasher

Denne her undrer mig:

MobilePay er nemlig – for at spare tid – bygget oven på Danske Banks infrastruktur. Og her er afdelingen, der drifter hele bankens mobile økosystem, påpasselig med at give adgang til produktionsmiljøet, fordi »‘selv de mest simple og små ændringer i systemet kan have kritiske konsekvenser.«

De har vel en backup af data. En backup, der kan læses ind i et udviklingsmiljø, hvor man så kan køre de tunge queries.

Ja, det giver en forsinkelse på ét døgn, men selvom det gik stærkt for Mobile Pay, gik det vel ikke stærkt

14. august 2017 kl. 13:20
Google får rekordstor EU-bøde på 18 mia. kroner

Har google sin "egen onlinehandel"? Såvidt jeg ved så er google shopping blot en søgemaskine der kan finde produkter og hvor firmaer kan betale for
at få vist deres produkter.
Er det "google egen online handel"?

Problemet er ang. placering af ads.

Tidligere var de ude i siden eller i en klart markeret sektion i toppen. I dag ligner de mere eller mindre regulære søgeresultater. Det har fået et par store konkurrenter, Ebay, Amazon og andre til at klage over Google, idet de bruger deres dominans på søgemaskineområdet til at favorisere de butikker, der betaler mest til Google.

Hvis du f.eks søger på forsikring på Google idag, vil hele toppen af siden være dækket af reklamer, de første ligner regulære søgeresultater, blot med et lille ad ikon. Derefter et kort med forsikringsselskaber baseret på din lokation. Du er nødt til at scrolle ned på siden for at få de egentlige søgeresultater.

Den visuelle placering er meget afgørende for den trafik der genereres, så hvis du driver online forretning, har du reelt ikke noget valg, men er nødt til at betale Google for bedre placering, - og det er det Magrethe mener er misbrug.

28. juni 2017 kl. 10:12
3 gratis cross-platform kodeeditorer: Atom, Brackets og VSCode

Btw. VS Code er baseret på Atom.

26. maj 2017 kl. 12:10
Intel tabte 64-bit-kapløbet til AMD: Nu frigives deres sidste Itanium-processor

Itanium var ikke nødvendigvis en dårlig processorarkitektur, men forsinkelserne gjorde, at den i visse dele af it-branchen blev et symbol på en gigantisk satsning, der gik galt

Jo, IPF er en decideret dårlig processorarkitektur. Den blev til som svar på at man ikke kunne skalere skedulerne i selv-skedulerende CPUer (OOOe) ud over nogle få instruktioner fordi tid- og strøm-forbrug i forbindelse med de CAMs man brugte ville blive for stort. Løsningen skulle være eksplicit erklæret parallelisme i instruktionsættet og masser af ny kompiler teknologi.

Men kompilerteknologien manifesterede sig aldrig, og så kom Pentium Pro med sin SRAM baserede data-capture scheduler og vendte op og ned på alt.

Tilbage var så et instruktionsformat med rekordlav densitet, en meget stor afhængighed af hurtige caches, med lav arbejdstakt og stort strømforbrug som resultat.

Der var et par smarte ting, som f.eks ALAT, hvor man spekulativt kunne fortage en load før adressen på en store var kendt (og dermed ikke vidste om den tidlige load ville blive invalideret af den senere store). Men ALAT loads krævede manuel oprydning, og kompilerne kunne aldrig finde ud af hvornår det var en gevinst at bruge ALAT loads. - Igen blev den eksplicitte, manuelle tilgang til tingene indhentet af virkeligheden da Core 2 lancerede med spekulative loads. Pludselig var alle loads på en x86 en ALAT load, men uden oprydningsomkostningerne.

Hvis IPF var lanceret ti år før, ville den muligvis ikke have været en fiasko, men som tingene flaskede sig fra starten i 1993 og frem, var det én stor katastrofe. Den lave ydelse gør den ubrugelig hvor man kræver høj ydelse, det høje strømforbrug i indlejrede/mobile løsninger.

IPF, en elefant med indlæringsvanskeligheder: Big, but not clever!

16. maj 2017 kl. 15:05
Gödel, Escher, Bach & Microsoft

Java blev designet fra bunden med sikkerhed for øje - det var bare ikke den slags sikkerhed som markedsføringsafdelingen gik amok over...

Javahypen var stærk i midten/slutningen af 90eren. Var der noget som Java ikke var løsningen på?

Jeg husker især det blev fremhævet at det var lettere at udvikle applikationer i end C++ fordi det ikke havde farlige elementer som multipel nedarvning og templates.

Senere kom generics til Java og nu har vi interfaces med delvis implementation, - ækvivalent med multipel nedarvning af abstrakte klasser i C++.

So the wheels turn.

11. maj 2017 kl. 11:26
Det 'ukendte' styresystem, du møder overalt

Så hvilken distro skal man køre ? Parrot LXLE Debian / Ubuntu ( + varianter, Bodhi, Kubuntu etc) Gentoo Suse Mint

Det er både en styrke og en svaghed med denne mangfoldighed. Man kan finde den distro, der passer en, men en PITA at udvikle GUI-tunge apps til.

Derudover er der stadig problemer med drivere til hardware, og vi snakker ikke kun niche hardware her. F.eks skiftede Canonical i Ubuntu 16.04 til at bruge open source driveren til AMD grafikkort, hvor man tidligere manuelt skulle installere AMDs binære driversnabel. Problemet er bare at der ikke er lyd over displayport/HDMI med open source driveren, og ikke nogen nem måde at få det på. I ved ... Fordi ingen Linux brugere gider have lyd på deres Youtube videoer.

Kører det alligevel. Jeg har kørt Linux installationer parallelt med Windows i 21 år, startene i 1996 med Red Hat, og min erfaring er at der altid har været større eller mindre problemer med drivere, især accelleret grafik og lyd.

5. maj 2017 kl. 12:52
Massiv I/O-kapacitet skal styrke cognitive computing

Det er et quad-core kompleks (CCX) i AMD's nye CPU, der er 44mm^2. Komplekset indeholder fire kerner og 8MB L3.

Processoren har 2 CCX, 8 kerner, og er omkring 180mm^2 ialt. (die shot her: http://images.anandtech.com/doci/11143/Ryzen%20Die%20Shot.jpg )

Cheers

27. februar 2017 kl. 15:52
Tilbagegang i Mac-salget for første gang siden 2001

Ud over at satse på nye markeder, kunne Apple jo passe på de markeder, de allerede er stærke i.

Jeg har mange kolleger der skiftede til Mac omkring 2010 fordi Macbook Pro på det tidspunkt var den højest ydene bærbare. Derudover var det med en GUI, der kunne konkurrere med Windows, samtidigt med at maskinen kørte *nix.

De nye Macbook Proer har helt klart et andet fokus; Moderat strømforbrug og papirtynde dimensioner.

Samme historie med de gamle Mac Proer (dem med kabinettet fra PPC dagene). Pærelette at opgradere alt muligt hardware, i stærk modsætning til den nuværende papirspand, der ikke er opdateret i tre år (og som koster det blå på himlen).

25. januar 2017 kl. 10:25
Systemarkitektur

Hvad med agile metoder som SCRUM?

Da jeg gik på universitetet blev SCRUM kaldt Rapid Prototyping. Før det blev det kaldt Trial And Error.

Et agilt/prototyping-forløb er en god idé da det afklarer hvad det er kunden har brug for. Problemet er at man skal give en pris og en tidsplan for en løsning inden man kender kompleksiteten af projektet for at vinde udbudsrunden.

26. oktober 2016 kl. 15:52
Norsk it-udvalg vil omgå Googles og Microsofts kryptering

Krypteringen i diverse chat protokoller foregår i transportlaget, ikke i linklaget.

Det er vel kun tunnelling fra et datacenter til et andet hvor kryptering af linklag kan komme på tale, eller ?

7. september 2016 kl. 11:33
Apple skal betale 97 milliarder i skattebøde for ulovlig lav skat i Irland

Der er to dele i afgørelsen:

  1. Irland har lavet en ulovlig skatteaftale med Apple, der har fået en (ulovlig) konkurrencemæssig fordel.
  2. Apple har flyttet profit rundt vha. skuffeselskaber for at undgå at betale skat i andre EU lande.
30. august 2016 kl. 13:36
Google Chrome giver Flash dødsstød til september

hvis man laver to ens side by side performance sammenligninger så spiller flash bedre og mere flydende og der er ikke noget reelt data der siger at flash tager mere batteri end html5. Google og Version2 er begge subjektive i deres udmeldinger da de har en grund til at favorisere "the modern web" - chrome nævner ikke engang selv et ord om performance forskel mellem html5 og flash - så det er et subjektivt opspind som kun er til som et led i en business strategi.

Enig.

SWF m. Action Scripting er mindst lige så hurtigt som HTML5+JS.

Sider med flash indhold er langsomme fordi de er PLASTRET til i ads (www.eb.dk, hej). Det ændrer intet på brugeroplevelsen eller batteritiden at disse ads i fremtiden begynder at bruger HTML5+JS, - tværtimod.

Man kan sagtens argumentere for at Flash bør dø. Intet andet plugin har vel forårsaget så mange sikkerhedsproblemer som dette igennem tiden. Adobe har haft over 10 år til at gøre det bedre, men der er stadig næsten ugentlige problemer med det.

Cheers

10. august 2016 kl. 16:21
Uber i databaseskift: Har droppet PostgreSQL og skiftet til MySQL

Jeg har arbejdet med MySql på et databaseprojekt i terabyte-klassen og hvorom MySql nok er en af de mest brugervenlige databaser med et af de bedste administreringsværktøjer i form af den relancerede MySql Workbench, så kan det samme altså desværre ikke siges om hverken innodb eller MyISAM (Som problematisk nok stadig benyttes til alle system databaser).

Det har jeg også prøvet, en DB der voksede med 7GB/dag over 18 måneder, - og rendt ind i begrænsningerne med mysqldump. Løsningen er MySQL Enterprise Backup, der ikke er gratis. Det laver backup af den underliggende InnoDB storage engine, uden om MySQL.

MyISAM burde være fjernet for år tilbage, der er intet pænt at sige om det.

Min erfaring er at MySQL ikke fuldt lever op til ACID kravene og at det oftere går galt med MySQL så den skal restores fra backup end tilfældet er med andre professionelle databaser - herunder PostGreSql.

Hvilke ACID krav honoreres ikke ? Hvis man ikke roder med transaction concurrency mode burde ACID kravene være opfyldt.

Mht. crashes på InnoDB. Jeg har ikke oplevet et alvorligt et endnu (efter 10+ års brug). MyISAM crasher hele tiden.

Desuden lider den også under alvorlige performance-problemer og en query optimizer der formentlig er den mest handicappede på markedet - mit gæt er at Uber vil komme til at opleve at flaskehalsene blot har flyttet sig ved at skifte væk fra PostGreSql.

Det er vigtigt at kende MySQL's begrænsninger. Query udføres som nestede loops ved at læse én tabel ad gangen (i en query med flere tabeller joinet sammen). Hver loop laver sit eget temporære resultat (intern tabel), der så bruges til at query den neste med.

Her hjælper PostGres f.eks med at lave temporære hash lookup-tabeller der så er med til at filtrere resultatet når en tabel spørges. Det giver nogle gange en faktor 3-10 forskel i performance, per join.

Et andet problem med MySQL er at query planneren, der bestemmer rækkefølgen af tabeller, gør det ud fra et gæt om kardinaliteten af kandidat-indices. Gættet udføres ved at tage stikprøver i et indeks for at fastslå kardinalitet. Default er ti stikprøver; Det virker normalt fint for enkelt-kolonne indices, men er slet ikke fyldestgørende for indices lavet over flere kolonner. MySQL sorterer rækkefølgen af tabeller efter kardinalitet på kandidat indices, med højeste først. Hvis rækkefølgen skifter kan du gå fra at have en query, der tager 10ms til en der tager én dag !! Dette er ikke unikt for MySQL, jeg har også oplevet det på Oracle, men ikke nær så ofte.

Heldigvis kan man siden 5.5 hæve antallet af samples. Det bør man gøre, da disse samples ikke foretages ret tit og er næsten gratis. Jeg bruger 100 samples i alle mine MySQL installationer.

Query optimizeren er også "dum". Den laver en udtømmende søgning af bedste rækkefølge af joinede tabeller. Det betyder at hver gang du tilføjer en tabel-join så fordobler du optimizerens arbejde.

DERFOR skal du hjælpe MySQL. Strukturér dine queries med subqueries, der så joines sammen. Så reducerer du chancen for at query planneren roder rundt i tabellerne, og du reducerer også arbejdet med at finde optimal query-plan. Hvis kan omskrive en join mellem 12 tabeller med omkostning 2^12 (4096), til en join mellem fire subqueries hver med 3 tabeller, så er omkostningen ca 4*2^3+2^4 (40). Derudover: brug prepared statements, hvor query plan genbruges fra query til query.

Fordelen ved at bruge MySQL/MariaDB er at det er relativt let at skalere til flere maskiner med master-master replikering (Facebook !)

28. juli 2016 kl. 13:58