Validate XML to XSD with XMLLINT on CLI

Awesome-ness!!
I was looking for a nice tool to validate my XML messages against an XML Schema, when I ran into this command where you can really easily validate on the command line. That’s really cool since we’re becoming CLI ninjas anyway!
Update: This also works on Windows with this little gem.
The command is as follows:

xmllint --noout --schema schema.xsd ./message.xml

Which delivered the following output:

joris@jorislatitude:~/workspaces/_examples/XSD$ xmllint --noout --schema sample_schema.xsd ./messageone.xml
./messageone.xml:2: element S_UNB: Schemas validity error : Element 'S_UNB': This element is not expected. Expected is ( INSDES ).
./messageone.xml fails to validate

As shown in above message, my example failed to validate, which is what I suspected, but now I can send my integration partner a better and really precise explanation! As said above: Awesomeness! 🙂

Proxy authentication in Ubuntu 11.10 Oneiric Ocelot (Update)

This post simplifies the way to set your proxy which was explained in my previous post on October 21st.
(From the original post): Since Ubuntu 11.10, the proxy settings tab in the system settings have been changed, it’s no longer possible to enter your credentials in the proxy settings.
Before you start, you’ll need to find these values:

  • Proxy host
  • Proxy port
  • Proxy user name (would normally be your personal user name)
  • Proxy user password (would normally be your personal password)

Open a terminal and use the following commands to set these values, each line represents one command (! Adjust the values to your values !)

gsettings set org.gnome.system.proxy use-same-proxy 'true'
gsettings set org.gnome.system.proxy.http authentication-password 'ReplaceWithYourPassword'
gsettings set org.gnome.system.proxy.http authentication-user 'ReplaceWithYourUsername'
gsettings set org.gnome.system.proxy.http host 'ReplaceWithYourProxyHost'
gsettings set org.gnome.system.proxy.http port 'ReplaceWithYourProxyPort'
gsettings set org.gnome.system.proxy.http use-authentication 'true'
gsettings set org.gnome.system.proxy.http enabled 'true'

This should give you access through your company proxy! Happy browsing!
Ps. When you’re at home and you want disable the use of a proxy, use this command:

gsettings set org.gnome.system.proxy.http enabled 'false'

Proxy authentication in Ubuntu 11.10 Oneiric Ocelot

UPDATE December 27th: I’ve added a post which doesn’t need dconf-editor here.

Since Ubuntu 11.10, the proxy settings tab in the system settings have been changed, it’s no longer possible to enter your credentials in the proxy settings.
There’s a solution where you can edit these settings through dconf-tools:
Download and run dconf-tools  in the terminal by executing these two lines of code:

sudo apt-get install dconf-tools
dconf-editor

Within dconf-editor, goto “system > proxy” and change “mode” to manual.
Then select “use-same-proxy”
After that, go to “system > proxy > http”, enter your proxy information and select “enable”
Make sure ftp, https and socks have “0” (zero) on “port” and nothing on “Host” field
Everything should work fine now.
Update on October 23th with screenshots:


(Please note: you should change the blurred values)

Ubuntu terminal doesn't unset proxy

Last week I’ve brought my own laptop to work and setting up evolution, subversion, the alsb and bpm environments with their proper endpoints and last but not least, I’ve set my Ubuntu Network Proxy to my companies proxy settings.
When I’ve returned home, I found out that the proxy settings were still active. One might imagine that would purge the settings in the Network Proxy to “Direct Internet Connection” but unfortunately, it did not.
Apparently there are three proxy settings which are left being set when using the terminal:

  • http_proxy
  • https_proxy
  • ftp_proxy
Apt-get, wget and all the CLI programs which use internet would fail because they’re searching for this proxy setting, but it isn’t to be found since we’re not at our company 🙂
A temporary solution is to unset these proxy settings, copy and paste each of these commands in your terminal and press enter:
unset http_proxy
unset https_proxy
unset ftp_proxy

I’ll add a permanent solution when I find it. For now this will clear the proxy settings within your terminal and you’ll be able to update and upgrade your repos through the terminal again!
Ps. I’m still looking for a nice dhcp client script which would add dns search domains to my /etc/resolv.conf, if you might know one; keep me posted!

Tabs are huge in Eclipse on Ubuntu

