LINUX.ORG.RU

Сообщения MKuznetsov

 

быстрое редактирование строк с разделением памяти

не хочется велосипедить свою реализацию,поэтому сначала ищу:

- С-шная библиотеку для работы со строками и текстами (структурирование текста)

- Для Unicode (чтоб внутре был wchar_t, а лучше utf8)

- с [del]блекджеком и шл[/del] с тегированием строк

- с максимально быстрым редактированием. Самые частые ожидаемые операции - конкатенция, вставка и удаление подстрок.

- тексты очень большие и неплохо если контент будет шариться между строками

где-то так вот :-)

близкое к желаемому libxml - но тяжеловесное API и сделан(оптимизирован) немного для других вещей.

MKuznetsov
()

опять сдох комп:-(

Надо понять что конкретно ушло к проотцам. Симптомы: поиграл блин в дуалбуте - со всех сторон враги и все отключилось. Кнопка ВКЛ.не работает, мыргнет диодом питания и все.

Это что, очередной бп каюк? Если мать или проц то совзсем пичаль-пичаль :-(

P.s. а рядом стоит свеже-месяц-как собранный блок из новых комплектующих, который вообще не завелся. Что блин за перенаправлен

 

MKuznetsov
()

как такое сделать css-ом ?

есть текст в тегах <pre></pre> внутри него могут быть слова обрамлённые <span class=«remark»> - вот их бы разместить справа на заданном отступе в той-же строки где встретились.

то есть текст

<pre>строка1
какой-то текст <span class=«remark»>заметка</span> ещё текст
строка2</pre>

должен отрендерится в

строка1
какой-то текст ещё текст            заметка
строка2

MKuznetsov
()

ОС на флешке vs SQL базы на ней

имеется машинка с 4G hdd (thin client), хочется её задействовать под мониторинг сети - пусть себе стоит и коллектит статистику snmp. Но на винт взаимоисключающе влезает либо ось, либо базы

Если ставить ОС на винт, то встаёт вопрос о работе баз Mysql на флешке - есть подозрение что за месяц флешка просто умрёт.

Если ставить какой-нить puppyrus на флешке, то не до конца понятно как в него во frugal варианте поставить cacti со всем необходимым и опять-же может внезапно кончится место под базу. То есть мороки ощутимо больше, риски те-же :(

вопросов всего 2:

№1 возможно-ли и как правильно содержать MySQL базу на флешке,

№2 ткните в мануал по puppy - как в него поставить snmp,apache, php, mysql - тяжёлые весьма пакеты...или безболезненно перетащить настроенный puppy из виртуалки на флешку

ps. добавить винт, хоть внешним, хоть по usb - не предлагать.

MKuznetsov
()

Code formatter

хочу найти subj, который делает подобное:

#include                                     <math.h>
#include                                   <sys/time.h>
#include                                   <X11/Xlib.h>
#include                                  <X11/keysym.h>
                                          double L ,o ,P
                                         ,_=dt,T,Z,D=1,d,
                                         s[999],E,h= 8,I,
                                         J,K,w[999],M,m,O
                                        ,n[999],j=33e-3,i=
                                        1E3,r,t, u,v ,W,S=
                                        74.5,l=221,X=7.26,
                                        a,B,A=32.2,c, F,H;
                                        int N,q, C, y,p,U;
                                       Window z; char f[52]
                                    ; GC k; main(){ Display*e=
 XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
 *D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
  XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
                                   XEvent z; XNextEvent(e ,&z);
                                       ++*((N=XLookupKeysym
                                         (&z.xkey,0))-IT?
                                         N-LT? UP-N?& E:&
                                         J:& u: &h); --*(
                                         DN -N? N-DT ?N==
                                         RT?&u: & W:&h:&J
                                          ); } m=15*F/l;
                                          c+=(I=M/ l,l*H
                                          +I*M+a*X)*_; H
                                          =A*r+v*X-F*l+(
                                          E=.1+X*4.9/l,t
                                          =T*m/32-I*T/24
                                           )/S; K=F*M+(
                                           h* 1e4/l-(T+
                                           E*5*T*E)/3e2
                                           )/S-X*d-B*A;
                                           a=2.63 /l*d;
                                           X+=( d*l-T/S
                                            *(.19*E +a
                                            *.64+J/1e3
                                            )-M* v +A*
                                            Z)*_; l +=
                                            K *_; W=d;
                                            sprintf(f,
                                            "%5d  %3d"
                                            "%7d",p =l
                                           /1.7,(C=9E3+
                              O*57.3)%0550,(int)i); d+=T*(.45-14/l*
                             X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
                             *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
                             179*v)/2312; select(p=0,0,0,0,&G); v-=(
                              W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
                               )/107e2)*_; D=cos(o); E=sin(o); } }

 , ,

MKuznetsov
()

Перевод сайта на WP и его поддержка

есть необходимость перевести сайт c некой ImageCMS на более знакомый и понятный WordPress. Требований к сохранению шаблона и вообще внешнего вида нет. Можно брать готовый или даже (в меру) платный шаблон подходящий по тематике. Необходимо сохранить небогатое содержание, по возможности провести его SEO-оптимизацию и далее в качестве поддержки пинать нас, чтобы выдавали статьи,прайсы, релизы и прочее-прочее.

просто катастрофически нет времени на свой-же сайт :)

и ещё требование - Москва,Подмосковье. Должна быть возможность пожать руку/попить пива/набить морду :)

идеи, предложения - тут, или на почту max_kma@mail.ru

MKuznetsov
()

монтажник,пусконаладчик

срочно нужны монтажники-слаботочники на монтаж ОПС, видеонаблюдения, СКС. Денег пока немного 1700р/день монтажник, 2000р/день инженер средней квалификации. Подробности по тел 8 (903) 200-0069, вопросы можно задавать тут.

 , ,

