Back
[11:44:39] -!- logger[psha] [logger[psha]!~loggerpsh@195.135.238.205] has joined #osm-ru
[11:52:32] -!- Scondo [Scondo!~Miranda@91.135.146.246] has joined #osm-ru
[11:57:45] -!- _sev has quit [Quit: This computer has gone to sleep]
[12:01:45] -!- _sev [_sev!~sev@92.110.93.218] has joined #osm-ru
[12:13:58] -!- amak [amak!~amak@n1.jabber.d6.hsdnsrv.net] has joined #osm-ru
[12:57:29] -!- borism3461 has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
[12:57:38] -!- borism3461 [borism3461!505eae0f@107.161.19.109] has joined #osm-ru
[13:07:02] -!- Hind [Hind!~Hind@2a02:6b8:0:408:2803:f8e7:6828:2fab] has joined #osm-ru
[13:07:02] -!- mode/#osm-ru [+o Hind] by ChanServ
[13:07:17] <Hind> Кажется, у меня открылось второе OSM-дыхание:
http://i.imgur.com/JyVJzFf.png
[13:09:25] -!- Hind has quit []
[13:20:01] * freeExec в былые годы тоже мапил по 200+
[13:39:54] -!- amak [amak!~amak@n1.jabber.d6.hsdnsrv.net] has parted #osm-ru
[13:41:14] -!- amak [amak!~amak@n1.jabber.d6.hsdnsrv.net] has joined #osm-ru
[14:05:01] -!- jekhor_ has quit [Ping timeout: 480 seconds]
[14:25:34] -!- alekhm [alekhm!~alekh@88.200.242.154] has joined #osm-ru
[14:26:42] -!- alekhm [alekhm!~alekh@88.200.242.154] has parted #osm-ru
[14:28:02] -!- alekhm [alekhm!~alekh@88.200.242.154] has joined #osm-ru
[14:28:06] -!- alekhm [alekhm!~alekh@88.200.242.154] has parted #osm-ru
[14:43:24] -!- Out`Of`Control [Out`Of`Control!~Viper@000192c2.user.oftc.net] has joined #osm-ru
[14:55:42] -!- jekhor_ [jekhor_!~jek@port-113-adslby-pool36.infonet.by] has joined #osm-ru
[15:13:05] -!- jekhor [jekhor!~jek@port-113-adslby-pool36.infonet.by] has joined #osm-ru
[15:20:04] -!- jekhor_ has quit [Ping timeout: 480 seconds]
[15:28:00] -!- lks1_ has quit [Read error: Connection reset by peer]
[15:28:21] -!- lks1 [lks1!~Android@77-254-121-220.adsl.inetia.pl] has joined #osm-ru
[15:53:07] -!- jekhor has quit [Ping timeout: 480 seconds]
[16:32:12] -!- borism3461 has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
[16:39:57] -!- jekhor [jekhor!~jek@37.17.18.175] has joined #osm-ru
[16:42:41] -!- AMDmi3 [AMDmi3!~AMDmi3@95.108.173.93-red.dhcp.yndx.net] has joined #osm-ru
[17:11:21] -!- jekhor has quit [Ping timeout: 480 seconds]
[17:17:32] -!- dkiselev2 has quit [Quit: Leaving.]
[17:22:26] -!- Runge has quit [Ping timeout: 480 seconds]
[17:31:51] -!- jekhor [jekhor!~jek@port-113-adslby-pool36.infonet.by] has joined #osm-ru
[17:40:21] -!- jekhor_ [jekhor_!~jek@port-113-adslby-pool36.infonet.by] has joined #osm-ru
[17:47:19] -!- jekhor has quit [Ping timeout: 480 seconds]
[17:50:33] -!- old_Bibigon has quit [Remote host closed the connection]
[18:22:36] -!- Scondo has quit [Quit: Lost in time. And lost in space. And meaning.]
[18:26:33] -!- freeExec has quit [Read error: Connection reset by peer]
[18:30:03] -!- sh4 [sh4!~irc@178-45-0-208.saransk.ru] has joined #osm-ru
[18:34:03] -!- old_Bibigon [old_Bibigon!~bibigon@178.141.202.220] has joined #osm-ru
[18:45:19] -!- gryphon [gryphon!~gryphon@heewie-home.pskovline.ru] has joined #osm-ru
[18:49:27] -!- jekhor_ has quit [Ping timeout: 480 seconds]
[18:54:51] -!- Maks|Di2 has quit [Read error: Connection reset by peer]
[18:55:15] -!- Maks|Di2 [Maks|Di2!~maks@85.93.46.205] has joined #osm-ru
[19:57:30] -!- dkiselev [dkiselev!~dkiselev@188.234.107.71] has joined #osm-ru
[20:42:15] -!- dkiselev [dkiselev!~dkiselev@188.234.107.71] has parted #osm-ru
[20:42:15] <fantomas> Ку
[20:42:50] <fantomas> Люди, скажите кто знает, почему osm2pgsql не создает индексы? Или я что-то упустил?
[20:43:18] <fantomas> То есть там, конечно, какие-то индексы есть - по паре штук на табличку
[20:43:53] <fantomas> но мапник-то запрашивает не по ключам, то есть получается seq scan что-ли? Это есть какой-то скрипт, который создает таки индексы?
[20:51:01] -!- az09|eee [az09|eee!~e@176.215.209.0] has joined #osm-ru
[21:19:38] <Maks|Di2> osm2pgsql создаёт индексы только по геометрии
[21:19:53] <Maks|Di2> он не знает кто будет использовать базу и как
[21:20:31] <Maks|Di2> индексы надо создавать самому, исходя из своих запросов в базу
[21:23:14] <fantomas> Maks|Di2: ну значит openstreetmap-carto должен создавать индексы, или как-то так
[21:23:42] <fantomas> хотя.. ну вот у него слои, каждый - это запрос
[21:24:04] <fantomas> у него = в смысле для мапника
[21:24:26] <fantomas> так значит при работе тайл-сервера эти запросы регулярно выполняются, так?
[21:24:33] <fantomas> но при этом индексов для них нет
[21:36:02] <Maks|Di2> почему должен?
[21:36:57] <Maks|Di2> запросы ты ему в слоях сам прописываешь, следовательно сам же ориентируясь на свой запрос и можешь создать индекс
[21:38:56] <Maks|Di2> ты в запросе можешь использовать что угодно, хоть запросы к таблицам, хоть материализованные представления, хоть линки
[21:39:28] <Maks|Di2> следовательно сам и заботишься о производительности своего запроса
[21:42:52] -!- sh4 has quit [Read error: Connection reset by peer]
[22:08:49] <fantomas> Maks|Di2: ясно, просто то, что ты называешь "моими запросами" - они вовсе не мои
[22:09:28] <fantomas> Maks|Di2: они прописаны в openstreetmap-carto, который, как я понял, является стандартом сейчас для OSM (или около того)
[22:09:45] <fantomas> то есть подняв у себя стек, ты получаешь ни фига не оптимизированную базу, вот это у меня и удивило
[22:11:10] <fantomas> Но у меня сейчас другой вопросик. После отработки osm2pgsql в таблице planet_osm_roads есть две строки вместо ожидаемой одной. Причем с одним ID
[22:11:19] <fantomas> для некой области
[22:11:31] <fantomas> это как понимать? )
[22:11:54] <fantomas> когда я вывел только первую (LIMIT 1), то увидел ровно половину области
[22:12:05] <fantomas> во второй, стало быть, вторая часть
[22:12:19] <fantomas> То есть полигон из этого создать низя, и найти центр его - тоже
[22:12:45] <fantomas> Такое хорошо osm2pgsql сделал или так было в исходных данных?
[22:13:27] -!- alex[mapsme] [alex[mapsme]!~Adium@178.251.141.80] has joined #osm-ru
[22:31:44] -!- Komzpa has quit [Ping timeout: 480 seconds]
[22:35:45] <az09|eee> fantomas: что за область такая? возможно части лежат в разных полушариях..?
[22:36:02] <fantomas> az09|eee: ага, истринская ))))
[22:36:37] <Maks|Di2> fantomas: ещё раз повторяю: никто никогда не знает, кто и как будет использовать базу
[22:37:03] <Maks|Di2> не возможно никогда угадать, какие запросы ты будешь использовать
[22:37:13] -!- az09|eee has quit [Quit: Leaving.]
[22:37:24] <fantomas> Maks|Di2: а я еще раз повторю, что речь о конкретных запросах :)
[22:37:43] <fantomas> или PostGIS слаб на лишние индексы?
[22:38:02] <Maks|Di2> если ты под "openstreetmap-carto" подразумеваешь какой-то конкретный проект с каким то готовым стилем, то это проблемы этого проекта, а не базы, созданной osm2pgsql
[22:38:58] <Maks|Di2> опять же, создавая базу, я никогда не угадаю её аппаратно-зависимую часть, поэтому угодать, какой и где индекс лучше использовать невозможно
[22:40:22] <Maks|Di2> опять же зависит от набора данных, которые ты хочешь использовать
[22:40:49] <Maks|Di2> некоторые индексы зависят от релевантности ключей
[22:41:02] <Maks|Di2> одно дело для планеты целиком, другое дело для пары областей
[22:41:52] <Maks|Di2> по поводу нескольких объектов с одним ID - это так и должно быть
[22:42:27] <Maks|Di2> в ОСМ есть мультиполигоны, которые в PostGIS просто несколько линий с одним ID
[22:42:43] <Maks|Di2> сколько членов отношения - столько линий с этим ID
[22:44:32] <Maks|Di2> для операции с ним как с полигоном надо из него вначале сделать полигон, ST_Collect() или ST_Union() - не помню с ходу
[22:44:34] <fantomas> Maks|Di2: да, разумеется я подразумеваю именно тот проект. Ничего другого я не нашел, к сожалению )
[22:45:49] <fantomas> Maks|Di2: насчет моего вопроса по разбитым полигонам - pnorman на #osm мне указал на другую таблицу - собсно, с полигонами.
[22:46:05] <fantomas> Короче, все сложно, я смотрю. Буду дальше разбираться
[22:46:56] <fantomas> Maks|Di2: а я уже тут сижу пишу запрос с ST_Accum()
[22:47:11] <fantomas> чтобы обратно собрать полгоны из linestrings :)
[22:47:30] <fantomas> черт... ребята, это все очень интересно. Я хочу применить свои знания в GIS
[22:47:37] <Maks|Di2> planet_osm_polygon точно так же содержит мультиполигоны как несколько полигонов с оддним ID
[22:48:16] <Maks|Di2> например граница России это вроде бы было 25 полигонов
[22:48:17] <fantomas> ну и пусть. Мне просто admin boundaries нужны были
[22:48:47] <Maks|Di2> границы областей редко когда имеют только 1 полигон, это скорее исключение
[22:49:07] <fantomas> мне по сути нужны только названия областей (границ поселений)
[22:49:21] <fantomas> наверное самым правильным будет join к relation и оттуда брать?
[22:49:57] <fantomas> впрочем, там вообще все в одной колонке хранится, тоже не очень удобно. Тут хоть name в name'е
[22:51:22] <Maks|Di2> в любом случае в ОСМ всегда любой объект придётся вначале собирать через ST_Collect, по osm_id , потому как любой объект может быть из нескольких частей
[22:52:26] <fantomas> оу, ок
[22:53:06] <fantomas> А почему не сделали через мультиполигоны и коллекшены postgis'а? Чтобы от него не сильно зависеть? типа общего знаменателя по всем gis-sql?
[22:54:03] <Maks|Di2> потому что в OSM вообще нет никаких полигонов в принципе и нет никаких мультиполигонов
[22:54:26] <fantomas> но есть же закрытые пути с дырками :)
[22:54:28] <Maks|Di2> есть только точка и линия из точек - остальное костыли на велосипедах и условности с костылами
[22:54:36] <fantomas> (если я правильно помню что читал неделю назад)
[22:54:50] <Maks|Di2> нет никаких закрытых путей с дырками, это видимость
[22:54:58] <fantomas> хех ) блиннн ))
[22:55:28] <Maks|Di2> osm2pgsql только чутьём и подсказками угадывает какие линии из осм считать полигонами, а какие нет
[22:55:47] <Maks|Di2> потому что в самом формате ОСМ нет никаких полигонов вообще
[22:55:59] <fantomas> да, это я четко запомнил
[22:56:11] <Maks|Di2> линия с началом и концом в одном месте - это ещё не полигон
[22:56:35] <fantomas> тупой вопрос - а почему так сложилось?
[22:56:53] <fantomas> очевидно, лес - это ведь площадь
[22:57:24] <Maks|Di2> если это natural=water, то мы предполагаем, что это полигон и на этапе работы osm2pgsql - postgis складываем это в полигоны
[22:58:25] <Maks|Di2> сложилось так, потому что ОСМ слишком далеко от GIS изначально создавался и до сих пор не дорос по сути до GIS в архитектуре
[22:58:33] <fantomas> офигеть как все интересно :) А как люди из разных стран синхронизируют между собой знания обо всех этих тегах? Этот вопрос мучает меня уже неделю
[22:59:19] <fantomas> ну, то есть, их же разных дофига... Я лично видел как forset в wood в мапнике переименовывается. Жесть же!
[22:59:24] <Maks|Di2> возможно, в следующих версиях API появится тип area и это будет наверное самое революционное изменение в структуре ОСМ достижение
[22:59:52] <Maks|Di2> тегов в принципе дофига и это главный плюс и минус проекта в целом
[22:59:53] <fantomas> чувствуется, что OSM не является предметом твоего поклонения :)
[23:00:38] <Maks|Di2> плюс в том, что тебе понадобился новый тег для обозначения важных и социально-значимых объектах - ты просто придумал, договорился и обозначаешь
[23:01:00] <Maks|Di2> минус в том, что ты никогда не сможешь использоваться все теги
[23:01:04] <fantomas> Это да. Но есть какой-то штаб-то? Ну, куда засылать такие предложения?
[23:01:28] <Maks|Di2> есть теория пропозалов - т.е. предложение должно быть оформлено и мотивировано
[23:01:35] <Maks|Di2> оно обсуждается и потом голосуется
[23:01:46] <fantomas> Ясно. Строго как в Вики?
[23:01:52] <Maks|Di2> да
[23:02:03] <Maks|Di2> на практике - хрен там, есть пропозалы даже не принятые к обсуждению, но стандарт де факто
[23:02:25] <Maks|Di2> есть просто бред
[23:03:03] <Maks|Di2> придумали теги для остановок, начали отмечать, потом придумали новую схему, которая не подразумевает вообще самого объекта остановка, а только некоторое действие
[23:03:18] <Maks|Di2> в результате начался срач и родилось что-то третье
[23:03:57] <Maks|Di2> пришлось нахер всё вырезать и использовать только старые "устаревшие" теги, а кто использует новые - их проблемы, если их данных нет в картах
[23:05:14] <Maks|Di2> или ещё хуже, с типом леса. У нас как-бы карта и как бы было три типа леса: хвойные, лиственные и смешанные. Всё просто как в армии - если можно в лесу подтереться - значит лиственное, нет - хвойное
[23:06:18] <Maks|Di2> понабежали теоретрики с ботаническим приступом паранойи и теперь у нас не лиственные, а хер знает какие то сезонные широкопупырчатые листосбросные объекты
[23:09:16] <Maks|Di2> в общем проект живёт и дышит
[23:09:34] <Maks|Di2> данных много и постоянно их количество увеличивается
[23:10:25] <Maks|Di2> но что бы использовать что-то в реальности надо писать весьма обширную обработку на PostGIS, конвертер OSM -> что-то, что реально можно использовать в GIS
[23:11:59] <fantomas> ))))))))))))))
[23:12:03] <fantomas> класс
[23:12:28] <fantomas> Так, а все же, стандарт какой-то есть на вывод?
[23:12:47] -!- alex[mapsme] has quit [Quit: Leaving.]
[23:13:09] <Maks|Di2> на вывод чего? и откуда?
[23:13:58] <fantomas> Ну вот, я правда неделю искал как мне карту распечатать, QGIS ковырял, разные тайлы грузил, а в рез-те все кончилось тем, что благодаря dkiselev'у у меня контейнер со стеком и мапником, и я рисую свой project.yaml (из openstreetmap-carto), чтобы
[23:13:59] <fantomas> затем через Nik4 получить PDF
[23:14:27] <fantomas> Maks|Di2: вывод карты из postgis'а например
[23:14:44] <Maks|Di2> не в курсе, что такое Nik4
[23:14:59] <fantomas> враппер для мапника, чтобы не париться с комманд лайном
[23:15:05] <fantomas> и с питоном )
[23:15:18] <Maks|Di2> я обычно из мапника выводил скриптом на питоне нужню мне область в PDF
[23:15:46] <fantomas> он простой, но удобный этот Nik4 (
https://github.com/Zverik/Nik4)
[23:16:58] <fantomas> Я просто искал источник стилей, который является оригиналом. Куда контрибьютить и где получать самое новое, по стилям
[23:17:11] <Maks|Di2> если ему надо задавать столько параметров в аргументах, то в чём он проще скрипта на питоне, где надо только капдрат границ и разрешение подставить
[23:17:23] <fantomas> ну, так-то ничем
[23:17:53] <Zverik> Maks|Di2: «столько параметров»? В простейшем случае ему достаточно url от osm.org
[23:18:25] <fantomas> плюс надо питон знать, а я вот php знаю )
[23:18:27] <Maks|Di2> Zverik: это всё не то, нормальный для меня - это строгий bbox и всё
[23:18:32] <Zverik> или url + размер страницы + разрешение
[23:18:46] <fantomas> да, для печати очень круто
[23:18:54] <fantomas> Zverik: спасибо кстати!
[23:19:05] <Zverik> да не за что, меня радует, когда кто-то пользуется
[23:19:49] <Maks|Di2> Zverik: url мне вообще не говорит о размере картинки, точнее о строгих пропорциях, на мониторе 16:9 это одно на телефоне 1080:1920 это совсем другое
[23:20:55] <Maks|Di2> Zverik: полезный наверное скрипт, но как-то не было каких-то специфичных задач для него у меня
[23:21:28] <fantomas> Ну, если есть собственные наработки на питоне (по работе с мапником), то наверное и не будет нужды
[23:21:33] <Maks|Di2> учитывая, что питон обратно к мапнику пришивать мне лень из-за того, что версий питона что-то много расплодилось несовместимых, может быть посмотрю
[23:21:43] <Maks|Di2> или он тоже на питоне?
[23:21:49] <fantomas> конечно
[23:24:58] <Maks|Di2> По идее, печать - это стандартный препресс, следовательно для меня было бы идеальным и стандартный подход, а самое главное логичный:
[23:25:37] <Maks|Di2> 1) указываем печатный формат и задаём от каждой из границ отступ в мм, получаем фрейм, куда будет карта рисоваться
[23:26:06] <Maks|Di2> 2) задаём строгий масштаб, например 1:150000 и получаем нормально отмасштабированную карту
[23:26:25] <Maks|Di2> 3) указываем координаты центра или одного из углов
[23:26:29] <Maks|Di2> всё
[23:26:35] <Maks|Di2> и второй вариант:
[23:27:34] <Zverik> Maks|Di2: ты, явно, не просмотрел даже readme от nik4 :)
[23:27:40] <Maks|Di2> 2) указываем координаты центра
[23:27:54] <fantomas> я вроде дал ссылку
[23:28:11] <Zverik> -a 4 --margin 10mm --scale 150000 --center 55,30
[23:28:23] <Zverik> (ну или как-то так, я давно не пользовался)
[23:28:39] <fantomas> Продолжая тему про стандарт внешнего вида OSM. Можно ли считать, что стили openstreetmap-carto являются чем-то вроде этого стандарта? Если да, то нельзя ли написать транслятор из CartoCSS в QML кугисовский?
[23:28:41] <Maks|Di2> 3) казываем строгие координаты широты и долготы мин и макс и получаем картинку, которая вписывается в площадь в 1) без лишнего, если это не совпадает по пропорциям
[23:29:18] <Maks|Di2> Zverik: я сколько не эксперементировал, формат указания масштаба у мапника непопадает в истинное значение +/- 50%
[23:29:20] <Zverik> ну, всё так и есть. Причём несколько вариантов, что делать, если не совпадают пропорции
[23:29:42] <Maks|Di2> Zverik: ок, посмтрел бы, если бы питон не снёс
[23:29:47] <fantomas> (ну и плюс к этому для каждого запроса из project.yaml конечно надо создать вьюху, которую можно прямо тащить в qgis)
[23:30:15] <fantomas> Maks|Di2: ты на винде? мак? как можно на линуксе снести питон? )
[23:30:31] <Maks|Di2> точнее не снёс, а сборка с ним поломалась
[23:30:45] <Maks|Di2> снести нельзя, в том то и проблема
[23:30:50] <fantomas> хех
[23:31:05] <Maks|Di2> у меня рендер основной, там слишком старый питон, на ноуте слишком новый
[23:32:01] <Maks|Di2> по этому, я оторвал всё, что зависело от питона и собираю без него
[23:32:20] <Maks|Di2> все остальные компоненты не сложно поддерживать актуальными
[23:32:52] <fantomas> Напомнило мне как люди отрывали pulse :)
[23:33:01] <fantomas> типа, чистая alsa, и все тут!
[23:33:13] <fantomas> но гемора с этим больше, чем разобраться что не работает в пульсе
[23:34:19] <Maks|Di2> это зависит от дистрибутива, у меня никогда не было проблем с пульсом
[23:35:15] <Maks|Di2> только для игр на анреаловском движке там что-то надо было перед запуском в аргументы добавить
[23:36:08] <fantomas> а я в стиме играю только, если что не так - сразу гневный репорт на стимовских форумах, разрабы достаточно быстро реагируют
[23:36:29] <fantomas> нет времени разбирться, ведь игры в основном - за бабло, вот пусть сами бегают
[23:36:58] <Maks|Di2> Zverik: если честно, то я не знал, что там так широко всё в твоей утилите, подумаю, может удастся запустить её одновременно на питоне 2.* и на самом свежем
[23:37:22] <Maks|Di2> fantomas: а на линуксе можно играть во что-то без стима?
[23:37:31] <Zverik> не уверен, что под третьим будет работать, я только на 2.7 проверял
[23:37:33] <fantomas> Maks|Di2: я не пробовал )
[23:37:43] <AMDmi3> в нормальные свободные игры :)
[23:37:51] <fantomas> Maks|Di2: хотя раньше (лет 5 назад) я WoW запускал в wine
[23:38:04] <Zverik> fantomas: у меня alsa поверх pulse (или рядом, там фиг разберёшься)
[23:38:06] <fantomas> хотя не, даже еще раньше - в 2008
[23:38:09] <Maks|Di2> fantomas: они все собирают свои игрушки с линками на определённую версию либ и стим тащит с собой почти 300 МБ либ
[23:38:23] <fantomas> Zverik: не, наоборот у тебя )
[23:38:33] <fantomas> Zverik: alsa - low level
[23:39:09] <fantomas> Maks|Di2: мне вообще вот пофиг, главное чтобы работало. Я все жду Steam OS
[23:39:49] <Maks|Di2> fantomas: для желающих алсу у пульса есть alsa-api, так что в данном случае альса над плульсом, если я ничего не путаю
[23:40:51] <Maks|Di2> fantomas: я скачал стим-ос, запустил, это оказался дебиан, с третьим гномом, он долго тупил, потом не смог поставить загрузчик и умер
[23:41:35] <fantomas> Maks|Di2: не, я в такой хардкор еще не пускался :) Вот когда девайсы начнут продавать со стимосом я может прикуплю
[23:42:05] <Maks|Di2> а ещё пришлось долго с сетья поанонировать, в общем обычный такой дебиан, поседеешь, пока заработает на железе средней новости
[23:42:45] <fantomas> :)
[23:42:56] <Maks|Di2> в общем под конкретное железо вполне должно работать
[23:43:25] <Maks|Di2> AMDmi3: нормальные игры - это вообше на свежем воздухе!
[23:43:49] <Maks|Di2> а все остальные по определению не пормальные
[23:43:56] * fantomas под впечатлением разгворов запустил Steam
[23:44:05] <AMDmi3> Maks|Di2: здрасте, а настолки?
[23:44:23] <Maks|Di2> AMDmi3: ну если только на раздевание :)
[23:44:24] <fantomas> А РПГ?
[23:47:31] <Maks|Di2> настольная рпг на раздевание? это уже интересно
[23:52:27] -!- gryphon has quit [Remote host closed the connection]
[23:52:55] <Maks|Di2> вот если в стиме появится JOSM - вот это будет прорыв
[23:58:04] <Maks|Di2> кстати да, я вспомнил, что обещал распечатать карту радиактивных болот
[23:58:38] <Maks|Di2> будет повод попробовать собрать мапник с питонами и попробовать Nik4