RedBlog

On technology, politics and life

Liferay and DynamicQuery with Projections

2010-06-16

A bit of background: Liferay is a portal for JSR-168 portlets with some added services. Unfortunately those additional services and APIs are not documented at all - the official JavaDoc is little more than a class browser.

One of the more unobvious APIs is the DynamicQuery API to do more elaborate SQL queries against the database. Liferays database layer is a wrapper on top of Hibernate. A lot of the APIs are wrappers uppon wrappers on other APIs, usually hiding the bits you need. Fortunately you can actually get most of the Hibernate functionality through the Liferay API.

The following is my attempt to document the usage of projections, which is what Hibernate calls SQL aggregate functions.

To build the query is relatively simple, you just need to create a ProjectionList, add a few columns to it and then add it to the query just like you add constraints (just with another method). This I could sort of figure out by the method names and types only.

import com.liferay.portlet.tags.model.TagsEntry;
import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil;
import com.liferay.portal.kernel.dao.orm.ProjectionFactoryUtil;
import com.liferay.portal.kernel.dao.orm.DynamicQuery;

DynamicQuery query = DynamicQueryFactoryUtil.forClass(TagsEntry.class)
    .setProjection(
	ProjectionFactoryUtil.projectionList()
	    .add(ProjectionFactoryUtil.groupProperty("userName"))
	    .add(ProjectionFactoryUtil.count("entryId")));

Here, we group by the column "userName" and count all "entryId" of the TagsEntry table. As you can see, count does actually take a column name argument. I'm not sure why; it may be just a strange documentation feature, or to match the API of countDistinct...

The really hard part to figure out without proper API documentation was the type of the returned data however. There was really only one way - handle it as Object and do data.getClass().toString() and print that (and get a hint from the Hibernate documentation). So that's what I did, and here's the result: When you run TagsEntryLocalServiceUtil.dynamicQuery on a query that doesn't have a projection, it returns a list of TagsEntry. When run on a query with a projection however, it returns List<Object[]>, where Object is really of each column type:

for (Object rowObj : TagsEntryServiceUtil.dynamicQuery(query)) {
       Object row[] = (Object[]) rowObj;
       String userName = (String) row[0];
       Integer count = (Integer) row[1];

};

So, to sum it up, complicated queries aren't that hard, if there'd only been proper API documentation :)

Tags: hibernate, java, liferay, programming, projections, search, sql, sum.
link:http://redhog.org/Blog/Liferay_and_DynamicQuery_with_Projections.html approved:1 Comments in other blogs

Angående skype

2010-02-19

Detta är inte en dag för tidigt! Djungeln av mer eller mindre hemliga Skype-kanaler har länge varit ett stort demokratiproblem internt. Nu har Klara, Anna och Emma skrivit ett diskussionsunderlag om detta! Tack!

Skype är för övrigt ett stängt protokoll, som kräver att man installerar icke-fri programmvara från en specifik leverantör, vilket rimmar illa med målen om öppenhet och kunskap i vår politik.

Jag har dock några invändningar:

Diskussion sker inte enligt samma mönster i en chattkanal som i ett forum, och vissa saker är helt enkelt svårare att kommunicera i det ena eller andra mediet. Naturligtvis kan riktiga beslut om tex ekonomi alltid tas i forumet, men diskussionen som leder fram dit kan i alla fall i början behöva tas på en chatt helt enkelt för att den är för flummig och oprecis och snabba svar krävs för att väcka parternas kreativitet.

Huvudproblemet med skype är dock inte att det är chatt, utan att det är stängda forum som man måste bli inbjuden till. Jag föreslår därför att alla kanaler flyttas till vår IRC-server i stället, så att vem som helst kan gå in och lyssna och diskutera.

Utöver detta så finns det vissa saker som måste vara hemliga. Web- och driftskanalerna är de mest uppenbara - lösenord och tekniskt känslig info skall inte diskuteras öppet. Men dessa är undantag.

Tags: internt, piratpartiet, politics.
link:http://redhog.org/Blog/Ang__ende_skype.html approved:1 Comments in other blogs

