Category Archives: Daily Business

VZ sponsort Front-Trends Conference 2012

Ich freue mich sehr darüber, bekannt geben zu könne, dass VZ euch als Goldsponsor (gemeinsam mit weiteren Sponsoren) in diesem Jahr die Front-Trends Conference 2012 präsentieren wird.

Die Front-Trends Conference findet vom 26.-27. April 2012 in Warschau statt und versammelt erneut das Who-is-who der Front-Trend-Developer.

 “THIS IS A GATHERING FOR FRONT-END LOVERS TO DISCOVER THE CURRENT TRENDS TO BUILD A PROFESSIONAL CAREER OUT OF INNOVATIVE
CONFERENCE TOPICS: HTML5 UX JAVASCRIPT WEB DESIGN CSS3 MOBILE AND MORE

Ein Blick in die Liste der Speaker sollte jedem Frontend Enthusiasten verdeutlichen, dass es sich um ein absolutes Top Event handelt und so schicken wir von den VZ Netzwerken in diesem Jahr nicht nur Entwickler, sondern auch gleich noch ein “Sponsorship” nach Warschau. Yeah.

Let’s have a beer (or two).
Fahrt ihr auch nach Warschau? Wen treffen wir?

Sharing some love.

Don’t be surprised but we had an awesome year. So we decided to give a little back and support some of our favourite tools and open source projects:

Eclipse
I don’t think we need a description here ;-)
http://www.eclipse.org/
500€
CumulusServer
“CumulusServer is a complete open source and cross-platform RTMFP server extensible by way of scripting.”
https://github.com/OpenRTMFP/Cumulus
500€

 

Thanks to the developers and keep up the good work.

Traversieren/Modifizieren von TextNodes mit JQuery

In einer Webanwendung gibt es manchmal die Situation, dass man in bestehendem HTML-Code bestimmte Textinhalte modifizieren muss, unter Verwendung von zusätzlichem Markup. Z.B. Links klickbar machen, Highlighting von Suchergebnissen, etc. Folgendes Sample zeigt, wie man mit JQuery die Textnodes iterieren und dabei modifizieren kann:

// newElement enthält das zu modifizierende HTML. Dabei soll "Mein" durch "<b>Mein</b>" ersetzt
// werden, aber nur in Texten, nicht an sonstigen Stellen im HTML-Code
var newElement = $(['<ul><li>Erste <a href="http://www.Mein.de/">',
    'URL anders?</a> Zeile</li>',
    '<li>Meine zweite Zeile</li><li>Dein und Mein</li>',
    '<li>Nicht Mein sondern Main</li></ul>'].join(''));
  
// Diese Zeile selektiert/filtert die TextNodes in newElement:
var textnodes = $('*', newElement).contents().filter(function(){ return this.nodeType == 3 ; });
  
// Durchlaufen der TextNodes:
$.each(textnodes, function () {
  // mit this.nodeValue erhält man den Text-Inhalt des Text-Elements im DOM
  if (this.nodeValue.indexOf('Mein')>=0) {
    //Ersetzen des TextNodes durch ein HTML-Konstrukt
    $(this).replaceWith(this.nodeValue.replace('Mein', '<b>Mein</b>'));
  }
});
  
// Anzeige des Ergebnis
console.log(newElement.html());

Incorporating a remote Subversion repository into a local spin off

To render and display the OpenSocial apps available on our platform we are using the Apache Shindig gadget server, currently with the version 1.0.incubating
Up until now we had just exported this Shindig version and committed this into our local in-house subversion repository. From there on we added all kinds of patches, bug fixes and extensions to it. Over the month this accumulated to about 50 different changes to the original shindig codebase, which made it very hard to upgrade to a newer Shindig version or to apply any patches for the original version.

Now that the time is coming to migrate to the OpenSocial 0.9 spec with Shindig 2.0 we rethought our Shindig development strategy and came up with a different process:

At first we refactored the changes we did heavily to be as separated as possible from the original Shindig codebase.
What we couldn’t strip out, we extracted as diff patches into separated patch files.
This left us with the original codebase, some 20 patch files and some extra php classes and JavaScript packages.
Now this allowed us to just commit the patches and extra files into our own subversion repository. Then we added a small build script which will export the rest of the folders and files we need from the Apache Shindig Subversion server. This means that these files are not under version control anymore and subversion does not want to commit them to the Apache Shindig Subversion (for which we have no write access) if some files have changed. For this files and folders there is a svn:ignore property set in our subversion, so that these files are not committed accidentally.
After the export the build script applies all patches and we have a working shindig server in our file system.


#!/bin/bash
apache_svn_base="https://svn.apache.org/repos/asf/"
shindig_svn_base="shindig/trunk"


paths[0]="config/OSML_library.xml"
paths[1]="config/container.js"
paths[2]="config/oauth.json"
paths[3]="content"
paths[4]="extras/src/main/javascript/features-extras"
paths[5]="features"
paths[6]="php/config/container.php"
paths[7]="php/docs"
paths[8]="php/external"
paths[9]="php/src"
paths[10]="php/test"
paths[11]="php/.htaccess"
paths[12]="php/index.php"


revision[0]="965715"
revision[1]="965715"
revision[2]="965715"
revision[3]="965715"
revision[4]="965715"
revision[5]="965715"
revision[6]="965715"
revision[7]="965715"
revision[8]="965715"
revision[9]="965715"
revision[10]="965715"
revision[11]="965715"
revision[12]="965715"


ELEMENTS=${#paths[@]}


for (( i=0;i<$ELEMENTS;i++)); do
# remove local files
rm -rf ${paths[${i}]}
# export remote files to local copy
svn export -r ${revision[${i}]} $apache_svn_base$shindig_svn_base/${paths[${i}]} ${paths[${i}]}
done


# apply patches
patches="patches/*.patch"


for f in $patches
do
echo "********** load patch $f"
patch -p0 -N -i $f
done

In this solution it is necessary for us to be able to see what we changed in the original files while developing, so that we can add or modify new patch files. For this we wrote a small diff script which downloads the version of a file from the Apache Shindig SVN and diffs it to its local copy.


#!/bin/bash
apache_svn_base="https://svn.apache.org/repos/asf/"
shindig_svn_base="shindig/trunk"


paths[0]="config/OSML_library.xml"
paths[1]="config/container.js"
paths[2]="config/oauth.json"
paths[3]="content"
paths[4]="extras/src/main/javascript/features-extras"
paths[5]="features"
paths[6]="php/config/container.php"
paths[7]="php/docs"
paths[8]="php/external"
paths[9]="php/src"
paths[10]="php/test"
paths[11]="php/.htaccess"
paths[12]="php/index.php"


revision[0]="965715"
revision[1]="965715"
revision[2]="965715"
revision[3]="965715"
revision[4]="965715"
revision[5]="965715"
revision[6]="965715"
revision[7]="965715"
revision[8]="965715"
revision[9]="965715"
revision[10]="965715"
revision[11]="965715"
revision[12]="965715"


ELEMENTS=${#paths[@]}
line="==================================================================="


for (( i=0;i<$ELEMENTS;i++)); do
find ${paths[${i}]} -type f -exec sh -c '(curl -s $2!svn/bc/$3/$4/$1 | diff -w - $1 | sed -e "1i\\
Index: $1\\
$5")' {} {} $apache_svn_base ${revision[${i}]} $shindig_svn_base $line \;
done

For all folders we traverse through all files, fetch the file from the remote Shindig SVN with CURL, diff the fetched content to the local file, and print out a ready diff patch with leading Index entry and separator line like its generated by the svn diff command.

Releasenotes Major Release 2010-08

Am Montag Nachmittag ist unser Major Release 2010-08 online gegangen. Neben zahlreichen Infrastruktur- und Backendmaßnahmen wurden folgende Features releast:

– Embedding auf Pinnwänden, in Gruppen und im Nachrichtendienst für externe Seiten
– Embedding Dialoge für Fotos, Videos, Apps, Pinnwandbilder, Gruppen und Profile
– Meldefunktion für einzelne Pinnwand-Posts und Foren-Posts
– Vorschau-Funktion für Pinnwand-Posts und Foren-Posts

Apps:
– Vergrößerung des Integration Views auf 800px Breite
– Überarbeitung Visitenkartenverwaltung