LINUX.ORG.RU

Сообщения kiverattes

 

Посоветуйте linux-редактор для javascript?

Форум — Development

Ну чтобы там всякие переходы по именам сущностей по Ctrl+click, как в эклипсе, чтобы всякие умности. Ну и для HTML5 впридачу.

kiverattes
()

HTML, JS, бесшовно воспроизвести много мелких файлов.

Форум — Development

Хочется забросить семплы типа http://dagoneev.no-ip.biz/samplebank/ в единую базу и запилить редактор, где ты можешь квадратиками располагать их последовательно и слушать получившуюся композицию. Располагать их хочется вертикально (в столбик), дабы справа для каждого помещалось его текстовое содержимое.

Как бесшовно воспроизвести много мелких mp3-файлов, не склеивая их на сервере в один, а загрузив в броузер по-отдельности? Юзер натыкал последовательность файлов 151.mp3 4.mp4 9.mp3 4.mp3 1.mp3 1.mp3 1.mp3 и нажал [PLAY]. Он должен услышать их последовательно, желательно с минимальным швом между файлами (про 200 мс в mp3 формате что-то слышал, но что поделать). Какой-нибудь ява-скриптовый onPlayFinished с подстановкой следующего файла из массива в тег <audio>? Что-то в этом духе надо понять как сделать...

Посоветуйте идей.

kiverattes
()

Куда девать много речевых аудиосемплов? Может кому в игрушку надо?

Форум — Talks

Давайте замутим проект, в котором нужны такие семплы. Типа «собери рассказ из фраз». Люди голосуют, самый ржачный рассказ - в топе.

Если нарубать много тыщ таких фраз и добавить поиск...

http://dagoneev.no-ip.biz/samplebank/

kiverattes
()

Qt, производительная 2D-графика.

Форум — Development

Я вот знаю, что есть QPixmap, хранящий данные в памяти, принадлежащей иксам, а сам хранящий только ID иксового буфера или указатель на иксовую память. Это делает очень быстрой операцию отрисовки QPixmap - иксам никуда не надо ходить, берут готовый буфер, преобразованный под удобный им формат и тупо копируют в видеопамять.

Есть QImage, хранящий данные в памяти процесса, далеко не в том формате, в котором их удобно выводить в видеопамять, но в удобном формате для манипуляций с пикселами. Таким образом, если мне надо нарисовать что-то хитрое и потом его показывать, я рисую в QImage, потом пихаю результат в QPixmap и многократно его переиспользую для отображения.

Есть функции рисования примитивов у QPainter, типа drawLine. Они наверное транслируются в соответствующие иксовые или WinAPI-вызовы.

А есть ещё всякие фреймворки типа QGraphicScene - он упрощающает разработку простых 2D-графических приложений, грубо говоря: решает какие из миллионов объектов на сцене надо показывать, какие даже не надо пытаться рисовать, ибо они за экраном, какой там уровень зума и т.п. и т.д.

Я хочу на пальцах разобраться в вопросах производительности графики в Qt. Можно даже сказать, что меня интересует «геймерская графика» на самом низком уровне, но не ниже вызовов библиотеки Qt.

То есть мне интересно, какие сущности собственно являются средством рисования объектов на экране, какие сущности управляют только логикой и свойствами неких объектов (типа QGraphicScene). Скажем так, если задать себе такой дебильный вопрос, типа «какие штуки помогают оптимизировать производительность», то можно сказать так:

1) QGraphicScene - полезна потому, что её быстрые алгоритмы способны быстро найти объекты, которые надо показывать за счёт какого-нибудь там 2D-бинарного-дерева.

2) QPixmap держит данные в самом оптимальном для отображения формате (и месте), поэтому показать картинку из QPixmap - быстрее, чем из QImage.

Хочется для начала выяснить, сколько способов вывести что-то в окно существует в Qt, не прибегая к платформенно-зависимым вещам (типа вставить кусок ассемблерного кода, который в обход Qt что-то где-то нарисует) или к OpenGL или к DirectX?

Например: можно вызвать QPainter::drawLine() и др примитивы, можно вызвать QPainter::drawPixmap() или нарисовать QImage. Что ещё? Есть ли какой-то другой способ вывода пикселей, примитивов, буферов на экран?

Какие сущности в Qt занимаются управлением всякими там графическими сценами, без которых можно обойтись, изобретя свой велосипед, более оптимальный для управления твоими специфическими объектами?

Вот например, игра танчики. Возможно, для этого бы не подошёл QGraphicScene, ибо у разработчика могут быть специфические особенности управления и выбора объектов для отображения. Если я делаю движок, управляющий видимостью объектов, выбором видимых, детекцией столкновений, то могут быть более оптимальные алгоритмы, чем заложенные по дефолту в QGraphicScene.

