How to get Zemanta powered Related Posts on

Are you a user wondering how to get related posts and articles from around the world functionality back now that WordPress suddenly decided to turn Zemanta’s integrated service off?

It’s quite easy, actually. Zemanta has a browser extension that works on and/or on your self-hosted blog. All you have to do is to install it, register for an account and start using it.


When CubeViz meets statistical data

It is time for the next free webinar in the LOD2 webinar series: CubeViz – a facetted browser for statistical data. The webinar starts on May 28, 2013 at 4:00 PM CEST.

In this one hour webinar Michael Martin (University of Leipzig, AKSW) will present CubeViz – a facetted browser for statistical data utilizing the RDF Data Cube vocabulary which is the state-of-the-art in representing statistical data in RDF. Based on the vocabulary and the encoded Data Cube, CubeViz is generating a facetted browsing widget that can be used to filter interactively observations to be visualized in charts. Who doesn’t like charts instead of raw (linked) data? :)


So… If you are interested in Linked (Open) Data principles and mechanisms, LOD tools & services and concrete use cases that can be realised using LOD then join us in the free LOD2 webinar series!

Do not forget to register here:

Enhanced by Zemanta

European Data Forum 2013 – your data, our data, Big Data!

This year April will start Big… big as in Big Data, especially in Dublin, Ireland. LOD2 is one of the main organizers of a special event: on April 09-10,2013 Dublin hosts European Data Forum – EDF2013, an annual meeting place for industry, researchers, policy makers, and community initiatives, where they will be able to discuss the challenges and opportunities of (Big) Data in Europe.

‘The amount of data in our world has been exploding, and analysing large datasets — so-called big data — will become a key basis of competition, underpinning new waves of productivity growth, innovation, and consumer surplus.’ (McKinsey Global Institute, May 2011)

These challenges and opportunities around big data management, the single steps of the data value chain, technological innovations and innovative business models, as well as the legal framework for a sustainable European data economy will be discussed at EDF 2013.

Prestigious hardcore keynote speakers from Statoil, Telefonica Digital and Erricson will talk about Linked Data, Open Data, Big Data — you name it –, a moderated CIO discussion panel with selected experts will take place and comprehensive exhibition area is open to everyone willing to share and showcase their advances in solving real-world Big Data challenges. Check the call for Exhibits.

Registration and participation is free of charge. There is also an opportunity for financial travel support (mainly for SMEs and NGO/NPO) – please see the respective EDF2013 website for further details.


European Data Innovator Award

If you are an outstanding enterprise or individual

“… who have shown extraordinary vision and execution in the field of linked enterprise data management for their use of linked (open) data to start more efficient data management”

you might get the European Data Innovator Award, which was made possible by eccenca, a spin-off of Brox IT Solutions and AKSW Research group from University of Leipzig. More details here.

Are you the one?


Important facts, bits and dates

Location: Croke Park Conference Centre in Dublin, Ireland
Date: April 9 to 10, 2013
More Information:


Registration (EDF2013 is free of charge):

If you would like to attend better register today (i.e. ASAP). Space at EDF 2013 is limited to 300 participants and more than 50% of tickets are already booked.


Contact, share, communicate

Twitter: , hashtag: #EDF2013

Press Area:

LinkedIn Group:
Get in touch:



The European Data Forum 2013 is a joint activity of the EC projects:

