Archive for Tecnology

OpenSource communities go west

My work often requires me to select (or develop) different kind of technologies. Every time I’ve got to make a choice between “traditional approach” and “OpenSource approach”, the questions I ask to myself are (more or less) always the same:

  • Is this new technology able to stay alive for a long long time?
  • Is it able to keep itself on the top of most used technologies?
  • Is it able to move people from old style approach into new OpenSource world?

…but since a couple of months ago, I’ve started asking to myself another important question:

  • Is this technology able to keep close to itself key people (basically the “community”)? Or it is only able to keep the “maintainers”, but not the innovators?

I think the ask for this question is very important to know the future of a product. Some time ago, I’ve blogged a post about “80% and 20% of developers“, where the real innovators are (IMHO) only a few people, and lose these people could be the end of a project.

I think OpenSource community needs to move over new and exciting technologies day by day. And innovators ARE OpenSource community. No way to keep a good innovator stopped to a technology for long time. Technology has to change and grow up fast if it wants to benefit by these extraordinary geeks.

So, here’s why you have to run out of town from static “huge” technologies (usually defined “enterprise”): best guys, best developers, best architects need to “go west”, to find new lands, looking for new opportunities to innovate world and make it better.

RedHat and Fedora (and, of course, Byte-Code! :-) ) are the best example I know (and they rock! Great innovations in Fedora make RedHat a REAL enterprise technology)

OpenSource community should be considered a “quality guarantee” by everyone, also when it try to head straight for new and unknown ways.

Just my two cents ;-)

More Stats for Fedora Ambassadors

Today (after a week-end with low GRPS mobile bandwidth), I ran python script for stats for all entries in Ambassadors Country List (on high performance connection). It takes more than an hour :-/

Now, you can download:

Ambassadors

Script (a wiki reg-ex crawler) may contain bugs (for example I’m not sure about some sparse “dot” on the wiki page). But I hope this open the way to make more significant stats for Fedora Project.

For the moment I’ve publish the first draft of this script (very “quick and dirty”). During next days I’ll try to package this actions into a pythons module, to make more reusable and more readable this kind of object. I hope to see something like:

import FedoraStats
foo = FedoraStats.Ambassadors()
foo.save_to_csv("/tmp/bar.csv")

Here you are the current draft:
Read the rest of this entry »

Fedora Ambassadors Statistics

Today I’ve spent some hours to write a very “quick and dirty” python script to create some automatic statistics to show how Fedora ambassadors grow up fast.

For the moment script produce a simple command separated value file, useful to be opened with OpenOffice and make some charts.

Here you are a simple chart that shows number of ambassadors during last 10 months.

The script (for the moment) produce a table with months as rows and world area as columns. It takes data from fedora wiki.

Here you are some examples:

Ambassadors Country List

And here you are a chart only for South Europe Area:

Ambassadors Contry List - South Europe

As soon as possible I’ll write some classes to produce chart directly, without need to pass through OpenOffice, and (of course) put all scripts online. ;-)

I am RHCA

RHCA is one of the most interesting certification I’ve never seen in information technology marketplace. To pass all exams you’ve got to DO what you have to know, not only make a check into multiple choice questions.

It was hard, but I’m happy because yesterday I received  the result of my last exam: passed!

Today, I am RHCA! :-)

RHCA

For the first time I think to have a “valid” certification to show my own skills In Italy it’s pretty unusual. University degrees, certifications and so on are usually not related to practically experiences: you can have a master degree in information technology or computer science without know how using your mouse…

Changing this point of view is hard, but I think it’s not impossible. RHCA is a reality. I hope other companies will follow RedHat way. I think it’s the right way.

Zimbra with reverse proxy, mod_security and without external relay MTA

If you have to install Zimbra on a single machine with a public IP, your life will be easy and relaxing.

But, if you have to install Zimbra on a server with private IP behind a public reverse proxy with mod_security (and other funny security stuff), and you don’t want to use external relay MTA, your life will be fully of terrible pains!

Obviously Byte-Code has this kind of internal mail server… so this week I’ve made a strange thing to made possible using Zimbra behind a reverse proxy :-)

Here you are some suggestions:

  • Remove some mod_security rules not compliant with Zimbra:
    • SecRuleRemoveById 960010 950006 960015 960017 970903
  • On Zimbra internal server setup some aliasing IP addresses, with real public ip (don’t worry. It’s only for localhost communications)… one for each real server configured (this is the key of the post! with this useless configuration you can cheat Zimbra about MTA server)
  • On Zimbra control panel check “DNS lookup” on both “Global Settings” and server panels.

Fedora and “harm reduction”

Here you are a very interesting post about “harm reduction” and some reasons in order to implement this kind of concept in Fedora 8:

http://www.linux.com/feature/120703

About version control and “the 80%”…

Today Luca sent an interesting post on mugshot.

