Markus Wahl har bl a skrivit följande inlägg på jsolutions.se.

  1. MAMP: Mycket enkelt sätt att sätta upp grunden för MediaWiki

    http://mamp.info

    MAMP förkortning av Macintosh, Apache, Mysql och PHP. Med endast några mustryck och ett begränsat antal tangentnedslag har jag nu installerat detta att ha till min mediawiki på min mac.

    Och att stoppa/starta servrarna görs smidigt med en MacOS dashboard widget:

  2. IDE för Erlang? – del 2

    Fortsättning i jakten efter en IDE till erlang. Del 1 hittar du här. Del 2 om SciTE och Emacs erlang-mod:

    (Läs mer…)

  3. IDE för Erlang?

    Tiden då en programmerare endast använde en enkel editor typ vi eller emacs är förbi (eller borde vara förbi iaf). Istället skall man såklart använda en IDE. Jag kan inte se att det har utkristalliserats någon de facto-standard av IDE för Erlang ännu. Det finns några kandidater, och så finns det några som inte ens är i närheten.

    (Läs mer…)

  4. Nästa generations CAPTCHA utnyttjar det semantiska glappet

    CAPTCHA: ”Completely Automated Public Turing test to tell Computers and Humans Apart”, de där smått oläsliga texterna man skall tolka när man registrerar sig på sajter.

    Hotmails användning av CAPTCHA har crackats och därför är det ju bra att nästa generation CAPTCHA står för dörren. IMAGINATION heter ett projekt som använder bildbaserad autentisering/CAPTCHA.

    (Läs mer…)

  5. Radorienterade databaser obsoleta?

    Läser ditt system från en databas oftare än det skriver? – överväg isåfall någon kolumnorienterad databas.

    Företaget Vertica Systems Inc. har byggt en sådan databas. Michael Stonebraker skriver att dagens relationsdatabaser har sämre prestanda än de nya databaser som vrider tabellerna 90 grader. Genom att gruppera liknande data minimerar kolumnbaserade databaser lästiden.

    Stormbreaker borde veta vad han talar om – på 70-talet var han med och skapade Ingres- och Postgres-tekniken som många av dagens populära databaser bygger på.

    Men kolumnorienterade databaser är fortfarande en liten marknad; de största databaserna på marknaden är alla radorienterade databaser. Att organisera data i rader har sina fördelar, bl a att man skriver fortare till en radorienterad än till en kolumnorienterad databas och just detta är en nyckelfaktor för transaktionsrika system där data läses och skrivs från/till en databas mer eller mindre hela tiden.

  6. Draft Review of Java 7 ”Measures and Units”

    Det har varit oklart ifall denna JSR skall gå igenom omröstningen, men nu ser det ut som om det skall bli av. Kanske. http://jscience.org/ har gjort en referensimplementation av denna JSR: javax.measure.*, för de som inte vill vänta på att JSR:en skall bli klar.

    Problem som javax.measure.* löser är bl a representation av en storhet utan att enheten anges, med komplikationen att efterföljande utvecklare kan få det svårt att inse vilken enhet som är den rätta. Innehåll:

    • Checking of unit compatibility
    • Expression of measurement in various units
    • Arithmetic operations on units
    • Concrete classes implementing the standard types of units (such as base and derived units) and unit conversions.
    • Classes for parsing and formatting textual units representations.

    Några exempel kopierade från https://jsr-275.dev.java.net/files/documents/4333/34956/jsr-275.pdf:

    Making your interface unit agnostic

    s51.PNG
    Converting between units

    s53.PNG

    Compile type checking of dimension consistency

    s54.PNG

    Projektet JScience tillhandahåller även ett Java-biblioteket som innehåller andra, till synes, nyttiga moduler:

    • mathematical structures (e.g. Group, Ring, Field, VectorSpace)
    • A linear algebra module, which includes a first (and possibly unique) parameterized matrix class capable of resolving linear system of equations involving any kind of elements (e.g. Complex, ModuloInteger, RationalFunctions)
    • A functions module for symbolic calculations and analysis.
    • Different types of numbers such as real numbers of arbitrary and guaranteed precision, or the always exact rational numbers.
    • Support for exact or arbitrary precision measurements (also strongly typed).
    • A monetary module for precision-guaranteed calculations and currencies conversions.

    Och när man nämner JScience och JSR ”Measures and Units” bör man också nämna alternativet GeoTools som visst skall vara något liknande.

  7. JavaFX NetBeans-plugin Beta

    Det har tagits fram ett tilläggsprogram (plugin på s k svengelska) till NetBeans för JavaFX Script som går att ladda ner via NetBeans Development Update Center. Tilläggsprogrammet gör det möjligt att enkelt utveckla JavaFX Script-program i NetBeans. Det finns för både NetBeans 5.5 och 6.0 Preview och kommer finnas med i NetBeans 6.0 vilket är nästa version av utvecklingsmiljön. Tilläggsprogrammet hjälper dig med självklara saker som kompilering, bygge, körning och kontextstöd i form av feldetektering och syntaxfärgning.

    Tutorial Hello World: https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html

    6.0-varianten av tilläggsprogrammet innehåller dessutom JavaFXPad vilket är ett verktyg för att bygga grafiska JavaFX Script.

    Och när jag ändå nämner GUI-byggare för JavaFX vill jag nämna JFXBuilder som verkar vara en bra en JavaFX-GUI-byggare. Den är stand-alone och kan köras direkt i browsern från http://www.reportmill.com/jfx/

  8. Virtual Ant – En visuell skriptbyggare för Ant

    Beta av Virtual Ant finns nu att ladda ner (demo).


    Med Virtual Ant skriver du inte byggskriptet direkt. Filen build.xml skapas istället kontinuerligt i bakgrunden samtidigt som du visuellt utför de saker som skall ingå i byggskriptet. Inspelningssession sker i ett Windows-Explorer-liknande gränsnitt och allt du gör där omsätts i div Ant-Tasks. Ex om du tar bort en katalog så omvandlas det till rätt Ant-task med parametrar som pekar ut katalogen.

    Du kan köra både byggskript som tagits fram med Virtual Ant och andra Ant-byggskript. Man kan t o m stega fram och tillbaka i tiden för ett byggskript och på så sätt undersöka filsystemets tillstånd mellan stegen i byggskriptet. Filsystemet är virtuellt så man behöver inte vara orolig för att förstöra saker.

    En av poängerna med Virtual Ant är att slippa behöva slå i Ant-manualen och pröva sig fram till ett fungerande användande av ett task. Ex en sådan sak som att packa upp en jar-fil blir enklare eftersom du gör det i ett gränssnitt som du redan är bekant med (Windows Explorer). Att skriva din Ant-fil för hand eller med Virtual Ant kan jämföras med att skriva ditt Java-program med Notepad eller en IDE.

    Plugin till Eclipse och andra IDE:er skall visst släppas samtidigt som den skarpa versionen av Virtual Ant.

  9. Eclipse Visual Editor – forts.

    När jag för ett tag sedan skrev om Eclipse GUI-byggare VE (Visual Editor) så tycktes det kanske som om jag dissade den helt eftersom den saknar stöd för GroupLayout. Men VE har faktiskt sina förtjänster.

    Tiden Du som programmerare lägger på det visuella justerandet av Swing reduceras tack vara WYSIWYG (What You See Is What You Get) i VE. Du får även annat icke-visuellt stöd som ex hjälp med att stänga ned en JFrame med lämpligt event.

    På vissa områden kräver dock VE en hel del av programmeraren i form av Swing-kunskaper. Exempelvis är det svårt att få sitt GUI att se ut precis som man vill utan att använda GridBagLayout (en omständig layouthanterare). För att kunna använda GridBagLayout i VE behöver man ha koll på vad klassen GridBagConstraint olika attribut har för innebörd; då tänker jag speciellt på samspelet mellan attributen weight, anchor och fill.

    Men man kan bygga ett GUI genom att enbart använda de enklare layouthanterarna som FlowLayout och BorderLayout.

    lindemanpanel.PNG

    JPanel med några JRadioButton och en JLabel inordnade i ett rutnät med GridBagLayout.

    Markerad JRadioButton ”Geolog Sten Lindeman” har sina egenskaper listade i Eclipse-vyn Properties. Panelens innehåll presenteras även i trädform i Eclipse-vyn Java Beans.

    En JPanel är egentligen bara visningsbar i ett konkret fönster, ex en JFrame och så här går det till att skapa en sådan (välj new JFrame visual class): kryssa för att du vill ha en main-metod.

    daframe.PNG

    VE fyller main-metoden med den kod som behövs för att visa klassen samt stänga ned den på korrekt sätt

    Det tomma fönstret är nu redo att fyllas. Förvald layouthanterare för en JFrame är BorderLayout som har fem områden: north, east, west, south och centre. I south lägger vi en JButton (i en extra JPanel för att respektera knappens preferredSize). Både JPanel och JButton väljs från VE-paletten och placeras ut med musen. I centre lägger vi Lindeman-panelen.

    choosebean.PNG

    Eftersom Lindemanpanelen är en JPanel (extends JPanel) kan man välja den i paletten m h a ”Choose Bean”-knappen.

    Placera ut komponenten i området som heter center. Ge knappen en innebörd genom att högerklicka på den och välja ”Events”, ”actionPerformed”. VE skapar mallkod som du kan byta ut mot önskad kod.

    morelindeman.PNG

    I exemplet har jag bytt ut det mot kod som öppnar en URL med datorns webbläsare (en feature f.o.m. Java 1.6)

  10. Eclipse Tricks – Stavningskontroll med Eclipse 3.3

    Med Eclipse 3.3 kan du få stavningskontroll av strängar och kommentarer i dina java-klasser. Själv tycker jag att det även vore önskvärt med stavningskontroll av variabelnamn, metodnamn och klassnamn etc. Än så länge kontrolleras bara strängar och kommentarer.
    misspelled.bmp

  11. Eclipse Tricks – Quick Assist istället för kortkommandon

    Med en nyare Eclipse (ex 3.3 RC2) kan man använda Ctrl+3 följt av text för att navigera eller utföra kommandon. Ex istället för att använda kortkommando för att växla till debug mode skriver du Ctrl+3 följt av Pers så dyker ”Perspective Debug” upp som valbart kommando.

    quickassist.bmp

  12. Eclipse Tricks – Använd CamelCase för att hitta klassen

    När du arbetar med ett stort klassträd har Eclipse en trevlig funktion som hjälper dig att snabbt hitta och öppna klassen utan att du skall behöva navigera dit i trädstrukturen: Ctrl+Shift+T. Då får du en dialog där du skriver in klassnamnet:
    opentype-simple.PNG
    Här fanns två klasser som matchar.

    Dialogen utför sökningar samtidigt som du skriver in namnet så du behöver inte specificera mer än nödvändigt för att hitta rätt. Men man kan komma lika långt med bara några bokstäver om man använder s.k. CamelCase för klassen man söker efter (CamelCase är den notation som används i Java för att markera flera ord i ett namn, som ex StringTokenizer).

    camelcase1.PNG
    AIOO ger två sökträffar.

    För att begränsa sökresultatet ytterligare kan man skriva AIOOBox:

    camelcase2.PNG

    Camel Case kan också användas vid code completion i editorn:

    camelcase-codecompletion.PNG

  13. GUI-byggare med GroupLayout

    GroupLayout heter en av Javas nyare LayoutManager. GUI-byggaren Eclipse Visual Editor (VE) har funnits ett tag och jag har varit nöjd med hur den fungerar (visst några buggar har den allt, men vet man var de är så klarar man sig runt dem).

    Support för GroupLayout har den dock inte, så jag nystade i det där och det visar sig tyvärr att inget nytt arbete har företagits på VE sedan över ett halvår tillbaka. Ryktet (eller snarare en bloggkommentar) säger att företaget som sponsrat stor/all del av utvecklingen av VE prioriterar andra saker.

    Det finns inga konkreta planer på GroupLayout-support i VE. Projektet VE söker efter eldsjälar som är beredda att arbeta vidare på VE. GroupLayout skulle kunna vara ett arbetspaket. Vem vet; någon med tid över kanske känner sig manad.

    Netbeans tillsammans med dess GUI-byggare matisse har stöd för GroupLayout. Eclipse-distributionen MyEclipse innehåller en portering av matisse, men för oss GUI-programmerare som inte gärna vill betala för IDE:n så betyder väl det här netbeans.

  14. ClearCase-plugin för Eclipse

    För dig som använder Eclipse och ClearCase kan jag tipsa om IBMs ClearCase-plugin för Eclipse. Med den slipper du leta upp samma fil två gånger: en gång i Eclipse och ytterligare en gång i ex ClearCase-Explorer. ClearCase integreras i Eclipse ”Team”-kontextmeny så att det mesta kan skötas från Eclipse:

    Kontextmeny
    När Eclipse märker att du vill editera en fil som inte är utcheckad så frågar Eclipse ifall filen skall checkas ut.

    Refactoring fungerar dock inte som det skall, åtm. inte för filer i källkodskataloger. Ex att (i) låta en klass byta paket eller (ii) bara klassnamn. För filer som ligger i kataloger som Eclipse uppfattar som vanliga kataloger fungerar det dock. Vad Eclipse försöker göra men misslyckas med är bl.a. att för (i) flytta filen med lämpliga ClearCase-operationer och för (ii) byta namn på filen med lämpliga ClearCase-operationer.

    Surt att det inte fungerar fullt ut, eftersom att en sådan enkel sak som att flytta en klass till ett nytt paket är mycket smidigt med Eclipse, men som blir kinkigt krångligt med Eclipse och ClearCase. Men vem vet, IBM kanske lagar denna bug…

    Jag bör ju nämna att denna plugin inte pratar direkt med ClearCase utan använder den lokalt installerade ClearCase-programvaran som mellanhand.
    Installationsinstruktioner

    Download

  15. JavaFX – trevliga effekter på swing

    Blir mer och mer imponerad av JavaFX. Som t ex att man kan ”skeva” till Swing-komponenter. Screendumps från JavaFX Script 2D Graphics Tutorial:

    Skeva men användbara swinkomponenter
    Eller bara roterad:

    Roterad men användbara swingkomponenter

    Värt att notera är alltså att komponenterna, textfältet och knappen, går att använda i dessa skeva och sneda lägen. OK, har svårt att inse vad det skulle vara bra för just nu. Men möjligen att en applikation skriven för en mobiltelefon inte nödvändigtvis behöver orientera sig efter mobiltillverkarens uppfattning av vad som är upp, ner, höger och vänster på skärmen.

Nästa sida