Stallmans critique and compulsory copies

2009-12-03

I must first apologize to any international visitor; most of the links are to swedish-only texts and sources; you will have to use some online translation service for those. In addition I have to warn you that any translations of swedish legal terms are my own, and they might or might not be apropriate. This post is a translation of and original swedish post

Some time ago, Richard Stallman, founder of The Free Software Foundation, and thus, in principle, the initiator and inspiration for the island of free culture that exists today, wrote an article entitled How the Swedish Pirate Party Platform Backfires on Free Software. It is, ironically, about how our ambition to make culture more free, by limiting the copyright, may limit the amount of free culture.

In this blog post, I try to respond to Stallman's critique and raise a debate within the party about how we should deal with free software and free culture by providing a proposal on possible legislative changes and a justification for why it would be feasible. It is an independent continuation of my post Proprietary code and digital oblivion.

Stallman's argument is, in brief, that works which are published in a form other than the one which is easiest to change (think word document versus PDF document or printed text), a shorter copyright term means that fewer items will be available in the editable form, and thereby destroying the remix culture that currently exists around such works, which use different types of free licenses such as Creative Commons or GNU General Public License. This is because the publisher of unfree works after the copyrights expiery date can copy bits of the editable version of the free works, but vice versa is not possible.

Stallman proposes two different solutions, the first (and in my opinion only realistic) is a kind of escrow solution, where the publisher of a work to the public is obliged to submit a copy of the editable version to a sort of depot. This copy is then published when the term of the original work has expired

Now, many I've spoken with have dismissed the solution as unfeasible, but the fact is that we already have a very similar solution for certain types of works, namely the Law (1993:1392) on compulsory copies of documents. This could quite easily be extended to include the editable form of those documents I mentioned above. More interesting is that while changing the copyright term requires that we break international treaties (e.h. the Berne Convention), there is (to my knowledge) no international agreement that would prevent us from incorporating something like this. On the contrary, there are agreements on different types of compulsory copies, for example, the Budapest Treaty on the International Recognition of the Deposit of Microorganisms for the Purposes of Patent Procedure.

Such a change would actually be interesting even without the shorter term of copyright protection as there are already today many computer games from the childhood age of computers, that are no longer possible to play - the platform they were able to run on no longer exists, and neither does the documentation for how it works internally, nor does the source code of the game remain, making it impossible to reconstruct an environment in which the game can run. A great deal of cultural connection can be lost. Such a compulsory copy scheme would prevent todays games and applications from suffering the same fate.

I have written a proposal for legislative change. I'm not a lawyer, and this proposal should hardly be seen as definitive (it certainly has loopholes big enough to run freight trains through - crosswise), but it shows how small changes are needed. Law (1993:1392) on compulsory escrow § 5, Documents to be submited is amended to read

In addition a § 4a is amended which reads as follows:
In this Act source version of a work is defined as the form of a work which is the preferred method for making modifications to it. For works which have not been created through a process involving various forms, this is the published form. For other work, this is all the source versions of all partial works and processes used to achieve the final shape.
finally a § 32a is amended reads as follows:
Compulsory copies to be submitted under the provisions of this Act shall be accompanied by the same number of compulsory copies of the source version of said compulsory copies.

Thanks to Marco Baxemyr and Rikard Fröberg who both come with good comments and suggestions to improve this post.

Tags: english, escrow, foss, politics, proprietary software, rms.
link:http://redhog.org/Blog/Stallmans_critique_and_compulsory_copies.html approved:1 Comments in other blogs

Stallmans kritik och pliktexemplar

2009-11-29

För en tid sedan skrev Richard Stallman, grundare av The Free Software Foundation, och därmed i princip initiativtagaren och inspiratören till den ö av fri kultur som finns idag, en artikel med titeln How the Swedish Pirate Party Platform Backfires on Free Software. Den handlar om hur, ironiskt nog, våran ambition om att göra all kultur friare genom att begränsa upphovsrätten, kan begränsa mängden fri kultur.

