Сообщения в develop.16

Re: Android coding

Ответ на сообщение
vit01> У тебя есть Swap-раздел на старом ноуте? Последний раз, когда gradle зависал, его подключение помогло.
Да, был в виде файла. Здесь тоже есть, но как отдельный раздел. Так что дело в чем то другом видимо.
vit01> Версия SDK тоже 23 или другая? Могу заархивировать собственный и выложить на сервер, если надо.
SDK 23, build tools я пробовал 23.0.3 и 23.0.2, platform tools были 24 (они уже 64х разрядные) я на их место скачал тоже 23.

Если не сложно выложи пожалуйста.
btimofeev to vit01 (2016-07-26 16:30:05) [ссылка]

Re: Android coding

Ответ на сообщение
btimofeev> Build tools все поставил 23 версии, так как они 32 битные. Причем виснет даже на сборке хелловорлда. И вот не понятно что теперь делать. Никто с таким не сталкивался?
Примерно сталкивался. У тебя есть Swap-раздел на старом ноуте? Последний раз, когда gradle зависал, его подключение помогло.
Версия SDK тоже 23 или другая? Могу заархивировать собственный и выложить на сервер, если надо.
vit01 to btimofeev (2016-07-26 14:38:05) [ссылка]

Re: Android coding

Ответ на сообщение
Что-то у меня тоже беда со сборкой. Так как нетбук мой умер, сегодня я скачал свой проект на старый комп с хубунтой. Запускаю сборку, а gradle виснет на стадии app:mergeDebugResources. Build tools все поставил 23 версии, так как они 32 битные. Причем виснет даже на сборке хелловорлда. И вот не понятно что теперь делать. Никто с таким не сталкивался?
btimofeev to vit01 (2016-07-26 13:08:54) [ссылка]

Re: Android coding

Ответ на сообщение
vit01> Пробовал запускать версию 1.4/1.5 буквально в прошлом году. Девайс виснет намертво (примерно на этапе компиляции проекта).
Я пользовался начиная с самых первых бета версий и до 2.* включительно. С зависаниями сталкивался если только помимо студии запустить еще что-то тяжелое, потипу браузера. Тогда не хватает ни памяти, ни свопа.

Вообще и последние версии тулз для сборки очень прожорливые и медленные. Компилирую я проекты через консоль, так для последней версии моей программы ушло около 20 минут на сборку release версии. При этом пришлось закрыть все программы за исключением консоли, так как сборка прерывалась из-за нехватки памяти.
vit01> Про поддержку Python3 Андрей уже сказал ранее.
У них в бложике последние записи на тему того, что они добавляют поддержку 3 пайтона. https://kivy.org/planet/
vit01> С GoLang дел не имел пока. На текущий момент его осваивать как-то не хочется.
Язык по-моему достаточно хорош. Он маленький, простой и при этом напоминает помесь Си и скриптовых языков. Некоторые советуют учиться на этих простых примерах https://gobyexample.com/ Они покрывают (почти?) весь язык и часть стандартной библиотеки.
btimofeev to vit01 (2016-07-12 13:56:27) [ссылка]

Re: Android coding

Ответ на сообщение
vit01>> На моём ящике с двумя гигами писать для андроида, мягко говоря, проблематично. На нетбуке же (1ГБ) невозможно в принципе (уже пробовал).
btimofeev> Я на нетбуке пользовался android studio в течении последних трех лет. Нетбук с 1 гб оперативки и 1.6 Ггц intel atom. Но конечно тормозит оно жестоко.
Пробовал запускать версию 1.4/1.5 буквально в прошлом году. Девайс виснет намертво (примерно на этапе компиляции проекта).
btimofeev> И на python'е плюс kivy.
У kivy есть существенные недостатки, как по мне. Во-первых, недостаёт важных модулей (например, ctypes). Во-вторых, kivy до сих пор не имеет достойного редактора форм (у Qt есть очень удобный Qt Designer), и их придётся писать вручную. Есть, конечно, Kivy Designer, но он настолько сильно тормозит и много падает, что ему даже альфа-статус присваивать рано.

Про поддержку Python3 Андрей уже сказал ранее.

С GoLang дел не имел пока. На текущий момент его осваивать как-то не хочется.
vit01 to btimofeev (2016-07-12 13:06:54) [ссылка]

Re: Google и x86_32

Ответ на сообщение
> И на python'е плюс kivy.
Вроде, там какие-то проблемы с третьим питоном, но для себя именно такой вариант на будущее рассматриваю. Пайтон, киви и бульдозер =)
Andrew Lobanov to btimofeev (2016-07-12 11:45:02) [ссылка]

Re: Google и x86_32

Ответ на сообщение
AL> Не хочу C++. Правда яву я хочу ещё меньше =)
А мне вот наоборот ява нравится больше cpp.

