Microblogs
August 13, 2010
bergie timeline
alas, the train broke down and horrid Sicily maintains us in its hold. But maybe we can get to Rome, sans lits http://ping.fm/RKaMb
jonaso timeline
Någon som vet vad #sswc kostade? Vore kul att jämföra med #fscons :)
by Jonas Öberg at August 13, 2010 03:36 PM
jonsson timeline
Är det klart vem som kommer att sända Serie A i Sverige än förresten? #fotboll #seriea #italien #TV
jonsson timeline
I wish #sillyseason would end soon...
jonsson timeline
Göteborg har fått lånecyklar: http://www.goteborgbikes.se/ Men alla stationer ligger ju inom bekvämt gångavstånd. Vem är målgruppen?
bergie timeline
ferries to Tunis and Alexandria being full of Ramadan-goers we shall backtrack a bit and head for Bologna http://ping.fm/SHW3d
jonsson timeline
Got my pre-ordered copy of The Final Frontier in the mail :) #ironmaiden
jonsson timeline
Wow, a #Klingon #opera to be performed on earth: http://www.u-theopera.org/ I'm not really into #startreck but would love to hear it.
August 12, 2010
bergie timeline
a day in diverse trains and ferries brought us from Vesuvius to Etna http://ping.fm/CIc7N
jonsson timeline
RT @fscons FSCONS registration now available! http://fscons.org/register Please RT!
Blogs etc
August 13, 2010
Copyriot
HĂśgfrekvenshandelns monstruĂśsa skĂśnhet

BĂśrja nysta i fenomenet “high-frequency trading” (hĂśgfrekvenshandel eller algohandel) och efter nĂĽgon minut sitter du med trĂĽdar ĂĽt alla upptänkliga hĂĽll. Visuella fenomen, fackliga dispyter och science fiction-fantasier. Sedan visar det sig ändĂĽ att det saknas djuplodande analyser av fenomenet och dess roll i vĂĽr värld. Anledningen tycks vara att ingen fĂśrstĂĽr vad det är som sker.
FÜrst en kort introduktion fÜr den som inte hänger med i vad jag ordar om. Olika slags värdepapper handlas idag med en tidsupplÜsning som räknas i mikrosekunder, lüngt snabbare än vad nügon människa kan hinna med. DärfÜr läggs sedan nügra ür tillbaka majoriteten av alla kÜpordrar pü världens stÜrsta bÜrser inte av människor utan av maskiner: algoritmer som kÜrs pü snabba datorer, ofta kontrollerade av investmentbanker som Goldman Sachs.
Eftersom varje mikrosekund är en affärsfÜrdel, gür det i princip att tjäna stora pengar pü att skapa ytterst kortlivade blockeringar av systemen – en form av Üverbelastningsattack. Huruvida sü sker pü världens bÜrser är fÜremül fÜr spekulation men det kan konstateras att algoritmer lägger stora mängder kÜpordrar pü prisnivüer där det inte finns en rimlig chans att ett kÜp ska bli av.
Sjätte maj i ĂĽr drabbades New York-bĂśrsen av en slags inverterad tsunami kallad “the flash crash“. Hundratals miljarder fĂśrsvann under ett tiotal minuters vĂĽldsamt kursfall fĂśr att sedan ĂĽterkomma lika snabbt. Ă„nnu vet inte vad som hände eller varfĂśr, men allt pekar pĂĽ algoritmer som triggade varandra.
Om man visualiserar viss algoritmdriven handel med värdepapper sü framträder fantasieggande mÜnster som münga jämfÜr med sädescirklar. Nügra av dem har fütt illustrera detta inlägg.