I det här blogginlägget försöker jag svara på Stallmans kritik och väcka en debatt inom partiet runt hur vi bör hantera fri programmvara och fri kultur genom att ge ett förslag på möjliga lagändringar och en motivering för varför det skulle vara genomförbart. Det är en fristående fortsättning på mitt inlägg Proprietär kod och digital glömska.

Stallmans argument är i korthet att för verk som publiceras i en annan form än den som är enklast att ändra (tänk worddokument versus pdf-dokument eller utskriven text), så innebär en kortare upphovsrättstid att färre verk kommer vara tillgängliga i den ändringsbara formen, och därmed förstöra remixkulturen som idag finns runt sådana verk och som använder sig av olika typer av fria licenser, t.ex. Creative Commons eller GNU General Public License. Detta eftersom utgivare av ofria verk efter upphovsrättens utlöpsdato kan kopiera bitar av den ändringsbara versionen av de fria verken, men inte tvärt om.

Stallman föreslår två olika lösningar, den ena (och i mitt tycke enda realistiska) är en sorts escrow-lösning. Nu har många jag pratat med avfärdat den lösningen som ogenomförbar, men faktum är att vi redan har en mycket liknande lösning för vissa typer av verk, nämligen Lag (1993:1392) om pliktexemplar av dokument. Denna skulle ganska lätt kunna utökas att även gälla den ändringsbara formen av sådana dokument jag nämnt ovan. Intressantare är dock att när det att ändra upphovsrättstiden kräver att vi bryter internationella avtal (Bern-konventionen till exempel), så finns det (vad jag vet) inga internationella avtal som skulle hindra oss från att införa något sådant här.

En sådan ändring skulle faktiskt vara intressant även utan kortare skyddstid för upphovsrättsskyddade verk; idag finns det redan många datorspel från datorernas barndom som inte längre går att spela - plattformen de kunde köras på finns inte längre, och vare sig dokumentationen till hur den fungerande internt, eller källkoden till spelet finns kvar, vilket gör det omöjligt att rekonstruera en miljö i vilken spelet kan köras. En stor mängd kultur går härvid förlorad. En sådan här plikt skulle kunna hindra att dagens spel och program går samma öde tillmötes.

Jag har skrivit ett förslag till lagändring. Jag är inte jurist, och det här förslaget skall knappast ses som slutgiltigt (det har säkert kryphål stora nog att köra godståg genom - på tvären), men det visar hur små ändringar som faktiskt måste till. Lag (1993:1392) om pliktexemplar av dokument 5 §, Dokument som skall lämnas ändras att lyda

Av skrift som avses i Lag (1960:729) om upphovsrätt till litterära och konstnärliga verk, 1 kap. Upphovsrättens föremål och innehåll, § 1 och som har framställts och utgivits här i landet skall sju pliktexemplar lämnas, om annat inte följer av 7, 8 eller 9 §.
Därtill fogas en § 4a med följande lydelse:
I denna lag förstås med källversion av ett verk den form av ett verk som är att föredra för att göra förändringar av verket. För verk som inte skapats genom en process som innefattat olika former, är detta den publicerade formen. För andra verk avser källversionen alla de delverk och processer som använts för att uppnå den slutgilitiga formen.
Därtill fogas en § 32a med följande lydelse:
För pliktexemplar som skall lämnas enligt föreskrifterna i denna lag skall även källversionen lämnas som pliktexemplar i samma antal kopior som det huvudsakliga pliktexemplaret

Jag kandiderar till riksdagslistan tillsammans med Marie Axelsson och det här inlägget har också postats på min och Maries gemensamma kandideringsblogg.

Tags: escrow, foss, piratpartiet, politics, proprietary software, rms.
link:http://redhog.org/Blog/Stallmans_kritik_och_pliktexemplar.html approved:1 Comments in other blogs

Kandidering till Riksdagslistan

2009-11-05

Jag och Marie Axelsson har båda bestämt oss för att kandidera till Riksdagslistan. Vågorna har gått höga kring hur den processen ska gått till, och speciellt att vi ställs pirat mot pirat, vän mot vän. Därför har vi valt att gå ut med detta tillsammans.