Еще под андроид можно на go писать. И на python'е плюс kivy. Правда сам я это все не пробовал.
btimofeev to Andrew Lobanov (2016-07-12 11:37:46) [ссылка]

Re: Google и x86_32

Ответ на сообщение
Тоже с этим столкнулся, пришлось ставить
adb и сопутствующие тулзы из репозитория дистрибутива и копировать в папку android studio.
vit01> На моём ящике с двумя гигами писать для андроида, мягко говоря, проблематично. На нетбуке же (1ГБ) невозможно в принципе (уже пробовал).
Я на нетбуке пользовался android studio в течении последних трех лет. Нетбук с 1 гб оперативки и 1.6 Ггц intel atom. Но конечно тормозит оно жестоко.
btimofeev to vit01 (2016-07-12 11:37:45) [ссылка]

Re: Google и x86_32

Ответ на сообщение
AL> Не хочу C++. Правда яву я хочу ещё меньше =)
Пока что, увы, скриптовые языки на мобильных платформах совсем не развиты. Любой подобный эксперимент требует индивидуального подхода и кучи сил/времени.

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

Что ж, видимо, прогресс идёт совсем в другую сторону.
vit01 to Andrew Lobanov (2016-07-12 04:38:55) [ссылка]

Re: Google и x86_32

Ответ на сообщение
Не хочу C++. Правда яву я хочу ещё меньше =)
Andrew Lobanov to vit01 (2016-07-12 04:21:46) [ссылка]

Re: Google и x86_32

Ответ на сообщение
> Понимаю, конечно, что гуглу просто лень делать сборки, но надо же хоть как-то предупреждать. А то нажал кнопочку "Обновить", и сборочное окружение полностью сломано. Несерьёзно для такой большой корпорации.
Эта общая тенденция нынче. 32-разрядные системы постепенно уходят в прошлое, так как с них уходят разработчики и им лень заниматься сборкой. И везде или мелким шрифтом или молча это делают.
Andrew Lobanov to vit01 (2016-07-12 04:20:18) [ссылка]

Re: Google и x86_32

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

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

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

Короче, парни, пишите на C++ и Qt. Да, у них тоже есть свои минусы, но зато гораздо ниже системные требования, и оно работает на 32-битных системах. А поддержка Андроида и кроссплатформенности у Qt со временем постоянно улучшается. Кроме этого, можно писать в любимом Vim/Emacs.
vit01 to vit01 (2016-07-12 04:14:21) [ссылка]

Google и x86_32

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

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

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

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

Понимаю, конечно, что гуглу просто лень делать сборки, но надо же хоть как-то предупреждать. А то нажал кнопочку "Обновить", и сборочное окружение полностью сломано. Несерьёзно для такой большой корпорации.
vit01 to All (2016-07-12 04:02:26) [ссылка]

Re: cmus

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

Посмотрим, что разработчик ответит: https://github.com/cmus/cmus/pull/460
vit01 to btimofeev (2016-06-13 18:02:57) [ссылка]

Re: cmus

Ответ на сообщение
Можешь еще посмотреть код deadbeef'а, у него внутри плагина доступна функция для добавления нескольких треков.
btimofeev to vit01 (2016-06-06 04:52:39) [ссылка]

Re: cmus

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

Планирую сделать в каждом плагине функцию инициализации, где всякая экзотика сможет регистрировать собственные обработчики плейлистов и других штук.
vit01 to btimofeev (2016-06-05 15:46:22) [ссылка]

Re: cmus

Ответ на сообщение
vit01> Проталкивать в апстрим пока страшновато (несмотря на то, что моя ветка уже собирается и не сегфолтится).
Лучше создай заранее issue с обсуждением изменений или напиши на почту майнтейнеру приложения (его ник flyingmutant, он из России, на почту он нормально отвечает), так как он делает код ревью и отправляет на доработку если ему что-то не нравится (мой простенький vtx плагин со второго или третьего раза принял, точно не помню).
btimofeev to vit01 (2016-05-27 16:33:17) [ссылка]

Re: cmus

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

Проталкивать в апстрим пока страшновато (несмотря на то, что моя ветка уже собирается и не сегфолтится).
vit01 to vit01 (2016-05-27 15:55:41) [ссылка]

Re: emuchip-qt

Ответ на сообщение
vit01> // Плюсы, кстати, неплохая вещь, особенно, в связке с Qt. Жаль, что раньше никогда почти дел с ними не имел.
btimofeev> А мне они уже не нравятся, слишком сложный язык, по-моему.
Смотря с чем сравнивать. Вот если сравнить C++ & Qt с Java на андроиде, то первая связка гораздо приятнее в работе.
А так на питоне проще всего делать. Вот хорошее отличие от питоновского PyQt в том, что не надо заморачиваться с импортами разных фич (т.е. не надо помнить заранее, какая вещь в каком классе находится).
vit01 to btimofeev (2016-05-25 01:49:59) [ссылка]