Например, как может выглядеть алгоритм прокрутки большой карты? Карта разбивается на куски 128x128 пикселей как в google maps, выбираются видимые куски и рисуются через QPainter::drawPixmap. Летящая пуля - постояный update() с вызовом paintEvent() всего виджета? Или можно как-то оптимальнее?

kiverattes
()

Где регулируется дефолтный броузер в gentoo? Поставил firefox-bin, skype стал в нём ссылки открывать.

Форум — General

Сабж.

kiverattes
()

Посоветуйте USB ЦАП для наушников.

Форум — Talks

Вот у меня есть такой http://www.ebay.com/itm/SMSL-SD-270-PCM2704-USB-Decoder-Sound-Card-Amplifier-... дешёвый китайский USB-цап на какой-то хорошей микросхеме, но может быть с плохой обвязкой. В тиши я слышу лёгкое шипение.

Недавно пробовал вот такую штуку http://www.ibasso.com/en/products/show.asp?ID=69 и услышал, скажем аудиофильским языком, «больше деталей» в НЧ-части. Бас был и со старым девайсом, но скажем так начали различаться между собой звуки, находящиеся рядом в полосе 100...200 гц. Раньше всё сильнее сливалось в одно.

Короче, посоветуйте чё-нибудь для звукоулучшение. Наушники мониторные german maestro 8.35D.

kiverattes
()

Рассчёт цифровых фильтров.

Форум — Development

Хочу на C реализовать полосно-задерживающий и полосно-пропускающий фильтр с настраиваемой полосой. Посоветуйте самый простой или самый оптимальный, широко используемый в разных аудио-редакторах алгоритм. Хорошо бы с минимальной пульсацией АЧХ. Можно не такие крутые перепады АЧХ между полосами пропускания и задерживания, как у фильтра Чебышева - тогда я просто применю его N раз до нужного эффекта и всё.

kiverattes
()

Вопрос по интерфейсу звукового редактора.

Форум — Development

Вопрос 1

Скриншот: http://dagoneev.no-ip.biz/i/2013-11-21---23-54-37.85.jpg

Раньше, в ситуации на скриншоте, при нажатии CTRL+C в буфер попадало содержимое выделенного фрагмента того трека, который «текущий» (шапка синяя). А теперь представьте, что на первом треке выделенный фрагмент остался, а на двух следующих пропало. Текущим остаётся последний трек, как раньше. Что теперь должно попасть в буфер? По прежней логике - ничего.

Это путает юзера: он видит на экране выделенных фрагментов больше нуля, а в буфер ничего не копируется. Оказывается, нужно было посмотреть на то, какой трек является текущим.

Можно упростить логику, исключив параметр «текущий трек» из формулы совсем. Принцип: если что-то где-то выделено, то оно учавствует в копировании. Вопрос в том, как такое копирование будет выглядеть? Скопировать 3 отдельных куска? А как их потом вставлять, они ведь относились к разному времени. Да и в том проекте, куда ты будешь их вставлять, трек может быть 1, а не 3.

Самый простой вариант: замесить все 3 фрагмента в один, равный по длине самому длинному из исходных, взяв 3 фрагмента независимо от времени, в которое они начинаются.

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

Вопрос 2

Скриншот: http://dagoneev.no-ip.biz/i/2013-11-22---00-20-16.95.jpg

Есть метка, обозначающая интервал. Хочется по ней кликнуть и сразу нажать CTRL+C, чтобы скопировать кусок, обозначенный этой меткой. Неудобство в том, что нужно постоянно следить за тем, какой из звуковых треков является текущим.

Чё делать?

kiverattes
()

Расскажите в свободной форме об основных отличиях между windows и linux в плане набора разновидностей нитей выполнения, синхронизации, IPC.

Форум — Development

То есть, примерно вот такие вопросы: 1) Какие разновидности нитей выполнения (потоки, процессы, зелёные потоки, синие, фиолетовые..., в чём разница между ними) есть под линуксом, какие есть пол виндоусом (тоже - разница между ними, особенности)

2) Какие примитивы синхронизации существуют там и там, какая разница, особенности. Можно кратко, не надо разжовывать, многое я, наверное, юзал в жизни.

3) Какие способы межпроцессного взаимодействия есть там и сям.

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

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

Можно прочитать каких-то умных книг стопку, но мне не нужны детали, которые я уже могу знать, хочется просто сверить своё представление и знания на уровне «в общем и целом».

Спасибо.

kiverattes
()

Виртуализация. Моя ситуация, требования, проблемы, опыт.

Форум — General