Daniel Berg hüller tydligen pü med en längre artikel om hÜgfrekvenshandel till ett kommande nummer av tidskriften Ordfront. Den ser jag fram emot att läsa, fÜr djuplodande analyser av fenomenet är omÜjliga att finna, varken pü svenska eller engelska, varken journalistiskt eller akademiskt skrivna. Medan jag letade dÜk det däremot upp en oerhÜrt välskriven bloggpost pü Maskinskrifter som jag varmt vill rekommendera alla att läsa. Maskinskrifter sammanfattar bland annat teorier kring de märkvärdiga mÜnstren:
Vissa menar att det handlar om HFT-aktÜrer som lägger ut dessa mÜnster av ordrar som ett brus i bÜrssystemet fÜr att fÜrvirra andra aktÜrer, och dü främst andra HFT-aktÜrer som müste hantera bruset. Pü sü sätt skaffar de sig marknadsfÜrdelar eftersom de kan filtrera bort sitt eget brus. Det handlar alltsü om manipulation av marknaden fÜr att skapa ett fÜrsprüng pü nügra millisekunder.
Andra mer science fiction-belästa analytiker som gĂśr allt fĂśr att tillfredsställa oss drĂśmmare och poeter menar att det kan handla om emergenta fenomen. /…/
I kommentarerna till artikeln frĂĽn The Atlantic /…/ sprudlar det av teorier: Ă„r det kanske mĂśnster frĂĽn automatiserade tester och beviset fĂśr att HFT-utvecklarna använder sig av testdriven utveckling? /…/ Eller handlar det om kodade meddelanden frĂĽn konspiratĂśrer och hemliga organisationer som verkar i skuggorna? /…/
Det blir snabbt intressant när man bĂśrjar spekulera kring algohandel i Gibsonska scenarion. /…/ Tänk riktade virusattacker mot finansaktĂśrers serverhallar. Eller tänk tanken att det ur ett flertal olika HFT-system emergerar ett slags supersystem som genom feedback-loopar kraschar hela finanssystemet.
FÜrra münaden stoppades en presentation om mÜjliga säkerhetshül i algoritmisk handel, som skulle ha hüllits pü en hackerkonferens i Las Vegas.

Kunskapen om algoritmer, hastigheter och säkerhetshĂĽl kan användas som grund fĂśr att skriva nya algoritmer med mĂśjlighet att kassa in enorma vinster. Skyddet av affärshemligheter – som kan betraktas som en speciell typ av “intellektuell egendom” – blir därfĂśr mycket centralt. FĂśrra sommaren greps programmeraren Sergey Aleynikov av FBI, anklagad fĂśr att ha tagit med sig programkod frĂĽn sin fĂśrra arbetsgivare, Goldman Sachs. Ă…klagaren i fallet hänvisade till ett uttalande frĂĽn Goldman Sachs om att koden var kapabel att “manipulera marknaden pĂĽ orättvisa sätt“, vilket bara spädde pĂĽ den allmänna mystiken kring hĂśgfrekvenshandeln. FĂśr vem garanterar att detta inte är just vad Goldman Sachs själva gĂśr?
Nyligen skrev Forbes om en i grunden ganska klassisk arbetsmarknadskonflikt, som dock antar en annan karaktär inom hÜgfrenvenshandeln. Programmerare som jobbar pü ställen som Goldman Sachs har bÜrjat trÜttna pü att bara tjäna jättemycket pengar, när algoritmerna som de skriver drar in oändligt mycket mer. Vissa av dem säger därfÜr upp sig fÜr att i stället jobba pü ställen som HTG Capital Partners, som erbjuder datacenter men lüter programmeraren behülla inte bara stÜrre delen av vinsten utan även rättigheterna till själva koden. Frügorna om rättigheter till programkod och om anställdas rätt till sin egen kunskap sätts här pü sin spets. Troligtvis kommer fler programmerare än Sergey Aleynikov att anklagas fÜr att ha stulit algoritmer.
Här vill jag passa pĂĽ att tipsa om en holländsk dokumentär som jag ännu inte har sett, men som finns att beskĂĽda pĂĽ YouTube: “Quants: The Alchemists of Wall Street“.

Frestelsen att moralisera Ăśver hĂśgfrekvenshandeln är stor fĂśr mĂĽnga. Men exakt hur lĂĽngsam ska handel vara fĂśr att inte räknas som manipulativ? Hellre än att fĂśrdĂśma hĂśgfrekvenshandeln bĂśr vi analysera den, tvärvetenskapligt och med bibehĂĽllen fascination. Gärna med influenser frĂĽn William Gibson som i Maskinskrifters fantastiska inlägg med Ăśppenhet fĂśr att dra paralleller bĂĽde till hacking, konst och arbetsliv. En intressant bieffekt av algoritmisk handel kan exempelvis vara, som Cornucopia skriver, att manuell “daytrading” slĂĽs ut. Vem kan klaga pĂĽ att sĂĽ pass sinnesdĂśdande aktiviteter ĂśverlĂĽts pĂĽ maskiner?
Gentemot hĂśgfrekvenshandeln finns ingen radikalism, bara kvasiradikalism i den bemärkelse som tidigare har tagits upp här: Kvasiradikalen handlar med utgĂĽngspunkt i “monstruĂśsa konstellationer utan att fĂśrst dela upp verklighetens skeenden i mänskliga subjekt och maskiniska objekt. Därav formuleringen om monstruĂśs skĂśnhet i rubriken.
by rasmus at August 13, 2010 03:32 PM
Copyriot
Ekonomikritik: Marx kontra Engels