Re: Несетевые проекты

Ответ на сообщение
btimofeev> Могу предложить поучаствовать в относительно крупном проекте. Есть очень неплохой консольный музыкальный плеер cmus.
Спасибо за идею. Вот собрал его только что, потом освою и буду исходники курить.
vit01 to btimofeev (2016-05-25 01:49:59) [ссылка]

Re: emuchip-qt

Ответ на сообщение
vit01> Надо бы какой-нибудь покрупнее проект найти.
Могу предложить поучаствовать в относительно крупном проекте. Есть очень неплохой консольный музыкальный плеер cmus. У его плагинной системы один недостаток: из плагина нельзя добавить несколько треков в плейлист (это нужно для музыкальных форматов в которых в одном файле может содержаться несколько треков). К примеру в плагинах поддержки cue и cd это сделано хаками: часть кода плагина содержится в коде программы. И это сильно усложняет написание подобных плагинов + при компиляции плагина нужно перекомпилировать и программу. Текущий майнтейнер проекта не против изменений, но никто за реализацию этого так и не взялся.
vit01> // Плюсы, кстати, неплохая вещь, особенно, в связке с Qt. Жаль, что раньше никогда почти дел с ними не имел.
А мне они уже не нравятся, слишком сложный язык, по-моему.
btimofeev to vit01 (2016-05-24 15:30:31) [ссылка]

Re: emuchip-qt

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

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

// Плюсы, кстати, неплохая вещь, особенно, в связке с Qt. Жаль, что раньше никогда почти дел с ними не имел.
vit01 to btimofeev (2016-05-24 13:48:34) [ссылка]

Re: emuchip-qt

Ответ на сообщение
vit01> Починил проблему с полосой, установив EventFilter на событие изменения размера меню.
Работает, спасибо. Кстати, добавь себя в файл authors.
btimofeev to vit01 (2016-05-24 10:34:30) [ссылка]

Re: emuchip-qt

Ответ на сообщение
Починил проблему с полосой, установив EventFilter на событие изменения размера меню.
Заодно сделал получение объекта menuBar единичным, а то как-то не очень хорошо для каждого раза заново метод вызывать.
vit01 to vit01 (2016-05-24 05:02:48) [ссылка]

Re: emuchip-qt

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

У тебя есть функции set1x(), set2x() и так далее. Внутри них есть такой кусок кода:
setFixedSize (512, 256 + menuBar()->height()); // например, так
Так вот, обнаружил, что перед первой отрисовкой окна (то есть при вызове readSettings() из конструктора) функция height() выдаёт одно значение, а после отрисовки - другое. У меня правильным оказывается второе значение, а первое - на 3 пикселя больше, чем надо.

Варианты: либо продолжить разборки и найти в самом Qt причины этого, либо сделать какой-нибудь костыль.
vit01 to btimofeev (2016-05-23 19:43:24) [ссылка]

Re: emuchip-qt

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

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

Я тут еще антиалиайсинг отключил, как то упустил его при портировании на qt5.
btimofeev to vit01 (2016-05-21 18:02:09) [ссылка]

Re: emuchip-qt

Ответ на сообщение
О, а кода там совсем немного. Уже сейчас успел отправить, можно мержить, собирать и проверять.
vit01 to vit01 (2016-05-21 09:48:40) [ссылка]

Re: emuchip-qt

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

Над qt-шной пустой полосой пока думаю.
vit01 to btimofeev (2016-05-21 09:16:41) [ссылка]

Re: Несетевые проекты

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

2. Второе это даже не ошибка, а не очень хорошо написанный код. Внутри эмулятор создает двумерный массив, представляющий экран. Виджет должен отрисовать этот массив на экране. Вот передача этого массива между объектами реализована полным копированием, а не передачей указателя. Все мои попытки передать указатель заканчивались segfault'ом. Здесь наверное сказывается мое плохое знание c++, либо неправильная архитектура.
btimofeev to vit01 (2016-05-19 13:13:57) [ссылка]

Re: Несетевые проекты

Ответ на сообщение
Серьёзная вещь, надо бы посмотреть.
btimofeev> Но в эмуляторе есть пара ошибок, которые я так и не решил (одна связана с размером окна Qt, вторая с указателями c++).
Если руки дойдут, то и над этим голову поломать можно. Можно поподробнее, что за ошибки?
btimofeev> // а вообще я всегда хотел написать эмулятор Sega Mega Drive, но думаю не дорос еще))
Это и вправду сложная задача. Но зато есть и те, кто на эту платформу до сих пор пишет. Вот у меня есть знакомый (который даже в секте появлялся пару раз), регулярно делающий что-нибудь под сегу на ассемблере. Музыку пишет и всякие прикольные графические эффекты.
vit01 to btimofeev (2016-05-19 12:33:44) [ссылка]