How to convert a .PDF file to .PNG using Image Magick

ImageMagick is a powerfull tool to manipulate images. If you want to convert a .PDF to an .PNG file use the following command:

convert -verbose -density 300 -trim input.pdf -quality 100 -sharpen 0x1.0 -background white -flatten output.png

Assuming that your pdf is called “input.pdf” and consists only of one page. The above command colors any transparent background white.

(via stackoverflow.com and imagemagick.org)

Certified Salesforce Platform App Builder – Part 1: Exam Overview

In order to prepare and pass the Salesforce App Builder Exam I follow the learning path as described in the official “Certified Salesforce Platform App Builder Study Guide“.

But how many questions on each topic have to be answered in the exam? The total number of questions is 60 and the expected number of questions on each topic can easily be calculated:

Overview of exam questions per topic

Topic Weight Questions
Business Logic and Process Automation 27% 16,2
Data Modeling and Management 20% 12
User Interface 14% 8,4
Security 10% 6
Salesforce Fundamentals 8% 4,8
App Deployment 8% 4,8
Reporting 5% 3
Mobile 5% 3
Social 3% 1,8
Total 100% 60

My strategy is to begin with the most important topic with the most questions and work my way down to the end of the list.

This post is the beginning of a series of posts on how I prepared for the exam. This part gave an overview of the topics and their weights. In the next part of I will focus on “Business Logic and Process Automation” in Salesforce and go into more depth.

Stay tuned and stay focused!

How to choose a versioning scheme for your software

As a developer, there comes the time were you think about how to version your software. One approach is “Semantic Versioning” which leverages the level of change on your public API. Depending on what you changed in your code, Semantic Versioning proposes different version numbers:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Seems to be an appropriate scheme on versioning software. Which other schemes do you think about? Leave me a comment then I’m going to update this post accordingly.

How to get Skype running on Ubuntu 13.10

I got Skype running on Ubuntu 13.10 using the following commands:

[code lang=”bash”]
sudo -s
mv /usr/bin/skype /usr/bin/skype-bin
emacs /usr/bin/skype
[/code]

Filling the file with the following content:

[code lang=”bash”]
#!/bin/sh
export LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1
exec skype-bin
[/code]

Don’t forget to change the file mode:
[code lang=”bash”]
chmod 0755 /usr/bin/skype
[/code]

(via timgood)

How to mount Novell directory in Ubuntu

First you have to install ncpfs using apt-get:

[code language=”bash”]
sudo apt-get install ncpfs
[/code]

Then mount your novell directories using the following commands:

[code language=”bash”]
mkdir /media/novell
sudo chown <localuser>:<localgroup> /media/novell
sudo ncpmount -S <name-of-netware-server> -A <fully-qualified-name-of-server-or-ip-address> -U <novellusername-using-dot-notation> -u <localusername> -g <localgroup> -o nfsextras,symlinks,tcp,rw /media/novell -p cp850 -y utf8
[/code]

This will mount all of the volumes. If you wish to mount a specific volume use the -V option.

Having issues? Just drop me a line.

Enable HTTPS everywhere

SSL-Report for blog.muehlburger.at
SSL-Report for blog.muehlburger.at

Finally I finished to configure my HTTPS protocol support for blog.muehlburger.at. Supporting encrypted communication is an important part of the internet today. Everybody should support encrypted communication on the web. A good resource on how to select strong cypher suites and to configure your web server to support encryption properly is bettercrypto.org.

There is also a great video covering the current state of the art in crypto held by security researchers at 30C3:

I configured nginx to support encrypted communication exclusively for my WordPress installation. The PDF guide from bettercrypto.org was a great resource for selecting the cypher suits and some additional parameters.

If you would like to configure your nginx webserver and WordPress installation to support https just drop me a message. I am pleased to help you with my experiences.

(via A year in Crypto)

How to fix error on Pentaho Data Integration (Kettle) startup

Howto fix startup error of Pentaho Data Integration (Kettle) on CentOS 6? You just need to modify the spoon.sh startup script after downloading and unzipping Pentaho Data Integration. The modification updates the Java runtime options for Kettle to startup properly. Therefore open

[code language=”bash”]spoon.sh[/code]

and change the end of the file in the following way:

[code language=”bash”]
# ******************************************************************
# ** Set java runtime options **
# ** Change 512m to higher values in case you run out of memory **
# ** or set the PENTAHO_DI_JAVA_OPTIONS environment variable **
# ******************************************************************

if [ -z "$PENTAHO_DI_JAVA_OPTIONS" ]; then
PENTAHO_DI_JAVA_OPTIONS="-Xmx512m -XX:MaxPermSize=256m"
fi

OPT="$OPT $PENTAHO_DI_JAVA_OPTIONS -Djava.library.path=$LIBPATH -DKETTLE_HOME=$KETTLE_HOME -DKETTLE_REPOSITORY=$KETTLE_REPOSITORY -DKETTLE_USER=$KETTLE_USER -DKETTLE_PASSWORD=$KETTLE_PASSWORD -DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES -DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT -Dorg.eclipse.swt.browser.XULRunnerPath=/dev/null"
# ***************
# ** Run… **
# ***************
"$_PENTAHO_JAVA" $OPT $STARTUP -lib $LIBPATH "${1+$@}"
[/code]

Everything I did was appending

[code language=”bash”]-Dorg.eclipse.swt.browser.XULRunnerPath=/dev/null"[/code]

to the

[code language=”bash”]OPT[/code]

part as described in ticket TDI-24139.