Vi tycker det är viktigt att inte driva personkampanj, utan att sammarbeta för Piratpartiet till Riksdagen. Vi är inte konkurenter. Det viktiga är inte ifall du eller jag kommer in, det viktiga är att vi tillsammans som ett parti kommer in. Tillsammans ska vi lyckas förändra Sveriges informationspolitik och bevara medborgarnas rätt till privatliv. För att sätta fokus på sammarbete har vi skapat en facebookgrupp för alla Pirater som vill kandiderar tillsammans och inte konkurera mot varandra.

Vi har för avsikt att utföra en valturné tillsammans med några andra pirater och kandidater med piratskepp längs Sveriges kust. Idén är att ni ska kunna följa seglatsen via nätet och se vad vi gör och var vi befinner oss. Mer information om båten finns på vår kampanjsida.

Under valkampanjen kommer vi fokusera på öppenhet, understödjande av kunskapssamhället och reformation av upphovsrätten. Vi kommer diskutera öppna format/standarder på myndigheters websiter och i dokument som skickas till medborgarna, tillgång på myndigheters data, till exempel kartdata och forskningsresultat och hur en allt starkare upphovhovsrätt påverkar kulturen och kulturutbytet.

Vår gemensamma kampanjsida hittar ni här

Tags: piratpartiet, politics, riksdagsvalet.
link:http://redhog.org/Blog/Kandidering_till_Riksdagslistan.html approved:1 Comments in other blogs

Nätprinciper

2009-10-18

Min vana trogen så leker jag bloggsvans på kännda, duktiga bloggare (bästa sättet att bli duktig är att lära av de duktiga, och bästa sättet att göra det är att kritisera deras ståndpunkter :). Denna gång är det Johanna Nylander som skall råka ut för mitt tangentbord.

I sin text Fyra politiska nätprinciper formulerar Johanna fyra grundprinciper för ett fritt internet, fyra grundprinciper för en internetpolitik i Europa, och förklarar varför en sådan politik behövs, varför internet (eller snarare leverantörerna) över huvud taget behöver "regleras".

Jag ser hennes poäng, men tror att de fyra principerna för lätt kan missförstås. Jag kanske är petig, men så är jag tekniker också. Jag är inte säker på att jag förstått henne rätt, så jag försökte formulera om dem på ett mer stringent sätt, ta bort det som kunde missförstås och sådant som är uppenbara resultat av andra principer. Det jag insåg då, var att det är jättesvårt att formulera en bra uppsättning grundprinciper som inte kan misstolkas till att betyda något riktigt riktigt opraktiskt eller dumt eller rent av direkt motverkande det vi vill uppnå. All kudos till henne för att gon ändå försökt. Så här kommer mitt försök. Något nyare, något bättre. Iteration 2.

  1. Rätten för två människor/datorer kopplade till nätet att kommunicera med varandra ostört och utan begränsningar, utan speciellt tillstånd från nätleverantörerna, efter att båda köpt internettillgång (från samma eller olika leverantörer).
  2. Krav på öppna standardiserade format för allt som publiceras offentligt på nätet.
  3. Rätten att på sin egen dator publicera vad man vill med samma rättigheter och skylldigheter som för tryckta skrifter.
  4. Rätten att på andras datorer publicera vad man vill som ovan endast begränsat av godtycket till den som äger datorn.
  5. Rätten att kunna duplicera information, länkar, filer och innehåll för att sprida vidare/publicera enligt ovan.

Den viktigaste regeln är den första. Det den egentligen säger är att transportörer av data inte får bry sig om datat som transporteras, eller till vem det skall transporteras. Detta är nätneutralitet.

Tags: freedom, net neutrality, piratpartiet, politics.
link:http://redhog.org/Blog/N__tprinciper.html approved:1 Comments in other blogs

Proprietär kod och digital glömska

2009-10-18

Richard M Stallman, ledare för The Free Software Foundation har skrivit en artikel om Piratpoartiets politik där han kritiserar oss för att slå undan benen för fri programmvara och faktiskt göra det svårare att garantera människor fri kunskap, en av de saker vi slåss för.