The EDF2013 is supported by the European Commission as well as by the Digital Repository of Ireland (, STI International ( and DERI, NUI Galway (  EDF2013 is an associated event of the Irish Presidency of the Council of the EU (


GitHub Pull Request frenzy or… How to reference an existing issue almost without breaking a sweat

I’m on a rampage for the last two days… sort of. Why? I’m preparing for a free webinar on using LOD-enabled Open Refine (LODRefine) and I had to fix some issues (bugs) due to migration of LODGrefine from Google Refine to OpenRefine… OpenRefine used to be called Google Refine, endorsed by Google and hosted on Google Code… but it is not anymore. Now it’s on GitHub. Yay!

Image representing GitHub as depicted in Crunc...

Image via CrunchBase

svn is dead, long live git?

On GitHub you can fork a repo with a single click. It’s like magic. But… with fork comes great responsibility… if you’re into forking and contributing and committing and pushing that is.

Another thing you can do with one click is to create a pull request. Usually you want to do this when you implemented a super duper feature or fixed a bug.  Unfortunately, what you can’t do with one click is to link your pull request with an existing issue created on the upstream repo (i.e. repo you forked from), especially not if you’re working on a branch of your fork. The thing is: each time you create a pull request from GitHub website with a click, a new issue is created. Nasty. Of course I googled for solutions. People suggested using hub. I tried it, really, I did!, but referencing issue number in pull-request from the branch just didn’t work. All I got was this lousy

 Error creating pull request: Unprocessable Entity (HTTP 422)

I tried referencing issue with its number, with full URL, using base (-b) and head (-h) parameter… nothing worked.

Wild guess: To be honest, what I didn’t try was merging my branch into forked master beforehand and then create the pull request with issue number.  Will try next time I fix something, might take a while. :)

Long story short

I had to create pull-requests to  GitHub repositories I’ve forked for some existing issues. I ended up creating pull requests with clicking and creating new issues. At least I figured out how to automatically reference an existing issue (from the new one).

The easiest way was to reference the issue in a commit message, e.g.

git commit -m "Fixed #xxx"

where xxx is issue number, obviously.

Words of wisdom after the git-battle: At the end I had  two references to the issue, so be careful what you do in your branches before you push them to remote repository… It can get ugly! :) I just spent two hours figuring out how to remove one of the commits from remote repository history so it wouldn’t show up as a second reference to the issue, but no luck, just time lost.

Another wild guess: if you add some additional text to the commit message instead of just “Fixed #xxx”, new issue is created. Will definitely test it next time. Or you do it and tell me. Please… :)


Enhanced by Zemanta

2nd release of LOD2 technology stack

LOD2 project consortium announced new LOD2 technology stack release – a set of free tools, services and activities  serving one common purpose: creating knowledge out of interlinked data.

Linked Open Data Lifecycle

Linked Open Data Lifecycle (Photo credit: haschek)

The project coordinator Dr. Sören Auer states that “in a world of an emerging new data economy innovative and scalable mechanisms and technologies are needed to solve the arising data management problems – we see that lots of organisations are seeking for state-of-the-art data publishing and integration technologies along the whole data value chain to be able to efficiently use this growing amount of data. The efficient handling of data – available inside of organisations as well as on the internet – becomes more and more important to reach competitive advantage.

LOD2 tool stack at your service: supporting every step in the Linked Open Data Lifecycle.

This 2nd release of the stack contains updates to the components:

  • Ontowiki,
  • Silk,
  • SigmaEE and
  • Virtuoso,

but also some new components:

  • LOD enabled OpenRefine (by Zemanta),
  • extended version of Silk (University of Mannheim) with link suggestion management from LATC (by DERI),
  • rdfAuthor library (by ULEI) and

LOD2 stack is organized as a Debian package repository and can be relatively easy installed on any Debian-based system (yes, Ubuntu is one of them) or you can try it in an online demo or experiment with it on a virtual machine (you’ll need free VMware player).  In case you need some help with installation, you can also check How-to document with more details and instructions.

Hold on, there’s more.

Next webinar is all about this 2nd release of the LOD2 Stack on December 12, 2012 at 4pm CET. More information and registration are available here.
Join us and the may the LOD force will be with you.

Enhanced by Zemanta

Information and publishing industry get ready for Linked Open Data!

I’m glad to announce another free one-hour  LOD2webinar, this time it’s about “Linked Open Data in information and publishing industry”. Webinar will be presented by Wolters Kluwer Deutschland GmbH on November 19, 2012, at 4pm CET.

One of the main problems in publishing industry is information overload on one hand and scarce resources giving meaning to information on the other hand. Wolters Kluwer is a LOD2 partner from industry and they provide an use case how LOD and Semantic Web may/can solve this problem for their business. Presentation will guide you through different parts (tools) of the LOD2 stack, which are being used in their use case and expose the challenges that had to be addressed in the last two years. The topics covered are relevant for any industry that deals with a lot of data and documents, not only publishing.

What: LOD2 in information and publishing industry
Who: LOD2 project, presenter: Wolters Kluwer Deutschland GmbH
When: November 19, 2012, 04.00pm – 05.00pm CET
Information & Registration:

The LOD2 team is looking forward to meeting you at the webinar!

Enhanced by Zemanta

Want to import audio markers in After Affects? Let me ease your pain.

Problem: I have a composition in Adobe After Effects (AE) and audio track with people speaking, which have to be synced. Well, what I don’t have is an easy way to import markers into Adobe After Effects (AE) to make syncing easier. Dealing with audio in AE can be painful, especially if you have to manually create markers during RAM preview – the only option to actually hear the sound during preview!… You know the pain, don’t you?

Surprise: After extensive search on the web I found … nothing useful. I was surprised, too. It was time for me to dive into  scripting.

Solution: Good news, days of hitting keyboard for adding markers during RAM preview are over! All we need is a tiny script that reads tab separated file with timings and (marker) labels from Audacity and adds markers to a layer in a composition in AE. As simple as that.

Note: I’m assuming you’re familiar with AE workflow and basic concepts of animating in AE… and some basic scripting. :) If you’re not, try reading a tutorial or two on these topics first.

Follow me through few steps to your audio-marker freedom:

0. Download and install Audacity. Audacity is beautiful “free, open source, cross-platform software for recording and editing sounds”. It is  amazing alternative to expensive pieces of software for audio editing. If you already have it, you’re audio-smart! :)

