Running Linux in Your Browser

17. May, 2011

Seeing is believing.

JavaScript has come a long way.


luaLaTeX: Odd Characters In PDF ToC

16. May, 2011

If you have odd Unicode characters in the bookmarks/table of contents of your PDF viewer when using lualatex 0.60 and the package hyperref, try

\usepackage[pdfencoding=unicode]{hyperref}

or

\usepackage[pdfencoding=auto]{hyperref}


Spammers Found Something New

15. May, 2011

Since Friday, a spammer tries to spam me via pingbacks ūüė¶

It’s nice that WordPress lets me move this comment to spam, it’s not so nice that the spam keeps coming back.

But I’m sure they’ll fix that soon ūüôā


New Approach to Documentation

15. May, 2011

Documentation usually has these three attributes: It’s incomplete, outdated and plain wrong.

That doesn’t apply to every bit of information in your documentation but it you can be sure the statement above is correct for the whole documentation.

As a consumer of such documents, it’s a nice puzzler to determine into which of the three categories a bit of information belongs.

This leads to the common “we hate documentation” stance that all software developers soon adopt, no matter if they have to write/maintain the documentation or if they have to use it.

As we all know, the only reliable source of documentation are unit tests. But they can still be incomplete (= missing the example you need) or outdated (= missing examples for the latest API).

The solution? Generate documentation from the source code. And I don’t mean “from javadoc in the source code”, I mean literally from the code. If a method is used in a certain way in 317 places in your code and once in a different way, then you have two examples. One of them probably works, the other is probably documents a bug which your tests missed.

Eclipse is starting to get support for this. The first step was code completion. Now we have a couple of guys working on Eclipse Code Recommenders.

This summer,¬†Stefan Hen√ü starts to work on an “extended documentation platform” for Eclipse.


RC1 of Testing Ready For Testing [Updated]

15. May, 2011

I’ve recreated the testing repository using the latest version of my Maven Tools 4 Eclipse.

To browse the repository, please use the Nexus interface.

If you pull in any dependencies from the repository, non-Eclipse artifacts will come from from Project Orbit. If you want non-Eclipse dependencies (like log4j) from Maven Central, you need to change your profiles.

Deactivate “m4e.orbit” and activate “m4e.maven-central“. From the command line, that’s “-P m4e.maven-central” but I suggest to put these into your settings.xml¬†(add “<activeProfile>m4e.maven-central</activeProfile>” to it).

Note that you don’t need to deactivate the profile m4e.orbit. As soon as you specify a profile on the command line or via the settings, it’s deactivated automatically.

“mvn help:active-profiles” and “mvn¬†dependency:tree” are your friends.

Let me know if you find anything missing, odd, broken by  filing a bug or posting a comment here.

UPDATE 2011-05-30

Some dependencies from the new repo can also be found on Maven Central. One nasty problem is that both repos contain org.eclipse.equinox.app but the version from Maven Central contains odd dependencies which break your build.

To fix this, add this to your parent/root POM:

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.eclipse.dash</groupId>
        <artifactId>dependency-management</artifactId>
        <version>3.6.2</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    <dependencies>
  <dependencyManagement>

This will limit all version ranges to the versions found in our new repository. Since Maven Central didn’t import new versions for at least one year, this should fix all problems.

Related posts:


Safe Browsing At Home

13. May, 2011
The logo of Mozilla Firefox 3.5 and 3.6 from t...

Image via Wikipedia

If you’re worried about security while you’re browsing the web (and you probably should), here is a simple solution that might actually work (or at least raises the bar quite a bit): BitBox (German)

In a nutshell, it’s a secured Linux system running Firefox 4 inside of VirtualBox. The browser can only access the resources of the virtual PC.

So to infect your real system, the hacker must: Break Firefox on Linux (which is hard), break Linux (hard), break through the virtual PC layer (not that easy either) to be able to infect your real PC (as opposed to just infect your PC).


Maven Tools for Eclipse: M2 Repository Analysis And Dependency Management

13. May, 2011

I’ve finished RC1 of my set of tools to import Eclipse plug-ins into¬†Maven 2 repositories. You can find the source on github. It needs Python 2.7 and lxml. pip is your friend.

The new features: There is now a tool to analyze the M2 repository for oddities. Currently, it can find these issues:

  • Dependencies which are used but not part of the repository
  • Dependencies which are used with different versions or version ranges (i.e. when one POM includes a dependency with 1.0 and another POM pulls in the very same dependency with version 1.1)
  • Dependencies which are used without versions or version ranges or a catch-all version like [0,)
  • Several versions of the same artifact in the repository

Plus it prints a list of all POMs in the repo with files (jar, pom, sources, test-sources, …). Here is a sample report.

The last tool can create a POM file with a dependencyManagement element containing the versions of the POMs in the repository. You can use this to nail down all versions to the ones existing in your repository (so you don’t accidentally pull in something you don’t want).

Lastly, I’ve enhanced the patch tool. Instead of overwriting replaced dependencies, it will now move them into a new profile. This way, users of the repository can specify which dependency they want (the one from the repository or, say, one from Maven Central).

I will try to build a new testing repo over the weekend so we can start wrapping up the necessary patches for a release.

Related posts: Eclipse 3.6.2 Artifacts for Maven 2


How Your CV Could Look Like

12. May, 2011

If you’re like me, then you’re also struggling with your CV. What to write? What to omit? Does that sound too bashful? Or too timid?

How about this one: Hagan Blount CV.

My next CV will probably not look like this but it sure got me thinking …


AeroFS – A New Distributed File System

11. May, 2011

AeroFS is a new distributed file system (from their website):

Unlimited Storage

Using AeroFS, you can sync allthe data on your devices. No limits. No caps. You already have your storage, now use it!

Ultimate Privacy

AeroFS will never store your files in the cloud (unless you want to, of course ;-). Your files will only be shared with those who you invite.

Better Security

AeroFS encrypts your data end-to-end. This way, we are able to provide better security than most online storage services. Seriously.

  • Because AeroFS is completely distributed, even if we experience downtime,you¬†won’t!
Sounds like an interesting solution. Especially since your data never leaves your country (unless you add foreign servers) and there are only very little cost for the company behind the service (you run all the involved servers).
With Dropbox and similar services, you can never be sure where your data ends up. They say it’s safe but that only holds true until a) the company goes bankrupt or b) some government agency knocks on their doors to hunt terrorists.

Use Internet Explorer 6, 7 and 8 in Ubuntu

11. May, 2011
VirtualBox

Image via Wikipedia

If you want to run IE6-8 on Ubuntu (or any other Linux distro that support VirtualBox), see this blog post: Use Internet Explorer 6, 7 and 8 in Ubuntu