Kategori: GUI/gränssnitt

AsciiDoc är ett dokumentformat som ska göra det enkelt att texta i näst intill vilken editor som helst och samtidigt smidigt kunna ange olika typer av textformateringar. Ca 2007 dök AsciiDoc upp som sökbegrepp på webben, och användningen börjar nu ta kraftig fart.

AsciiDoctor (hemsida: http://asciidoctor.org/ ) är ett verktyg skrivet i Ruby och fungerar som en formateringsmotor för ovan nämnda AsciiDoc-dokument. Exempelvis använder O’Reilly Media formatet AsciiDoc omfattande för sina publikationer, likaså GitHub-sajten. AsciiDoc klarar att omvandla till epub, HTML, PDF, TRF, XML, JavaDoc…
Det finns en omkompilerad AsciiDoctor, AsciiDoctor.js som kan köras i de flesta webbläsare (antar även IE). MEN då (ur askan i elden) måste först något som heter ”Bower” köras för själva installationen av AsciiDoctor.js, vilket i sin tur kräver en paketinstallation av ”npm” :- ) ….

Funktionella programmeringsspråk…
En udda session på Jfokus var demonstrationerna av fördelen med 100 % funktionella programmeringsspråk. Frege är ett exempel på ett sådant språk som är avsett att köras i JVM-miljön (vilket ”kvalificerade” :-) Frege för Jfokus). Java 8 är givetvis inte ett renodlat funktionellt språk, men har nu i alla fall fått tillgång till grundläggande teknik för funktionell programmering.

