#  Re: Google и x86_32
btimofeev (station13, 13) → Andrew Lobanov  –  11:37:46 2016-07-12

AL> Не хочу C++. Правда яву я хочу ещё меньше =)

А мне вот наоборот ява нравится больше cpp.

Еще под андроид можно на go писать. И на python'е плюс kivy. Правда сам я это все не пробовал.
#  Re: Google и x86_32
btimofeev (station13, 13) → vit01  –  11:37:45 2016-07-12

Тоже с этим столкнулся, пришлось ставить
adb и сопутствующие тулзы из репозитория дистрибутива и копировать в папку android studio.

vit01> На моём ящике с двумя гигами писать для андроида, мягко говоря, проблематично. На нетбуке же (1ГБ) невозможно в принципе (уже пробовал).

Я на нетбуке пользовался android studio в течении последних трех лет. Нетбук с 1 гб оперативки и 1.6 Ггц intel atom. Но конечно тормозит оно жестоко.
#  Re: Google и x86_32
vit01 (mira, 1) → Andrew Lobanov  –  04:38:55 2016-07-12

AL> Не хочу C++. Правда яву я хочу ещё меньше =)

Пока что, увы, скриптовые языки на мобильных платформах совсем не развиты. Любой подобный эксперимент требует индивидуального подхода и кучи сил/времени.

Я вон тоже мечтаю, чтобы с комфортом можно было писать GUI и на питоне, и на лиспах, и даже на Lua каком-нибудь. В идеале даже прикручивать собственные shared-libraries с любыми биндингами для языков. А ещё чтобы можно было делать пакетирование для андроида полностью из CLI (в том числе на самом девайсе).

Что ж, видимо, прогресс идёт совсем в другую сторону.
#  Re: Google и x86_32
Andrew Lobanov (tavern,1) → vit01  –  04:21:46 2016-07-12

Не хочу C++. Правда яву я хочу ещё меньше =)
#  Re: Google и x86_32
Andrew Lobanov (tavern,1) → vit01  –  04:20:18 2016-07-12

> Понимаю, конечно, что гуглу просто лень делать сборки, но надо же хоть как-то предупреждать. А то нажал кнопочку "Обновить", и сборочное окружение полностью сломано. Несерьёзно для такой большой корпорации.

Эта общая тенденция нынче. 32-разрядные системы постепенно уходят в прошлое, так как с них уходят разработчики и им лень заниматься сборкой. И везде или мелким шрифтом или молча это делают.
#  Re: Google и x86_32
vit01 (mira, 1) → vit01  –  04:14:21 2016-07-12

И ещё немного упрёков в сторону продуктов сабжа. В системных требованиях для Android Studio указано, что минимальный объём ОЗУ должен быть 2 гига, а рекомендуемый - 8.

На моём ящике с двумя гигами писать для андроида, мягко говоря, проблематично. На нетбуке же (1ГБ) невозможно в принципе (уже пробовал).

Гугл, ты серьёзно? 8 гигов оперативы для мелкого Android-HelloWorld?

Короче, парни, пишите на C++ и Qt. Да, у них тоже есть свои минусы, но зато гораздо ниже системные требования, и оно работает на 32-битных системах. А поддержка Андроида и кроссплатформенности у Qt со временем постоянно улучшается. Кроме этого, можно писать в любимом Vim/Emacs.
#  Google и x86_32
vit01 (mira, 1) → All  –  04:02:26 2016-07-12

Корпорация постепенно избавляется от поддержки 32-битных систем в своих инструментах для разработчиков. Так опытным путём я выяснил, что последняя рабочая версия SDK - 24, при этом в ней надо ещё заменить подкаталог build-tools на такой же из 23.0.1.

Последний рабочий вариант NDK - версия 10.

Если попытаться обновить SDK через встроенный конфигуратор, на следующий раз он просто не запустится. И даже не выдаст предупреждения, дескать, "ставится только 64-битная сборка, вы уверены?"

В официальных ChangeLog об изменениях написано вскользь и мелким шрифтом.

Понимаю, конечно, что гуглу просто лень делать сборки, но надо же хоть как-то предупреждать. А то нажал кнопочку "Обновить", и сборочное окружение полностью сломано. Несерьёзно для такой большой корпорации.
#  Re: cmus
vit01 (mira, 1) → btimofeev  –  18:02:57 2016-06-13

btimofeev> Можешь еще посмотреть код deadbeef'а, у него внутри плагина доступна функция для добавления нескольких треков.

deadbeef как раз на разные сомнительные штуки имеет функцию плагиноинициализации. Здесь я сделал подобную вещь и тем самым завершил перенос функций добавления плейлиста внутрь плагинов.

Посмотрим, что разработчик ответит: https://github.com/cmus/cmus/pull/460
#  Re: cmus
btimofeev (station13, 13) → vit01  –  04:52:39 2016-06-06

Можешь еще посмотреть код deadbeef'а, у него внутри плагина доступна функция для добавления нескольких треков.
#  Re: cmus
vit01 (mira, 1) → btimofeev  –  15:46:22 2016-06-05

Разработчик мне только сегодня ответил. Пишет, что времени на просмотр кода у него очень мало, но подбадривает и говорит, чтобы я продолжал. Как сделаю большую часть, то пулл-реквест открою.
С кодом cd посложнее будет, потому что там инициализация модуля в самом коде находится. Больше всего вопросов по коду определения типа файла. Но ничего, зато нескучно будет.

Планирую сделать в каждом плагине функцию инициализации, где всякая экзотика сможет регистрировать собственные обработчики плейлистов и других штук.
#  Re: cmus
btimofeev (station13, 13) → vit01  –  16:33:17 2016-05-27

vit01> Проталкивать в апстрим пока страшновато (несмотря на то, что моя ветка уже собирается и не сегфолтится).

Лучше создай заранее issue с обсуждением изменений или напиши на почту майнтейнеру приложения (его ник flyingmutant, он из России, на почту он нормально отвечает), так как он делает код ревью и отправляет на доработку если ему что-то не нравится (мой простенький vtx плагин со второго или третьего раза принял, точно не помню).
#  Re: cmus
vit01 (mira, 1) → vit01  –  15:55:41 2016-05-27

Заняться хакингом сабжа таки получилось. Начал с перемещения неуместного кода для cue в отдельное место (благо оно там уже есть) и с написания отдельного обработчика для "особенных" форматов.
Дальше планирую ещё больше убрать из самого плеера плагин-специфичные куски кода, но с таким количеством хаков и костылей это придётся делать постепенно и небыстро.

Проталкивать в апстрим пока страшновато (несмотря на то, что моя ветка уже собирается и не сегфолтится).
#  Re: Несетевые проекты
vit01 (mira, 1) → btimofeev  –  01:49:59 2016-05-25

btimofeev> Могу предложить поучаствовать в относительно крупном проекте. Есть очень неплохой консольный музыкальный плеер cmus.

Спасибо за идею. Вот собрал его только что, потом освою и буду исходники курить.
#  Re: emuchip-qt
vit01 (mira, 1) → btimofeev  –  01:49:59 2016-05-25

vit01> // Плюсы, кстати, неплохая вещь, особенно, в связке с Qt. Жаль, что раньше никогда почти дел с ними не имел.
btimofeev> А мне они уже не нравятся, слишком сложный язык, по-моему.

Смотря с чем сравнивать. Вот если сравнить C++ & Qt с Java на андроиде, то первая связка гораздо приятнее в работе.
А так на питоне проще всего делать. Вот хорошее отличие от питоновского PyQt в том, что не надо заморачиваться с импортами разных фич (т.е. не надо помнить заранее, какая вещь в каком классе находится).
#  Re: emuchip-qt
btimofeev (station13, 13) → vit01  –  15:30:31 2016-05-24

vit01> Надо бы какой-нибудь покрупнее проект найти.

Могу предложить поучаствовать в относительно крупном проекте. Есть очень неплохой консольный музыкальный плеер cmus. У его плагинной системы один недостаток: из плагина нельзя добавить несколько треков в плейлист (это нужно для музыкальных форматов в которых в одном файле может содержаться несколько треков). К примеру в плагинах поддержки cue и cd это сделано хаками: часть кода плагина содержится в коде программы. И это сильно усложняет написание подобных плагинов + при компиляции плагина нужно перекомпилировать и программу. Текущий майнтейнер проекта не против изменений, но никто за реализацию этого так и не взялся.

vit01> // Плюсы, кстати, неплохая вещь, особенно, в связке с Qt. Жаль, что раньше никогда почти дел с ними не имел.

А мне они уже не нравятся, слишком сложный язык, по-моему.
#  Re: emuchip-qt
vit01 (mira, 1) → btimofeev  –  13:48:34 2016-05-24

Хочется ещё и ещё кода понаписать. ;)

Надо бы какой-нибудь покрупнее проект найти.

// Плюсы, кстати, неплохая вещь, особенно, в связке с Qt. Жаль, что раньше никогда почти дел с ними не имел.
#  Re: emuchip-qt
btimofeev (station13, 13) → vit01  –  10:34:30 2016-05-24

vit01> Починил проблему с полосой, установив EventFilter на событие изменения размера меню.

Работает, спасибо. Кстати, добавь себя в файл authors.
#  Re: emuchip-qt
vit01 (mira, 1) → vit01  –  05:02:48 2016-05-24

Починил проблему с полосой, установив EventFilter на событие изменения размера меню.
Заодно сделал получение объекта menuBar единичным, а то как-то не очень хорошо для каждого раза заново метод вызывать.
#  Re: emuchip-qt
vit01 (mira, 1) → btimofeev  –  19:43:24 2016-05-23

Хорошо. А я тут наконец-то выяснил, почему появляется та самая белая полоса внизу окна. Это происходит из-за того, что размеры окна становятся больше, чем размер [холста + меню].

У тебя есть функции set1x(), set2x() и так далее. Внутри них есть такой кусок кода:


setFixedSize (512, 256 + menuBar()->height()); // например, так


Так вот, обнаружил, что перед первой отрисовкой окна (то есть при вызове readSettings() из конструктора) функция height() выдаёт одно значение, а после отрисовки - другое. У меня правильным оказывается второе значение, а первое - на 3 пикселя больше, чем надо.

Варианты: либо продолжить разборки и найти в самом Qt причины этого, либо сделать какой-нибудь костыль.
#  Re: emuchip-qt
btimofeev (station13, 13) → vit01  –  18:02:09 2016-05-21

vit01> О, а кода там совсем немного. Уже сейчас успел отправить, можно мержить, собирать и проверять.

Спасибо, смержил.

Насчет производительности: демки qt отрисовывают тысячи объектов с огромной скоростью, тут же отрисовка сотни квадратов порой тормозит. Особенно заметно на демках типа Climax Slideshow, на высоких разрешениях.

Я тут еще антиалиайсинг отключил, как то упустил его при портировании на qt5.
#  Re: emuchip-qt
vit01 (mira, 1) → vit01  –  09:48:40 2016-05-21

О, а кода там совсем немного. Уже сейчас успел отправить, можно мержить, собирать и проверять.
#  Re: emuchip-qt
vit01 (mira, 1) → btimofeev  –  09:16:41 2016-05-21

btimofeev> 2. ..... Вот передача этого массива между объектами реализована полным копированием, а не передачей указателя. Все мои попытки передать указатель заканчивались segfault'ом. Здесь наверное сказывается мое плохое знание c++, либо неправильная архитектура.

У меня получилось решить эту проблему. Вот приду с репетиции вечером, причешу код немного и закину на Гитхаб.
Правда, производительность только чуть-чуть повысилась, но всё же.

Над qt-шной пустой полосой пока думаю.
#  Re: Несетевые проекты
btimofeev (station13, 13) → vit01  –  13:13:57 2016-05-19

vit01> Если руки дойдут, то и над этим голову поломать можно. Можно поподробнее, что за ошибки?

1. При изменении размера окна внизу появляется пустая полоса в несколько пикселей. Не понимаю откуда она берется.

2. Второе это даже не ошибка, а не очень хорошо написанный код. Внутри эмулятор создает двумерный массив, представляющий экран. Виджет должен отрисовать этот массив на экране. Вот передача этого массива между объектами реализована полным копированием, а не передачей указателя. Все мои попытки передать указатель заканчивались segfault'ом. Здесь наверное сказывается мое плохое знание c++, либо неправильная архитектура.
#  Re: Несетевые проекты
vit01 (mira, 1) → btimofeev  –  12:33:44 2016-05-19

Серьёзная вещь, надо бы посмотреть.

btimofeev> Но в эмуляторе есть пара ошибок, которые я так и не решил (одна связана с размером окна Qt, вторая с указателями c++).

Если руки дойдут, то и над этим голову поломать можно. Можно поподробнее, что за ошибки?

btimofeev> // а вообще я всегда хотел написать эмулятор Sega Mega Drive, но думаю не дорос еще))

Это и вправду сложная задача. Но зато есть и те, кто на эту платформу до сих пор пишет. Вот у меня есть знакомый (который даже в секте появлялся пару раз), регулярно делающий что-нибудь под сегу на ассемблере. Музыку пишет и всякие прикольные графические эффекты.
#  Re: azot
vit01 (mira, 1) → vit01  –  12:19:26 2016-05-19

Сделал в сабже вот что:

* Инициализация дисплея для иксов теперь проходит только один раз
* В конфиге можно задавать самому задержку для проверки курсора
* Конфиг в самом начале не надо копировать вручную, программа сделает это сама
(вариант копирования из /usr/share/doc/ тоже работает)
* Теперь азот работает не на втором питоне, а на третьем

По первому пункту скажу, что после исправления сабж у меня исправно проработал около двух часов и никаких болезненных симптомов не показывал. Так что, видимо, проблема решена. Но протестировать всё равно надо.
Powered by iii-php v0.11