I artikeln beskriver RMS hur en förkortad copyright ger till resultat att skyddet för fri programmvara liksom för ofri minskar. När fri programmvara faller ur copyright gör även dess källkod det (källkod är en version av programmet som är mest lämpad för att göra ändringar, tänk "word-dokument" som källkod, pappersutskrift som själva programmet), eftersom den publiceras tillsammans med programmet. För ofri programmvara sker dätremot inget liknande, källkoden är och förblir en företagshemlighet. Detta förvrider konkurensen till den ofria programmvarans fördel - utgivare av nya ofria program akn kopiera bitar av gamla fria program, men inte tvärt om.

Efter att artikeln blev publicerad har väldigt lite hörts om den från oss, vare sig inom partiet eller officiellt utåt. Vi som annars är ganska bra på att bemöta kritik utifrån har varit skrämmande tysta. Kanske är det för att det är ett känsligt ämne, eller för att det är förvirrande att bli kritiserad av någon som faktiskt "är på vår sida". Men artikeln behöver bemötas. Samma kritik har framförts internt på vårt forum många gånger, men har av någon anledning varje gång "fallit mellan stolarna". Bara det att samma kritik funnits internt borde vara nog för att bemöta den officiellt.

I sin artikel föreslår RMS två olika lösningar. En av dessa tror jag är praktiskt genomförbar, och faktiskt utan allt för stora politiska problem. Den handlar om att tvinga alla utgivare av programmvara att skicka in en kopia av källkoden till kungliga biblioteket, som sedan skulle publicera denna när programmet faller ur copyriggt.

Jag tror att det inte skulle vara svårt att genomföra politiskt av två orsaker: För det första därför att det inte strider mot några internationella avtal som Sverige skrivit på, som ju faktiskt vårt förslag till ändring av upphovsrätten i sig själv gör. För det andra därför att en liknande plikt redan finns med det pliktexemplar som utgivare av böcker måste skicka in.

Rent ekonomiskt borde det inte heller vara ett problem: Systemet skulle kunna vara i hög grad automatiserat och online, och disk är billigt. Så jämfört med kostnaden för lagring av alla pliktexemplar av böcker, är detta en liten utgift för staten.

Men vi är inte ett parti för fri programmvara. Vi är ett parti för fri kunskap och delad kultur. Programmnvara är bara en typ av kunskap och kultur (ja, den är faktiskt både och). Vårt svar borde därför bli en mer allmängiltig lösning: Att all utgivning av verk i en annan form än den som använts för att skapa verket, måste följas antingen av publicering av den form som använts för att skapa verket, eller av inlämning av ett pliktexemplar av den formen.

En avslutande fråga är om vi kan vinna något opinionsmässigt på detta? Svaret är nog att de flesta inom fri-programmvara-miljön i Sverige redan är "frälsta", och frågan är nog tyvärr för smal för "vanligt folk". Men jag tror att vi har mycket att vinna internationellt. Att ge Pirate Party International en PR skjuts frammåt är inte negativt. Målet är att RMS i en ny artikel uttrycker sitt stöd för piratrörelsen.

Tack KoFish för att du lyssnade och kommenterade mitt flummande på chatt som till slut blev den här artikeln.

Tags: escrow, foss, piratpartiet, politics, proprietary software, rms.
link:http://redhog.org/Blog/Propriet__r_kod_och_digital_gl__mska.html approved:1 Comments in other blogs

Riksdagslistorna

2009-10-16

Egentligen tror jag att det bara är att lära sig att ibland går saker över ens huvud. Det är det man har experter till. Bara se på politikernas okunskap om FRA-lagen. Det är av samma orsak. Det är faktiskt, på ett sätt bra - man måste klara att delegera detaljerna till andra som kan en fråga. Till exempel exakt hur röster skall räknas, som systemet för att fördela plattser i riksdagen som är ganska komplicerat - jag erkänner villigt att jag inte förstår det fullt ut...

I inlägget om teknikerkulturen fortsättning skriver Klara om hur det gick till när det beslutades om val av system för framtagning av riksdagslistorna. Hon beskriver hur några kunniga matematiker i snab takt presenterade ett system som både i sig själv och i sin presentation, gick över huvudet på många av styrelsemedlemmarna.

