Hyves zit erop

Ik probeerde vandaag eens te kijken of ik voor een gegeven Hyves-gebruiker zou kunnen achterhalen wie zijn vrienden zijn. Hyves-profielen en vriendenlijsten zijn te bekijken als je niet ingelogd bent. Daar wilde ik dus een scriptje voor schrijven, en als je dan heel Hyves afgaat kun je zo de complete sociale graaf ophalen, superhandig voor analyse en toepassingen.

Dus ik de code ingedoken om te kijken hoe dat in elkaar zit maar wat ik daar zag heeft me bang gemaakt. Een Hyves-gebruikerspagina laadt meerdere JavaScript-bibliotheken —Scriptaculous en YUI zag ik al, samen met wat zelfgeschreven spul— meerdere keren en deze doen allemaal rare dingen met de pagina. Geen wonder dat het zo ontzettend traag is.
Verder heb je de nare paginerings van de vriendenlijst waarvan de aanroep niet echt te vinden is. En dan bedoel ik niet niet direct zichtbaar, maar echt niet te vinden. In ieder geval als je met een kijkje onder de schermen met Firebug er niet achter komt, dan zit het goed verstopt.

Het is een beetje de vraag of dit expres is gedaan of dat het uit willekeur zo gegroeid is. Ik denk een beetje van allebei. Ik heb vaker dit soort gegroeide HTML-bouwsels gezien en die dingen groeien en groeien maar uit noodzaak en op een gegeven moment valt het niet meer te onderhouden of nieuwe functionaliteit aan toe te voegen.

Als ik binnenkort wat meer tijd heb, zal ik kijken of ik er meer werk in kan steken. Hulp is welkom. Volgens mij is er een Python framework wat een complete browser simuleert om dit soort sites makkelijk te kunnen crawlen.

Ondertussen in ander nieuws: Facebook groeit als kool.

Een corrupt Brein zorgt voor stilstand

De stichting Brein is een club van advocaten, lobbyisten en accountants in dienst van de auteursrechten-industrieën. Ze hebben aardig wat geld te besteden, maar al het geld in de wereld kan niet op tegen een culturele trend die het einde betekent van oude businessmodellen. De stichting en hun bazen zullen verdwijnen, het is alleen de vraag hoe lang ze een corrupte overheid kunnen misbruiken om hun doelen te dienen en het onvermijdelijke uit te stellen.

Vandaag in het nieuws dat Brein het voor elkaar heeft gekregen om Oink uit de lucht te halen. Ik heb Oink nooit gebruikt en dat spijt me, want van wat ik hier en daar hoor was het een erg goede dienst.
Dit artikel (“Defending the Pig”) legt uit waarom Oink bijzonder was en dat het bijzonder goed werkte. Een site zonder echt winstoogmerk waar ontzettend veel muziek beschikbaar is in een betere kwaliteit en met betere metadata dan bij commerciele aanbieders, klinkt wel handig. Sociale controle en kennis en middelen van grote aantallen mensen en innovatie bereiken dus meer dan de platenmaatschappijen kunnen of willen.

Ik ken een vergelijkbare site voor video-torrents waarvan ik de naam hier niet zal noemen. Maar twee keer klikken en 10 minuten later heb je binnen wat je wilt.

De code en de database van Oink zullen vast wel ergens gebackupt zijn. Het is wachten tot The Pirate Bay Oink gaat hosten en het is wachten tot we een piratenpartij in Nederland krijgen die korte metten maakt met deze stilstand.

Veranderingen ook in de e-mail

Ik heb geen idee wanneer maar het lijkt me niet meer dan logisch dat mijn TU Delft e-mailadres binnenkort ophoudt met werken. Dus voor de duidelijkheid nooit meer dingen sturen naar a.cugun@student.tudelft.nl of a.cugun@student.twi.tudelft.nl of a.cugun@ewi.tudelft.nl of a.cugun@elektron.its.tudelft.nl en noem nog maar een boel aliassen voor hetzelfde adres op.