You might have noticed the tabs are a bit bigger in Eclipse than what you’re used to when running Eclipse in Windows.
(This is a minor annoyance, but more screen real estate is always welcome..!)
This is what it would look like before:

You can solve this by creating a custom gtkrc-2.0 file, which should be in your home folder.
Start up your terminal and execute the bold text:

joris@dipshit:~$ nano ~/.gtkrc-2.0

You’re in nano right now, insert the following text in .gtkrc-2.0:

style "compact-toolbar"
{
        GtkToolbar::internal-padding = 0
        xthickness = 1
        ythickness = 1
}
style "compact-button"
{
        xthickness = 0
        ythickness = 0
}
class "GtkToolbar"                              style "compact-toolbar"
widget_class "*<GtkToolbar>*<GtkButton>"        style "compact-button"

Press “CTRL+x” to close the file and press “Y” to save the edited contents.
Next time you’ll open eclipse, the tabs will look like this:

Black preview in GWT Designer in Eclipse on Ubuntu

Unfortunatly there’s a small snag when you’re using GWT designer on ubuntu with the libwebkit libs. When libwebkitgtk-1.0.so.2 isn’t found, the GWT designer will display a black field when you’re editing gui items, as shown on the example below:

GWT Designer on Ubuntu

You can easily solve this by symbolic linking to the already existing libwebkit library. Only execute the commands which are shown in bold:

joris@dipshit:~$ cd /usr/lib
joris@dipshit:/usr/lib$ ls -lhatr |grep libwebkit
-rw-r--r--   1 root root       19M 2011-04-20 14:52 libwebkitgtk-1.0.so.0.6.0
lrwxrwxrwx   1 root root        25 2011-08-12 19:14 libwebkitgtk-1.0.so.0 -> libwebkitgtk-1.0.so.0.6.0
joris@dipshit:/usr/lib$ sudo ln -s libwebkitgtk-1.0.so.0 libwebkit-1.0.so.2
joris@dipshit:/usr/lib$ ls -lhatr |grep libwebkit
-rw-r--r--   1 root root       19M 2011-04-20 14:52 libwebkitgtk-1.0.so.0.6.0
lrwxrwxrwx   1 root root        25 2011-08-12 19:14 libwebkitgtk-1.0.so.0 -> libwebkitgtk-1.0.so.0.6.0
lrwxrwxrwx   1 root root        21 2011-09-06 23:04 libwebkit-1.0.so.2 -> libwebkitgtk-1.0.so.0
joris@dipshit:/usr/lib$

Remark; This’ll create the symbolic link based on the link which Ubuntu already placed. If we would place it on 0.6.0, there might be a problem when we upgrade libwebkitgtk.
Happy designing!

SWTError with Oracle BPM Studio 10gR3 on Ubuntu

I’ve been busy trying to get my development environment running on Ubuntu 11.04.
The following error pops up while trying to create a presentation for a bpm variable:

XPCOM error -2147467259
org.eclipse.swt.SWTError: XPCOM error -2147467259
at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:1296)
at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:266)
at org.eclipse.swt.browser.Browser.<init>(Browser.java:109)
at fuego.ui.peer.swt.SwtBrowser.createBrowser(SwtBrowser.java:137)
at fuego.ui.peer.swt.SwtBrowser.<init>(SwtBrowser.java:43)
at fuego.ui.peer.swt.SwtFactory.createBrowser(SwtFactory.java:149)
[…]

It seems that studio can’t find xulrunner, (a runtime environment developed by the Mozilla Foundation to provide a common back-end for XUL user interface language applications)
The most common solution I could find through Google, is to install xulrunner through the ubuntu repos. Unfortunatly xulrunner 1.8 isn’t in the Natty repos so I had to download it myself.
You can find the latest 1.8 xulrunner here: Mozilla.org xulrunner-1.8.1.3.en-US.linux-i686-20080128.tar.gz

  • Unpack the contents of xulrunner-1.8.1.3.en-US.linux-i686-20080128.tar.gz
  • Rename the unpacked xulrunner directory to xulrunner-1.8
  • Move the newly created xulrunner-1.8 directory to /usr/bin
  • Fix permissions on the new directory: sudo chmod -R root:root /usr/bin/xulrunner-1.8

Final step is to add the following line to eclipse/eclipse.ini:
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.8
After this, you can start your studio and create presentations with no problems!