1. Import your audio track into Audacity project and add new Label track (Tracks>Add new>Label Track). Click on label track at desired location and add label(s) (markers) at selected position(s) either via menu Tracks>Add Label at Selection or keyboard shortcut (OS-dependent). Try it, it is quite simple.You can also define text for your label. You should get something like this (e.g. three labels added):

Btw. Moving back and forth on a timeline in Audacity is… beautifully simple and fast.

2. When you have your labels all set, export them into text file using menu File>Export Labels. You can check the contents of the file in any text editor. These are the lines with tab separated values in my case (bold values are the ones we need in AE):

0.534059 0.534059 intro
1.428027 1.428027 Joe laughs
2.020136 2.020136 Jane singing

3. Now you are ready for the big guns. Open your composition in AE. Beware: the script will add markers to the first layer in open (active) composition. Make sure you have a layer there. :)

4. Go to File>Scripts>Open Script Editor, create new JavaScript file and copy/paste following code:

var aFile = File.openDialog ( 'Select text file with timings:', '*.txt', false ) ;
var timings = loadTimings(aFile);

//list of compositions
var compList = app.project.items;

if(compList.length > 0) {

  //1. take the first composition OR
  //var currentComposition = compList[1];

  //2. take currently active composition
  var currentComp = app.project.activeItem;

  if(currentComp.layers.length > 0) {

    //take the first layer of the active composition
    var markerLayer = currentComp.layer(1)

    for (var i = 0; i < timings.length; i++) {            
      marker = timings[i].split('t');              
      var marker_label = "";              
      if(marker.length > 2) {
        marker_label = marker[2];
      }"Marker").setValueAtTime(marker[0], new MarkerValue(marker_label))
  else {
    alert("No layer in this composition. Create a layer first. It can be a Null Object layer.");
else {
    alert("No composition in the project. Create a composition first. Its duration should be equal or longer than the end timestamp of the last marker.");

//loads markers from Audacity text files with labels
function loadTimings(filePath) {

  var timings = new Array ( ) ;

  var fileObj = File(filePath);
    if ( ! fileObj.exists ) {
  return timings ;

  try {'r');

    while(! fileObj.eof) {
    var currentLine = fileObj.readln();
  catch (errMain) {
  return timings;

P.S: Copy-paste might be the fastest way in comparison to saving file to god-knows-which-location-on-disk-depending-on-os-you-have. Just save your file where it suits you.

5. Run it either directly from ExtendScript Toolkit editor or save it and run it from AE via File>Scripts>Run Script from File or …

6. Enjoy the beauty of added markers in your composition. :) Don’t forget to add audio into your composition.


UPDATE [28 May 2013]:  Script has changed. Now it checks whether you have a composition (and layer) in the project. I also prepared a sample AE project, file with labels and the script in text format (download *.zip). Unpack the archive, open the project, copy the script in Script Editor and play with it using the label file provided. It works for AE CS5.

Enhanced by Zemanta

The day I got smart…

I still remember the day I wanted to throw my old mobile phone in the river. It’s funny story now, but it was not so funny then. It was really early in the morning, I was running near the river, listening to music on my phone, and enjoying the scenery. The sun was about to rise and I saw two beautiful swans dancing on the river. I stopped to take a picture, but the phone froze. No music, no picture, no anything. It took me few minutes to make it work again, but in the meanwhile swans flew away. I was so cross with the phone that I wanted to throw it into water. This ‘freezing accident’ was just a tip of an iceberg. My old phone had Symbian on it, but a lot of people switched to smart phones already. There were tons of cool applications for smarties, but almost none for Symbian. I really wanted to finally use this new Foursquare app!

Of course I didn’t throw the old one in the river, I got smart instead. Shiny black display greeted me on a hot summer day. My precious. I named it SparkPhone.

To be honest – I had good times with my old phone, too. Photos are worth a gazillion words:

Smart phone is not the only gadget I own and use regularly. Please welcome to the family one Kindle, two iPods, one powerful Polar RS300X ( sports watch on steroids, one Olympus dictaphone and one notebook. Which one is the favorite one?

Well, when I think of my gadgets I must say that mobile phone has always been my best friend and my worst enemy: it is the instrument for capturing the beauty of spontaneous moments (check the photos below), it was the weapon of love for announcing the (foreseen but premature) break-up, it connects me to the world when I need it, it captures my creative flashes, stores my forget-me-not-notes…

… oh, yes, and I can make/take phone calls with it.

Every friendship is booby trapped and this one is no exception. Gadgets, especially the new ones, have the tendency to enslave their owners. I’m aware of this and that’s why I don’t use it 24/7. I could go on and on about this, but I have to go now and play with my SparkPhone.

Catch me if you can: uncaught TypeError undefined, Twitter bootstrap and LODGrefine

While thinking about a presentation I’m preparing for SemTech2012 conference I noticed that LODGrefine is… a bit dry in appearance.

Fact #1: LODGrefine needs a face-lift.
Fact #2: Twitter bootstrap is super simple eyecandy magic available to the (web) masses.
Fact #3: sometimes errors are not what/where they seem to be.

LODGrefine (LOD-enabled version of Google Refine) client side already uses jQuery, so adding boostrap script was trivial. If you’re not familiar with the Google Refine framework – client-side scripts are located in main/webapp/modules/core/ folder. First I copied bootstrap.js to /externals folder inside /core, which contains other external scripts (hence the name), including  jquery-1.4.2.js. Then I added reference to boostrap.js in main/webapp/modules/core/MOD-INF/controller.js:


At last I changed css classes of buttons to bootstrap button classes and voila! LODGrefine buttons got a new look. Kinda. JavaScript console in Chrome was not so happy about the face-lift, I got this error: “Uncaught TypeError: Object [object Object] has no method ‘on’ in bootstrap.js”. I must admit I didn’t think much about this error (shame on me); I just changed the order of imports in controller.js and forgot about LODGrefine for few days.

Today I noticed boostrap.js is still causing trouble, this time the error was: “Uncaught TypeError undefined is not a function”. Of course I googled it I nailed down the possible causes for this error. The closest one was the order of importing scripts, so I put bootstrap.js after jquery script (again) and … got the first error. I googled it and… you know the drill.

Long story short:  I had to update from jQuery 1.4.2 to the latest version of jQuery. Now everything works just fine. :)

LODGrefine before:

LODGrefine after:

Enhanced by Zemanta

As fake as it gets: Git fake submodules, what else?

I’m learning about new things everyday… and today I learned a nice trick on how to deal with github repository inside another repository… my way.

Image representing GitHub as depicted in Crunc...

Image via CrunchBase

You see, I have had this problem: my LODGrefine github repository contains code of Google Refine (GR), code of my GR extension –  which is another github repository – and some other stuff. Some people might have GR already installed and therefore separate repository for the extension makes sense. I didn’t like the idea of a “proper” submodule for the extension, because: 1) it shows up as links on github , 2) when cloning the main repo, extension’s folder was empty – additional command is needed to pull the submodule from the github. It’s complicated.

Today I found this great solution of using fake submodule. It works swell! Code of the extension is visible in the main repo and I have all the code in one place… It’s a little more work updating it – calling git commit and git push twice – in main repo folder and in extension folder, but what a small price to pay for such a great solution! :D

Enhanced by Zemanta