[WK] This is a tool I wrote so that I can easily generate endorsements for http://www.linkedin.com/ - of course it's just a guideline for actually creating one, but "works nice in a crorded area". namespace eval end { set part0 { {an excelent} {a brilliant} {an intelligent} {an experienced} {an ambitious} {an innovative} {a result driven} {a highly organised} {an independent} } set part1 { {team player} {leader} {engineer} {programmer} {software engineer} {developer} {person} {expert} {co-worker} } set part2 { {has strong communication skills} {very positive attitude towards work} {highly recommended} {definitely worth recommending} } proc doendorsement {firstname} { variable part0; variable part1; variable part2 set sentences [expr {2 + int(rand() * 4)}] set endorsement "" set p0al $part0; set p0alc [llength $p0al] set p1al $part1; set p1alc [llength $p1al] for {set sentence 0} {$sentence < $sentences} {incr sentence} { set p0c [expr {1 + int(rand() * ((6 - $sentences) / 2))}] set p0l [list] for {set p0 0} {($p0alc > 0) && ($p0 < $p0c)} {incr p0} { set idx [expr {int(rand() * $p0alc)}] lappend p0l [lindex $p0al $idx] if {int(rand() * 10) >= 2} { set p0al [lreplace $p0al $idx $idx] incr p0alc -1 } } if {([llength $p0l] > 0) && ([llength $p1al] > 0)} { set idx [expr {int(rand() * $p1alc)}] #set sntc "[join $p0l {, }] [lindex $p1al $idx]" foreach {prefix word} [end_getana [lindex $p0l 0]] break if {($sentence == 0) && ($firstname != "")} { set sntc "$firstname is $prefix$word" } elseif {($sentence != 0) && ($firstname != "") && (int(rand() * 10) >= (10-$sentence))} { set sntc "$firstname is $prefix$word" } else { set sntc $word } foreach e [lrange $p0l 1 end] { append sntc ", " [lindex [end_getana $e] 1] } append sntc " " [lindex $p1al $idx] if {int(rand() * 10) >= 1} { set p1al [lreplace $p1al $idx $idx] incr p1alc -1 } } append endorsement [string totitle $sntc] ". " } set p2al $part2; set p2alc [llength $p2al] set idx [expr {int(rand() * $p2alc)}] set sntc [lindex $p2al $idx] append endorsement [string totitle $sntc] ". " return $endorsement } proc end_getana {text} { set prefix "" regexp "^(a |an )(.*)\$" $text - prefix text return [list $prefix $text] } } [ramsan]: A very nice program. Useful to be used with own name on difficult Monday morning days.