21 juli

Ulysses 1.6 — en semantisk texteditor blir ännu bättre

Den 1 juli släppte Blue-Tec Ulysses 1.6, efter ett par månader i sluten beta. Det är inga revolutionerande förändringar man gjort av sin kritikerrosade texteditor, men några saker är värda att notera:

  • Förbättrad utforskare. Man har lagt till stöd för grupper, som hjälper dig att organisera samlingar och filter. Man kan nu fokusera en grupp, liknande den ”hoisting” man kan se i outliners, varvid övriga grupper döljs.

  • Förbättrad förhandsgranskning. Med ett musklick utvidgas fönstret för förhandsvisning, med ett klick till återgår det till vanlig storlek.

  • Förbättrad sök & ersätt, där man nu kan söka efter markeringar och taggar.

  • Bättre stöd för teman.

  • Fullskärmsläge, ej att förväxla med konsolläge.

  • Förbättrad LaTeX-export.

Jag är ett stort fan av Ulysses och har varit så ända sedan jag upptäckte programmet för två år sedan. Med version 1.6 har det blivit ännu skarpare, men det finns en del bekymmer kvar att ta itu med.

Även om utforskaren har förbättrats en hel del är det fortfarande inte helt intuitivt att strukturera större projekt. Man har medvetet valt att förkasta den traditionella mapp-metaforen till fördel för filter och samlingar (ett modernt metadata perspektiv), vilket jag upplever som ett krystat sätt att uppfinna hjulet på nytt. Ulysses ligger efter sina konkurenter1 när det gäller organisatoriska verktyg. Framför allt efterlyser jag en outline-vy, något man verkar överväga för Ulysses 2.0.

Det finns inte heller ett inbyggt system för versionskontroll. Det är inte hela världen, då jag alltmer ser fördelar med att sköta detta utanför utanför texteditorn. Ulysses datamodell lämpar sig emellertid inte för versionskontroll med programvara som SubVersion. En Ulyssesfil är egentligen ett paket, det vill säga en mapp. I detta representeras varje dokument i ditt projekt som en numrerad undermapp, innehållande fem filer2 och en ytterligare mapp för dina dokumentspecifika anteckningar. Detta gör strukturen helt oöverskådlig när projektet växer och det är snudd på omöjligt att hålla reda på i vilken numrerad mapp som ett visst dokument ligger sparat. Som grädde på moset sparar Ulysses även öppna dokument (de som visas som flikar) som numrerade mappar — denna gång med prefixet o. Dessa skapas och tas bort för varje gång du öppnar ett nytt dokument i Ulysses, vilket är en rejäl nagel i ögat för SubVersion. Ett bra grafiskt gränssnitt, som Versions, underlättar dock en hel del. Det går, men hade kunnat vara betydligt enklare.

Är inte detta system aningen komplicerat för en text editor ämnad för ren text? Jag hade gärna sett att man förenklat datamodellen en smula för att förenkla versionskontrollen. Varför inte försöka klara sig med rena textfiler så långt som möjligt? TextMate visar att mycket är möjligt. Ulysses tagg-system hade förmodligen gått att bygga med något som liknar regular expressions, markeringarna hade jag klarat mig utan.

Idag kämpar Blue-Tec i motvind i en marknad som plötsligt flödar över av program riktade mot kreativa skribenter. I en tid då användare blir alltmer bortskämda av transparens, ständiga bloggposter, tweets och punktuppdateringar från utvecklare provocerar man med att utveckla långsamt och under tystnad. Trots brister i versionskontroll och projektplanering är Ulysses fortfarande den bästa editorn för kreativa skribenter. Det krävs emellertid att man acceptera det grundläggande antagandet att ren text är att föredra framför RTF — något majoriteten förmodligen inte håller med om. Det är lite som religion — det finns inget rätt och fel här.


  1. Framför allt Keith Blounts Scrivener

  2. Två textfiler, en RTF-fil, ett textarkiv och en .plist fil. 

Annons ›

13 juli

I väntans tider

Livet är fullt av väntan. Grillbriketterna skall vitna tillräckligt mycket för att jag skall kunna lägga på ryggbiffarna, min högra ankel skall läka ihop tillräckligt för att bära mig en hel löprunda1 och snart — väldigt snart — är det semester. Det blir inte en sekund för tidigt.

Vårt andra barn skall komma när som helst. Fast egentligen skulle det redan kommit — på sätt och vis. Vi försökte skrämma ut det med en matinéföreställning av Mamma Mia, men utan framgång. Om det hade varit jag i magen hade jag tagit mig ut och kravlat därifrån så fort jag kunnat. Eller tills navelsträngen sagt stopp.

När logistiken kring förlossningen är över är får jag äntligen lov att köpa en iPhone. Det verkar på något sätt dumt att fiffla med en nytt abonnemang just nu. Telia påstår att de sålt slut på alla iPhones, så det blir nog till att rulla tummarna där också.

Att vänta, således. Inte min starka sida.


  1. Jag försöker byta ut min gamla hälrullning mot POSE, en fysiologiskt sett mer tilltalande teknik. 

Annons ›

25 april

MarkDown framför Textile

Sedan 2003 har jag använt mig av Dean Allens Textile1 när jag publicerar inlägg på den här bloggen. Först till mitt egenhändigt kodade publiceringssystem, men senare som en del av en vanlig TextPattern-installation. Jag tyckte det var ett underbart finurligt sätt att märka texten, utan att själv behöva skriva XHTML taggar.

Jag såg att det fanns ett alternativ i John Grubers MarkDown, men tyckte det verkade alltför krångligt att lära sig en ny syntax. Dessutom gick det inte heller att med någon enkelthet knyta detta till mitt publiceringssystem.