Nu nog even de forward uitzetten en kijken of er nuttige e-mail op binnenkomt.

hAvatar voor WordPress

Ik had het al een tijdje gehad met gravatar en alle andere verschillende manieren om avatars toe te voegen aan blogs en vond tijd dat er een simpele open versie kwam.

Ik heb net de MyAvatar plugin aangepast tot wat uiteindelijk de hAvatar plugin moet worden. Je ziet hem nu in actie bij de commentaren op dit blog. Als jij een hCard met photo of logo eigenschap op je URL hebt staan die je achterlaat, dan haal ik die op en toon hem als je avatar.

Aardig proof of concept, en ik denk wel het uitbreiden waard. Probeer het maar uit. Je kunt een pagina gebruiken met een hCard of je kunt hier inloggen met OpenID en zorgen dat op je OpenID site een hCard staat zoals beschreven in mijn artikel op Four Starters.

Deze versie gebruikt nog mijn hAvatar parse dienst zoals beschreven op Four Starters maar een definitievere versie moet hKit gebruiken om de hCard te parsen.

De recente commentaren op de voorpagina gebruiken nog gravatar zoals opgeleverd door de thema-bouwer, maar dat is zulke afgrijselijke PHP-code, dat de revisie daarvan niet op een luie zondagavond kan.

Marktfalen in de telecom

Berichtje in de Parool van iets wat natuurlijk al veel langer bekend is. Als je dataverkeer verbruikt in het buitenland dan betaal je je compleet scheel aan roaming mobiele data rates. En je hoeft er niet eens voor naar het buitenland.

Dit is een duidelijk geval van marktfalen, maar wat te doen? Een maximumprijs instellen op deze diensten werkt niet, omdat er dan wordt onder-geïnvesteerd zoals op de energiemarkt van Californië. Nutsificeren zou tof zijn maar de animo daarvoor is ontzettend laag.

Marktfalen treedt meestal op juist door de inmenging van de overheid. Er zijn veel zogenaamd vrij markten waarvan er bijna geen een echt vrij is. Draadloos breedband werkt voor geen meter omdat de overheid wholesale monopolies heeft verkocht op de frequenties en daarin kan een operator compleet zijn eigen gang gaan. Monopolies zijn niet tof.

In Amerika heeft Google zich voor de veiling van de 700MHz-spectrum garant gesteld voor de reserveprijs van $4.6 miljard dollar als de spectrumovereenkomst aan een handjevol eisen wat betreft openheid zou voldoen. Dat is half gelukt en Cringely had er al zijn bedenkingen bij.
Monopolies uitdelen is een slecht plan, open monopolies uitdelen klinkt al een stuk beter. Dat is misschien ook een idee voor hier maar beter nog, waarom zijn er überhaupt frequentievergunningen nodig? Waarom mag niet iedereen zijn gang gaan? Het zal in het beginnen vast wel een zooitje worden maar met wat duwen in de goede richting kan er vast wel een emergente orde worden gewonnen.

Ik ben niet echt een expert op dit onderwerp, maar mijn gevoel voor logica spreekt gewoon tegen monopolies van welke soort dan ook. Experts die hier iets over kwijt willen?

OpenID een robuuste open manier van Single Sign On

In ander nieuws, dit weblog ondersteunt sinds zojuist OpenID. Dat is een manier van inloggen met een gebruikersnaam en wachtwoord op verschillende sites die veilig is en waarbij je toch zelf de controle over je gegevens houdt.Ik heb er eerder al een uitleg over geschreven op Frankwatching wat redelijk veel aandacht trok en een recent artikel op Four Starters sloeg ook lekker in. De strekking van dat laatste artikel is dat de meeste mensen als een OpenID hebben, maar zich er niet van bewust zijn. Kijken of je toch een OpenID hebt, spoed je dan naar mijn OpenID generator.Als je niet wil dat er iets verandert, verandert er ook niets. Ik heb de wpopenid+ plugin hier geïnstalleerd om wat dingen met betrekking tot OpenID en innovatieve toepassingen hiervan uit te kunnen proberen. Dus misschien gaan dingen hier een beetje kapot in de komend tijd, maar ik probeer de gewoonlijke diensten hier zo goed mogelijk doorgang te doen vinden.

