Tuesday, January 27, 2009
Sunday, January 18, 2009
Build a Skype Server for Your Home Phone System
read more | digg story
Tuesday, January 6, 2009
EXt/2 Ext/3 ReiserFS XFS UFS/FFS NFS driver for Windows 2000, 2003 and XP
read more | digg story
Monday, January 5, 2009
Securing RDP Remote Desktop and Terminal Server Connections
read more | digg story
Thursday, December 25, 2008
Visualizing mpeg4 motion compensation vectors using mplayer
The MPEG4 video encoding process makes use of block motion compensation to achieve compression. The motion compensation process serves to produce the intra frames which are the frames between keyframes. I’ve always been fascinated by this process and was delighted to find out that my favorite video player, mplayer, allows one to visualize this process.
mplayer -lavdopts vismv=1 -vo x11 motion_vector_video.avi
Wednesday, December 24, 2008
Set Up a Web-Based Desktop with EyeOS
read more | digg story
Wednesday, October 15, 2008
First benchmarks of the ext4 file system
read more | digg story
Monday, September 15, 2008
Erfunden im Krieg (Moderne Wunder)
Erfunden im Krieg
Encrypt your web browsing session (with an SSH SOCKS proxy)
read more | digg story
Monday, September 8, 2008
23+ Tools for Faster Javascript/Ajax Development
read more | digg story
51+ Best of jQuery Tutorials and Examples
read more | digg story
Thursday, August 28, 2008
Tuesday, August 19, 2008
Creating accessible charts using canvas and jQuery
read more | digg story
Wednesday, August 13, 2008
Creating accessible charts using canvas and jQuery
read more | digg story
Monday, August 4, 2008
Creating accessible charts using canvas and jQuery
read more | digg story
Sunday, August 3, 2008
Ext3, ReiserFS & XFS in Windows thanks to coLinux
read more | digg story
College Teacher Shows Students How To Be Hackers
read more | digg story
Biggest Military Hack of All Time Was Done With a 56k Modem
read more | digg story
Saturday, August 2, 2008
New 3.2Gbps FireWire spec approved, not as fast as USB 3.0
read more | digg story
Wednesday, July 30, 2008
Ex-Google engineers debut 'Cuil' way to search
read more | digg story
Monday, July 28, 2008
Five Best Alternative File Managers
read more | digg story
10 Revolutionary Computers
read more | digg story
Sunday, July 6, 2008
Protect Your Privacy While Downloading
read more | digg story
Wednesday, July 2, 2008
Turn Your $60 Router into a Super-Router with Tomato
read more | digg story
Friday, June 20, 2008
Display BGP routes originated in the local AS
The easiest way to display BGP routes originating in the local autonomous system is to use the regular expression ^$ (empty AS-path) in the show ip bgp regexp command, for example:
PE-A#show ip bgp regexp ^$
BGP table version is 10, local
router ID is 10.0.1.1
Status codes: s suppressed, d damped, h history,
* valid, > best, i - internal,
r RIB-failure, S
Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
Next Hop Metric LocPrf Weight Path
*> 10.0.1.1/32
0.0.0.0 0 32768 i
r>i10.0.1.2/32
10.0.1.2 0 100 0 i
If you want to apply a show filter to the printout of this command, you have to use the quote-regexp variant; otherwise the rest of the line is interpreted as regular expression. To skip the header explaining the BGP status code (we know them by heart by now, don’t we?), use …
PE-A#show ip bgp
quote-regexp "^$" begin Network
Network Next Hop Metric LocPrf Weight Path
*>
10.0.1.1/32 0.0.0.0 0 32768
i
r>i10.0.1.2/32 10.0.1.2 0 100 0
i
… and end with the eye candy – define this command as an alias: alias exec localbgp show ip bgp quote-regexp "^$" begin Network.
Use the explicit "address-family ipv4" in BGP configurations
If you use multiprotocol BGP (MP-BGP) in your network to support MPLS VPN, IPv6 or IP Multicast over BGP, it's best if you go all the way and configure an explicit ipv4 address family; the resulting BGP configuration is significantly easier to read and understand as the session-specific parameters are clearly separated from the routing-specific parameters and the IPv4 settings are nicely grouped in an explicit section.
To change the format of the BGP configuration, configure the IPv4 address family with the address-family ipv4 unicast router configuration command (the neighbor statements and other configuration settings pertinent to IPv4 configuration are automatically moved into the new address family) or manually activate a BGP neighbor for IPv4 route exchange with the neighbor activate router configuration command.To illustrate the differences between the traditional BGP configuration and the per-address-family configuration, consider a simple MPLS VPN+Internet setup. First the traditional approach:
router bgp 65000
template peer-policy Internal
send-community both
exit-peer-policy
!
template peer-session
Internal
remote-as 65000
update-source Loopback0
exit-peer-session
!
no synchronization
bgp
log-neighbor-changes
network 10.0.1.1 mask 255.255.255.255
neighbor 10.0.1.5 inherit peer-session Internal
neighbor 10.0.1.5
description PE-C(RR)
neighbor 10.0.1.5 inherit peer-policy
Internal
no auto-summary
!
address-family vpnv4
neighbor
10.0.1.5 activate
neighbor 10.0.1.5 send-community extended
exit-address-family
... and the changed configuration after the address-family ipv4 command has been entered:
router bgp
65000
template peer-policy Internal
send-community both
exit-peer-policy
!
template peer-policy InternalV6
send-label
inherit peer-policy Internal 1
exit-peer-policy
!
template peer-session Internal
remote-as 65000
update-source Loopback0
exit-peer-session
!
bgp
log-neighbor-changes
neighbor 10.0.1.5 inherit peer-session
Internal
neighbor 10.0.1.5 description PE-C(RR)
!
address-family ipv4
no synchronization
network 10.0.1.1 mask
255.255.255.255
neighbor 10.0.1.5 activate
neighbor 10.0.1.5
inherit peer-policy Internal
no auto-summary
exit-address-family
!
address-family vpnv4
neighbor 10.0.1.5
activate
neighbor 10.0.1.5 send-community extended
exit-address-family
Monday, June 2, 2008
Simple CSS vertical menu Digg-like
read more digg story
Thursday, May 22, 2008
Saturday, May 17, 2008
PartnerBar: Google's feed aggregating magic javascript widget thingy
I was browsing the Google AJAX Search API blog recently when I discovered they were using an interesting widget at the bottom of the page, it turned out to be PartnerBar. PartnerBar was created as an example for the Google AJAX Feed API. I have been very busy with family stuff recently so I managed to completely miss this when news of it first broke in December (Ajax Feed Partner Bar and The PartnerBar - Contextual Cross Linking). In my defence this is easy to miss, it is called "PartnerBar", which means nothing to anybody on this side of the pond and the launch article talks about "contextual cross linking" (meaningless technobabble!). Essentially, PartnerBar is a feed aggregating magic javascript widget thingy, if it had been launched as such I would have spotted it sooner.
AnywayI have been playing with it recently and have made some minor tweaks to improve it for my own usage, I'm very happy with the results. I can't decide whether to install the resulting widget permanently on my blog because I think people would find it annoying if I were to place it somewhere prominent.
My tweaks and modifications
Feed titles and links.
In the instance of PartnerBar on their blog, Google store an array of their blogs in a JavaScript file: http://www.google.com/uds/solutions/partnerbar/google-blogs.js.
Incidentally, notice how it supports tags so that you can use the same array for multiple widgets with distinct content.
My first modification was to tweak the code so that I did not have to supply the feed name and link, this information is stored in the feed (why store it twice?). To achieve this I overrode the loadPartner method - I think the trick with overriding methods in JavaScript is to make sure the method you override is a small one!
My array of blogs looks like this: blogs.js
Alternating row colours
Secondly, I wanted the feed entries to display in alternating colours. Again, I found a small JavaScript method in PartnerBar (resetClassOnPartnerDom) and overrode it (AFAIK there is no "super" keyword in JavaScript, which is a shame). In order to do this I made use of a getElementsByClassName method that I found on the web.
Final result
You should be able to see the widget in action at the top of this blog entry. However, you can link out to see the final result in standalone glory here.
Hereis my final JavaScript which my customised widget uses: partnerBar.js.
Design
Although I suffer with CSS, I am not a graphic designer and so I tend to
stealgather inspiration from elsewhere. I based my widget on the Infected table theme from the CSS table gallery.