Frege har stora likheter med Haskell (skillnader Frege/Haskell: https://github.com/Frege/frege/wiki/Differences-between-Frege-and-Haskell ). Frege löser exempelvis problemet med FizzBuzz () betydligt mer ”elegant” än t.ex. Java, C, Perl…

Ordningsföljden på villkoren i koden för Java, C och Perl spelar en ibland en ytterst väsentlig roll, medan däremot Frege inte behöver en fastställd sekvens för villkor, utan beskriver snarare regler som räknas upp i valfri ordning.

Den Frege-session som jag deltog på (den förkortade varianten) var matematiskt inriktad, och jag hade aningen svårt att förstå hur det skulle användas för andra typer av tillämpningar. FizzBuzz -exemplet (se ex http://c2.com/cgi/wiki?FizzBuzzTest ) gav en del i alla fall. Mycket bra presentatör (Dierk König) från företaget Canoo (hmm, hörde ofta det namnet på Jfokus).

SonarQube är en öppen plattform för granskning av kodkvalitét under utvecklingens gång. Plattformen hjälper till med att skapa rapporter om duplicerad kod, kontrollerar att kodstandarder följs, stödjer enhetstester, undersöker kodkomplexiteten, varnar för potentiella buggar osv osv… Det finns plugin för Eclipse.

ReactJS återkom även i år, har en kraftigt ökande användarbas. Kräver dock nyaste varianten av JavaScript/ECMAScript, d.v.s. ES6 (se ovan) vilket utesluter Internet Explorer 11.

JRebel (tackar för T-shirten) återkom även i årets JFokus. Det är ett byggsystem för att snabba upp Java ”deployments”, laddar ex enbart upp de klassfiler som har uppdaterats till servern.

Xrebel å andra sidan är en plugin för webbläsare (som ej fungerar på IE11) vilken profilerar dina applikationsprocesser, undersöker svaga punkter i koden som sänker prestandan, överdriven I/O (minns speciellt klumpig SQL-användning med suboptimala anrop), långsam serverrespons…

JRebel och XRebel är inte öppen programvara. Som privatperson kan man få använda vissa delar ”gratis”, men måste då godkänna reklam för produkten på ex Facebook och Twitter.

En annan återkommande punkt från förra året 2015 var Nashorn (för mer info se http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html ), en JavaScript-motor för JVM-miljön. Nashorn kan ta emot JavaScript från konsollen men har vissa begränsningar jämfört med vanlig JavaScript; Nashorn har t.ex. inte tillgång till ex ”console”, ”window” vilket alltid finns i en webbläsarmiljö.

Däremot kan Nashorn köra JavaFX, d.v.s. grafiska tillämpningar. JavaFX under JavaScript är inte riktigt samma sak som under Java utan har fått en något förenklad hantering. Se  https://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/javafx.html

Afterwork…
image-20160209_175919  image-20160209_135714  image-20160209_152032

Bulle, kaka och semla (vissa fick/tog 3-4 st!)… Det bjöds på goda tilltugg i övrigt under dagarna; fisk och kyckling (för ickevegetarianer). Under ”partyt” (som verkade tunnas ut ovanligt tidigt för att vara 10-årsjubileum) förekom jonglerare, styltgångare (styltorna gömda i de extremt långa byxbenen)  ett antal tävlingar, en positivspelare…

Sammanfattningsvis en hyfsat lärorik och välordnad konferens!

GUI/gränssnitt Programmering Webbläsare

Google I/O 2013 Liten sammanställning om vad Google I/O 2013 innebar. För en stund sedan provade jag det nya fotoredigeringssystemet som editerar uppladdade foton, och det fungerade riktigt bra. Vissa besvärliga manövrar var klart enklare att göra i Googles online-verktyg än med motsvarande GIMP -verktyg.

Tydligen får man nu 15 Gb utrymme till sina foton, jämfört med tidigare 3 Gb. Det talades en del om en lägre månadsavgift för att hantera/hämta musik. Lite osäkert var det om det även gällde svenskar, eller bara amerikaner. En hel del utvecklarföretag var på plats:

Developers at I/O 2013Hmm, Tunein var där två gånger :-) ! Jag fick absolut inte med alla företagsloggar… Detta var bara en mindre ”skärmdump”.

Google All Access Music

För mindre än motsvarande 100 svenska kronor kan amerikaner :-x lyssna streamat på musik motsvarande Spotify och Pandora. Osäker hur det kommer att fungera i Sverige…

Förbättringar i Chrome

Googles webbläsare får ju ständigt nya förbättringar; 3D -accelerationer med hårdvara, ”sömlös” spridning av aktuella sajter och inställningar mellan olika enheter gör att mobilen vet var man var på datorns Chrome webbläsare kvällen innan. En ny webbmotor i Chrome, VP9 har ökat prestandan ytterligare och kan använda ett nytt protokoll, ”SPDY networking protocol” (återkommer) speciellt för snabbare access på mobiler.

Web components, ”egna” HTML-taggar

Man kan tydligen skapa egna webbtaggar som utifrån sett agerar exakt som om taggen var s.a.s. inbyggd i HTML-motorn… Låter lite skumt, har inte kollat det ännu i detalj.

Google Play mer ”personlig”

Och ska fungera bättre för surfplattor… En del i Google Play förbättras för skolor som använder Android-appar i sin utbildning. Mer än 1000 skolor (i USA, eller världen?) använder redan de s.k. Chromebooks som är en bärbar dator med operativsystemet Android.

GUI/gränssnitt Mobilteknik

Snart är det dags för semester. Då hinner jag ta mig tid att kolla in GWT (Google Web Toolkit). GWT används för att generera webbapplikationer. Vinsten är att man har Google och Java i ryggen som garanterar diverse funktionalitet i nästan (?) alla existerande webbläsare, oavsett individuella avvikelser och brister (”quirks”).

Java har också omfattade resurser för att felsöka, testa och optimera den resulterande koden. En nackdel med GWT är att man i vissa fall måste kompilera Java -koden.

Under Google I/O har man hållit otroligt imponerade demon där GWT + ”ett annat projekt” (glömt namnet just nu, stödjer utveckling på serversidan) tillsammans kan samspela helt i Java -miljö, hela vägen från gränssnittet ända ner till databasen. Dessutom med en helt otrolig prestanda.

Från en tom katalog i en Linuxmaskin till en (enkel) databas och ett gränssnitt som hanterade 10000-tals användare (sortering/filtrering/listning) tog det ca 3 minuter. På mitt arbete gör vi motsvarande arbete (inklusive behörigheter iofs) på ca 3 veckor… Men då verkar vi ha ”Utvecklingsmiljön som Gud glömde”.

På min förra installation, innan Ubuntu 10.04 kom ut gjorde jag ett inledande test med GWT 2, release December 2009. Visst, det fungerade (”Hello World” poppade upp ;-)  ) men kompileringen tog ett bra tag; ca 1 minut, minst? Det var då en total kompilering av all kod, smärre kodjusteringar kan innebära några få sekunders bearbetning och en refresh i webbläsaren. Jag har en ganska ny bärbar i den billigaste kategorin, dvs inget prestandamonster (Celeron 2GHz).