Internetcultuur dringt het gewone leven binnen

Iedereen die enige tijd online heeft doorgebracht kent de dansroutine van OK GO voor het lied “A Million Ways” wel en de vele vele keren dat het nagedaan is door mensen over de hele wereld.

Hieronder is de eerste keer dat ik het heb zien nadoen op het ijs en dan wel in een erg goed uitgevoerde routine tijdens een wedstrijd:

(via Ben)

Ik denk niet dat iemand van de aanwezigen het snapt, maar die groep mensen wordt groter en groter. Hoe lang nog voordat LOLCATS op billboards prijken?

Eindelijk Radio 1 luisteren op de Mac

Ik heb hier wel vaker geschreven over de beroerde webstreams beschikbaar voor Radio 1 bij de omroep. Daar is nu verandering in gekomen en het is nu af te spelen in Windows Media, Quicktime of Real.

Reden tot blijdschap dus, maar nog steeds vreemd waarom ze niet gewoon één MP3-stream hebben opgezet die volgens mij door alle drie die players probleemloos kan worden afgespeeld.

Update: Blijkbaar is dit een hele populaire post en ik luister redelijk wat radio via iTunes. Hoe je dat doet is als volgt, onder Advanced staat een optie Open Audio Stream (Command-U) en daar kun je de URL van een stream in plakken. Bijvoorbeeld:
Radio 1: http://shoutcast.omroep.nl:8100/listen.pls
Kink FM: http://81.173.3.20/listen.pls
Studio Brussel: http://mp3.streampower.be/stubru-high.mp3?rand=644

De URL die ik heb van 3FM doet het niet meer, maar die mis ik toch niet zo.

Update: Voor streaming heeft Radio 1 nu een pagina die niet direct vindbaar is vanaf de site zelf: Luister online naar radio 1

JavaONE Afterglow – Desktop Java

Ik was gisteren op de JavaONE Afterglow in Affligem en hier zijn mijn aantekeningen van een sessie daar (geconverteerd van Markdown):

Java on the Desktop by Sebastien Stormacq

How much Java is out there?

91% of all PCs run Java platform
Distribution through OEMs and JR software redistribution agreements

Q: What is the state of bundled video codecs for the Java platform (FLV)?

Example applications

Lightzone
Myspace video uploader (IILWY.com does the same with Flash and does it very well)

Note for Roel: Inglewood

sweet spots:
First wave of applets
enterprise applications
developer tools (Eclipse)
large consumer deskotp applications (Azureus)

Q: Under attack from Flash, XUL and Silverlight, C#/Mono

Badnews

Goodnews: aware of problems and working on solutions (hopefully) soon

Startup time (coldstart)

  • Coldstart: 5-10 seconds, not acceptable
  • Warmstart (after a recent run of VM): < 1-2 seconds
    Coldstart: about disk cache, java platform reads a lot from disk
    Solutions:
  • preloading Java on the OS level
  • Rearranging rt.jar

Quickstarter: preloads memory pages with help from the OS
pages can be flushed if needed

Install time and process

7-15MB download which extracts to 40+ MB
Lots of small files

Solution: Kernel JVM
Bare essentials to get your program running immediately
Additional dependencies later via web
Kernel is 2MB: Core JRE, Web Start, Plug-in, Installer

Roel questions hom big a part are the Corba and RMI parts?

JRE software detection and installation

No good way to detect JR software existence and version from browser
Developers use “Get Java” button which takes users away from the site

Applets constrained to lowest-common-denominator APIs
between MS VM or JDK 1.1

Solution: deployment toolkit
Javascript solution hosted by Sun
Redirects to download site, polls for succesful install and redirects back to original site

This already exists.