Varning: nu blir det esoterisk marxologi. Ytterst fü läsare kommer att bry sig, fast en südan sak har aldrig varit ett hinder här. Det finns trots allt nügra skäl fÜr ett ingrottade i frügan om Marx kontra Engels.
1) Vi rükade ändü snudda vid frügan büde i fÜrrfÜrra inlägget och tvü tidigare;
2) Jag hävdade i en studiecirkel att det är meningslĂśst med en “ekonomisk vänsterteori” samt att socialism är kapitalfĂśrvaltning. NĂĽgon ställde en frĂĽga om vad jag menade med detta, vilket här i nĂĽgon mĂĽn kan besvaras, kanske;
3) Belle & Sebastian ska inte fü komma undan med att deras bästa lüt har en tveksam titel;
4) Leninisterna ska inte fĂĽ komma undan med nĂĽgonting alls;
5) Vem vet vilka grytor som rÜrs om pü vägen.
Sedan ungefär 1890 har man talat om “marxism” i lite olika betydelser. Nästan undantagslĂśst vore det mer korrekt att säga “engelsism”, fĂśr det var Friedrich Engels som plockade upp ett antal idĂŠer frĂĽn Karl Marx och fĂśrvandlade dem till en allmän världsĂĽskĂĽdning. Detta skriver Sven-Eric Liedman i sin artikel “Engelsism” i Fronesis temanummer om Marx ekonomikritik. Anders Ramsay utvecklar i samma nummer tanken i en artikel om olika Marx-läsningar:
I en fÜrsta fas skapades marxismen och därmed en bild av Marx verk i den internationella arbetarrÜrelsen (andra internationalen) med Friedrich Engels och Karl Kautskys populariseringar. Här lästes Marx och Engels fÜrfattarskap i sin helhet som ett sammanhängande system. Kärnan utgjordes av den period, 1840-talets andra hälft, dü de büda tillsammans formulerade den sü kallade materialistiska historieuppfattningen. I Marx ekonomiska fÜrfattarskap frün denna period, süsom Filosofins elände, har den klassiska politiska ekonomin ännu inte genomgütt den kritiska genomarbetning som fÜljer efter 1850. Marx egen position är här alltsü i müngt och mycket liktydig med Smiths och – framfÜr allt – Ricardos.
Denna teoribildning har blivit känd som den ortodoxa marxismen.
Den ortodoxa marxismen, som i hÜg grad skapades av Engels, utgjorde grunden fÜr süväl leninism som socialdemokrati. Den kom att legitimera en fruktansvärd kult av arbetet, vilket har att gÜra med just att Marx pü avgÜrande punkter sügs som en nationalekonom i linje med Smith och Ricardo.
Enligt den ortodoxa marxismen gjorde Marx inte mycket mer än att lägga till en formel om “utsugning” till en befintlig idĂŠ om arbetet som källa till allt värde. Men fĂśr Marx var värde inte detsamma som rikedom eller välstĂĽnd. Värde är en form av rikedom som är specifik fĂśr kapitalrelationen och som kännetecknas av en paradoxal dubbelkaraktär. Arbetet är dess källa, men hela poängen är att ta sig ut ur detta ekorrhjul – inte att fĂśrsĂśka fĂśrfina det, som de ortodoxa marxisterna kom att gĂśra i sin praktik.
Marx livsprojekt (efter 1850) var kritiken av den politiska ekonomin. Detta handlade inte om att skissera formerna fĂśr en “socialistisk ekonomi”. Inte heller handlade det om en “kritik av kapitalismen” (fĂśr Ăśvrigt använde Marx aldrig ordet “kapitalism”). Nej, ekonomikritiken gĂĽr längre än sĂĽ.
“Politisk ekonomi” var 1800-talets ord fĂśr vad som betecknas som nationalekonomi eller ekonomivetenskap. Marx attackerar själva tanken pĂĽ att begrunda “ekonomin” som en egen sfär, eller att klassificera vissa beteenden som “mer ekonomiska” än andra.
Detta är inte riktigt samma sak som att klaga pü hur allt blir ekonomiskt, hur ekonomin breder ut sig pü bekostnad av politiken eller konsten. FÜr om vi ger upp tanken pü ekonomin som egen sfär sü behÜver vi troligtvis gÜra detsamma med politik och med konst.
En viss Cyril Smith har skrivit en rätt lĂĽng artikel, “Friedrich Engels and Marx’s critique of political economy“, som reder ut Friedrich Engels roll i Marx ekonomikritik.
Det bÜrjade med en ekonomikritisk artikel som Engels skrev ür 1843, fÜr publikation i den tidskrift där Marx var redaktÜr. Texten hade en enorm betydelse fÜr Marx, som skulle citera den flera günger i Kapitalet, 24 ür senare. Under tiden hade dock Engels hunnit Üverge sina egna ansatser till ekonomikritik, till fÜrmün fÜr tanken pü en socialistisk ekonomi.
Cyril Smith menar, utifrün sin läsning korrespondensen Marx/Engels, att just de saker som Marx süg som sina främsta upptäckter mÜttes med ofÜrstüelse frün Engels. Engels roll i samarbetet blev i hÜg grad att Üvertala Marx att gÜra sina skrifter mer lättillgängliga.
Arbetets dubbelkaraktär och varans fetischkaraktär – tvĂĽ verkligt centrala koncept som Marx introducerar just i bĂśrjan av Kapitalet – diskuterades aldrig närmare av Engels och därmed ingen stĂśrre betydelse inom den ortodoxa marxismen. Engels sammanfattningar av Kapitalet var i stället fixerade vid idĂŠn om mervärde som “obetalt arbete”. En logisk fĂśljd av detta blev en politisk praktik som inriktade sig pĂĽ att omfĂśrdela arbetsprocessens resultat snarare än att fĂśrändra arbetsprocessen eller avskaffa lĂśnearbetet.
Arbetskritiken gÜr sig üter hÜrd. Inte i valrÜrelsen, fÜrstüs, där samtliga partier tävlar om att kunna fü stÜrst antal människor att slÜsa bort sü mycket tid som mÜjligt pü arbete. Men utanfÜr politikens avskärmade rum bÜrjar en radikal arbetskritik i nügon mün üter att formuleras. Roland Paulsens nya avhandling i sociologi, Arbetssamhället
, är det just nu det främsta exemplet. Till den boken üterkommer vi.by rasmus at August 13, 2010 01:44 PM
fscons.org
Future Transports
An overview and run-through of evolving technologies that will/might hit mainstream soon and change how Internet transports are made.
Where are the limits and restrictions in current transport layers? TCP and HTTP are everywhere. Are they up for a future of much faster traffic and higher demands from users?
People and groups working on the TCP stack and on the application layer both on client-side and on server-side all have different technologies in the works to further the user experience.
In particular this talk will cover WebSockets, SPDY, MPTCP and SCTP. How they work and how they will make future Internet transports better.
by daniel at August 13, 2010 07:33 AM
fscons.org
Scalable appliction layer transfers
Go over what the mechanisms are and what methods there exist to make TCP and
application-protocol using client-side applications fast(er) and scale
properly.
Show and describe how those theories are mapped against libcurl's features and
API, and how to write and design applications with libcurl to achieve high
performance and reliability, up to extreme amounts of simultaneous connections
- up to 10K connections and beyond.
by sjn at August 13, 2010 07:29 AM
August 12, 2010
An It-Slave in the digital saltmine
A real geek is a geek even during vacation!
When there is summer and Scandinavia closes down it is hard to be a geek. Everybody, including me, moves out to small cottages in the forrest where 3G coverage is bad which gives low bandwidth a new meaning.
I have found one way of still doing geeky things combined with vacation. That is update OpenStreetmap. Take a peak at my updates at:
- http://www.openstreetmap.org/?lat=56.4476895332336&lon=14.0158939361572&zoom=14
- http://www.openstreetmap.org/?lat=56.4213931560516&lon=14.0284895896912&zoom=14
- http://www.openstreetmap.org/?lat=60.1418289542198&lon=15.4323390126228&zoom=17
Openstreetmap is wikipedia for maps, and like wikipedia it is dependent of that people will update with correct data. One thing that fascinates me is that openstreetmap is extremly detailed in some areas. Probably a geek lives nearby.
When the earthquake hit Haiti, OpenStreetmaps was used by rescuers because all other maps was inaccurate. Alot of volunteers helped keeping the maps updated.
If you want to participate in the project, the process is simple:
- Get an GPS reciever that can generate gpx tracks, I use my Android
- Turn on the GPS and walk, run or bicycle around and gather GPS tracks
- Upload the gpx to openstreetmap.org
- Tag the roads, buildings and whatever you found
To get started, read the beginners guide at Openstreetmap.
by peter at August 12, 2010 06:43 PM
fscons.org
Salve J. Nilsen
by sjn at August 12, 2010 02:56 PM
fscons.org
The program online
The program is starting to come online. A lot of themes are still working on the abstracts of the talks and biographies of the speakers, but some of it is already available from http://fscons.org/program
You can also find a list of speakers for whom we have biographies. There are a lot more speakers than we have biographies of though!
by jonas at August 12, 2010 09:33 AM
Qt Labs Blogs
A Guide to Writing Games with QML
My last post on QML had a lot of people asking for an example, as opposed to a general discourse. In my opinion, if you want concrete examples you need to move from blogs into real code. Given that I have written a, hopefully simple, application demonstrating the points in my last post (designing C++ code for QML use), this post (writing games with QML), and the next QML post I plan to write (QML’s versioning system, when I’ll use version 2 of this example). It’s a C++ module containing word-game related logic designed for use from QML, plus a QML game using it, and they can be found in the qt-qml-demo-playground repository in the wordgame and longwords folders, respectively. They are merely intended to provide some concrete examples, and you don’t have to play with them before reading the rest of this post (but it is a game, so you can
). Now onto the topic of this post, writing games with QML.
QML is designed for smooth application UIs, and it does that job very well. I’ve found that it is also flexible enough to implement a game inside that UI. So for simple games, where the intuitive and smooth user interface is often as hard as the game part, QML works surprisingly well for creating the whole thing. I’m going to arbitrarily split games into two groups here: Simple games, and Complex games. Simple games being the ones that are 2D, tile-based or with very simple geometry, and with fairly simple logic. Complex games are everything else (3D, or large maps, or with complex geometry or with a lot of collision detection or physics…). Since you can do everything with QML
you can obviously construct both types with QML. However, simple games can be easily produced using just QML and JS. If you want to just write simple games for your mobile devices, like Symbian and Meego which will in time have Qt 4.7 shipped on them, QML will likely be sufficient.
Of course, the distinction I’ve drawn between simple and complex blurs more every day. Those of you who read the recent QML/3D labs blog will be quite confused by my emphasis on 2D. With QML/3D, you will be able to make simple games with 3D visuals (so long as you don’t end up having complex 3D logic too such as realistic physics), using just QML and Javascript (QML/JS). You can also make simple games with pre-existing C++ parts, like using the WordGame module, despite my grouping of C++ with complex games. You can even make complex games using my simple game formula, although that would lead to rather messy and long code. Of course in the real world they all seem simple to start with. A key point is that, with QML, you can adapt to increased complexity without having to scrap either your code or your vision to make it work.
I’ll now provide a basic guide on how to put QML pieces together to form a simple QML/JS game. For further details try the Samegame tutorial in the Qt Quick docs. Note that this isn’t a definitive guide, it’s just my rambling of how I’ve manage to do it so far.
A QML/JS game, at least the ones I’ve written, have the following structure: A main file, containing a GameBoard element and the surrounding UI, a JavaScript file, containing all the game logic, and some QML elements for the game pieces (and UI elements). The main file contains the whole game UI in QML, including the game board appropriately sized and positioned.
The GameBoard element is usually just an Item type, with a background image as a child. However I give it an id that I use from within the logic file, and often I set the size of the game tiles based on its size. This allows you to make that element size itself to make the most of the available space, and thus be resizeable (but this really doesn’t matter on mobile).
The logic file, a .js file with all the game logic, is the imperative logic part. If you try to do something too complex without being a javascript master it gets ugly, and this is the main reason I only recommend pure QML/JS for simple games. Since it does all the imperative stuff, it follows a much more imperative flow than the QML. So I tend to have an init() in the .js called on Component.onCompleted in the main .qml, and a newGame() called from the new game button. You may also want a gameOver state in the UI, and the imperative flow from JS sets these properties (on the GameBoard object, which is preferably the only object it knows about) so that the UI can respond.
The game elements, like the stones in samegame, I prefer to create from the imperative side. This means that, in the newGame() function, you create, initialize and position instances of your game pieces, from the QML files that define their look and feel, and then position them on the game board. They will also need to import the game state logic file, so as to call methods that alter the game state (when they’re clicked, for example). Last time I checked, it was safe to save state in the logic JS file, and then when the pieces or main file call the JS file, they operate on the same variables. So as long as you store all the game state in the logic JS file, and manipulate it via functions in that file, then you’ll all be operating on the same state from all your various components. An extra advantage of making the game elements separate components is easy theming. You can have a different QML file for a differently themed stone for samegame and all you need to do is switch the file loaded in the JS logic; everything else can still work if you used QML components correctly. These different elements can be more than just different images, but have different animations as well.
So, to sum up, simple games can be easily written in QML/JS by combining the following three things.
- A central element in the UI to parent all the game items to.
- QML files defining the look and feel of the game elements, so that they can be fluid in their movements.
- A JS file with all the imperative logic and game state.
Unfortunately, it’s hard to be more specific than that because every game is different. Even QML cannot come up with a brilliant game idea for you. You can check out the Samegame and Snake demos (pictured below, as examples) in the Qt demos for some examples, and the minehunt demo is similar but with the logic in a C++ plugin instead. There is also the WordGame example, mentioned above, which provides a C++ module that you can write your own QML game with as well as one game using it.