Обсудите мою ситуацию. Я живу в линуксе, но раз в неделю надо винду запустить, дабы в ней собрать проект на C++ Иногда надо собрать какую-нибудь сверх-жирную библиотеку из 300 метров исходников, типа Qt или boost - это адъ, ибо в виртуалке хрен дождёшься. И на обычном-то компе хрен дождёшься, а тут совсем жесть. Виртуалка лезет в ядро, половина графика загрузки ЦПУ красная (время ядра), я незнаю чё она там потеряла. Исходники qemu читать я ещё не совсем долбанулся.

Виртуалку я юзаю qemu-kvm - то есть, qemu на базе системы виртуализации из ядра linux - kvm. Я считаю, что это кошерно, юзать нативные способы виртуализации, которые благословлены самим торвальдсом, а не тащить в систему какой-нибудь virtualbox. Зачем, если и так аппаратная виртуализация?

И вот в этот qemu я коннекчусь через rdesktop и отзывчивость системы в принципе нормальная. Но дисковые операции расстраивают меня.

В компе стоит 1 терабайтник http://market.yandex.ru/model.xml?modelid=7773181 и 32 Гб ОЗУ. Проц 2500K. Виртуализации vt-d нет. Она (vt-d) бы сильно мне помогла с вводом-выводом или бы я затрахался это настраивать? Прошу не путать - обычная аппаратная виртуализация исполнения кода есть, а виртуализации ввода-вывода, свойственной для серваков - нет.

Я когда комп собирал, матерей с vt-d и камней с ним было мало и стоило всё в 2 раза дороже и не был чётко понятен смысл этой затеи. Платить в 2 раза дороже, чтобы раз в 2 недели винду комфортно юзать в виртуалке - ну его нафиг, я лучше ещё один такой же комп соберу.

Вот поэтому я подумал, что рамдиск на 40 гигов бы спас меня. Мне же не надо, чтобы изменения, которые винда сделала на своём диске C: сохранились после завершения работы, мне лишь бы проект скомпилировать. А новый софт надо будет поставить - запущусь не из рамдиска.

Вот я незнаю, может kvm (qemu-kvm) - не лучший выбор и virtualbox сильно дофига даст прирост производительности?

Под wine я кстати не пробовал запускать вижуал студию. Стоит пробовать? И не пробовал кросс-компиляцию под линуксом... Куда копать? Может мне и не нужна никакая компиляция внутри виртуалки с виндой, а проект под винду можно собрать не отходя от кассы?

kiverattes
()

Посоветуйте видеоредактор типа kdenlive, но не такой глючный?

Форум — Multimedia

Сабж.

kiverattes
()

Вертикальное отображение аудио-дорог в редакторе.

Форум — Talks
kiverattes
()

Прокачаться в low-latency сетевом программировании и многопоточностях.

Форум — Development

Писал сетевые приложения под linux с использованием select, epoll на C++. Многопоточность использовал pthreads и boost кросс-платформенно.

Хочется прокачаться в низком уровне - какие бывают примитивы синхронизации на уровне ядра: какие в линуксе, какие в винде, какие во фре, всякие там отличия и особенности. Какие бывают разновидности потоков и процессов под всеми этими платформами. Знать про все compare-and-swap, про межпроцессную коммуниацию, особенности шаринга памяти и т.д.

Есть какой-нибудь крутой мануал, где всё старательно собрано в кучу и тема раскрыта по самое небалуйся? Можно на английском, я не жадный.

kiverattes
()

Система тестирования веб-сервисов.

Форум — Development

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

Желательно, с учётом некоторых правил, ибо известно тестируемое API. Скажем, http://localhost/command/subcommand?id=4&q=6

И я пишу что-то типа

number=50000
template=http://localhost/[a-zA-Z]{1,8}/[a-zA-Z]{1,8}?id=[1-9]{1,5}&q=[1-9]{1,5}

И оно генерит 50000 случайных запросов по указанным правилам.

Можно самому написать, но вдруг уже что-то есть. Желательно не особо монструозное, а вот именно тыкалку в случайные URL-ы и записывалку ответов.

kiverattes
()

Посоветуйте карманную мыльницу с хорошей матрицей.

Форум — Talks

Без сменных объектовов, компакт, но хороший. Я юзал sigma dp1 с матрицей 22 на 13 мм, это была вещь, но RAW задолбался обрабатывать. Иногда хочется быстро чё-то сфоткать, нужно видео со стереозвуком, аккум не сильно слабый, габариты поменьше.

kiverattes
()

Посоветуйте USB ЦАП для наушников.

Форум — Talks

Сабж. Что-нибудь оптимальное тыщ за 10. АЦП не нужен, только ЦАП. Наушники 35 Ом, мониторные. Почему USB? Ну их больше, да и разницы нет, 44100 в основном.