It talks about “IT  crowd”, potentially divided into two different sides (from iBanjo blog):

  • 20% side programmers: called “alpha” programmers — the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring…
  • 80% side programmers:  folks make up the bulk of the software development industry. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc.

The post is really useful, but comes up with a strange point of view…. It said:

…While DVCS dramatically lowers the bar for participation in a project (just clone the repository and start making local commits!), it also encourages anti-social behavior. I already wrote a long essay about this. In a nutshell: with a centralized system, people are forced to collaborate and review each other’s work; in a decentralized system, the default behavior is for each developer to privately fork the project …

Now, just a couple of comments:

  • All “private” projects I’ve seen is not useful for the other projects. It’s just for the customer. No way to reuse any components or subsystems… (not only for license reason, It’s basically for technical reasons)
  • Most of “private” projects I’ve seen are very closed to the team leader and not to the developers. When the team leader leaves the project, it fails…
  • All “private” projects I’ve seen uses a lot of “the 20%” code and frameworks (not viceversa)
  • On the “80%” projects the developers have to rewrite the software for any new releases. It’s quite strange to see a software written “step-by-step”. Usually, after a cycle of develop, you have to clean all and rewrite from scratch…

Most of opensource projects have “20% side” programmers, but a few of them has “80% side” programmers (ex: Zimbra, JBoss, Hibernate, Compiere, Alfresco, Porta+ and so on…)

What do you think about the future of opensource software build with “the 80%”? Is possible to keep this software live for ages? Or sometimes they’ve got to be rewritten (maybe with a different name and different developers)?

Why Linux has more then 10 years of develop (and now it’s base on GIT with thousands of developers) and Hibernate has no road map for the future?

Werewolf countdown

Fedora 8’s coming… On my laptop it works very fine (all hardware components are fully supported!).

An image taken on Máirín’s blog…

Fedora 8

RPM Slide on Byte-Code KickOff

Here you are my slides concerning RPMs presented yesterday on Byte-Code kickoff.

It’s very basically presentation… Tell me if you need more detailed information….

Download PDF

Oracle sysV init script on the fly

Every time I need an Oracle init script file, it’s a terrible pain! No way to use a simple start/stop/status (with nagios check)…

Today I write “on-the-fly” this very simple script to run Oracle Database on RedHat Cluster Suite without nagios plugin.

#!/bin/sh
 
#chkconfig: 2345 80 05
#description: Oracle DB
 
ORA_HOME=/opt/oracle/product/9.2.0
ORA_OWNER=oracle
LOG="/dev/null"
 
prog="Oracle"
lockfile="/var/lock/subsys/oracle"
 
# Source function library.
if [ -r "/etc/rc.d/init.d/functions" ]; then
	. /etc/rc.d/init.d/functions
fi
 
# Oralce configurations
if [ -r "/etc/sysconfig/oracle.conf" ]; then
        . /etc/sysconfig/oracle.conf
fi
 
export ORA_HOME
export ORA_OWNER
export LOG
export prog
export lockfile
 
if [ ! -f $ORA_HOME/bin/dbstart ]
then
  echo "Oracle startup: cannot start"
  exit
fi
 
RETVAL=0
 
start() {
     if [ -f ${lockfile} ]; then
         echo "Oracle already running"
         exit 1
     fi
 
     echo -n "Starting $prog: "
     runuser - $ORA_OWNER -c "$ORA_HOME/bin/dbstart"
     RETVAL_DB=$?
     runuser - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start > $LOG"
     RETVAL_LSN=$?
     if (($RETVAL_DB == "0")) && (($RETVAL_LSN == "0")) ; then
         RETVAL="0"
	 touch ${lockfile}
	 echo_success
     else
         RETVAL="1"
	 echo_failure
     fi
     return $RETVAL
}
 
stop() {
     if [ ! -f ${lockfile} ]; then
         echo "Oracle already stopped"
         exit 0
     fi
     echo -n $"Stopping $prog: "
     runuser - $ORA_OWNER -c "$ORA_HOME/bin/dbshut"
     RETVAL_DB=$?
     runuser - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop > $LOG"
     RETVAL_LSN=$?
     if (($RETVAL_DB == "0")) && (($RETVAL_LSN == "0")) ; then
         RETVAL="0"
	 rm -f ${lockfile}
	 echo_success
     else
         RETVAL="1"
	 echo_failure
     fi
     return $RETVAL
}
 
status() {
     RETVAL=1
     pid=`pgrep -u $ORA_OWNER`
     if [ -n "$pid" ]; then
           RETVAL=0
           echo -n "$prog is running..."
           echo_success
     else
           echo -n "$prog is not running."
           echo_failure
     fi
     return $RETVAL
}
 
case "$1" in
  "start")
       start
       ;;
  "stop")
       stop
       ;;
  "restart")
       start
       stop
       ;;
  "status")
       status
       ;;
  *)
       echo $"Usage: $prog {start|stop|restart|status}"
       exit 1
 
esac
echo
exit $RETVAL
-->