I veckan hittade jag olika tips (här är ett) på att radikalt minska kompileringstiden. Det gemensamma för de flesta förslag är att man dels anger en speciell webbläsare (ex Firefox 3.x) och dessutom specificerar enbart enlocale”, ex engelska. För att endast Firefox (och bl.a. Seamonkey) ska vara ”målwebbläsare”, ange

<set-property name=”user.agent” value=”gecko”/>

i  *.gwt.xml -filen. Bar’ å sök…

För att sedan sätta locale till engelska, se till att

<set-property name=”locale” value=”en”/>

finns i nämnda *.gwt.xml -file. Ta bort alla andra locales, men kom ihåg att spara undan en kopia på originalfilen

<uppdatering> Mer tips från Google på optimering… En varning finns här också för att försöka optimera för en enskild webbläsare. Man får testa och se resulterande tider själv, Google levererar hela tiden ny GWT -kod som kan omintetgöra optimeringar, eller rentav onödiggöra ovan trix.

I GWT 2.0 finns även en kompileringsflagga ”draftCompile” (sök i kombination med google) som ska skippa diverse försök av kompilatorn att själv optimera koden för prestanda/filstorlek. Värt att testa, tror jag.

GUI/gränssnitt Programmering

Det finns ett smart sätt att komma åt många av Googles tjänster: Calendar, Picasa osv; Google command line Tool. Jag behövde i GNU/Linux Ubuntu installera ett paket som heter Python-gdata, Googles Python ”dataklientprogramvara” ;-) . Jag valde lite fegt att starta Synaptic, men det hade säkert fungerat med  sudo apg-get update; sudo apg-get install python-gdata. Eller så kan kan hämta tar.gz -filen och packa upp den med de vanliga kommandona, dvs tar xvfz .

Google har ett system för fotogalleri som är mycket bra och lättanvänt, Picasa (Wikipedia). Har man väl registrerat sig för Picasa så kan Google command line (GCL) underlätta rejält om man är van att arbeta vid prompten.

(Det finns de som säger att ”När jag kör Windows använder jag aldrig konsolen”. Då kan man ju fråga sig varför Microsoft har skapat Powershell, en kraftfull konsolmiljö som tyvärr endast finns för Windows. Men Unix/Linux Bashskal + diverse konsolpack är sannolikt lika kraftfullt)

Exempel:

$ google picasa create –title ”My album” ~/Bilder/semester/*.jpg gör att det skapas ett album och bilderna laddas upp i ett enda svep!

Man kan också bl a ta bort/lägga till anteckningar  i kalendern, hantera personliga kontakter… Det finns färdigställt en lång rad med exempel att titta på för att komma igång.

Första gången i konsolen måste man autentisera sig (svårstavat ord det där) via webbläsaren som startar automatiskt, alt. öppnas en ny flik för detta. Även om man som jag lite senare av misstag råkar stänga konsollen så verkar autentiseringen finnas kvar, kanske tidsbegränsat? Sannolikt är det bara att öppna en ny konsol och fortsätta där man var. <uppdaterat>: jag har stängt av och startat om datorn. Vid försök med GoogleCL nyss så fanns autentiseringen kvar…

Det gäller att hålla isär konsol och konsoll, förresten  ;-) . Eller? Ibland kanske man skulle köra engelska och inte svengelska.

GUI/gränssnitt

Väldigt konstigt…? Jag skulle läsa in en XML-fil i ett Javaprogram i Eclipse-miljön. Listan med URL:er dök upp upp fint tillsammans med datumet då länken skapades.

Men på sista raden verkade något gå rejält fel, fick ett s.k. Nullpointer Exception. URL-listan ”ser” bra ut, vad kunde problemet vara?  Jag startade då Netbeans och importerade Eclipse-projektet (finns ett sådant renodlat alternativ i Netbeans…) och det signalerades exakt var felet fanns.

Med sorg konstaterar jag att mitt arbete uteslutande använder Eclipse och inte Netbeans. Visserligen är Netbeans aningen långsammare, skrivet helt i Java som det är (se tidigare artikel om SWT/Swing). Men Netbeans verkar helt enkelt lite ”smartare”.

Både Java och datorers prestanda förbättras dessutom konstant så skillnaden börjar bli svår att urskilja. Jag har en enkärnig bärbar med Celeronprocessor och den har inga problem att driva Netbeans. Datorn har 3Gb internminne vilket nu är ganska genomsnittligt.

I synnerhet när man snabbt ska skapa ett grafiskt gränssnitt, men även vid annat kodskrivande, gissar ex vilken variabel som jag troligtvis vill använda. Och nu detta med att ”Importera ett Eclipse-projekt”, var väldigt praktiskt…

Eclipse ”leder” i statistiken över antalet användare (se Google Trends).

Eclipse GUI/gränssnitt Netbeans Programmering

Äntligen har nya Ubuntu 10.04 kommit ut. Siffran 10 står förresten för 2010, siffran 4 för April

Suveränt lättanvänt och snabbt operativsystem, i alla fall jämfört med hur det kan vara med Windows (när det börjar strula; för det kommer det att göra). ”Screenshot” :

Särskilt när man inte behöver datorspel och mycket avancerade Excelskript o dyl för arbetets skull så finns få anledningar att köra Windows.

Den centrala hanteringen av uppdateringar är dessutom oerhört mycket enklare än den normala gången i Windows. Det finns 3:e-partsprogram som kan förenkla där också, men för att ens hitta det programmet så måste man ändå vara en ganska avancerad användare…

Med min bärbara dators begränsade processorkraft så är Ubuntu perfekt.

Windows XP hade också kunnat fungera bra, eventuellt nya Windows 7 (bästa Windows sedan XP kom). Vi får se om en Windows 7 ”muggar igen” med tiden, eller om den fortsätter att vara snabb och stabil.

Tyvärr fick jag Windows Vista Home Basic när jag köpte datorn, det värsta missfoster till operativsystem sedan Windows ME (Millenium)… Efter 6 timmar med idiotbeteende från Vista så ersatte jag det med Ubuntu 9.04 och den stora mentala friden infann sig.

GUI/gränssnitt Operativsystem

GUI (eller gränssnitt på svenska) är själva miljön du möter vid datorn när du inte kör ett speciellt startat program som exempelvis webbläsaren.

Windows (med den tidigare berömda Startknappen) är ett operativsystem där man ovanpå kör ett GUI (som heter… vadå?) som de flesta inte vet går att separera från själva operativsystemet.

I operativsystemet Linux har man däremot Gnome och KDE som de två vanligaste GUI-miljöerna. Det finns mer än 20 st att välja på (hmm… Hur många kända finns det…?). XFCE, Enlightment e17, Fluxbox… Gnome och KDE är de mest tungdrivna, närmast oändligt justerbara.

Gnome tycker jag står för lite enklare och mer självklar användning, KDE är visserligen snyggt men jag tycker att det inte riktigt är lika lätt att använda. För konfigurerbart för min smak.

Om jag vill reservera mer kraft till andra program än GUI  så föredrar jag nog XFCE och Fluxbox.

Lite löjligt att jämföra skärmdumpar, Gnome och KDE kan ju nästan se ut hur som helst! Men ok.

Gnome:

KDE:

Vi hörs ;-)

GUI/gränssnitt

Tangentbordsgenvägen “Show Occurences in File Quick Menu”… Shift+Ctrl-+U krockar med en Unicode-special i Gnome 2.x. Shift+Ctrl-F1 är en lämplig ersättare. Listan för snabbtangenter får man fram med Shift+Ctrl+L.

Eclipse GUI/gränssnitt