P.S. А вот эта штука рулит в качестве ЦАП? Слышал ещё про какие-то траблы под линуксом. Объясните ситуацию на октябрь 2013. Старьё? http://www.avito.ru/sankt-peterburg/muzykalnye_instrumenty/e-mu_0404_usb_-_au...

kiverattes
()

Java vs Python: сетевые HTTP-сервисы, прототипирование.

Форум — Development

Чё-то вот возникло желание познакомицца с j2ee.

Знаю Python, не знаю Java вообще (основной языг - C++). Нравится питонная дисциплина по форматированию кода, читать легче. Нравятся питонные синтаксические фокусы, сокращающими запись. Не нравится отсутствие многопоточности в питоне.

Почему часто можно встретить высказывание, что Python чаще применяется в высоконагруженных проектах и в качестве быстрого средства набросать скрипт, пробный код, алгоритм? Первая мысль, что несколько быстрее пишется код за счёт отсутствия необходимости писать фигурные скорочки и много ключевых слов типа static, public, всё заворачивать в классы, за счёт компактного синтаксиса сложных операций.

А лор почему написан на java, а не на питоне?

kiverattes
()

Куда развиваться? Какие направления отсматривать?

Форум — Job

Как правильно формулировать такие требования и на какое направление обратить внимание вообще. Подбросьте релевантных ключевых слов (англ. рус.)

Обр. высшее, 5 лет, инженер, увлекался ассемблером и pmode 386, читал wasm.ru, вирьмейкерские конфы, потом было 6 лет коммерческого опыта C++ в области web backend, сетевых демонов, самодельных СУБД (типа in-memory NoSQL key-value), обработки сигналов, Qt 4.8, SQL (PostgreSQL/MySQL), stl, boost. В приоритетах алгоритмические задачи, многопоточность, структуры данных, сеть. Интересно смешивать парадигмы: низкий уровень, шаблоны C++, функциональщину, метапрограммирование. Использовал ALSA, valgrind, vtune, dgb.

Python: Делал любительские проекты на Python объёмом в ~20 классов уровня гуляния по форумам, поиска ключевых слов в сообщениях, отвечания на них, веб-сервисы небольшие.

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

Какие направления отсматривать и чем заниматься по вечерам, наращивая скилы? Вижу 2 интересных больших направления: linux kernel, графика-шейдеры-геймдев. Первое более солидное и долгосрочное в перспективе, второе менее серьёзное.

Кому нужен linux kernel? Тем, кто хочет на лету с минимальными задержками работать в сети, перехватывать какие-то операции, что-то шифровать на лету. Таких задач немного, но линукс шагает по планете уже серьёзно, скоро таких будет много. Отсюда растёт дорога в драйверы устройств, специфические файловые системы и т.п. Много всего интересного и критичного по памяти/устойчивости/производительности можно накопать.

Геймдев. Что тут? Шейдеры? Обработка сигналов для спецэффектов? Сетевые сервера для большого кол-ва клиентов? Трудно найти что-то, не завёрнутое в какой-то готовый движок. Единицы делают что-то своё, напрямую прикасаясь к шейдерам или низкому уровню, мне кажется. Игровые сервера для новых игровых проектов - да, возможно интересно (плюс, ты предметно не ограничен собственно игрушками), клиентская сторона - наверное менее интересно.

Ещё варианты?

kiverattes
()

Веб-сервисы на Python.

Форум — Development

Хочу написать для развлечения и саморазвития форум на питоне с развитой системой кармы и древовидными каментами. Форум будет работать на postgresql. Писал простые веб-сервисы на cherrypy, а когда-то давно в 2006 году писал какой-то сайт на питоне с помощью BaseHTTPServer, SocketServer, SimpleHTTPServer и т.п., но он был однопоточный, как я сейчас догадываюсь.

А как сейчас наиболее распространено взаимодействие с клиентами по HTTP в питоне в высоконагруженных проектах? nginx + FCGI - какой-нибудь способ есть популярный? Или от это лукавого? Или как? На самом питоне-то не особо попишешь многопоточные сервера, многопоточности-то там нет истинной, да и нафиг не надо, если есть «nginx-инфраструктура».

kiverattes
()

Собрать deb-пакет: как лучше: CMake или написать свой скрипт с выполнением шагов по официальному мануалу?

Форум — Development

Есть проект, собирающийся CMake. Под линуксом хочется добавить сборку .deb-пакета. В CMake есть какой-то функционал для сборки .deb и для меня наверное это самый лёгкий путь - прописать пяток строчек в свой CMakeLists.txt, но не будет ли проблем?

kiverattes
()

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