LINUX.ORG.RU

Сообщения MKuznetsov

 

Функциональный tcl

Точнее библиотека just-for-fun зарелижена вашим покорным слугой на https://www.assembla.com/spaces/tclamba

наличиствуют map, filter, fold, chain, compose, zip а также некоторые другие, полезные и не очень. Интеграция в стиль Тикля на мой взгляд получилась неплохая и даже удобная.

А вот примерчик:

## Можно использовать процедуры tcl как lambda
map { expr 2+$$ } [ f::range 1 10 ]
# =3 4 5 6 7 8 9 10 11 12

## Анонимные функции по прежнему используются
map { apply {{a b} { expr $a + $b }} } {{2 3} {4 5}}
# =5 9

## lambda можно выстраивать в цепочку
map { expr 2+} { expr 2*} [ f::range 1 10 ]
# =6 8 10 12 14 16 18 20 22 24

## Можно применять фильтры c break и continue
map {
	if { {$$} =={} } {  break } else { continue }
} {{a b} {expr $a + $b}} {{ 1 2} {0 7} {} {3 4}}
# =3 7

## fold lambda+ init list
fold {{{a b} {expr $a+$b}}} 0 { 1 2 3 4 }
# =10

map { fold {::tcl::mathop::+} 2 } { { 1 2 3 } { 4 5 6 } }
# =8 17

## filter lambda+ list
filter {expr $$ % 2} [f::range 1 10 ]
# =1 3 5 7 9

## chain lambda+ list - просто цепь исполнения без обработки сигналов
chain { concat "WORD" } { concat "hello" } { string totitle "$$" 0 end } "!!"
# =Hello word !!

## Можно строить композиции (конвееры),использовать внешние переменные
##  и много-много разного
set charClass "upper"
set numberOfUpperChar {
   {split {$$} {}}
   {isolate { if {$charClass == "lower"} { set charClass "upper"} }}
   {filter {string is $charClass -strict} }
   {collapse}
   {llength}
}
set lorem "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"

chain {*}$numberOfUpperChar $lorem
# =4

## в частности делать вот такую композицию:
set func [ compose2 {string range $$ 1 end-1} {lindex $$ end} ]
invoke [ list $func ] {one two three}
# =hre

## теперь можно считать факториалы "по взрослому" :)
proc fasum { n } {
	set s [ zip [ map {{ a {
		list "*(1+$a" ")"
	} }} [ range 2 $n ] ] ]
	set s [ string map { " " {} \{ {} \} {} } $s ]
	return [ string range $s 2 end-1 ]
}
fasum 10
# =1+2*(1+3*(1+4*(1+5*(1+6*(1+7*(1+8*(1+9*(1+10))))))))

в дальних планах - lazy, благо что свой-же код надо только слегка переделать и (если осилю NRE) lazylist

 ,

MKuznetsov
()

network discovering

subj. Ну очень надо простую в использовании тулзу для «изучения сети». Нечто что можно поставить на нотебук, за день просканить сеть,чутка подстроить и оставить на неделю чтобы снять всякие показания (нагрузки на каналы, наличие конфликтов, потери и так далее).

пока-что всё испробованное (zabbix,nagion,netdisco,wiredmaps) либо требует долгой предварительной настройки, либо не умеет мониторить автоматом-обнаруженное. И абсолютно всё не умеет работать в оперативных условиях - нет use-case «новая сеть-изучить-уточнить-снимать статистику-сохранить». Все они ориентированны на то что ставятся сразу и навсегда на выделенный сервер подконтрольной сети.

MKuznetsov
()

что бы это значило

наткнулся в сети на такой вот замечательный код :

...

public function __destruct()
{
    $_db = $this->__construct();
    $_db->close();

    return $this;
}

это какой-то хитрый трюк специфичный для php?

ps. означенный код - из оф.гайда по ext js, а не просто дети написали

 ,

MKuznetsov
()

простая PM - ищу сотоварищей

Ситуация — небольшая монтажная компания, 7 человек инжиниринговое ядро, до 50 привлекаемых/наёмных сотрудников, в работе всегда несколько объектов, порядка 5 в стадии КП и ещё больше на входе. Для того чтобы всё это работало руководство всегда где-то в пути — на объектах, в переговорах и вся связь ложится на e-mail + телефон. Дошло до того, что в офисе последний раз встречались два месяца назад :) Назрела необходимость в общей on-line системе/базе.