To return to the complex games as a postscript, the way to start writing them in QML is more like the minehunt example. You do the game logic and complex parts in C++, and expose them to a QML front end. For example, you can have the C++ just know where the ‘player’ sprite is, do all the complex logic manipulating that position to move it, and the QML file could optionally cycle through sprites for a walking animation or not; this gives the designer a lot more flexibility. Unfortunately, there is not so great a dummy data solution for this approach as with other QML UIs. If your game is too complex for QML in the main part (for example, a modern 3D RTS or FPS with thousands of actors and realistic physics), QML would still work great for the UI overlay on top. It’s unfortunate that I don’t have the time to write an epic RTS just to prove that last point
.
The new Qt DevNet beta is great, and has forums for both Qt Quick development and game development with Qt. I recommend that comments or questions not specifically about this post go there instead of the comments on labs, as they’ll get seen a lot easier and by more people.
by Alan Alpert at August 12, 2010 09:27 AM
August 11, 2010
Qt Labs Blogs
Apology of the NULL pointer
“Nobody likes me. I’m despised everywhere I go. I am accussed of being the responsible of many problems and even calamities. Some say that I am accursed. Some even say that I am some kind of disease that needs to be cured. When people see me the first thing they think is “oh no, not again…”. Nobody has a kind word for me. People spends hours and hours finding ways to make sure that I am not welcomed. They spend incredibly amounts of time looking for ways to avoid me, to squash me and to make sure I cannot even get close. Even worst, some people has managed to make me invisible to their eyes, so even if I appear they do not see me. If I manage to get close and say “hi”, they do not say “hi” back to me. In fact, whenever I say something people look at me very weirdly. People has been told since the beginning that I am the worst thing that could ever happen to their software.
They do not understand me. And in fact I think nobody understands me. But that is ok, because no matter what I will still be around after your software is done. I will still be around when your software becomes outdated. In fact, you can count on me being around all the time. And yet I’m not haunting you. If you just stopped for a while and listened to my message, you will see that I can be your best friend. My mission is very simple: if I appear in your software it is not a sign that your software is badly designed, I’m just pointing out a case that was not considered before. If you could just understand that sometimes it is much better that I come and say “hi” than to close the door to me, you will realize that we can work together to make your software the best software ever. So please, stop cursing me and for once try to listen to my message.”
The text above was inspired by a conversation with some colleagues regarding when to detect a NULL pointer and when simply let the software crash.
by cduclos at August 11, 2010 09:20 PM
Qt Labs Blogs
Documentation dressed up and ready to serve!
Last fall I wrote a couple of blog posts about our visions for redesigning the Qt Reference Documentation. We asked the community for feedback on how the documentation could be improved and posted a few suggestions. The response from the community was tremendous. Peppered by feedback and full of inspiration I went to the drawing board and started my work. Right before summer the first “stable” version of the new documentation was published in the 4.7-snapshot, and now we want to get your feedback, before we continue.
New features
The documentation published online has got some new features and a new graphical theme. However, the new design is not all graphics. The most important changes made are the new navigation and usability features. As mentioned, on the left side in the online version you will find a menu providing links to some of the most important pages in the documentation. However, this is not the main feature of the menu. It also sports an AJAX-based search box, which will “automagically” adapt the links populating the menus to match your search. This works much like the index search in Qt Assistant and other traditional help applications.
Basically, it works like this: When you type in, let’s say “QDockWidget”, the content of the API Lookup menu will provide links to the class reference documentation for QDockWidget. The API topic menu will provide links to articles relevant to QDockWidget, and the API Examples menu should provide relevant examples.
We also wanted to improve the usability of the documentation content. At the top of the main page section in the online documentation you will find a toolbar sporting tools like text resizing and printing. This is also where you will find the bread crumb bar providing shortcuts for navigation. Currently, the moment the bread crumb reflects only the hierarchy of the pages and not the browsing history. We will evaluate how this works based on the feedback you provide us.

