Monthly Archives: June 2014

Love at first byte

image

“Stilig retrokopp”, var det en jypling som bemerket ved kaffemaskinen. Jeg vet ikke helt om jeg skal være stolt eller geriatrisk, men den er ikke det. Jeg kjøpte den i Boston i 1983 da jeg var på TOPS-10 Monitor Internals-kurs der. Vi brukte faktisk sånt printerpapir den gangen. Jøye meg.

Bloggeditorer som suger, del 2: MarsEdit

Jeg har ennå ikke gitt opp å finne en blogg-editor for Mac som ikke suger. Den forrige kandidaten var PixelPumper, et amatørmessig gratisprogram som snart viste hvor håpløst det egentlig var. Bort med det.

Nå tester jeg MarsEdit, et kommersielt produkt som mange skryter av. MarsEdit var enkelt å sette opp, fant bloggen min og fikk meg logget inn der helt OK. Den fant alle gamle postinger og lar meg redigere på eksisterende eller lage en ny – den siste funksjonen tester jeg akkurat nå.

Editoren i MarsEdit er .. basic. Det er ingen redigeringstoolbar med ikoner og valg for å formattere tekst som vi er vant til fra andre editorer, i stedet er det en dropdown-meny i hoved-toolbaren som heter “Format” (og speiler en vanlig meny som heter det samme), og du må klikke på den og så velge fra menyen eller en av de fire submenyene som detter ned. Jeg aner ikke hvorfor de har gjort redigeringsvalgene såpass vanskelig tilgjengelige, det kan være et forsøk på å vennlig men bestemt peke deg i retning tastekombinasjonene som gjør de samme tingene som du finner i menyen. Eller det kan være at de ikke er spesielt flinke utviklere.

No class act

MarsEdit er en “generisk” blogg-editor, dvs. den skal være i stand til å fungere som editor for en rekke ulike bloggplattformer. Jeg bruker WordPress, og oppdaget kjapt en svakhet ved denne generelle tilnærmingen. Hvis man i MarsEdit legger inn et bilde og setter en justering på det, f.eks. at det skal flyte til venstre, lager MarsEdit HTML-kode som inneholder et <img>-element med style=“float: right”. Dette er i og for seg kode som gjør jobben, men det er ikke den koden WordPress forventer – den bruker selv class=“alignleft” for å gjøre samme jobben.

MarsEdit forstår heller ikke WordPress’ klasser for bildejustering hvis du redigerer på en eksisterende artikkel, men legger sin egen style-baserte markup i tillegg til den class-baserte, og dermed blir alt bare tulliball.

Det betyr at enten bruker man bare MarsEdit som editor, eller så gjør man det ikke. La oss se hva jeg velger.

MarsEdit har en “preview”-funksjon som virker litt merkelig, siden den viser deg et popupvindu med en “forhåndsvisning” som er akkurat lik det du ser i editorvinduet. Jeg hadde trodd knappen heller ville lagret postingen som en utkast på serveren og vist meg den i en nettleser. 

Den har en “Save as Draft”-knapp som tilsynelatende ikke gjør noe som helst.

“Send to Blog” laster postingen opp til serveren din, men pass på, for default Post Status er “Published”, så hvis du ikke er helt ferdig første gang du lagrer må du passe på å endre statusen, hvis ikke er utkastet ditt live ute på bloggen din. Teit.

Det er en del andre features i MarsEdit, blant annet muligheten for å opprette nye blogger. Men jeg har allerede konkludert med at MarsEdit ikke er noe for meg, så jeg avrunder her.

Det jeg testet var en 30-dagers testversjon av MarsEdit 3, som ellers koster 280 kroner i App Store. Ikke aner jeg hvorfor folk betaler det for denne editoren – det er mulig at den fungerer mye bedre med andre bloggplattformer.

 

 

Fy søren for en TREIG Macbook Pro

Jeg har fått meg Mac.apple_macbook_pro_15_antiglare

Egentlig har jeg hatt Mac en stund, vi kjøpte en late-2012 iMac i late 2012 og bruker den som stue-maskin. Men dette er første gang siden 80-tallet at jeg har hatt Mac i jobbsammenheng og forsøkt å gjøre jobb-ting på den.

Det er en finfin maskin. En helt standard Macbook Pro 15.4 late-2013 med quad-core 2.0GHz i7, 8GB RAM og en 256GB SSD. Alt jeg har prøvd på den går unna så det griner. Stort sett like kjapt eller nesten like kjapt som på den to år gamle Linux-skrivebordboksen jeg fremdeles har.

Helt til jeg prøvde å bruke grep.

Grep er kommandolinje-versjonen av Spotlight, for de som ikke er helt med på Unix-saker. Den søker i en eller flere filer etter en tekst eller et regulært uttrykk.

Og den versjonen av grep som følger med OS X Mavericks er helt håpløst horribelt grusomt treig. Det vil si sånn i størrelseorden 10-20 ganger treigere enn grep på Linux-boksen min. Bare se:

jaime:~/tmp $ ls -lh large-file
-rw-r--r--@ 1 blarsen staff 864M Jun 3 09:04 large-file
jaime:~/tmp $ time grep thisstringnotthere large-file

real 0m15.192s
user 0m14.957s
sys 0m0.216s

Dette er den samme operasjonen på Linux-boksen med den samme filen:

tyrion:~/tmp $ ls -lh large-file
-rw-rw-r-- 1 blarsen blarsen 864M Jun 3 09:04 large-file
tyrion:~/tmp $ time grep thisstringnotthere large-file

real 0m0.418s
user 0m0.176s
sys 0m0.096s

15 sekunder på Mac. 0.4 sekunder på Linux-boks. Det gikk TRETTISEKS ganger raskere!

Jeg bruker grep mye. Både til å lete i skikkelig store filer (1-3GB databasedumper) og i kataloger med hauger av små filer (sånt som 500MB fordelt på 15.000 filer er ikke uvanlig). Og der hvor jeg på Linux-maskinen kunne gjøre et søk og få svar på ett sekund eller to må jeg altså på Macen vente i oppimot minuttet. Krise!

Det første jeg tenkte var at det var noe galt med disken på maskinen. Eller noe. Men det var ikke det, synderen er grep.

OS X er basert på FreeBSD, og den versjonen av grep som følger med OS X er altså FreeBSD-versjonen, ikke GNU-versjonen som pleier å følge med Linux-systemer. (Men det pleide ikke å være sånn – Apple leverte visstnok GNU grep før i tiden og byttet til FreeBSD grep når Mavericks kom.)

Løsningen er enkel:

  1. Installer MacPorts fra http://www.macports.org
  2. “sudo port install grep”
  3. Lykke:
jaime:~/tmp $ ls -lh large-file
-rw-r--r--@ 1 blarsen staff 864M Jun 3 09:04 large-file
jaime:~/tmp $ which grep
/opt/local/bin/grep
jaime:~/tmp $ time grep thisstringnotthere large-file

real 0m0.911s
user 0m0.242s
sys0m0.270s

Tada!

Fremdeles treigere enn Linux-boksen min, men så lite at jeg ikke gidder å lete etter årsaken.