1 последняя(2) »
Создано: 17-08-2011 22:40:25 изменено: 29-06-2012 06:25:35  Метки: tcl audio
Я не очень люблю слушать музыку альбомами песню за песней - утомляем быстро и надоедает. А тут приобрел плеер самый простой из-за вечной экономии - Digma Mp600, а он не умеет shuffle. Да и в машину FM-трансмиттер купил с той-же проблемой (правда надо сказать что там можно с пульта случайную композицию включать, но это же не безопасно на дороге - особенно если ездишь один). Вот и написал в свободные полчаса пару скриптов:
1466 просмотров читать далее 0 комментариев

Создано: 02-08-2011 00:00:09  Метки: html tcl
Данная библиотека появилась пару лет назад на примерах Печникова. Под себя я правда переписал...
Вот пример кода:
#! /usr/bin/tclsh
source config/cfg.cfg
test_cookie
doctype
html {
 siteheader "Iconez" lite
 body {
  cms-menu
  sidebar
  if ![guest] {
    div -class main -style text-align:center {
      h3 {puts "Прикрепленные ярлычки:"}
      hr
      table {
        foreach lin [exec ls images/ | grep "16x16.png$"] {
          tr {td {img -src /images/$lin -width 32px -height 32px}
            td {puts /images/$lin}
          }
        }
      }
    }
  }
  sitefooter lite
  }
}

А вот библиотека:
package provide html2 1.0
namespace eval ::html2:: {
    namespace export *
}

# шаблон для генерации стандартного html-тэга
proc ::html2::tag {name args} {
  set name [string range $name [expr [string last : $name]+1] end]
  if [expr [llength $args]%2] {
    set opts [lrange $args 0 end-1]
    set b [lindex $args end]
  } else {
    set opts $args
    set b ""
  }
  puts -nonewline "<$name"
  foreach {argname argvalue} $opts {
    if [regexp " $argname " " -checked -hidden -readonly "] {
      if {$argvalue ne "0"} {puts -nonewline " [string range $argname 1 end]"}
    } else {puts -nonewline " [string range $argname 1 end]=\"$argvalue\""}
  }
  ### для незакрывающихся тегов
  if ![regexp " $name " " area base basefont col frame param meta link img input hr br "] {
    puts -nonewline ">"
    uplevel 1 $b
    puts -nonewline "</$name>"
  } else {
    if {$name eq "img" && ![regexp -- "-alt" $opts]} {

      puts -nonewline " alt=\"\""
    }
    puts -nonewline ">"
  }
}

foreach name {html meta title body head style link script form textarea input table thead tfoot tbody tr td th
  center a font button div span p img label ol ul li b i u s strong em h1 h2 h3 h4 h5 h6
  br hr var code kbd tt samp pre acronym embed header footer dd dt video audio} {
  proc ::html2::$name args {
    set name [lindex [info level 0] 0]
    uplevel 1 html2::tag $name $args
  }
}

proc ::html2::doctype {} {
  puts {Content-Type: text/html; charset=utf-8

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">}
}

proc ::html2::html5 {} {
  puts {Content-Type: text/html; charset=utf-8

<!DOCTYPE html>}
}

1426 просмотров 0 комментариев

Создано: 19-06-2011 21:44:25 изменено: 16-06-2012 20:47:16  Метки: linux tcl
Была поставлена задача проверять баланс 3G модема Huawey без использования Mobile Partner. После прочесывания инета было выяснено:
1) АТ команду нужно посылать в закодированном виде
2) Ответ модем также присылает в закодированном виде
3571 просмотров читать далее 0 комментариев

Создано: 07-02-2010 16:58:34 изменено: 16-06-2012 20:52:26  Метки: cgi netams tcl
Скрипт для блокировки узверей (нужен пакет для обрезки соединений cutter и цепочка в iptables lock добавленная до разрешения форварда из локалки"
/etc/netams# less lockuser
1484 просмотров читать далее 0 комментариев

Создано: 26-01-2010 12:06:52 изменено: 26-03-2010 17:50:14  Метки: tcl google openbox
Нужен иногда переводчик с импорта на наш и иногда наоборот, а то и с какого-нибудь японского на китайский :)
Google Translate в этом отношении весьма и весьма не плох по качеству перевода, можно даже иногда с неким иносТранцем в вакууме пообщаться, ну почти...
для быстрого перевода я себе добавил в гуглтолковский ростер парочку ботов en2ru@bot.talk.google.com и ru2en@bot.talk.google.com. В обычном джабберовом ростере они у меня не прижились - не показывали статус и не отзывались на запросы. Ну в общем вот. Ближе к делу - решил я в порыве автоматизации всего и вся, автоматизировать и перевод повесив его на горячую клавишу.
1476 просмотров читать далее 0 комментариев

Создано: 10-01-2010 15:30:56 изменено: 06-01-2013 18:39:54  Метки: tcl http cgi