En sak ska du vara stolt över Klara - att du erkänner att det gick dig över huvudet, det vågar nämligen inte många. Som du också skrev.

Naturligtvis borde det ha gjorts annorlunda. Inte nödvändigtvis genom att välja en enklare framtagningsmodell, eller ignorera de matematikkunniga.

Däremot borde man utsett en grupp bestående av folk som studerat röstmetoder/med matematisk bakgrund som fått evaluera olika metoder, presenterat dessa och dess för o nackdelar för styrelsen som sedan valt en. Då kunde även helt andra metoder, som valberedning, hanterats genom en eller flera andra grupper med annan bakgrundskunskap, tex erfarenhet från andra föreningar och demokratiska processer arbetat med dessa metoder och presenterat dem för styrelsen samtidigt.

Detta är något vi måste klara i Riksdagen - att delegera utvärdering och kartläggning till tjänstemän och experter, utan att delegera besluten i sig till dem.

Tags: internorganisation, piratpartiet, politics.
link:http://redhog.org/Blog/Riksdagslistorna.html approved:1 Comments in other blogs

Teknikerkulturen i PP

2009-10-15

I sitt blogginlägg Förädla Piratpartiet – om teknikerkulturen skriver Klara om PPs "teknikerkultur", hur vi ser lösningar, samband, data, algoritmer, empiriska exempel och bevis före människor. Detta sätts i någon sorts motsatts till hur samhället i övrigt fungerar. Jag ser en klar paralell, eller snarare hur detta är en fortsättning av, min och Klaras tidigare inlägg om kampmaskulinitet.

Jag tror att en del av varför PP är så nördiga är för att nördar traditionellt inte släppts fram, de är människor som inte räknats. De ser PP inte bara som ett sätt att reformera copyright, patent o rätten till privatliv, utan som ett sätt för dem, en grupp som syns väldigt lite men som vårt samhälle är helt beroende av, att synas. Nördarna. De som jobbar hela natten för att få upp servern. Utan ens ett tack. Jag tror de känner lite så. De gör samma otacksamma jobb som sjuksystrar, men syns ännu mindre. Jag tror de vill visa att så här tänker vi, så här fungerar vår värld, nu måste ni som bara lyssnar på varandra lyssna på oss också. Hur rätt de har vet jag inte, men jag tror de känner så, och den känslan är viktig.

Det gör att argumentet om att bry sig mer om människor än om algoritmer, nästan blir att bry sig mindre om människor, i alla fall om den här gruppen människor, som upplever att få bryr sig om dem...

PP har inte råd att vara ett rent nördparti och skrämma bort "vanligt folk". Men varför skall vi överge Nördarna? Det vore lika lite poäng med som att överge Bloggarna (andra halvan av PPs medlemmar :). Vårt interna arbete drivs frammåt av nördiga resonemang och vilda diskussioner länkade genom hundratals bloggar. Utan endera stannar PP. PP har inte råd att vara ett icke-nördparti.

Tags: genus, piratpartiet, politics.
link:http://redhog.org/Blog/Teknikerkulturen_i_PP.html approved:1 Comments in other blogs

Farhågor besannas fortare än förhoppningar

2009-06-16

I mitt inlägg Killar kan också (rösta vettigt) förra veckan skrev jag om en möjlig skräckvision där argumentationen blir våldtäkter mot övervakning. Som andra redan kommenterat så gick det fortare än jag någonsin kunnat ana - Centerkvinnornas ledare pådyvlar alla unga män ansvar för alla våldtäkter som sker. Som tur är ver kar proteststormen mot den argumentationen ha blivit behövligt stor. Kanske slipper vi en sån debatt ändå? Kanske inser de flesta hur otroligt lågt och rent av ont det är att argumentera så?

Tags: genus, piratpartiet, politics.
link:http://redhog.org/Blog/Farh__gor_besannas_fortare___n_f__rhoppningar.html approved:1 Comments in other blogs

RSS feed

[Valid RSS]

Created by Chronicle v3.5