Путь наращивания железной составляющей и принебрежения пограмной части, ИМХО, — тупиковый путь. К сожалению очень не многие придерживаются этого мнения и… мы имеем, то что имеем — Ubuntu который умирает на 2ГБ и оперативки и т.д.
Вы не правы — это прекрасно работает (кстати быстрее чем без), ведь синхронизация кода достигается за счет mtx.lock. К тому же вы меня не поняли — я имел ввиду совсем не DCLP. Переменная mtx_locked тут используется чтобы избежать синхронизации, если можно допустить, что при mtx_locked > 0 наш мютекс в локе, и мы делаем что-то другое.
Попробуйте wish из tcl/tk.
Отличная кроссплатформенная многолинейка с подсветкой синтаксиса и т.д., умеет все что и оригинальный windows prompt + многофункциональный скрипт язык. Уже давно забыл cmd.
Для тех кто использует TCL (можно не только как скрипт, но и нативно) — все гораздо проще…
% package require sqlite3
## откроем БД :
% sqlite3 db test.sqlite
## стандартный NOCASE collation вернет здесь "none", потому что
## действует ASCII only ...
% db onecolumn {select 'ok' where 'абвгд' == 'АБВГД' collate NOCASE union all select 'none'}
none
## регистрируем NOCASE collation, используя tcl функцию (utf-8 safe)
% proc NOCASE_compare {a b} {
string compare -nocase $a $b
}
% db collate NOCASE NOCASE_compare
## теперь снова пробуем, NOCASE collation вернет здесь уже "ок"
% db onecolumn {select 'ok' where 'абвгд' == 'АБВГД' collate NOCASE union all select 'none'}
ok
А можно и через дополнительные функции…
## регистрируем собственную функцию для "nocase like" :
% db function NCLIKE {string match -nocase}
## test it ...
% db onecolumn {select 'ok' where NCLIKE('Te?t - аб*', 'TEST - АБВГД') union all select 'none'}
ok
## test it in table ...
% set search {Te?t - аб*}
% db onecolum {select field1 from tab1 where NCLIKE($search, field1)}
TEST - АБВГД
Откровениями в понимании «почему так» можно делится в комментариях..
все просто: cause single byte encodings are sub sets of utf-8.
Правда бывают исключения, когда оно не совсем корректно работает — например, в строку utf-8 можно положить букву «Я» как %d0%af или %c3%83%c2%9f (не совсем легально %04%2f) или даже однобайтно %df (правдо только если систем-кодировка cp1251). Теперь при сравнении естественно что %d0%af != %df.
Так же, не совсем корректно функция будет сравнивать (сортировать) буквы некоторых других языков, например те, что справа-налево — потому, что при простом вычитании, где должно быть позитив — будет негатив.
Интересный зверь, вижу тоже первый раз.
Для сайта-визитки друга юзал как-то подобный — GetSimple. Выбор пал по двум причинам:
1) встал под энджин за пару минут (ну не люблю я апач);
2) был CKEditor на борту (можно было навесить свой парсер, отдавать на редактирование клиенту только content без кода, и т. д.)
Эксплоит штука тонкая и под линуксами зависит много от чего… (система, кернел, железо, и тд и тп). Написать же кроссплатформенный червь который взлетит и на мандриве x64 и на убунте x86 я себе представляю делом крайне неблагодарным.
А автор «трояна» — самоубийца однако: IP принадлежит какому-то дид-серверу на leaseweb в нидерландах. Кстати пингуется…
inetnum: 212.7.192.0 — 212.7.223.255
netname: PL-DEDISERV-20100812
descr: Dediserv Dedicated Servers Sp. z o.o.
country: NL
из оригинала на сайте:
> Механизм распространения этого троянца еще выясняется.
В таких защищенных системах, как Linux и MacOS, это как раз самое интересное. Это естественно, что если у меня (был) например рут, так я любой кейлоггер забабахаю.
Если оно умеет через какую-нить дыру повышать свои привилегии, тогда да — это новость.
А так очередная кроссплатформенная штучка…
PS. Некоторые антивирусные компании взяли моду обзывать вирусом (червем, и т.д.) всякую дрянь, даже которую для линукса из под рута ставить или поди еще и самому компилировать нужно… маркетинг — такой маркетинг.
mtx.lock. К тому же вы меня не поняли — я имел ввиду совсем не DCLP. Переменнаяmtx_lockedтут используется чтобы избежать синхронизации, если можно допустить, что приmtx_locked > 0наш мютекс в локе, и мы делаем что-то другое.хотя клавиши управления у меня работают под виндой везде — какая версия?
Про п. 2 не совсем — хотя эта тема отдельной статьи и никак не комментариев.
Отличная кроссплатформенная многолинейка с подсветкой синтаксиса и т.д., умеет все что и оригинальный windows prompt + многофункциональный скрипт язык. Уже давно забыл cmd.
А можно и через дополнительные функции…
все просто: cause single byte encodings are sub sets of utf-8.
Правда бывают исключения, когда оно не совсем корректно работает — например, в строку utf-8 можно положить букву «Я» как %d0%af или %c3%83%c2%9f (не совсем легально %04%2f) или даже однобайтно %df (правдо только если систем-кодировка cp1251). Теперь при сравнении естественно что %d0%af != %df.
Так же, не совсем корректно функция будет сравнивать (сортировать) буквы некоторых других языков, например те, что справа-налево — потому, что при простом вычитании, где должно быть позитив — будет негатив.
Для сайта-визитки друга юзал как-то подобный — GetSimple. Выбор пал по двум причинам:
1) встал под энджин за пару минут (ну не люблю я апач);
2) был CKEditor на борту (можно было навесить свой парсер, отдавать на редактирование клиенту только content без кода, и т. д.)
всемлюдям с противоположной стороны сразу понятно стало :)inetnum: 212.7.192.0 — 212.7.223.255
netname: PL-DEDISERV-20100812
descr: Dediserv Dedicated Servers Sp. z o.o.
country: NL
> Механизм распространения этого троянца еще выясняется.
В таких защищенных системах, как Linux и MacOS, это как раз самое интересное. Это естественно, что если у меня (был) например рут, так я любой кейлоггер забабахаю.
Если оно умеет через какую-нить дыру повышать свои привилегии, тогда да — это новость.
А так очередная кроссплатформенная штучка…
PS. Некоторые антивирусные компании взяли моду обзывать вирусом (червем, и т.д.) всякую дрянь, даже которую для линукса из под рута ставить или поди еще и самому компилировать нужно… маркетинг — такой маркетинг.