Stig Sandbeck Mathisen: Using LLDP on Linux. What's on the other side?
On any given server, or workstation, knowing what is at the other end
of the network cable is often very useful.
There s a protocol for that: LLDP. This is a link layer protocol, so
it is not routed. Each end transmits information about itself
periodically.
You can typically see the type of equipment, the server or switch
name, and the network port name of the other end, although there are
lots of other bits of information available, too.
This is often used between switches and routers in a server centre,
but it is useful to enable on server hardware as well.
There are a few different packages available. I ve looked at a few of
them available for the RedHat OS family (Red Hat Enterprise Linux,
CentOS, ) as well as the Debian OS family (Debian, Ubuntu, )
(Updated 2016-04-29, added more recent information about lldpd, and
gathered the switch output at the end.)
ladvd
A simple daemon, with no configuration needed. This runs as a
privilege-separated daemon, and has a command line control
utility. You invoke it with a list of interfaces as command line
arguments to restrict the interfaces it should use.
ladvd is not available on RedHat, but is available on Debian.
Install the ladvd package, and run ladvdc to query the daemon for
information.
ladvd
A simple daemon, with no configuration needed. This runs as a
privilege-separated daemon, and has a command line control
utility. You invoke it with a list of interfaces as command line
arguments to restrict the interfaces it should use.
ladvd is not available on RedHat, but is available on Debian.
Install the ladvd package, and run ladvdc to query the daemon for
information.
root@turbotape:~# ladvdc
Capability Codes:
r - Repeater, B - Bridge, H - Host, R - Router, S - Switch,
W - WLAN Access Point, C - DOCSIS Device, T - Telephone, O - Other
Device ID Local Intf Proto Hold-time Capability Port ID
office1-switch23 eno1 LLDP 98 B 42
Even better, it has output that can be parsed for scripting:
root@turbotape:~# ladvdc -b eno1
INTERFACE_0='eno1'
HOSTNAME_0='office1-switch23'
PORTNAME_0='42'
PORTDESCR_0='42'
PROTOCOL_0='LLDP'
ADDR_INET4_0=''
ADDR_INET6_0=''
ADDR_802_0='00:11:22:33:44:55
VLAN_ID_0=''
CAPABILITIES_0='B'
TTL_0='120'
HOLDTIME_0='103'
my new favourite :)
lldpd
Another package is lldpd , which is also simple to configure and
use.
lldpd is not available on RedHat, but it is present on Debian.
It features a command line interface, lldpcli , which can show output
with different level of detail, and on different formats, as well as
configure the running daemon.
root@turbotape:~# lldpcli show neighbors
-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------
Interface: eno1, via: LLDP, RID: 1, Time: 0 day, 00:00:59
Chassis:
ChassisID: mac 00:11:22:33:44:55
SysName: office1-switch23
SysDescr: ProCurve J9280A Switch 2510G-48, revision Y.11.12, ROM N.10.02 (/sw/code/build/cod(cod11))
Capability: Bridge, on
Port:
PortID: local 42
PortDescr: 42
-------------------------------------------------------------------------------
Among the output formats are json , which is easy to re-use elsewhere.
root@turbotape:~# lldpcli -f json show neighbors
"lldp":
"interface":
"eno1":
"chassis":
"office1-switch23":
"descr": "ProCurve J9280A Switch 2510G-48, revision Y.11.12, ROM N.10.02 (/sw/code/build/cod(cod11))",
"id":
"type": "mac",
"value": "00:11:22:33:44:55"
,
"capability":
"type": "Bridge",
"enabled": true
,
"via": "LLDP",
"rid": "1",
"age": "0 day, 00:53:23",
"port":
"descr": "42",
"id":
"type": "local",
"value": "42"
lldpad
A much more featureful LLDP daemon, available for both the Debian and
RedHat OS families. This has lots of features, but is less trivial to
set up.
Configure lldp for each interface
#!/bin/sh
find /sys/class/net/ -maxdepth 1 -name 'en*'
while read device; do
basename "$device"
done
while read interface; do
lldptool set-lldp -i "$interface" adminStatus=rxtx
for item in sysName portDesc sysDesc sysCap mngAddr; do
lldptool set-tlv -i "$interface" -V "$item" enableTx=yes
sed -e "s/^/$item /"
done
sed -e "s/^/$interface /"
done
Show LLDP neighbor information
#!/bin/sh
find /sys/class/net/ -maxdepth 1 -name 'en*'
while read device; do
basename "$device"
done
while read interface; do
printf "%s\n" "$interface"
ethtool $interface grep -q 'Link detected: yes'
echo " down"
echo
continue
lldptool get-tlv -n -i "$interface" sed -e "s/^/ /"
echo
done
[...]
enp3s0f0
Chassis ID TLV
MAC: 01:23:45:67:89:ab
Port ID TLV
Local: 588
Time to Live TLV
120
System Name TLV
site3-row2-rack1
System Description TLV
Juniper Networks, Inc. ex2200-48t-4g , version 12.3R12.4 Build date: 2016-01-20 05:03:06 UTC
System Capabilities TLV
System capabilities: Bridge, Router
Enabled capabilities: Bridge, Router
Management Address TLV
IPv4: 10.21.0.40
Ifindex: 36
OID: $
Port Description TLV
some important server, port 4
MAC/PHY Configuration Status TLV
Auto-negotiation supported and enabled
PMD auto-negotiation capabilities: 0x0001
MAU type: Unknown [0x0000]
Link Aggregation TLV
Aggregation capable
Currently aggregated
Aggregated Port ID: 600
Maximum Frame Size TLV
9216
Port VLAN ID TLV
PVID: 2000
VLAN Name TLV
VID 2000: Name bumblebee
VLAN Name TLV
VID 2001: Name stumblebee
VLAN Name TLV
VID 2002: Name fumblebee
LLDP-MED Capabilities TLV
Device Type: netcon
Capabilities: LLDP-MED, Network Policy, Location Identification, Extended Power via MDI-PSE
End of LLDPDU TLV
enp3s0f1
[...]
on the switch side
On the switch, it is a bit easier to see what s connected to each
interface:
office switch
On the switch side, this system looks like:
office1-switch23# show lldp info remote-device
LLDP Remote Devices Information
LocalPort ChassisId PortId PortDescr SysName
--------- + ------------------------- ------ --------- ----------------------
[...]
42 22 33 44 55 66 77 eno1 Intel ... turbotape.example.com
[...]
office1-switch23# show lldp info remote-device 42
LLDP Remote Device Information Detail
Local Port : 42
ChassisType : mac-address
ChassisId : 00 11 22 33 33 55
PortType : interface-name
PortId : eno1
SysName : turbotape.example.com
System Descr : Debian GNU/Linux testing (stretch) Linux 4.5.0-1-amd64 #1...
PortDescr : Intel Corporation Ethernet Connection I217-LM
System Capabilities Supported : bridge, router
System Capabilities Enabled : bridge, router
Remote Management Address
Type : ipv4
Address : 192.0.2.93
Type : ipv6
Address : 20 01 0d b8 00 00 00 00 00 00 00 00 00 00 00 01
Type : all802
Address : 22 33 44 55 66 77
datacenter switch
ssm@site3-row2-rack1> show lldp neighbors
Local Interface Parent Interface Chassis Id Port info System Name
[...]
ge-0/0/38.0 ae1.0 01:23:45:67:89:58 Interface 2 as enp3s0f0 server.example.com
ge-1/0/38.0 ae1.0 01:23:45:67:89:58 Interface 3 as enp3s0f1 server.example.com
[...]
ssm@site3-row2-rack1> show lldp neighbors interface ge-0/0/38
LLDP Neighbor Information:
Local Information:
Index: 157 Time to live: 120 Time mark: Fri Apr 29 13:00:19 2016 Age: 24 secs
Local Interface : ge-0/0/38.0
Parent Interface : ae1.0
Local Port ID : 588
Ageout Count : 0
Neighbour Information:
Chassis type : Mac address
Chassis ID : 01:23:45:67:89:58
Port type : Mac address
Port ID : 01:23:45:67:89:58
Port description : Interface 2 as enp3s0f0
System name : server.example.com
System Description : Linux server.example.com 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 4
System capabilities
Supported : Station Only
Enabled : Station Only
Management Info
Type : IPv6
Address : 2001:0db8:0000:0000:0000:dead:beef:cafe
Port ID : 2
Subtype : 2
Interface Subtype : ifIndex(2)
OID : 1.3.6.1.2.1.31.1.1.1.1.2
root@turbotape:~# lldpcli show neighbors
-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------
Interface: eno1, via: LLDP, RID: 1, Time: 0 day, 00:00:59
Chassis:
ChassisID: mac 00:11:22:33:44:55
SysName: office1-switch23
SysDescr: ProCurve J9280A Switch 2510G-48, revision Y.11.12, ROM N.10.02 (/sw/code/build/cod(cod11))
Capability: Bridge, on
Port:
PortID: local 42
PortDescr: 42
-------------------------------------------------------------------------------
Among the output formats are json , which is easy to re-use elsewhere.
root@turbotape:~# lldpcli -f json show neighbors
"lldp":
"interface":
"eno1":
"chassis":
"office1-switch23":
"descr": "ProCurve J9280A Switch 2510G-48, revision Y.11.12, ROM N.10.02 (/sw/code/build/cod(cod11))",
"id":
"type": "mac",
"value": "00:11:22:33:44:55"
,
"capability":
"type": "Bridge",
"enabled": true
,
"via": "LLDP",
"rid": "1",
"age": "0 day, 00:53:23",
"port":
"descr": "42",
"id":
"type": "local",
"value": "42"
lldpad
A much more featureful LLDP daemon, available for both the Debian and
RedHat OS families. This has lots of features, but is less trivial to
set up.
Configure lldp for each interface
#!/bin/sh
find /sys/class/net/ -maxdepth 1 -name 'en*'
while read device; do
basename "$device"
done
while read interface; do
lldptool set-lldp -i "$interface" adminStatus=rxtx
for item in sysName portDesc sysDesc sysCap mngAddr; do
lldptool set-tlv -i "$interface" -V "$item" enableTx=yes
sed -e "s/^/$item /"
done
sed -e "s/^/$interface /"
done
Show LLDP neighbor information
#!/bin/sh
find /sys/class/net/ -maxdepth 1 -name 'en*'
while read device; do
basename "$device"
done
while read interface; do
printf "%s\n" "$interface"
ethtool $interface grep -q 'Link detected: yes'
echo " down"
echo
continue
lldptool get-tlv -n -i "$interface" sed -e "s/^/ /"
echo
done
[...]
enp3s0f0
Chassis ID TLV
MAC: 01:23:45:67:89:ab
Port ID TLV
Local: 588
Time to Live TLV
120
System Name TLV
site3-row2-rack1
System Description TLV
Juniper Networks, Inc. ex2200-48t-4g , version 12.3R12.4 Build date: 2016-01-20 05:03:06 UTC
System Capabilities TLV
System capabilities: Bridge, Router
Enabled capabilities: Bridge, Router
Management Address TLV
IPv4: 10.21.0.40
Ifindex: 36
OID: $
Port Description TLV
some important server, port 4
MAC/PHY Configuration Status TLV
Auto-negotiation supported and enabled
PMD auto-negotiation capabilities: 0x0001
MAU type: Unknown [0x0000]
Link Aggregation TLV
Aggregation capable
Currently aggregated
Aggregated Port ID: 600
Maximum Frame Size TLV
9216
Port VLAN ID TLV
PVID: 2000
VLAN Name TLV
VID 2000: Name bumblebee
VLAN Name TLV
VID 2001: Name stumblebee
VLAN Name TLV
VID 2002: Name fumblebee
LLDP-MED Capabilities TLV
Device Type: netcon
Capabilities: LLDP-MED, Network Policy, Location Identification, Extended Power via MDI-PSE
End of LLDPDU TLV
enp3s0f1
[...]
on the switch side
On the switch, it is a bit easier to see what s connected to each
interface:
office switch
On the switch side, this system looks like:
office1-switch23# show lldp info remote-device
LLDP Remote Devices Information
LocalPort ChassisId PortId PortDescr SysName
--------- + ------------------------- ------ --------- ----------------------
[...]
42 22 33 44 55 66 77 eno1 Intel ... turbotape.example.com
[...]
office1-switch23# show lldp info remote-device 42
LLDP Remote Device Information Detail
Local Port : 42
ChassisType : mac-address
ChassisId : 00 11 22 33 33 55
PortType : interface-name
PortId : eno1
SysName : turbotape.example.com
System Descr : Debian GNU/Linux testing (stretch) Linux 4.5.0-1-amd64 #1...
PortDescr : Intel Corporation Ethernet Connection I217-LM
System Capabilities Supported : bridge, router
System Capabilities Enabled : bridge, router
Remote Management Address
Type : ipv4
Address : 192.0.2.93
Type : ipv6
Address : 20 01 0d b8 00 00 00 00 00 00 00 00 00 00 00 01
Type : all802
Address : 22 33 44 55 66 77
datacenter switch
ssm@site3-row2-rack1> show lldp neighbors
Local Interface Parent Interface Chassis Id Port info System Name
[...]
ge-0/0/38.0 ae1.0 01:23:45:67:89:58 Interface 2 as enp3s0f0 server.example.com
ge-1/0/38.0 ae1.0 01:23:45:67:89:58 Interface 3 as enp3s0f1 server.example.com
[...]
ssm@site3-row2-rack1> show lldp neighbors interface ge-0/0/38
LLDP Neighbor Information:
Local Information:
Index: 157 Time to live: 120 Time mark: Fri Apr 29 13:00:19 2016 Age: 24 secs
Local Interface : ge-0/0/38.0
Parent Interface : ae1.0
Local Port ID : 588
Ageout Count : 0
Neighbour Information:
Chassis type : Mac address
Chassis ID : 01:23:45:67:89:58
Port type : Mac address
Port ID : 01:23:45:67:89:58
Port description : Interface 2 as enp3s0f0
System name : server.example.com
System Description : Linux server.example.com 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 4
System capabilities
Supported : Station Only
Enabled : Station Only
Management Info
Type : IPv6
Address : 2001:0db8:0000:0000:0000:dead:beef:cafe
Port ID : 2
Subtype : 2
Interface Subtype : ifIndex(2)
OID : 1.3.6.1.2.1.31.1.1.1.1.2
#!/bin/sh
find /sys/class/net/ -maxdepth 1 -name 'en*'
while read device; do
basename "$device"
done
while read interface; do
lldptool set-lldp -i "$interface" adminStatus=rxtx
for item in sysName portDesc sysDesc sysCap mngAddr; do
lldptool set-tlv -i "$interface" -V "$item" enableTx=yes
sed -e "s/^/$item /"
done
sed -e "s/^/$interface /"
doneShow LLDP neighbor information
#!/bin/sh
find /sys/class/net/ -maxdepth 1 -name 'en*'
while read device; do
basename "$device"
done
while read interface; do
printf "%s\n" "$interface"
ethtool $interface grep -q 'Link detected: yes'
echo " down"
echo
continue
lldptool get-tlv -n -i "$interface" sed -e "s/^/ /"
echo
done
[...]
enp3s0f0
Chassis ID TLV
MAC: 01:23:45:67:89:ab
Port ID TLV
Local: 588
Time to Live TLV
120
System Name TLV
site3-row2-rack1
System Description TLV
Juniper Networks, Inc. ex2200-48t-4g , version 12.3R12.4 Build date: 2016-01-20 05:03:06 UTC
System Capabilities TLV
System capabilities: Bridge, Router
Enabled capabilities: Bridge, Router
Management Address TLV
IPv4: 10.21.0.40
Ifindex: 36
OID: $
Port Description TLV
some important server, port 4
MAC/PHY Configuration Status TLV
Auto-negotiation supported and enabled
PMD auto-negotiation capabilities: 0x0001
MAU type: Unknown [0x0000]
Link Aggregation TLV
Aggregation capable
Currently aggregated
Aggregated Port ID: 600
Maximum Frame Size TLV
9216
Port VLAN ID TLV
PVID: 2000
VLAN Name TLV
VID 2000: Name bumblebee
VLAN Name TLV
VID 2001: Name stumblebee
VLAN Name TLV
VID 2002: Name fumblebee
LLDP-MED Capabilities TLV
Device Type: netcon
Capabilities: LLDP-MED, Network Policy, Location Identification, Extended Power via MDI-PSE
End of LLDPDU TLV
enp3s0f1
[...]
on the switch side
On the switch, it is a bit easier to see what s connected to each
interface:
office switch
On the switch side, this system looks like:
office1-switch23# show lldp info remote-device
LLDP Remote Devices Information
LocalPort ChassisId PortId PortDescr SysName
--------- + ------------------------- ------ --------- ----------------------
[...]
42 22 33 44 55 66 77 eno1 Intel ... turbotape.example.com
[...]
office1-switch23# show lldp info remote-device 42
LLDP Remote Device Information Detail
Local Port : 42
ChassisType : mac-address
ChassisId : 00 11 22 33 33 55
PortType : interface-name
PortId : eno1
SysName : turbotape.example.com
System Descr : Debian GNU/Linux testing (stretch) Linux 4.5.0-1-amd64 #1...
PortDescr : Intel Corporation Ethernet Connection I217-LM
System Capabilities Supported : bridge, router
System Capabilities Enabled : bridge, router
Remote Management Address
Type : ipv4
Address : 192.0.2.93
Type : ipv6
Address : 20 01 0d b8 00 00 00 00 00 00 00 00 00 00 00 01
Type : all802
Address : 22 33 44 55 66 77
datacenter switch
ssm@site3-row2-rack1> show lldp neighbors
Local Interface Parent Interface Chassis Id Port info System Name
[...]
ge-0/0/38.0 ae1.0 01:23:45:67:89:58 Interface 2 as enp3s0f0 server.example.com
ge-1/0/38.0 ae1.0 01:23:45:67:89:58 Interface 3 as enp3s0f1 server.example.com
[...]
ssm@site3-row2-rack1> show lldp neighbors interface ge-0/0/38
LLDP Neighbor Information:
Local Information:
Index: 157 Time to live: 120 Time mark: Fri Apr 29 13:00:19 2016 Age: 24 secs
Local Interface : ge-0/0/38.0
Parent Interface : ae1.0
Local Port ID : 588
Ageout Count : 0
Neighbour Information:
Chassis type : Mac address
Chassis ID : 01:23:45:67:89:58
Port type : Mac address
Port ID : 01:23:45:67:89:58
Port description : Interface 2 as enp3s0f0
System name : server.example.com
System Description : Linux server.example.com 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 4
System capabilities
Supported : Station Only
Enabled : Station Only
Management Info
Type : IPv6
Address : 2001:0db8:0000:0000:0000:dead:beef:cafe
Port ID : 2
Subtype : 2
Interface Subtype : ifIndex(2)
OID : 1.3.6.1.2.1.31.1.1.1.1.2
#!/bin/sh
find /sys/class/net/ -maxdepth 1 -name 'en*'
while read device; do
basename "$device"
done
while read interface; do
printf "%s\n" "$interface"
ethtool $interface grep -q 'Link detected: yes'
echo " down"
echo
continue
lldptool get-tlv -n -i "$interface" sed -e "s/^/ /"
echo
doneoffice switch
On the switch side, this system looks like:
office1-switch23# show lldp info remote-device
LLDP Remote Devices Information
LocalPort ChassisId PortId PortDescr SysName
--------- + ------------------------- ------ --------- ----------------------
[...]
42 22 33 44 55 66 77 eno1 Intel ... turbotape.example.com
[...]
office1-switch23# show lldp info remote-device 42
LLDP Remote Device Information Detail
Local Port : 42
ChassisType : mac-address
ChassisId : 00 11 22 33 33 55
PortType : interface-name
PortId : eno1
SysName : turbotape.example.com
System Descr : Debian GNU/Linux testing (stretch) Linux 4.5.0-1-amd64 #1...
PortDescr : Intel Corporation Ethernet Connection I217-LM
System Capabilities Supported : bridge, router
System Capabilities Enabled : bridge, router
Remote Management Address
Type : ipv4
Address : 192.0.2.93
Type : ipv6
Address : 20 01 0d b8 00 00 00 00 00 00 00 00 00 00 00 01
Type : all802
Address : 22 33 44 55 66 77
datacenter switch
ssm@site3-row2-rack1> show lldp neighbors
Local Interface Parent Interface Chassis Id Port info System Name
[...]
ge-0/0/38.0 ae1.0 01:23:45:67:89:58 Interface 2 as enp3s0f0 server.example.com
ge-1/0/38.0 ae1.0 01:23:45:67:89:58 Interface 3 as enp3s0f1 server.example.com
[...]
ssm@site3-row2-rack1> show lldp neighbors interface ge-0/0/38
LLDP Neighbor Information:
Local Information:
Index: 157 Time to live: 120 Time mark: Fri Apr 29 13:00:19 2016 Age: 24 secs
Local Interface : ge-0/0/38.0
Parent Interface : ae1.0
Local Port ID : 588
Ageout Count : 0
Neighbour Information:
Chassis type : Mac address
Chassis ID : 01:23:45:67:89:58
Port type : Mac address
Port ID : 01:23:45:67:89:58
Port description : Interface 2 as enp3s0f0
System name : server.example.com
System Description : Linux server.example.com 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 4
System capabilities
Supported : Station Only
Enabled : Station Only
Management Info
Type : IPv6
Address : 2001:0db8:0000:0000:0000:dead:beef:cafe
Port ID : 2
Subtype : 2
Interface Subtype : ifIndex(2)
OID : 1.3.6.1.2.1.31.1.1.1.1.2
ssm@site3-row2-rack1> show lldp neighbors
Local Interface Parent Interface Chassis Id Port info System Name
[...]
ge-0/0/38.0 ae1.0 01:23:45:67:89:58 Interface 2 as enp3s0f0 server.example.com
ge-1/0/38.0 ae1.0 01:23:45:67:89:58 Interface 3 as enp3s0f1 server.example.com
[...]
ssm@site3-row2-rack1> show lldp neighbors interface ge-0/0/38
LLDP Neighbor Information:
Local Information:
Index: 157 Time to live: 120 Time mark: Fri Apr 29 13:00:19 2016 Age: 24 secs
Local Interface : ge-0/0/38.0
Parent Interface : ae1.0
Local Port ID : 588
Ageout Count : 0
Neighbour Information:
Chassis type : Mac address
Chassis ID : 01:23:45:67:89:58
Port type : Mac address
Port ID : 01:23:45:67:89:58
Port description : Interface 2 as enp3s0f0
System name : server.example.com
System Description : Linux server.example.com 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 4
System capabilities
Supported : Station Only
Enabled : Station Only
Management Info
Type : IPv6
Address : 2001:0db8:0000:0000:0000:dead:beef:cafe
Port ID : 2
Subtype : 2
Interface Subtype : ifIndex(2)
OID : 1.3.6.1.2.1.31.1.1.1.1.2
Six months ago I received a
After two months since
This post is largely to remind myself of the details next time I hit something similar; I found bits of relevant information all over the place, but not in one single location.
I love
For years,
As I'm nearing the point where
.
Arriving in London and finding the Red Hat offices
After being stuck in trains for the weekend, but fortunately arriving at the airport in time, I finally made it to London with quite some delay due to the slow bus transfer from Stansted Airport. After finding the hotel, the next issue was to get food and a place which accepted my credit card, which was surprisingly hard in defence of London I must say though, that it was a Sunday, 7 p.m. and my card is somewhat special (in Canada, it managed to crash some card readers, so they needed a hard-reset). While searching for food, I also found the Red Hat offices where the hackfest was starting the next day by accident. My hotel, the office and the tower bridge were really close, which was awesome! I have been to London in 2008 the last time, and only for a day, so being that close to the city center was great. The hackfest didn t leave any time to visit the city much, but by being close to the center, one could hardly avoid the London experience 
)).
The incarnation of GNOME Software used by endless looks pretty different from what the normal GNOME user sees, since it s adjusted for a different audience and input method. But it looks great, and is a good example for how versatile GS already is! And for upstream GNOME, we ve seen some pretty great mockups done by Endless too I hope those will make it into production somehow.

).
For me, being the only (and youngest ^^) developer at the hackfest who was not employed by any company in the FLOSS business, the hackfest was also motivating to continue to invest spare time into working on these projects.
So, the only thing left to do is a huge shout out of THANK YOU to the Ubuntu Community Fund and therefore the Ubuntu community for sponsoring me! You rock! Also huge thanks to Canonical for organizing the sponsoring really quickly, so I didn t get into trouble with paying my flights.