Windows Graphics Acceleration

Directx9 based pipeline
High performance for Swing and 2D

Nimbus

Modern look and feel

http://nimbus.dev.java.net
Scaleable and resolution independnt

Looks quite pretty.

Coming soon: consumer Java Runtime Environment

In Java6

  • Quickstarter
  • Kernel
  • Deployment toolkit
  • Windows Grphics acceleration
  • Nimbus look & feel

Planning is subject to change

Media

Java Technology needs a standard media solutino
Support for native formast through native players
Swing components for video/audio playback

Q: No builtin codecs?

Cross platform codec for standardization in the Java world

3D

You can do 3D with Java right now

Animation

Modern desktops are getting more animated
Widget toolkits which do not support this run the risk of looking outdated

Swing supports basic control animation, very manual to do more

Need:
* Better timing facilities
* Animations and effects

Components

Translucent windows
Shaped top-level components

Simplifying GUI development with Netbeans

Netbeans GUI builder: Matisse

Simple and intuitive GUI layout

Suggests component alignment and spacing

Introduces the Group-Layout manager

Transparent Internationalization

Q: How does this work?
WYSIWIG code builds a DOM of controls
this DOM is serialized into Java Code
edits in the Java code are parsed and the visual representation of the dom is redrawn

Swing Application Framework

Goals:
* As small and simple as possible
* Explain it in one hour
* Standard basic appliaction architecture
* Works very well for small/medium apps
* No integral docking framework, generic data model, scripting language, GUI markup schema

Lifecycle

Actions

Nice encapsulation, behaviour
manages enable/selected state

Overhead in creating Action classes
Visual properties should be l8n
Asynchronous Actions are difficult
enable/selection wiring can be a mess

@Action
“sayHello” ActionMap entry
ActionEvent argument is optional

Background thread for
* computationally intensive tasks
* task that might block
Monitor for:
* starting, interrupting, finishing
* progress
* messages
* descriptive information
SwingWorker does most of this

Task extends SwingWorker

Resources

Tasks

Session State

user preferences like window size etc.

Create subclass of Application
Create and show your GUI in the startup method
Use Application-Context services to

Flickr Photo Viewer

Demo taks using Netbeans running on Solaris running on Parallels on a Macbook Pro

Mac version of Java has a bug concerning multiple screens

Demos a Flickr picture retriever using Matisse

Wysiwig buildup allows you to build flexible resizable GUIs

Uses a precoded Flickr.java file with a lot of code
It would be easier (in a scripting language) to do a REST call and parse the resulting XML (2 lines of code)

Action of retrieving an image from Flickr blocks the GUI

Alper: This would have saved me hours and hours while still at university.

http://appframework.dev.java.net

Beans Binding

Source object
Target object

Source to target: Converter
Target to source: Converter + Validator

Another demo showing how to bind beans from various controllers to each other

And another demo showing a (no lines of code written) database connection and Access style data editor

Java FX Script by David Delabassee

What is JavaFX Script?

Programming language for the java Platform

Simple syntax somewhere between ActionScript and Javascript

Shows Silver Surfer application
with animation and other graphical effects and playing of video through the Java Quicktime binding

  • Object oriented
  • Declarative syntax
  • Statically typed + type inference
  • Automatic data binding
  • Extensive Widget libarry encompassing swing and Java 2D

Tutorial widget where you can adjust the values of JavaFX objects and their properties live.

Have built a JavaFX version of a lot of Flash applications to demo that the same thing is possible using Java.

Q: Java tring to kill the Flash hegemony? Both have a ridiculous amount of presence and penetration. Flash does not have a strong mobile presence yet but Java is already there, could capitalize on that presence.

Insted of using Quicktime binding on the mobile, use a binding to run 3GP files natively and stuff

Roel: Quicktime for Java (ask Reinier)

HTML5 wants to adjust HTML to be capable of most of this out of the box.

jfx.org to learn more
JavaFX Mobile

Deploy the exact same application both on desktop, web and mobile