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. Blob med metadata i molnet

    En vĂ€n till mig har skapat en applikation skriven i C++ som körs lokalt pĂ„ en maskin. För att programmet skall vara anvĂ€ndbart behöver den sparade ”banor”, vilket representeras av binĂ€rblobbar. I programmet kan man sen spela dessa banor och vid varje speltillfĂ€lle skapas det sedan en logg pĂ„ vad man gjort. Denna logg representeras ocksĂ„ av en binĂ€rblob.

    Nu till problemet. BinÀrblobbarna (bÄde banorna och loggarna) tillsammans med lite metadata skall lagras pÄ en central server nÄgonstans pÄ internet. Hur skall dÄ serversidan byggas upp för att pÄ enklaste sÀtt fÄ det att fungera smidigt?

    (LĂ€s mer…)

  3. Nyheter i PostgreSQL 8.4(.1)

    En av förelÀsningarna pÄ FSCONS som jag hann besöka var Magnus Haganders uppdatering av vad som Àr nytt och snabbare (det var mycket performance imporvements) i PostgreSQL. En feature som jag saknat Àr stöd för rekursiva frÄgor. Det har funnits i SQL-standarden sedan 2003 men inte funnits i PostgreSQL förrÀn nu.

    (LĂ€s mer…)

  4. SQL for yummies

    Att titta pĂ„ SQL-loggen samtidigt som man kör lasttester mot ett system som anvĂ€nder JPA (med t ex Hibernate i botten), utan att ha cache:ade queries, brukar likna ett ”regelbundet” myrornas krig eller en dĂ„ligt AA-kodad film. Nöjer man sig med stillbilder men inte vill ha random brus kanske cirkeldiagram (pie chart) i SQL-prompten vore nĂ„got!

  5. Vad hÀnder med MySQL?

    MÄnga Àr oroliga över MySQLs framtid. Sista Äret har, minst sagt, varit stormigt med en ny Àgare i först Sun och sedan Oracle. Inte nog med det, ett stort gÀng av de ledande utvecklarna har lÀmnat.

    Om detta, och mycket mer, finns det att lÀsa pÄ Linux Magazine. Hela artikeln finns att lÀsa hÀr.

  6. ORM-godis frÄn JBoss

    Sist jag jobbade med Hibernate (var ett tag sedan tyvĂ€rr) sĂ„ sĂ„g jag inget stöd för det som JBoss nu ordnat med ”Easy Entity Versioning” – enkel versionshantering av bönor genom annoteringar. @Audited (var förut @Versioned men Ă€ndrades för att undvika förvĂ€xling med JPA:s @Version) tycker jag ser ut som ett vĂ€lkommet tillskott. Har ingen aning om det kommer dyka upp i nĂ„gon JSR för JPA. UtifrĂ„n Hibernates bugglista sĂ„ ser det ut som att det finns ganska mĂ„nga frĂ„getecken kvar att reda ut, t ex ”how to support bulk updates”. För enklare modeller (eller tidigare faser av ett projekt, prototyping) tycker jag det verkar lovande.

  7. IntelliJ IDEA 8

    Ifall ni missat det sÄ har JetBrains precis slÀppt en nya major-version av sin IntelliJ IDEA, nÀmligen version 8.

    NÄgra grejer som finns med i nya releasen:

    - SQL + Query Runner
    - UML-Like Class Diagrams
    - JBoss Seam
    - JavaScript & Flex debugger
    - FreeMarker & Velocity

    Dessutom har de snabbat upp uppstarten (hört den förut va?) och skapat en wizard för att hantera plugins. LÀs mer om vad som Àr nytt hÀr, och ladda ner den nya versionen hÀr (30-dagars trial finns).

  8. Overview of the Google App Engine Persistence framework

    The Google cloud computing environment, Google App Engine, currently provides a low cost (free) highly scalable runtime environment (python) for web applications. Along with App Engine specific APIs and support for their general service APIs, you have access to a distributed, scalable persistence engine, Datastore. A quick review of App Engine Datastore sets firm your impression that Google has again relied on the ”we build it better” framework approach. Not following a relational model or a webservice, Datastore started with goals of high availability, scalablity and performance. Because of quota limits on current free accounts, its hard to validate their success here; however, we can get a better understanding of the architecture of Datastore by checking out their internal ”Bigtable” implementation, which is the basis for Datastore.
    (LĂ€s mer…)

  9. BÀttre stöd för Java i Oracle 11g

    Oracle 11g har ju varit ute pĂ„ marknaden ett tag men mĂ„nga kanske sitter kvar med Ă€ldre versioner. En av dom stora nyheterna pĂ„ Java fronten Ă€r att det nu finns stöd för Java 1.5 internt. Nu kan man alltsĂ„ skriva sina stored procedure’s med for(:) loopar och anvĂ€nda generics tills fingrarna blöder. Men den största nyheten som jag tidigare tagit för givet Ă€r att Oracle nu har infört JIT kompilering!! (LĂ€s mer…)

  10. SUN köper MySQL

    Sun betlarar drygt 6,3 miljarder kronor för MySQL. Skall bli mycket intressant att se vad som kommer att ske i frammtiden. BÄde MySQL och Sun verkar vara vÀldigt exalterade. Suns VD, Jonathan Schwartz, beskriver det som Suns viktigaste uppköp nÄgonsin.

    LÀs mer pÄ Jonathan Schwartz och Kaj Arnös (MySQL) blogg

  11. JDBC 4.0 stöd

    Följande databaser har idag stöd för JDBC 4.0 (saxat frÄn denna blog)

    * Java DB/Apache Derby
    * MYSQL Connector/J 5.1
    * Oracle 11g
    * inet software for Microsoft SQL Server(Merlia driver) and for Oracle (Oranxo driver).
    * Atinav aveConnect 4.0 for Microsoft SQL Server
    * DataDirect 3.7 has also introduced some JDBC 4.0 features

  12. 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.

  13. PostgreSQL

    Laddade ner version 8.2 pÄ min Windows Laptop för en liten test.

    Databasen var lÀtt att installera och komma igÄng med. Det följer ocksÄ med grafiska verktyg dÀr det mesta kan göras. Om man har arbetat med t.ex. Oracle sÄ kÀnner man snabbt igen sig nÀr det gÀller teknisk uppbyggnad och syntaxer.

    Postgres anvĂ€nder “lyssnare” som skapar anvĂ€ndarprocesser för varje uppkoppling mot databasen, vilket Ă€r ett beprövat koncept som kĂ€nns igen frĂ„n t.ex. Oracle.

    Gjorde Ă€ven en liten “tabell insert” test med 4 miljoner poster frĂ„n en loopande procedur (autocommit off). Insert’en tog 115 sekunder pĂ„ min Windows Laptop. Körde proceduren 4 ggr (dvs skapade totalt 16 miljoner poster). Skapade ocksĂ„ ett icke unikt index av typen btree det tog 4.5 minuter.

    Man bör stÀnga av autocommit om man vill ha prestanda. Det görs genom att editera filen psqlrc. Man kan ocksÄ köra kod under en startad transaktion.

    Postgres verkar fungera vÀl och har TeraByte databaser som referens. Finns en hel del lyckade benchmarks vad gÀller prestanda o.s.v.

    Tycker dĂ€remot att namnet kĂ€nns lite ”tungvrickande” det fĂ„r dom gĂ€rna byta.

    http://www.postgresql.org/

  14. Apache DdlUtils

    DĂ„ jag suttit med i projekt dĂ€r datamodellen har Ă€ndrats under projektets gĂ„ng sĂ„ vet jag hur mycket strul det Ă€r med sĂ„nt. Eftersom varje utvecklare oftast har en egen databas-instans som de utvecklar mot sĂ„ behöver varje Ă€ndring av datamodellen kommuniceras ut i projektet och varje utvecklare mĂ„ste sjĂ€lv göra sina Ă€ndringar. Man vill ju helst inte kasta hela databasen och skapa den pĂ„ nytt bara för att en annan utvecklare utökade lĂ€ngden pĂ„ ett fĂ€lt (till exempel). OvanpĂ„ detta sĂ„ vill man enkelt kunna uppdatera en databas i drift och vara sĂ€ker pĂ„ att alla Ă€ndringar blev rĂ€tt. Ett alternativ Ă€r att pĂ„ sidan av sitt stora databas-script ha ett antal mindre ”delta”-script som utför de nödvĂ€ndiga ”alter table” som behövs mellan varje release.

    Gissa om jag blev glatt överraskad nnÀr jag av en hÀndelse snubblade över DdlUtils pÄ db.apache.org. Detta Àr ett lib plus ett stycke Ant-task som lÀser en XML-fil vilken definerar din datamodell. Den kan dÀrefter generera en ny databasinstans eller uppdatera en existerande. Det gÄr Àven att generera en sÄdan XML-fil frÄn en existerande datamodell för att pÄ sÄ vis slippa skriva en komplicerad fil första gÄngen. I fortsÀttningen sÄ tar man endast och modiferar denna XML-fil sÄ sköter DdlUtils resten Ät dig. Mycket smidigt och vÀldigt anvÀndbart. Idag stödjer DdlUtils de flesta större databaser (MySQL, PostgreSQL, Oracle, MS SQL, DB 2, Sybase etc..). Ladda gÀrna hem det hela frÄn http://db.apache.org/ddlutils/index.html och testa.