We have also worked on on-page navigation. You will find that we have replaced the “next/previous page” navigation with a table of contents that lets you navigate directly from the top, down to the content you want to read. This will save you clicks, hopefully reflect the relationship between the page sections, as well as making it easier to print and handle the content.

Structure
One of the most important documentation pages is the index page. Being the entrance to the complete documentation it needs to reflect both the whole documentation content and stay nice and tidy at the same time. That is why one of the most important tasks we are working on these days is creating good overview pages to take you down into the greasy matter. We are keeping overview pages like “All classes” and “All functions”, however renamed, and focusing on high-level concepts to collect different technologies and techniques used with Qt in the remaining overview pages. In addition to the menu search we hope this will make the journey from question to answer quicker.
We also wanted to make the documentation easier to use in combination with other application windows. By resizing the window horizontally, you will find that the style will adapt to the width of the page, hiding/moving sections that takes up space you need for reading. That way you can have both your favorite editor and browser on top of your screen as you are working.
Feedback, please
We have many ideas for further development of in the months and years to come. Several projects are running to make the Qt documentation a richer and more useful tool. However, we need your feedback on what we have done to make good decisions on our next steps. By clicking the feedback link at the bottom of the main section on every page in the online documentation, you will be able to leave feedback to us.
So, please go over to http://doc.qt.nokia.com/4.7-snapshot/index.html and give us your review.
Note: This feedback should be limited to the documentation of the page you are browsing. Please feel free to submit suggestions and large bugs in our bug tracker system.
Our goal is for you to spend as little time reading documentation, and more time developing good application. This is - so far - our attempt to reach that goal. However, there will be more to come.
On behalf of the Qt Documentation Team
Morten E.
Mailling lists
Forum
Software Updates
August 01, 2010
Savannah Git Hosting - gnutls.git/rss log
Fix warning.
by Simon Josefsson
July 29, 2010
Savannah Git Hosting - gnutls.git/rss log
Define HAVE_GCRYPT when using gcrypt. nettle is no longer marked as unsupported.
by Nikos Mavrogiannopoulos
Savannah Git Hosting - gnutls.git/rss log
Added Camellia-128/256, SHA-224/384/512 and support for DSA2 when using nettle.
by Nikos Mavrogiannopoulos
July 28, 2010
Savannah Git Hosting - gnutls.git/rss log
When scanning for terminator character for PKCS #11 URLs ignore escaped \;.
by Nikos Mavrogiannopoulos
July 26, 2010
Savannah Git Hosting - gnutls.git/rss log
Modified the example to work in TLS 1.2.
by Nikos Mavrogiannopoulos
Savannah Git Hosting - gnutls.git/rss log
Added RSA_NULL_SHA1 and SHA256 ciphersuites.
by Nikos Mavrogiannopoulos
Savannah Git Hosting - gnutls.git/rss log
When signature algorithms extension is not received allow SHA1 and SHA256.
by Nikos Mavrogiannopoulos
Savannah Git Hosting - gnutls.git/rss log
NULL MAC renamed to MAC-NULL
by Nikos Mavrogiannopoulos
July 25, 2010
Savannah Git Hosting - gnutls.git/rss log
Avoid fixed size buffers (now handles the big >100 SAN cert).
by Simon Josefsson