Alldeles nyligen kastade jag ett nytt öga på MarkDown och såg plötsligt det Gruber själv angett som dess största förtjänst, nämligen dess läsbarhet.

Studera följande exempel. Jag vill åstadkomma följande XHTML-snipplet, som innehåller en rubrik, några stycken, en lista, två länkar och en blockquote:

<h1>Strindberg</h1>

<p>Johan August Strindberg var en 
<a href="http://strindberg.net">svensk författare</a>
och bildkonstnär (målare). Han räknas som en av Sveriges
mest betydelsefulla författare. Internationellt är han
främst känd som dramatiker.</p>

<ol>
    <li>Ett alternativ</li>
    <li>Ett andra alternativ</li>
    <li>Ett tredje alternativ</li>
</ol>

<blockquote>
    <p>Under fyra decennier var Strindberg en 
    <a href="http://mumindalen.nu">dominerande gestalt</a>
    i det litterära Sverige. Han var ständigt omdiskuterad
    och ofta involverad i personliga konflikter. Hans verk
    innehåller ett flertal romaner, noveller och dramer som
    räknas som klassiker inom svensk litteratur.</p>
</blockquote>

För att åstadkomma detta med Textile skriver man följande:

h1. Strindberg

Johan August Strindberg var en 
"svensk författare":http://strindberg.net
och bildkonstnär (målare). Han räknas som en av Sveriges
mest betydelsefulla författare. Internationellt är han
främst känd som dramatiker.

# Ett alternativ
# Ett andra alternativ
# Ett tredje alternativ

bq. Under fyra decennier var Strindberg en 
"dominerande gestalt":http://mumindalen.nu i det 
litterära Sverige. Han var ständigt omdiskuterad
och ofta involverad i personliga konflikter. Hans verk
innehåller ett flertal romaner, noveller och dramer som
räknas som klassiker inom svensk litteratur.

För att åstadkomma samma sak med MarkDown skriver man:

Strindberg
==========

Johan August Strindberg var en [svensk författare][]
och bildkonstnär (målare). Han räknas som en av Sveriges
mest betydelsefulla författare. Internationellt är han
främst känd som dramatiker.

1. Ett alternativ
2. Ett andra alternativ
3. Ett tredje alternativ

> Under fyra decennier var Strindberg en 
> [dominerande gestalt][] i det litterära Sverige. Han var
> ständigt omdiskuterad och ofta involverad i personliga
> konflikter. Hans verk innehåller ett flertal romaner,
> noveller och dramer som räknas som klassiker inom svensk
> litteratur.

[svensk författare]: http://strindberg.net
[dominerande gestalt]: http://mumindalen.nu

Egentligen är skillnaderna kanske inte så stora, men om man jämför exemplen ser man en sak: Textile-dokumentet ser ut att vara uppmärkt med taggar (om än mindre obtrusivt än rena HTML-taggar), medan MarkDown-dokumentet ser ut som förnuftigt formatterad ren text. I MarkDown kan man dessutom lägga länkadresserna utanför sin text, vilket ytterligare ökar läsbarheten.

Det här tycker jag är kittlande: Om man skriver sin text i en texteditor och formger den så den blir så läsbar som möjligt så är chanserna stora att MarkDown kan omvandla den till giltig XHTML. Gruber hade rätt, besservisser som han är.

Jag har nu bytt från Textile till MarkDown2 i min TextPattern-installation, vilket ännu så länge innebär ett hack. När väl TextPattern 4.1.0 kommer ut (om det blir under min livstid låter jag vara osagt) lär det ha stöd för villket ”text till XHTML”-vertyg som helst.


  1. Textile utvecklas inte längre av Dean Allen, utan är en del av TextPattern. Porteringar existerar dock även till andra plattformar. 

  2. Egentligen PHP MarkDown, en portering från Perl till PHP av Michel Fortin

16 april

Kanaler i din kaffepuck

Jag råkade ut för ett problem häromsistens, vars lösning så här i efterhand ter sig tämligen självklar, men som just då vållade mig mycket huvudbry.

Jag hade precis rengjort och avkalkat min espressomaskin1 och upptäckte att kaffet plötsligt blev en smula underextraherat. Jag gjorde då som jag brukade, nämligen ökade malningsgraden2. Dagarna gick och för varje gång jag drog en dubbel espresso ökade jag malningsgraden ytterligare en smula, då jag inte tyckte creman blev helt optimo.

I helgen lyckades jag plötsligt inte extrahera något som liknade kaffe över huvud taget. Istället fylldes kopparna av en svartblaskig parodi, som var helt odrickbar. Förbryllad undersökte jag den använda kaffepucken och såg fyra djupa gropar, där jetstrålarna från bryggruppen skjutit ner. Jag anade att jag drabbats av det som på engelska kallas channeling (kanalbildning), dvs. vattnet fördelas inte jämnt över pucken, utan bildar gångar genom den. Vattnet tar sedan den enklaste vägen, vilket leder till en utebliven extraktion.

Lite googlande ledde fram till en trolig orsak. När jag hela tiden ökade malningsgraden minskade volymen av det kaffe som hann malas, vilket ledde till en puck som efter tampning var alltför låg. En för låg puck ger för stort utrymme under bryggfiltret, vilket leder till jetstrålar och kanalbildning.

Efter att ha minskat malningsgraden betydligt var jag tillbaka på en lagom hög puck och en perfekt extraktion.

1 En Ferrariröd Innova (numera Ascaso) Dream 

2 Jag försöker öka reproducerbarheten genom att göra malningsgraden till den enda variabeln, medan jag håller malningstid och tampning konstanta. Se denna text

Annons ›

Äldre ›

Sök i arkivet