While there is real progress being made towards
Over the last few months, I have been working casually on a new package to integrate
As many of you know (where "you" is "people reading this who actually know who I am), I come from a secular Jewish family. Although we have some religious (even very religious) relatives, neither my parents nor my grandparents were religious ever. Not that spirituality wasn't important to them My grandparents both went deep into understanding by and for themselves the different spiritual issues that came to their mind, and that's one of the traits I most remember about them while I was growing up. But formal, organized religion was never much welcome in the family; again, each of us had their own ways to concile our needs and fears with what we thought, read and understood.
This week is the Jewish celebration of Passover, or Pesaj as we call it (for which Passover is a direct translation, as Pesaj refers to the act of the angel of death passing over the houses of the sons of Israel during the tenth plague in Egypt; in Spanish, the name would be Pascua, which rather refers to the ritual sacrifice of a lamb that was done in the days of the great temple)... Anyway, I like giving context to what I write, but it always takes me off the main topic I want to share. Back to my family.
I am a third-generation member of the
Today it happened again: you try to open some program and nothing happens. Go to an open terminal, try again and it answers with the above message. Other days I used to reboot the session, but that's something I don't really think should be necessary.
Explaining G del s theorems to students is a pain. Period. How can those poor creatures crank their mind around a Completeness and an Incompleteness Proof I understand that. But then, there are brave souls using G del s theorems to explain the world of demons to writers, in particular to answer the question:
Very impressive.
Found at
We're excited to announce that Debian has selected 29 interns to work with us
this summer: 4 in