15 September 2015

It is not a bug

PPA: NO_PUBKEY C2518248EEA14886

I faced the following error in Ubuntu 15.04 when trying to: sudo apt-get update

GPG error: http://ppa.launchpad.net vivid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C2518248EEA14886
Googling, there are several solutions for it, but none worked.
Only a old script that is in a couple of Ubuntu forums:



# This script adds PPA keys to the primary keyring in /etc/apt/trusted.gpg
# thus getting around the GPG limit of 40 keyrings.
# WARNING: It's only intended as the last resort measure.
# Rather than using it, reduce your use of PPAs.
set -e


[ -r /etc/lsb-release ] && . /etc/lsb-release ||
{ echo Cannot read /etc/lsb-release >&2; exit 1;}

[ Ubuntu = "$DISTRIB_ID" ] ||
{ echo This script is supposed to run on Ubuntu >&2; exit 2;}

{ echo Cannot determine installed Ubuntu release >&2; exit 2;}

usage() {
# Parameter: $1 - error message
<<! cat >&2
Usage: sudo $0
Example: sudo $0 $codename
exit 3

[ 0 = `id -u` ] || usage "Please run with sudo"

if [ -x /usr/bin/ubuntu-distro-info ]
codenames=`/usr/bin/ubuntu-distro-info --all | tr '\n' \|`
eval \
case \$1 in \
"$codenames$codename"') codename=$1;;
*) usage "Wrong release name: $1";;' \
[ 12 -le "${release%%.*}" ] &&
<<! cat >&2
This script works best with package 'distro-info' installed.

Consider installing distro-info with
sudo apt-get install distro-info

Continuing execution anyway


case $1 in
lucid|precise|trusty|utopic|vivid|$codename) codename=$1;;
*) usage "Wrong release name: $1";;

echo "Release: $codename"
echo Please wait...

tempfile() {
# Parameters: $1 - variable to hold the file name
# $2 - short file content description
local tmp
if tmp=`mktemp`
eval "$1='$tmp'"
currenttrap="${currenttrap}rm -f -- '$tmp';"
trap "$currenttrap" EXIT
echo "Cannot create temporary file for $2" >&2
exit 2

tempfile sources 'APT sources'
tempfile fingerprints 'key fingerprints'
tempfile key 'signing key'

eval $(apt-config shell sourcelist Dir::Etc::SourceList/f)
eval $(apt-config shell sourceparts Dir::Etc::SourceParts/d)
grep -hs '^[^#]' "$sourcelist" "$sourceparts"*.list > "$sources" ||:
grep -q '^Types:' "$sources" && {
echo "This script doesn't work with RFC822-style sources.list" >&2; exit 2

for ppaowner in $(
awk -F/ '/^deb[ \t]+.*ppa\.launchpad.*[ \t]+'$codename'/{print$4}' \
wget -qO- "$launchpadapi/~$ppaowner/ppas" |
awk -F'": "|"}' -v'RS="?, "' '/key_fingerprint/{print $2}' |
sort -u >> "$fingerprints"
for fingerprint in `sort -u "$fingerprints"`
wget -qO- "$keyserver/pks/lookup?op=get&search=0x$fingerprint" |
sed '/-BEGIN/,/-END/!d' > "$key"
if test "$fingerprint" = "$(
apt-key adv --with-colons --with-fingerprint "$key" |
awk -F: '/^fpr/{print $10}'
apt-key add "$key"
<<! cat - "$key" >&2
Key rejected: retrieved key doesn't match the fingerprint!

Fingerprint: $fingerprint

Retrieved key:
$(apt-key adv --with-fingerprint "$key")
================================================== ========

rm -f -- "$sources" "$fingerprints" "$key"
trap - EXIT

WebLogic Server XML Parsers

Many times there are question in WebLogic Server about parser factories:

java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature

  java.lang.ClassCastException: weblogic.xml.jaxp.RegistryXMLInputFactory cannot be cast to javax.xml.stream.XMLInputFactory
    Error weblogic.xml.jaxp.RegistryXMLInputFactory cannot be cast to javax.xml.stream.XMLInputFactory

 java.lang.NoSuchMethodError: javax.xml.parsers.DocumentBuilderFactory.newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/parsers/DocumentBuilderFactory;

Because the classpath retrieve from different parts these implemenations, including the JDK6 which bundles in it now.

This is how you can change by system properties the implementation, using xerces:

-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParser=org.apache.xerces.jaxp.SAXParserImpl

maybe you'll need to add xercesImpl.jar to your classpath. 

More info: 


09 July 2015

Eclipse Platform Runtime Binary

Although, it is on the web, it is not easier to get a basic/minimal Eclipse installer.

You need to go to: http://download.eclipse.org/eclipse/downloads/
and get the desired version.

i.e.: 4.5 Luna: http://download.eclipse.org/eclipse/downloads/drops4/R-4.5-201506032000/

There you can find several basic binaries, such us, SDK, Plug-ins, SDK-RPC, etc.

The smallest is: Platform Runtime Binary

More details in each binary: http://download.eclipse.org/eclipse/downloads/drops4/R-4.5-201506032000/details.html#PlatformRuntime

Anyway, if you want this basic version to install another plug-ins, such us, Dynamic Languages Toolkit then you need to download another version (it is not sufficent with only PLatform Runtime Binary).

01 June 2015

monson-haefel.com @archive.org

The domain http://www.monson-haefel.com/ seems to be lost by Monson-Haefel and for the same reason the Errata page of his bestselling J2EE Web Services http://www.monson-haefel.com/jws_errata.html

Although, it is JAX-RPC and kind of old for current days, still is a good knowledge repository.

The page can be retrieved at https://web.archive.org/web/20111206223908/http://www.monson-haefel.com/jws_errata.html

12 March 2015

Wonders of Numbers: Adventures in Mathematics, Mind, and Meaning

Fe de Errata

Small Errata for Hardcover First Edition of Wonders of Numbers

page 205, boxed equation, Chapter 89, near bottom: "c" should be superscripted

page 358, Chapter 89, 2nd line in Further Exploring: "c" should be superscripted

page 216, Chapter 95, line 3, missing upside-down F symbol. Should read "F(24)" not "(24)", where the "F" is the upside-down symbol. Similarly line 2 should read "Let's define a new function F(n)."

page 262, figure drawing error. Line segment misplaced. Figure 114.1 should have a line connecting point B to the dot directly to the the left instead of the line from the point below B to the point directly to the left.

page 374, figure drawing error. Line segment misplaced. Figure 114.1 should have a line connecting point B to the dot directly to the the left instead of the line from the point below B to the point directly to the left.
page 94, Equation 10 towards the bottom of the page is missing an italics "i" before the "sin".
page 379, it says " 9 + 9 + 999 = 1000 " should be " 9/9 + 999 = 1000 " 



I used to have a webpage where I was posting about recreational mathematics.
As usual, it can be found at archive.org:


My Blog List

Search This Blog


Blog Archive

There was an error in this gadget
There was an error in this gadget


The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
I review for the O'Reilly Reader Review Program Project Euler