Devil505
Diego
eugeni
fabiolone
Giacomo
Ingo
Jonathan
kiddo
Linux-Planet
Linuxindetails
Scurz
shredder12
teguh
TForsman
theclimber
yohoPadova, via S. Francesco, 11:00 p.m.
Police: Good evening, are you the host?
Host: No.
Police: We’ve been getting complaints about this party.
Host: About the drugs?
Police: No.
Host: About the guns, then? Is somebody complaining about the guns?
Police: No, the noise.
Host: Oh, the noise. Well that makes sense because there are no guns or drugs here. (An enormous explosion is heard in the background.) Or fireworks. Who’s complaining about the noise? The neighbors?
Police: No, the neighbors fled inland hours ago. Most of the recent complaints have come from Pittsburgh. Do you think you could ask the host to quiet things down?
Host: No Problem. (At this point, a Volkswagen bug with primitive religious symbols drawn on the doors emerges from the living room and roars down the hall, past the police and onto the lawn, where it smashes into a tree. Eight guests tumble out onto the grass, moaning.) See? Things are starting to wind down.
No related posts.
There are several geek epitaph lists on the net (look here, here and here) but most are rather dull and they don’t really look like they’re written by real geeks, so I decided to write down my own list, with one line for each geek stereotype:
Who said that bad grass never dies?
No related posts.
This week’s mood is all abourt cloud computing, html5, TED and the incoming conferences, with a trail on tablets. Balancing between seasonal hype and true link gifts is getting harder and harder:
Which is your favourite link of the week? Please share with comments or tweet.
Related posts:
A casual on-line conversation with a nice guy from Linux community:
seven: «I’m very busy preparing Linux Day 2010 at the moment.»
geekscrap: «Whoa! it’s in october, isn’t it? You’re taking it early!»
seven: «This year it’s going to be big.»
You’ve been warned.
Related posts:
A casual on-line conversation with a nice guy from Linux community:
seven: «I’m very busy preparing Linux Day 2010 at the moment.»
geekscrap: «Whoa! it’s in october, isn’t it? You’re taking it early!»
seven: «This year it’s going to be big.»
You’ve been warned.
Related posts:
Recently S. Lott published a post on what’s a clear definition of Enterprise-level applications. Even though I agree with him that “Enterprise-scale” definition has been streched by marketing to mean about anything, I have to disagree with his conclusions:
Now, I think software quality evaluation for this purpose shouldn’t consider single pieces of software by themselves: CPython is just a component, not a complete solution for any Enterprise task, so any analysis on what’s exactly suitable for a task should take into account at least a group of components that compose a framework for task execution. At most, I can say that some languages foster more software quality than others: for instance, Perl’s CPAN repository shows how difficult it is to achieve a common coding standard with Perl.
IMHO, a definition of Enterprise-grade application should take into account the following features:
Okay, my definition is really longer than S. Lott’s, but if it was simpler than that, it wouldn’t be Enterprise
At the current state of software industry, products rarely back up their marketing claims of being Enterprise-ready and application obsolescence has become really high-paced, so CIOs approach is more focused on agility than long-term reliability (how many SaaS products never get out of beta these days?). In reality, companies that make profits out of Agile lifestyle are just building on top of strong Enterprise foundations and are avoiding well-known Bad Agile pitfalls. According to Brad Cox’s interview in Masterminds of Programming book (see my review):
Why is computer science not a real science?
Each time you encounter a new piece of of software, you encounter something completely new and unique. How can you have a science where everything is unique?
If you study gold or lead from day to day, you can measure the properties and employ scientific methods to study them. With software, there is none of that.
Enterprise-grade, reausable and reliable components may be one strategy to make software industry a real industry. That’s what Brad Cox thinks and I agree with him. What do you think? Please share your comments.
Related posts:
When your computer or server has access to multiple LAN segments with different address spaces and different gateways to the Internet, there’s a nice feature called policy routing that allows you to use all of them simultaneously without having to re-configure your network topology. This is especially useful when you want to increase the bandwidth and resilience of a single computer or server without the burden of being an Autonomous System (BGP peering, Internet Registry bureaucracy, etc.).
Here are the steps to setup multiple uplinks through policy routing on Gentoo:
# emerge -av sys-apps/iproute2
100 T0 101 T1
config_eth0=( "192.168.0.100/24" ) routes_eth0=( "192.168.0.0/24 src 192.168.0.100 table T0" "default via 192.168.0.1 table T0" "default nexthop via 192.168.0.1 weight 1" ) rules_eth1=("from 192.168.1.1/32 table T0 priority 100" ) config_eth1=( "192.168.1.200/24" ) routes_eth0=( "192.168.1.0/24 src 192.168.1.200 table T1" "default via 192.168.1.1 table T1" "default nexthop via 192.168.0.1 weight 1" ) rules_eth1=("from 192.168.1.100/32 table T1 priority 101" )
Then uncomment the following functions (if you copied your /etc/conf.d/net from /etc/conf.d/net.example, they should be already there in comments):
postup() { local x="rules_${IFVAR}[@]" local -a rules=( "${!x}" ) if [[ -n ${rules} ]] ; then einfo "Adding IP policy routing rules" eindent # Ensure that the kernel supports policy routing if ! ip rule list | grep -q "^" ; then eerror "You need to enable IP Policy Routing (CONFIG_IP_MULTIPLE_TABLES)" eerror "in your kernel to use ip rules" else for x in "${rules[@]}" ; do ebegin "${x}" ip rule add ${x} dev "${IFACE}" eend $? done fi eoutdent # Flush the cache ip route flush cache dev "${IFACE}" fi } postdown() { # Automatically erase any ip rules created in the example postup above if interface_exists "${IFACE}" ; then # Remove any rules for this interface local rule ip rule list | grep " iif ${IFACE}[ ]*" | { while read rule ; do rule="${rule#*:}" ip rule del ${rule} done } # Flush the route cache ip route flush cache dev "${IFACE}" fi # Return 0 always return 0 }
Some in-depth on what I described above: with policy routing you can insert additional routing tables and configure your system to use a set of rules to decide which table to apply for each IP packet. So if you create T0 and T1 tables, you can set your host to respond to requests from each interface back to the same interface and load balance routes going to outer network by giving the same weight to both gateways in generic route table.
If you use this setup to publish your server on multiple public networks, you will probably need to configure multiple DNS A records in round-robin over your IPs.
If you’re interested in more Gentoo tips, just subscribe to my feed or follow me on Twitter.
Related posts:
When your computer or server has access to multiple LAN segments with different address spaces and different gateways to the Internet, there’s a nice feature called policy routing that allows you to use all of them simultaneously without having to re-configure your network topology. This is especially useful when you want to increase the bandwidth and resilience of a single computer or server without the burden of being an Autonomous System (BGP peering, Internet Registry bureaucracy, etc.).
Here are the steps to setup multiple uplinks through policy routing on Gentoo:
# emerge -av sys-apps/iproute2
100 T0 101 T1
config_eth0=( "192.168.0.100/24" ) routes_eth0=( "192.168.0.0/24 src 192.168.0.100 table T0" "default via 192.168.0.1 table T0" "default nexthop via 192.168.0.1 weight 1" ) rules_eth1=("from 192.168.1.1/32 table T0 priority 100" ) config_eth1=( "192.168.1.200/24" ) routes_eth0=( "192.168.1.0/24 src 192.168.1.200 table T1" "default via 192.168.1.1 table T1" "default nexthop via 192.168.0.1 weight 1" ) rules_eth1=("from 192.168.1.100/32 table T1 priority 101" )
Then uncomment the following functions (if you copied your /etc/conf.d/net from /etc/conf.d/net.example, they should be already there in comments):
postup() { local x="rules_${IFVAR}[@]" local -a rules=( "${!x}" ) if [[ -n ${rules} ]] ; then einfo "Adding IP policy routing rules" eindent # Ensure that the kernel supports policy routing if ! ip rule list | grep -q "^" ; then eerror "You need to enable IP Policy Routing (CONFIG_IP_MULTIPLE_TABLES)" eerror "in your kernel to use ip rules" else for x in "${rules[@]}" ; do ebegin "${x}" ip rule add ${x} dev "${IFACE}" eend $? done fi eoutdent # Flush the cache ip route flush cache dev "${IFACE}" fi } postdown() { # Automatically erase any ip rules created in the example postup above if interface_exists "${IFACE}" ; then # Remove any rules for this interface local rule ip rule list | grep " iif ${IFACE}[ ]*" | { while read rule ; do rule="${rule#*:}" ip rule del ${rule} done } # Flush the route cache ip route flush cache dev "${IFACE}" fi # Return 0 always return 0 }
Some in-depth on what I described above: with policy routing you can insert additional routing tables and configure your system to use a set of rules to decide which table to apply for each IP packet. So if you create T0 and T1 tables, you can set your host to respond to requests from each interface back to the same interface and load balance routes going to outer network by giving the same weight to both gateways in generic route table.
If you use this setup to publish your server on multiple public networks, you will probably need to configure multiple DNS A records in round-robin over your IPs.
If you’re interested in more Gentoo tips, just subscribe to my feed or follow me on Twitter.
Related posts:
It seems that Toast 10 Titanium cd burning application doesn’t support overburning, so if you need to burn cd images that are larger than conventional 700MB, you can either use cdrtools from the command line with -overburn parameter (available in MacPorts), or use a nice cdrtools frontend called Firestarter FX, which is tested for Tiger and Leopard releases.
Related posts: