Linux-Planet
  • Home
  • Top 10
  • Statistics
  • Registration
  • Archives
  • Contact

Quick news

Welcome on Linux-Planet - Please, if you find any bugs, report them at bugs@linux-planet.net

Subscribe

  • feed Feed with all the posts
  • feed Popular posts feed

Members

  • feed  Devil505
  • feed  Diego
  • feed  eugeni
  • feed  fabiolone
  • feed  Giacomo
  • feed  Ingo
  • feed  Jonathan
  • feed  kiddo
  • feed  Linux-Planet
  • feed  Linuxindetails
  • feed  Scurz
  • feed  shredder12
  • feed  teguh
  • feed  TForsman
  • feed  theclimber
  • feed  yoho

Contribute

  • meta Add your blog
  • meta Administration
Filter the posts :     Posts of the day   -   Posts of the week   -   Posts of the month   -   All posts

Fast access to the last posts of the page


06/05/2010 : Uh oh…someone called the cops 28/02/2010 : My top 10 geek epitaphs 21/02/2010 : Best links of the week 07/2010 19/02/2010 : Linux Day all the way in 2010 19/02/2010 : Linux Day all the way in 2010 17/02/2010 : What Enterprise-grade really means 17/02/2010 : Multiple IP uplinks with Gentoo 17/02/2010 : Multiple IP uplinks with Gentoo 15/02/2010 : CD overburning on Mac OS X
Next page »
Uh oh…someone called the cops 
0 vote
By Giacomo, on 06/05/2010 at 00:27.

Padova, via S. Francesco, 11:00 p.m.

Police car and police agents on patrol

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.

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.

Back to summary
My top 10 geek epitaphs 
0 vote
By Giacomo, on 28/02/2010 at 18:43.

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:

  1. the WoW player: «Met a Death Knight with serious blood abilities».
  2. the Python guru: «TombException».
  3. the Urban Terror player: «Did the lemming thing».
  4. the Star Trek fan: «Heghlu’meH QaQ jajvam».
  5. the network guru: «TTL expired in transit».
  6. the Magic player: «Opponent played Grindstone with Painter’s Servant».
  7. the Spaceballs fan: «Out of order? FUCK! Even in heaven, nothing works!».
  8. the Matrix fan: «She told me: dodge this!».
  9. the NASA fan: «What do you mean “One way mission”?».
  10. the Unix guru: «kill -9 -1».

Who said that bad grass never dies? :-)

No related posts.

Back to summary
Best links of the week 07/2010 
0 vote
By Giacomo, on 21/02/2010 at 16:19.

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:

  1. Mouse art — A program that creates nice artwork from your mouse pointer tracking.
  2. Jimmy Whales’ theory of failure — Wikipedia founder talks at TED and says: fail, fail, fail.
  3. Diagram of secure passwords — How are you choosing your passwords?
  4. The number one rule of design — Insightful analysis of the application design process.
  5. Printing is getting new life forms, like the Pencil printer and the Paperless printer.

Which is your favourite link of the week? Please share with comments or tweet.

Related posts:

  1. Best links of the week 03/2010
  2. Best links of the week 04/2010
  3. Best links of the week 06/2010

Back to summary
Linux Day all the way in 2010 
0 vote
By Giacomo, on 19/02/2010 at 17:30.

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:

  1. Best links of the week 04/2010
  2. Best links of the week 07/2010
  3. Best links of the week 03/2010

Back to summary
Linux Day all the way in 2010 
0 vote
By Giacomo, on 19/02/2010 at 17:30.

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:

  1. Best links of the week 04/2010
  2. Best links of the week 07/2010
  3. Best links of the week 03/2010

Back to summary
What Enterprise-grade really means 
0 vote
By Giacomo, on 17/02/2010 at 12:30.

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:

  1. The fact that an enterprise running a mission-critical piece of software can actually survive to bad things(tm) by other means (falling short on their obligations?), doesn’t mean that the mission wasn’t critical, after all. Anyways, mission-critical is just a typical requisite for enterprise applications, not the definition of.
  2. If the test is “if installer is next-next-done, then it’s not Enterprise”, it can be easily falsified by examples like Oracle database or Oracle business applications, which are definitely into the Enterprise set but are rather easy to install. Obviously you can achieve complex redundancy setups with Oracle DB or MySQL DB, and both of them require special configuration activities not provided by installer.

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:

  1. Processes should respect the ACID principles: wether your application does financial transactions, message delivery or any other kind of workflow, users need to trust on process reliability. This also means that application and protocol modeling should give clear information on what to expect as outcome of a certain operation.
  2. Fault tolerance should guarantee that in a closed environment, if prerequisites are respected and maitenance is carried out regularly, the software can accomplish its tasks without interruption, despite technical faults in single components of the underlying hardware.
  3. Security best practices (crytography, coding standards, risk management, extensive ACLs, etc.) should be applied to minimize unauthorized access to data and the application should support security features of the underlying system. While everyone claims to be secure today, I think that historical tracking, open-sourceness and quickness of response to threats are good ways to measure safety.
  4. System configuration and development practices should follow standards that allow turnover of human resources and market should offer enough qualified personnel and paid support services to guarantee that once the system is up and running, someone exists that can actually keep it running and possibly extend it. Furthermore, market should offer training services and books to save your internal know-how value.
  5. New software versions should be released when they’re mature and major releases should keep up with evolution of the market.
  6. Software architecture should make performance and TCO grow at most linearly and have an upgrade path that can make your infrastructure serve huge numbers (thousands-to-millions of users) in a modular way (cloud computing is an example of this). Profilation and stress testing should ensure that the application has been engineered to avoid failures under peak usage due to performance hogs. Public independent benchmarks can help estimate processing rate, durability and resources consumption variability.
  7. Considering that most Fortune 500 employ Enterprise-grade applications for production management and business management, Enterprise-grade application should offer more complex problem-solving and environment adaptation features than their small-business or consumer counterparts.
  8. Documentation and knowledge base should be adequate and up-to-date for most day-to-day needs from users and developers and should match an exact version of the software.
  9. Usage data collection and analysis features are an important factor to allow management to plan for resource allocation and to take action upon anomalies.
  10. It should be possible to declare in advance a disaster recovery plan to get back on track in a defined timeframe, given a TEOTWAWKI event or subsets of it.

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:

  1. Masterminds of programming
  2. What evil lurks in OCFS2
  3. Integrate Tornado in Django

Back to summary
Multiple IP uplinks with Gentoo 
0 vote
By Giacomo, on 17/02/2010 at 09:00.

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:

  1. First of all, to access multiple networks, either you have multiple physical NICs or you need to configure your network uplink to let your network ports access multiple VLANs. For more information on VLANs configurations under Gentoo, you can check Gentoo Handbook section on VLANs.
  2. On Linux kernel, you need to enable CONFIG_IP_MULTIPLE_TABLES option (in Linux kernel menuconfig, you find it under Networking support => Networking options => IP: policy routing). Recompile and install kernel.
  3. Next, you need to install iproute2 package, which allows editing multiple routing tables:
    # emerge -av sys-apps/iproute2
  4. Edit /etc/iproute2/rt_tables and add the following route table lines:
    100        T0
    101        T1
  5. Edit your /etc/conf.d/net file to enable network startup configuration. First add the following lines, modifying addresses and interface names to suit your needs:
    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
    }
  6. Finally, reboot with your new kernel. My advice is to proceed with this step while you can access your machine locally, just in case anything goes wrong.

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:

  1. Exim ldap lookup multiple DNs
  2. Linux RAID disk wipeout
  3. Gentooize Part 1: colorize console

Back to summary
Multiple IP uplinks with Gentoo 
0 vote
By Giacomo, on 17/02/2010 at 09:00.

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:

  1. First of all, to access multiple networks, either you have multiple physical NICs or you need to configure your network uplink to let your network ports access multiple VLANs. For more information on VLANs configurations under Gentoo, you can check Gentoo Handbook section on VLANs.
  2. On Linux kernel, you need to enable CONFIG_IP_MULTIPLE_TABLES option (in Linux kernel menuconfig, you find it under Networking support => Networking options => IP: policy routing). Recompile and install kernel.
  3. Next, you need to install iproute2 package, which allows editing multiple routing tables:
    # emerge -av sys-apps/iproute2
  4. Edit /etc/iproute2/rt_tables and add the following route table lines:
    100        T0
    101        T1
  5. Edit your /etc/conf.d/net file to enable network startup configuration. First add the following lines, modifying addresses and interface names to suit your needs:
    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
    }
  6. Finally, reboot with your new kernel. My advice is to proceed with this step while you can access your machine locally, just in case anything goes wrong.

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:

  1. Exim ldap lookup multiple DNs
  2. Linux RAID disk wipeout
  3. Gentooize Part 1: colorize console

Back to summary
CD overburning on Mac OS X 
0 vote
By Giacomo, on 15/02/2010 at 16:24.

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:

  1. Linux RAID disk wipeout
  2. Using screen as your login shell
  3. Gentooize Part 1: colorize console

Back to summary
Next page »
Powered by BilboPlanet Valid CSS - Xhtml Designed by BilboPlanet Back to top