• QProcess - как правильно последовательно выполнять shell команды?

    gbg
    @gbg
    Любые ответы на любые вопросы
    1. Команды не срабатывают потому, что это или встроенные команды bash (kill), или путь нужно писать полностью (killall - /usr/bin/killall).

    2. Для работы по ssh вам нужен не qprocess, a libssh. Вот через нее вы и сессию SSH сможете открыть, и покомандовать.
    Ответ написан
    1 комментарий
  • Посоветуете рекламные биржи для Anroid приложений?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    лучше AdMob по совокупности параметров ( в т.ч. накопить и вывести) вряд ли найдете, тем не менее, на Ру рынок имеет смысл посмотреть и на Мейлрушный продукт https://target.my.com/

    тем не менее, можете рассмаотреть и других admobispy.com/blog/tizernie-seti ( обращайте внимание на минималку, ибо там все может и остаться, когда плюнете), и особенно тех, с кем работают аггрегаторы мобильной рекламы - те точно более-менее живые
    Ответ написан
    2 комментария
  • Разработка игр на Qt - QOpenGL или QGraphicsScene? Или есть еще варианты?

    Zifix
    @Zifix Куратор тега Qt
    Barbatum
    Согласен со Станиславом, вряд ли упирается в QGraphicsScene, он и 2000 думаю вывезет.

    Однако принципиально это не единственный вариант, есть гораздо более быстрый SceneGraph, который должен спокойно вывозить и сотни тысяч объектов.

    Во-первых есть пример игры в комплекте с QtCreator.
    Во-вторых, гугл пилил на QML полноценный платформер, называется VoltAir
    Ответ написан
    Комментировать
  • Разработка игр на Qt - QOpenGL или QGraphicsScene? Или есть еще варианты?

    Конечно все зависит от логики вашей игры и тяжести ваших ресурсов. Если тут все просто, то отрендерить 25 фигур не составив труда. Возможно у вас проблема в самой логике рендера, где-то делаеться много лишних телодвижений. Сказать более точно сложно... С производетельностью pipeline Qt проблем не должно быть. Возможно Я конечно ошибаюсь, но на моей практике все летало шустро.
    Ответ написан
    1 комментарий
  • Как вы освоили шаблоны проектирования?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Когда начался бум и восторг вокруг концепции паттернов проектирования, выкрики "GoF рулит!" и так далее, я озадачился тем, чтобы понять, что за шум?

    По своей сути - паттерны - это обычные шаблоны проектирования. Заимствовано у обычных архитекторов (те, которые зданиями занимаются). Суть проста. В работе архитектора есть задачи, которые удобно решать одним или несколькими проверенными способами.

    По аналогии в проектировании софта имееются свои архитектурные вопросы вроде разбиения приложения на компоненты/модули, организации зависимостей между ними, распределение функциональных обязанностей и т.п. Как ловко подметили авторы книжки из этой банды четырех (The "Gang of Four") в нашей индустрии можно также выделить некоторе количество типовых шаблонов, проверенных на практике, чтобы тем самым не наступать на уже обойденные другими грабли.

    Суть постижения паттернов заключается в том, чтобы осознать в каких ситуациях правильно использовать тот или иной шаблон проектирования и правильно его применить. Важно понимать при этом, что формула "чем больше паттернов я придумал засунуть с свое приложение - тем лучше" - неверная. Использовать их следует с умом и только там, где они действительно нужны. Кроме того, патерны устаревают, превращаются в анти-паттерны по мере развития технологий (которые в нашей области делают это более чем стремительно). Ну и, конечно, есть шаблоны общепринятые и есть те, которые успешно используются в узких кругах.
    Тут тоже надо понимать, что это не догма какая-то - типа 10 священных паттернов проектирования :)

    Чтобы понять, где они нужны - нужен опыт. То есть (я лично убежден), что учиться на ошибках других может только крайне ограниченное число людей. Все остальные обязаны набить шишки самостоятельно :)

    К изучению паттернов я дам такие советы:

    1) Прочтите пару книжек, чтобы понять, что это за зверь и с чем его едят. Можно взять одну из вариаций книжки GoF или какие-то производные для вашего стека разработки - познакомиться с основными популярными шаблонами. Сразу после этого я посоветовал бы прочесть книжку "Горький вкус Java" (Брюс Тейт) - она про анти-паттерны. Это чтобы понять обратную сторону их использования. Мне понравилась и уберегла думаю от многих проблем. То что на примере Java - неважно. Речь идет о шаблонах, так что представителям других стеков (к которым отношусь и я) будет просто понять все равно.

    2) Постарайтесь осознать, доводилось ли вам сталкиваться в работе раньше с чем-то, что является или могло бы легко стать одним из шаблонов. Где получалось применить концепт верно, а где из-за этого только проблемы были.

    3) В новых проектах, держите в голове полученные по шаблонам знания - вдруг пригодятся.

    В конечном итоге, знаете ли вы паттерны, или нет - с опытом приходит понимание того, какая архитектура будет правильная, а какая - нет. Как сделать удобно, а как нет. И неважно, какими паттернами это обозвать.

    Я даже пожалуй посоветовал бы подойти к освоению айтишной архитектурной мудрости с другой стороны - со стороны нефункциональных требований или так называемых "-ilities" - их много. Тут вот описаны 7 штук. А вообще их десятки.

    Среди прочих - такие как maintainability (простая поддержка кода), scalability (масштабируемость), extensibility (расширяемость), availability (устойчивость ) и тп. Если, проектируя свое приложение, вы задумываетесь об этих "илитях" и стараетесь их обеспечить в необходимом проекту объеме, то, как правило, ваше приложение будет иметь отличную архитектуру. При этом шаблоны проектирования в ней появятся лаконично сами собой.

    Поскольку идея использовать шаблоны - это попытка опытных программных инженеров дать десяток готовых рецептов менее опытным, чтобы пока они не научились варить "вкусную кашу", они не варили уж что-то совсем несъедобное. :) Учитесь "готовить", разбирайтесь в -ilites :) и все будет хорошо
    Ответ написан
    6 комментариев
  • Как вы освоили шаблоны проектирования?

    goodprogrammer
    @goodprogrammer
    к. ф.-м. н.
    Опасная дорожка — заставлять себя применять паттерны. Паттерны не волшебная таблетка.

    Гораздо лучше самому сесть и подумать над решением, потом решить, набить шишек и через время изучить паттерны. Тогда будет настоящее понимание, где и как их применять.

    А то такого набыдлокодите, что мама не горюй :(
    Ответ написан
    3 комментария
  • Как эффективно тестировать клиент-серверные приложения написанные на Qt на одной машине?

    обмен идет через UDP

    QTcpSocket

    Непонятно, что из этого выбрать.

    Не совсем понял смысл выражения "значение QTcpSocket", но с точки зрения протокола IP, операционная система при стандартном способе привязки сокетов будет иденфтицировать сокет (и соответствующее приложение) по паре (IP адрес; порт). Если вы все-таки используете UDP и соответствующий тип сокетов, то вы так или иначе решаете задачу подключения нескольких клиентов к серверу (в случае TCP это делал бы для вас QTcpServer). В зависимости от выбранной вами модели управления, клиенты либо используют фиксированный UDP порт и посылают дейтаграммы с некоторого IP-адреса и этого порта, сюда же ожидая ответ от сервера, либо выбирают случайный свободный UDP-порт.
    В первом случае сложно называть клиентов "клиентами", т.к. они также висят на фиксированном порту и с точки зрения сети равноправны с сервером. Чтобы протестировать этот случай, можете попробовать добавить дополнительные IP-адреса вашей машине, и привязываться разными "клиентами" на разные адреса, чтобы пара (адрес, порт) была уникальной.
    А во втором случае проблем быть не должно, если порт выбирается случайным образом.
    Ответ написан
    2 комментария
  • Как реализовать раздельную область видимости а 1 сишнике?

    magalex
    @magalex
    Архитектор распределённых систем управления
    Не совсем понятно, что значит переменная должна работать с функциями. Возможно Вы имели ввиду, что переменная должна быть доступна из функций. Тогда решение в лоб:
    функция1()
    переменная
    функция2()
    функция3()

    таким образом, функция2 и функция3 смогут работать с переменной, а функция1 - нет.

    Но лучше сделать, как предложил GavriKos :
    функция1()
    функция2(переменная*)
    функция3(переменная*)

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

    @Xano
    область видимости в общем случае рассчитывается очень просто:
    в N строчке видно всё, что написано в строчках от 0 до N - 1 ( с учетом уровней вложенности фигурных скобок )
    Ответ написан
    Комментировать
  • Как реализовать раздельную область видимости а 1 сишнике?

    GavriKos
    @GavriKos
    Возможно конечно. Например, не делать переменную глобальной, а объявить ее в main и передавать указатели в две другие функции.
    Ответ написан
    Комментировать
  • Использование библиотеки в Си - где может быть ошибка?

    @vilgeforce
    Раздолбай и программист
    Судя по описанию - баг эклипса
    Ответ написан
    Комментировать
  • Подключаемые библиотеки не могут работать с файлами - почему?

    EvgenijDv
    @EvgenijDv
    C/C++ programmer
    Я правильно понимаю, что вы используете предварительно собранные библиотеки и просто линкуете их к своему проекту? Какой компилятор и какая версия libstdc++ использовалась при сборке библиотеки у ее автора и какая версия libstdc++ установлена на вашей машине?
    Ответ написан
    1 комментарий
  • SVN не хочет загружать архив по svn+ssh(не дает права на логин). Кто виноват - я или владелец репозитория?

    @MoonMaster
    Программист и этим все сказано
    Обычно если SVN+SSH постоянно спрашивают пароль, то дело в одном файле. На сервере должен быть файл key.ssh в котором должен описан ключ к репозиторию.
    Ответ написан
    Комментировать
  • SVN не хочет загружать архив по svn+ssh(не дает права на логин). Кто виноват - я или владелец репозитория?

    @mureevms
    Думаю, что присутствует непонимание с обеих сторон.
    Так и скажите им, что ни разу не работали с такой связкой, попытки подключиться не увенчались успехом и попросите инструкцию по подключению, желательно для виндовс.
    Ответ написан
    Комментировать
  • Qt - какие библиотеки/пакеты нужны для запуска программы на Linux?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Так с линуксом даже проще. Сообенно если у дистрибутива в репозиториях есть Qt5.4 - просто поставить нужный пакет.

    А так вам нужны все теже библиотеки типа QtCore.so QtGui.so и т.п. плюс к ним libstdc++.so и libc.so (последние две наверняка уже есть в системе).

    Если вы не хотите париться с установкой пакетов (что вообще не правильно, и ваша программа должна быть сделана виде пакета с зависимостями от Qt`ешных пакетов) то можно положить либы где-нибудь рядом с программой и запускать ее через скрипт, который добавляет к переменным окружения путь до выших либ (это не правильно, но ьбудет работать).

    Вобщем правильное решение:
    Сделать .deb и .rpm пакеты с зависимостями от Qt.
    Сделать tar.gz для систем без пакетных менеджеров (в этом случае владельцам самимис ледует позабоится о наличии библиотек, вы только скажите какие им нужны)
    Ответ написан
    Комментировать
  • Как подключить модуль в qt под windows?

    @vilgeforce
    Раздолбай и программист
    По указанной вами ссылке написано как модуль собирать и включать в проекты на Qt.
    Ответ написан
    1 комментарий
  • Какой курс/книгу посоветуете по современному программированию на PHP для поднятия уровня?

    Melkij
    @Melkij
    PostgreSQL DBA
    Единственной прочитанной за это время книгой была

    Значит, Макконнелл "Совершенный код", Рефакторинг М.Фаулер. Если даже уже читали - то перечитайте. По прошествии аж 5 лет много чего переосмыслите на повторном чтении.
    Фридл "Регулярные выражения" пригодится для общего образования, "High Performance MySQL" - обязательно, если работаете с mysql
    www.phptherightway.com изучаете всё, что прошло мимо вас конкретно в мире PHP.

    На ближайшее время хватит.
    Ответ написан
    1 комментарий