Представляю вашему вниманию CGI-скрипт на языке высокого уровня TCL, который позволяет быстро организовать альбом из фотографий. Для его работы нужна JS библиотека с http://highslide.com/, которая позволяет быстро просматривать галлерею. Для организации подобного нужны (для debian/ubuntu):
# ставим необходимое
aptitude install lighttpd tcl8.5 tcllib imagemagick
# правим /etc/lighttpd.conf на предмет  таких строк
...
index-file.names           = ( "index.tcl", "index.php", "index.html",
...
static-file.exclude-extensions = ( ".tcl", ".php", ".pl", ".fcgi" )
...
# разрешаем модуль cgi
lighty-enable-mod cgi
# добавляем в /etc/lighttpd/conf-enabled/10-cgi.conf
...
cgi.assign      = ( ".tcl"  => "/usr/bin/tclsh",
...
# рестартуем lighttpd
/etc/init.d/lighttpd restart

теперь веб-сервер готов к работе, в корень (/var/www) кладем директорию c распакованой JS-библиотекой highslide, еще можно положить файл с фоном (/var/www/images/372.jpg), и белую подложку размером 185x185px (/var/www/images/fon.png).
1441 просмотров читать далее 0 комментариев

Создано: 16-09-2009 08:48:10  Метки: tcl

array set lang {
### тут элементы массива
}
# открываем файл
set fl [open $argv r]
set a [read $fl]
close $fl
foreach n [array names lang] {
    # здесь получаем {\$lang\(name\)} или {\$::lang\(name\)}
    set rep \{\\\$(::)*lang\\($n\\)\}
    # замена - применяем eval чтобы подменить регулярку значением переменной
    # экранируем все что не нужно менять - получаем что-то типа:
    # set a [regsub -all {\$lang\(name\)} $a "$lang(name)"]
    set a [eval "regsub -all $rep \$a \"$lang($n)\""]
}
# пишем результат
set wr [open $argv w]
puts $wr $a
close $wr
1339 просмотров 0 комментариев

Создано: 14-09-2009 19:56:25 изменено: 21-01-2010 13:40:15  Метки: tcl
решил попробовать написать дампер файлов на tcl, вот что получилось:

#! /usr/bin/tclsh
if { $argc eq 0 } {
    puts "Печать hex-дампа файла
Использование: $argv0 имя_файла"
    exit 0
}
if ![file exists $argv] {
    puts "Файл не найден"
    exit 1
}
set fl [open $argv r]
fconfigure $fl -translation binary
while {![eof $fl]} {
    set str ""
    puts -nonewline [format "%08x   " [tell $fl]]
    set a [read $fl 16]
    foreach sym [split $a {}] {
        set c [scan $sym %c]
        puts -nonewline [format "%02x " $c]
        if {$c < 32 || $c > 126} {
            append str .
        } else {
            append str [format %c $c]
        }
    }
    puts \t$str
}
close $fl

пример вывода:
00010c90   5f 31 36 78 31 36 2e 70 6e 67 50 4b 01 02 14 00      _16x16.pngPK....
00010ca0   14 00 00 00 00 00 00 00 21 00 99 8a b4 a9 08 04      ........!.......
00010cb0   00 00 08 04 00 00 0d 00 00 00 00 00 00 00 00 00      ................
00010cc0   00 00 a4 01 6c f3 00 00 72 73 73 5f 31 36 78 31      ....l...rss_16x1
00010cd0   36 2e 70 6e 67 50 4b 01 02 14 00 14 00 00 00 00      6.pngPK.........
00010ce0   00 00 00 21 00 4d de a0 f7 37 04 00 00 37 04 00      ...!.M...7...7..
00010cf0   00 0f 00 00 00 00 00 00 00 00 00 00 00 a4 01 9f      ................

1314 просмотров 0 комментариев

Создано: 06-07-2009 14:46:32 изменено: 26-01-2010 17:16:54  Метки: tcl deb
У идущего в дистрибутиве debian/ubuntu tclsh есть существенный недостаток: в интерактивном режиме нет автодополнения по TAB и памяти команд. Для того чтоб воспользоваться более удобным интерфейсом поставим eltclsh.

sudo aptitude install checkinstall libxss-dev libedit-dev tcl8.5-dev tk8.5-dev
tar xfz eltclsh-1.11.1.tar.gz
cd eltclsh-1.11.1
# чтоб не возиться с опциями configure
sed -i 's|tcl8.4|tcl8.5|g' configure
# меняем install-sh на родной install
mv install-sh install-sh.old
ln -s /usr/bin/install install-sh
./configure
make
sudo checkinstall
eltclsh


Update whith new version:
пакет для ubuntu 8.04lts прилагаю

1424 просмотров 18 комментариев

Создано: 06-07-2009 12:11:15 изменено: 20-12-2009 10:50:14  Метки: tcl cgi css html sql
Попробовал написать несложное cgi-приложение используя средства tcl, sqlite, css и html. Вот что получилось:
1678 просмотров читать далее 0 комментариев

1 последняя(2) »