MKuznetsov
()

убивство ядра 3.0

имеется система на старом ядре

3.0.0-31-generic #48-Ubuntu SMP Mon Feb 4 13:22:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
причем ядро менять нельзя (точнее крайне нехочется)

и процесс который циклически отжирает почти всю имеющуюся память выделяя и заполняя массив [1024][1024][4096].

Если не дай бог ещё что-то знатно потребляет память (огнелис к примеру), то система просто падает в куищще, а надо чтоб убился тот самый процесс с массивом (Убивать его нестрашно - всё равно отладка)

подскажите что можно в системе поднастроить..

ps кстати не пойму почему оно swap не задействует - он при полностью отожранной оперативке, занят процентов на %10 всего.

решено

ошибка вызывавшая reboot была где-то между firefox, ядром и (возможно) nvidia-блобом. убивство ядра 3.0 (комментарий)

 ,

MKuznetsov
()

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

зарелизил элементы ФП в Tcl. Представлены :

  • Функции высшего порядка filter,fold,map,merge
  • Композиция chain
  • Ленивые вычисления lazy
  • Каррирование curry и realcurry
  • Мемоизация memoize
  • всякие мелочи
    • zip транспонирование списков
    • range генерация последовательностей
    • ldiv lmod деления списков на части

по сравнению с пред.анонсом сделан окончательный выбор варианта синтаксиса в сторону уменьшения числа скобок :) Часть функционала реализована на C. Есть незначительный дегрейд - временно удалёна compose (позже верну) и сахара тоже стало меньше.

проект живёт на assembla.com https://www.assembla.com/spaces/tclamba/wiki, Инструкции по использованию соотв. https://www.assembla.com/spaces/tclamba/wiki/HOWTO

В будущем стоит ожидать

  • комбинаторы S K и прочие; реализуются они не сложно, просто пока нет настроя их делать
  • паралелльные вычисления в союзе с tpool
  • возможно macro и pattern-функции

заодно и вопрос - какие ещё бывают полезные фичи, которых может нехватать в tcl? например из пролога :) или ещё откуда..

 ,

MKuznetsov
()

как проверить 4-х пиновый разъём

тот который на мать, то есть питание на нём? не имея под рукой тестера..

ps. почистил блин комп о пыли..работают только вентиляторы и питание на USB

MKuznetsov
()

а накидайте ссылок на «пузомерки»

а-ля "Работа с последовательностями в разных языках (Работа с последовательностями в разных языках)

это когда ТС`у быстро накидывают 100500 вариантов решения задачи на чуть менее чем дохрена языках. Официальные и академические ресурсы неинтересны - нужны именно темы где люди демонстрируют живую практику языков.

MKuznetsov
()

про TP-Link R470+/R480+

производитель заявляет что железка может конфигурироваться как 4 Wan+1Lan (то есть все пять интерфейсов независимо имеют/получают IP и реально маршрутизирует).

Вопрос счастливым обладателям сего - заявленное маркетингом соответсвует действительности? Какие протоколы маршрутизации оно держит (rip,ospf) или только статика? Маршрутизирует-ли он между wan-интерфейсами или только wan-lan..

железячно-продавцов такие вопросы повергают в ступор, из-за которого они не могут ничего ответить :(

ps. Если у кого под рукой такая железяка - напишите какой у неё блок питания - на сколько вольт и ампер. (а это вообще фирменный секрет не указанный ни в одной спецификации)

MKuznetsov
()

хочется на будущее шустрый программный кеш

чтобы хранить бинарные данные (байт-код вирт.машины) по UTF-16/32 ключам в ограниченном объёме (по числу записей и объёму ключа) чтобы быстро к ним стучаться.

Но есть ограничение - имплементация классический ANSI С :( То есть модный новодел нейдёт :)

MKuznetsov
()

Функциональный tcl (часть2)

в продолжении Функциональный tcl

как-то внезапно получились lazy и memoize :) это уже в добавок к map,fold,filter,zip,compose и прочим.

Демка:

#!/usr/bin/tclsh
source functional.tcl
namespace import f::*

# функция, что ну очень долго и нудно работает
set massive {{x} {
	puts "Чтото-там считаем над x=$x"
	after 1000
	puts "Читаем файлы и Обращаемся к серверам"
	after 1000
	puts "че-то получили"
	set x
}}
# но будет её соханять её результаты :)
set massive [ memoize $massive ]

set vector {}
foreach i [ range 0 10000 ] {
	lappend vector [ lazy $massive $i ]
}

set subvect [ lrange $vector 100 102 ]

set n100 [ invoke2 $massive 100 ]
set n100plus200 [ chain $massive {expr 200+} 100 ]
puts "=== Calcs done :) ==="
puts "ИТОГО:"
puts "massive 100..102 = $subvect"
puts "massive 100 = $n100"
puts "massive 100+200 = $n100plus200"
и выхлоп демки:
Чтото-там считаем над x=100
Читаем файлы и Обращаемся к серверам
че-то получили
=== Calcs done :) ===
ИТОГО:
Чтото-там считаем над x=101
Читаем файлы и Обращаемся к серверам
че-то получили
Чтото-там считаем над x=102
Читаем файлы и Обращаемся к серверам
че-то получили
massive 100..102 = 100 101 102
massive 100 = 100
massive 100+200 = 300

Хотелось бы узнать мнение сообщества об:

1) Наиболее естественный синтаксис для map,fold,filter и прочего. Сейчас

map func1 func .. funcN {argList}
Но может быть
map {funcList} arg1 arg2 .. argN
или
map {funcList} {argList}

2) Какие удобные фичи стоит подсмотреть в других языках ?

 ,

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
()

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