рассмотрел хренову тучу доступных PM,HRM,ERP и прочих с похожих на них систем. И ни одной подходящей для реальной ситуации не нашёл, даже среди в меру платных. Простых и удобных систем НЕТ. Все сделаны с оглядкой на 1С, SAP и ориентированы на софтоделов или розничную торговлю. Море функций невостребованных в реальности, а нужное раскидано повсюду и неудобно, а большей частью отсутствует. Действительно «психбольница в руках пациентов». Явно проектировалось и реализовывалось вдали от пользователей и основано на предрассудках и убеждениях разработчиков.

Дошло до того, что уже сам накидал кратенькое ТЗ, простую схему БД и упорно вспоминаю php и изучаю smarty с JS. Это я к чему — к тому что «в одиночку только с ума сходят», ищу единомышленников или хотя-бы консультантов в web-разработке. Того, кто готов поднять/поддержать собственный скил на старте, возможно небольшую денежку по запуску и авторский %% далее.

p.s. не в Job потому как скорее обсуждение проекта, а не рабочей позиции.

p.p.s. вопросы естественно тут и ещё по max_kma<at>mail.ru

MKuznetsov
()

or die

есть мнение, что языки в которых фраза «subj» синтаксически верна должны умереть.

Внимание, вопрос : что (по спорному впрочем мнению) сдохнет ?

 ,

MKuznetsov
()

samba в домене AD - нужен бубен

Традиционная ситуация - samba сервер в домене ActiveDirectory.

И естественно проблемы:

- самбу не видно в «сетевом окружении» (по имени видно, по IP видно). По идее и фиг бы с этим, но:

- в самих шарах samba не видно файлов. То есть каталоги видно, а файлы в них нет. И получается исключительно readonly :(

samba в домен включилась без видимых проблем - ключик кербероса получен, net ads join сработал, wbinfo -t, -u -g, getent passwd, getent group выдают всё как вроде-бы и должны,

testparm:

# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (4096) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[mypublic]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions

[global]
	workgroup = HQ
	realm = HQ.COMPANY.RU
	server string = Samba Server Version %v
	interfaces = lo, eth1
	security = ADS
	map to guest = Bad User
	password server = dc.hq.company.ru
	log file = /var/log/samba/log.%m
	max log size = 50
	os level = 3
	local master = No
	domain master = No
	wins support = Yes
	idmap uid = 600-20000
	idmap gid = 600-20000
	winbind enum users = Yes
	winbind enum groups = Yes
	winbind use default domain = Yes
	hosts allow = 127., 192.168.10.
	cups options = raw
	case sensitive = Yes

[homes]
	comment = Home Directories
	valid users = HQ\%S
	read only = No
	browseable = No

[printers]
	comment = All Printers
	path = /var/spool/samba
	printable = Yes
	browseable = No

[mypublic]
	comment = Public Stuff
	path = /home/samba/public
	valid users = «@domain users»
	admin users = «@domain admins»
	write list = «@domain users»
	read only = No
	create mask = 0666
	directory mask = 0777
	inherit permissions = Yes
	inherit acls = Yes
	inherit owner = Yes
предваряя предложения с winbind separator и указания домена в valid/admin users/write list - пробовал, безполезно.

права в каталоге /home/samba/public :

# ls -al /home/samba/public
итого 12
drwxrwxr-x. 3 administrator domain users 4096 Сен 10 01:03 .
drwxrwxrwx. 3 administrator domain users 4096 Сен 10 01:03 ..
-rwxrwxrwx. 1 administrator domain users    0 Сен 10 01:03 test.txt
drwxr-xr-x. 2 administrator domain users 4096 Сен  9 23:45 ttt
#

сутки убиты :(

p.s. что-за хрень, раз в год бывает нужно ввести samb`у в домен и каждый раз какие-то грабли и фактически метод научного тыка..

 2008r2, ,

MKuznetsov
()

ipv6 в стрим (мтс) возможно ли и как ?

появилась идея-фикс локально дома внедрить ip v6. И что-то основная масса материалов в сети обратного толка «как запретить/избежать ipv6» :)

собсна вопросов 2 :

- как сие делается ? то есть ищется грамотный FAQ по настройке сервисов в ipv6 (dns,dhcp,iptables,samba,httpd как минимум)

- возможно ли оно вообще, при условии подключения через stream (ныне mts) посредством ADSL DLink 2540U ?

p.s. замена аппаратной части даже не рассматривается - если что-то работает, то и ненадо это менять.

MKuznetsov
()

12В на TXD - это абац ?

потстоянные 12В между на TXD - это признак спалившегося контроллера ? или я зря паникую..

ситуация такая - надо прошить железку, она прошивается по RS. В наличии нетбук и некий конвертер USB-COM. Все цепи работают, кроме TXD от шелезяки. как только подаю её на этот конвертер - гаснет CTS. Если её подать например на CD - cts тоже погаснет, но будет зато постоянный carrier :)

у меня подозрений ровно 2 : 1) палёный контроллер на железяке. 2) кривой переходник rs232-usb. Но просто петля TXD-RXD на нём работает. Правда сигналы 5.5V. (против 12 на TXD от железки)

предваряя вопросы: кабель прозвонен, замыканий на нём нет. на железяке визуальных повреждений нет никаких.

 rs232 uart

MKuznetsov
()

взвесить страницу по времени и объёму

чем можно «взвесить» страницу сайта, чтобы понять какие части слишком много весят или излишне долго генерятся ?

желательно максимально простое в использовании, в идеале вообще скрипт который выдаст CSV в три колонки (URL,объём,время_доставки)

MKuznetsov
()

питание по витой паре

монтажники «забыли» проложить кабель питания, теперь к железке подходит только 2 витухи. Просто задействовать свободные пары невыходит - не отбирается нужная мощность. Железяка 12В 350мА должна по идее потреблять 10Ват. Чего-то ей нехватает :( На родном кабеле от БП имеется ферритные кольца.

внимание вопросы - 1) что дают ферритные кольца на питании и можно ли обойтись без них ? 2) возможно-ли заданную мощность передать по PoE ?

MKuznetsov
()

Что можно сделать с DAP-1522

Нашёл в завалах всякого-всякого точку DAP-1522. Что-бы такого с ней можно сделать ?

поддержки dd-wrt вроде как нет (по крайней мере в списках устройств не значится)

MKuznetsov
()

микроразъём 8пин

папа+мама, плоский (чем тоньше тем лучше). Не помню как подобные называются, поэтому гугл не помогает :) Подскажите название или киньте ссылку.

MKuznetsov
()

сортировка файлов в Midnight и Наутилус

возможно ли, и как, научить Midnight и Наутилус сортировать файлы по собственному критерию ? Хочется чтобы

- первыми шли специальные ссылки ./. ./..

- далее были рядовые каталоги в алфавитном порядке,

- потом файлы

- потом «скрытые» каталоги (те у которых имя с .точки)

- и в конце «скрытые файлы» (опять-же с .точкой)

MKuznetsov
()

не только Конс.+

до сего дня по телефонам засвеченным в оф.справочниках, но неиспользуемых в рекламе, левые звонки были только только от партнёров/представительств 1с/консультаннт+ и прочего..сегодня, удачно попав на определённый _позитив_, зонок :

(приятный женский голос (она)): Ало, это компания «А...»
(наш _позитивный_ голос (мы, точнее я)): Да
(она): Вас беспокоит компания «Б...», официальный представить Microsoft в России, с кем можно поговорить о корпоративных продуктах ?
(мы): Со мной. Вы наконец-то решили что-то приобрести?
(некоторая паузы, она, неуверенно): мы занимаемся системной интеграцией..
(мы): я уже понял, у нас как-раз есть для вас подходящий продукт
(она): Ой..(короткие гудки)

 ,

MKuznetsov
()

в очередной раз XLS->CSV в скрипте

надо в sh скрипте сконвертить XLS таблицу в CSV. Но если листов(вкладок) больше одного, то имя листа дописывать как первую колонку на каждой строке. Если бы не последнее условие, то тулза xls2csv меня полностью устраивает.

если кому не в лом - помогите со скриптом на любом неэкзотичном языке.

MKuznetsov
()

[flex]сделать 1 правило регистросвободным

вкратце - есть лексер на flex, чуствительный к регистру. Одно единственное правило (пока по крайней мере) должно игнорировать регистр - есть ли какой малоизвестный флаг flex чтобы ему это указать ?

 

MKuznetsov
()

Bit Torrent Live

по мотивам http://lenta.ru/news/2012/02/14/cohen/ http://live.bittorrent.com/

Коэн позиционирует новое детище как убийцу инфраструктуры ТВ. И что самое странное - оно даже работает :)

MKuznetsov
()

mingw с человеческим лицом

понадобилось вот портировать gtk приложение в Windows.

Не мудрствуя с кросс-компиляцией, решил поселить всё необходимое в виртуалке.

И теперь изыскиваю оболочку (сборку?) mingw с пакетным менеджером и набором необходимых пакетов. Можно конечно следовать заветам Патрика ставить(и обновлять) всё поотдельности и желательно из исходников, но 21 век на дворе - должно быть уже готовое решение.

MKuznetsov
()

помогите составить конвеер gst-launch

помогите запустить gst-launch, то есть правильно составить конвеер. Есть файл который корректно проигрывается mplayer`ом, но вызов

$ gst-launch-0.10 -t -v filesrc location=video.bin ! decodebin ! xvimagesink
выдаёт некорректную картинку : http://www.4shared.com/photo/HePLBFCM/badvideo.html при этом выхлоп gst-launch:
Установка конвейера в состояние PAUSED...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)4, parsed=(boolean)false
Подготовка конвейера (PREROLL)...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdec_mpeg4:ffdec_mpeg40.GstPad:sink: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)4, parsed=(boolean)false
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(fraction)10/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdec_mpeg4:ffdec_mpeg40.GstPad:src: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(fraction)10/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(fraction)10/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0.GstProxyPad:proxypad1: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(fraction)10/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
Конвейер подготовлен (PREROLLED)...
Установка конвейера в состояние PLAYING...
New clock: GstSystemClock
Получен маркер EOS («конец потока») от элемента «pipeline0».
Execution ended after 35000047911 ns.
Установка конвейера в состояние PAUSED...
Установка конвейера в состояние READY...
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdec_mpeg4:ffdec_mpeg40.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdec_mpeg4:ffdec_mpeg40.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL
Установка конвейера в состояние NULL...
Освобождение конвейера...
а выхлоп mplayer на том-же файле :
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
INFO: libavcodec init OK!
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Audio: no sound
Freeing 0 unused audio chunks.
Starting playback...
[ffmpeg] aspect_ratio: 1.500000
VDec: vo config request - 720 x 480 (preferred colorspace: Planar YV12)
Trying filter chain: vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.50:1 - prescaling to correct movie aspect.
VO Config (720x480->720x480,flags=0,'MPlayer',0x32315659)
VO: [vdpau] 720x480 => 720x480 Planar YV12 
VO: Description: VDPAU with X11
VO: Author: Rajib Mahapatra <rmahapatra@nvidia.com> and others
[vdpau] Updating CSC matrix for BT.601
подозреваю что gst-launch некорректно подобрал кодек, но как ему сказать мои предпочтения - пока не понял :(

сам видеофайл - http://www.4shared.com/file/5KZbjDZb/video.html?refurl=d1url

MKuznetsov
()

[gtk][video]Простой пример или скелет приложения

попалась тут значит мне IP камера с прошивкой (и начинкой) eterosoft (на самом деле DLink DCS-68xx rev.A). Работать с ней может только убогий нативный клиент под Win или веб-морда с ActiveX исключительно в IE. Протокол соответственно proprietary и недокументирован.

С помощью tcpdump, пачки самописных тулзов и такой-то матери протокол частично расколот, авторизация проходит, пакеты разбираются, с камеры берётся видеопоток который без ошибок и ругани воспроизводит mplayer.

чтобы двинуть дальше и разбираться с PTZ нужно уже интерактивное приложение. Разыскивается пример или скелет эдакого минималистичного приложения воспроизведения видео. А так как ковыряю сетевую часть, от всей мультимедии нужна только одна функция в которую и слать сжатые видеокадры.

Выбор Gtk, ffmpeg предусловлен - gtk я немного помню, ffmpeg (libavcodec) работает с потоками камеры и используется в нативном клиенте и (очевидно) в самой камере. То есть другие варианты предлагать нестоит.

 ,

MKuznetsov
()

RSS подписка на новые темы