1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

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

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Кодерский уголок

Тема в разделе "Мастерская", создана пользователем Dimouse, 10 сен 2006.

  1. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.149
    В соответствии с назначением раздела, в этой теме предполагается обсуждать конкретные вопросы, которые у вас возникают при создании своих программ (в частности - игр), помогать другим, размещать полезные ссылки на статьи и материалы, которые могут пригодиться другим.

    Что здесь не допускается:
    - беспорядочный флуд на всевозможные темы, в том числе общие обсуждения языков программирования без конкретики (карается по статье "флуд и оффтопик" *),
    - разжигания на темы "что лучше, Си или Си++ и чем они отличаются?", "какой язык программирования лучше X или Y?" и т.п. (карается по статье "флейм и участие в холиварах" *),
    - мерение пиписьками в стиле "я лучше программирую" или "ты не умеешь программировать" (карается по статье "оскорбление участников и их взглядов" *).

    Всё это допускается в специально созданной теме "Беседка для программистов или «Бутерброд с кодом».

    * по усмотрению модератора также возможно применение блокировки в данной теме.

    Оригинальное сообщение
     
    Последнее редактирование модератором: 24 ноя 2014
    CY8R4Y нравится это.
  2.  
  3. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.207
  4. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Всё нормально: строки 1233..1299 - определение класса (область видимости - аж до строки 1302), строка 1301 - конструктор... Довольно изящно, я б сказал.
     
    nop и Kristobal Hozevich Hunta нравится это.
  5. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.207
    Рыжий Тигра нравится это.
  6. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    @Kristobal Hozevich Hunta, всегда пожалуйста. :-)
    А трюк с "локальным классом" - забавный, беру себе на вооружение...
     
  7. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    Да, я тоже как-то не пользовался таким. И не факт, что буду.
    Сам паттерн похож на замыкание, только создаваемое вручную.
    В строке 1305 более простой пример того же самого.
    Но сейчас в C++ есть настоящие лямбды.
    Извиняюсь, что раньше не ответил. Упорно пилил вот это.
    http://www.vogons.org/viewtopic.php?f=46&t=27045&p=511835#p511835
     
    Kristobal Hozevich Hunta нравится это.
  8. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.207
    @nop, у меня гораздо хуже всё.

    Вышеуказанный фрагмент - это часть кода, взаимодействующая с усеченным интерпретатором SWF (который Adobe Flash). Код выводит текст с эффектом телетайпа, причем именно в этой части "замораживает" работу интерпретатора и обрабатывает кадр "active" самостоятельно (в SWF также содержится tween-анимация и код Action Script, который отрабатывает до данного кадра и передает ему управление). А нормальное продолжение работы сидит в глубине этого кода, когда все веточки, триггеры и флаги выставлены в единственно верное положение ( startGame(0) ). То есть еще параллельно и реверс SWF нужен. Наркоманы проклятые ))

    Вобщем, у в мозгу уже неделю что-то щелкает и дым из ушей идет ))

    Но интересно, да. Спасибо ))
     
    Последнее редактирование: 12 июл 2016
  9. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    @Kristobal Hozevich Ну, как я понял, эти локальные классы - это новые методы, добавляемые динамически к объектам скриптового языка. Если они заменяют собой старые, то те освобождаются.
     
  10. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.207
    Подскажите по отладке в MSVC. После точки останова хочу посмотреть на экран остановленной программы (то, что было выведено на экран исполняемой программы в момент останова). Это вообще возможно?

    **********************

    Сдвигаю MSVC за пределы экрана, оставив только верхушку с кнопкой запуска отладки. Запускаю программу в оконном режиме. Тогда после останова вижу содержимое окна программы в момент останова. Но как-то коряво это.

    Alt+Tab, LMB на окне остановленного приложения, разные окна в View / Window - всё не работает.
     
    Последнее редактирование: 22 июл 2016
  11. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    @Kristobal Hozevich Hunta, если есть ещё одна тачка - поможет двухмашинная отладка (remote debugging - ищи в хелпе по MSVC на слово "msvcmon"). Я так отлаживал свои хаки в directdraw'ной части WC4. Возможно, поможет виртуальная машина, тут я не в курсе, не пробовал.
     
    Kristobal Hozevich Hunta и nop нравится это.
  12. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Ещё можно второй монитор подключить.
     
    Steel Rat и Kristobal Hozevich Hunta нравится это.
  13. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    @MisterGrim, собсна, поработав с двумя мониторами, с одним начинаешь себя чувствовать, как калека.
     
    SAS и Рыжий Тигра нравится это.
  14. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    @Steel Rat, Да меня переход с трех на два напрягает!
     
  15. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    @nop, дык, ставить некуда!
     
  16. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.207
    Подскажите, пжл, по терминологии github - что есть:

    1. pull request.

    2. commits. Особенно, в такой ситуации: скачиваю .zip в марте. Убеждаюсь, что некая функция не работает. Вижу соответствующее обсуждение в июле и запись: "merged commit". То есть функция исправлена и нужно просто повторно скачать тот же .zip (на дату "merged commit" .zip был обновлен)? При этом нигде в изменениях, readme и пр. записи об исправлении функции не вижу.

    3. branch. Думаю, что разные версии кода под конкретные задачи. Так?

    4. Насчет clone и .zip. Первое - это синхронизация с сервером (имеем доступ к последней версии кода с учетом всех обновлений, нужен выход в Сеть), второе - "слепок" кода на определенную дату (выход в Сеть не нужен). Правильно?

    5. contributors.
     
    Последнее редактирование: 4 авг 2016
  17. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

    Регистрация:
    28 мар 2005
    Сообщения:
    9.292
    Kristobal Hozevich Hunta нравится это.
  18. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.207
    @R4kk00n, за книгу спасибо, но мне бы хоть в двух словах.

    У меня пока нет своих репозиториев с Git, хотел бы понять, что там происходит с чужим.
     
    Последнее редактирование: 4 авг 2016
  19. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

    Регистрация:
    28 мар 2005
    Сообщения:
    9.292
    Ну, как бы, по-русски оно так и называется: коммиты, пулл реквесты, брэнчи. Два термина имеют отношение к любым системам контроля версий, два других пункта - вообще общеупотребимые слова, которые должны быть интуитивно понятны. Только pull request - вещь, наиболее специфичная именно ГитХабу. В гите есть команда pull, которая означает что-то типа "скачать все изменения из указанного [чьего-то чужого] брэнча и замёржить вот в этот мой". Соответственно, в модели разработки ГитХаба, если ты хочешь что-нибудь исправить в чужом проекте, ты его форкаешь, правишь, пушишь к себе, а потом через вот этот механизм отправляешь хозяину оригинального репозитория запрос на то, чтобы он запулил твои изменения к нему.

    "Merged commit <такой-то> from <author/repo>" - так, по-моему, выглядят автоматические комментарии в истории после мёржа пулл реквестов. По идее, если этим коммитом было исправлено то, что тебе нужно, и между ним и предыдущим состоянием ничего другого больше не было поломано, то зип репы после этого коммита - то, что нужно. Ну, если они на самом деле исправили

    Хотя, если изначально склонировать репу к себе, то потом можно зафетчить изменения и чекаутить нужный коммит! И безо всяких зипов
     
    Kristobal Hozevich Hunta нравится это.
  20. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.207
    @R4kk00n

    Набросал. Оно?

    Contributing to public projects is a bit di€fferent. Because you don’t have the
    permissions to directly update branches on the project, you have to get the
    work to the maintainers some other way. This first example describes contributing via forking on Git hosts that support easy forking. Many hosting sites support this (including GitHub, BitBucket, Google Code, repo.or.cz, and others),
    and many project maintainers expect this style of contribution. The next section deals with projects that prefer to accept contributed patches via email.
    First, you’ll probably want to clone the main repository, create a topic
    branch for the patch or patch series you’re planning to contribute, and do your
    work there.

    When your branch work is finished and you’re ready to contribute it back to
    the maintainers, go to the original project page and click the “Fork” button, creating your own writable fork of the project.

    Then you need to push your work up to it. It’s easiest to push the topic
    branch you’re working on up to your repository, rather than merging into your
    master branch and pushing that up. The reason is that if the work isn’t accepted or is cherry picked, you don’t have to rewind your master branch. If the
    maintainers merge, rebase, or cherry-pick your work, you’ll eventually get it
    back via pulling from their repository anyhow:
    $git push -u myfork featureA

    When your work has been pushed up to your fork, you need to notify the
    maintainer. This is o‚encalled a pull request, and you can either generate it via
    the website – GitHub has its own Pull Request mechanism that we’ll go over in
    Chapter 6– or you can run the git request-pullcommand and email the
    output to the project maintainer manually.

    The request-pullcommand takes the base branch into which you want
    your topic branch pulled and the Git repository URL you want them to pull
    from, and outputs a summary of all the changes you’re asking to be pulled in.


    Следовательно:

    1. pull request - запрос на включение в основной код изменений, подготовленных другим лицом.

    2. commit - начало процедуры внесения изменений в основной код. Отправная точка, результатом которой будет pull request.

    5. contributor - соавтор (автор изменений/дополнений, включенных в основной код), maintainer - основной автор (автор оригинального кода, принимающий/отклоняющий эти изменения).

    6. fork - ответвление от основного кода в целях внесения в него изменений с последующим pull request.

    Offtop
    Насчет интуитивно понятных терминов. Бился я тут с интуитивным постижением переменной pacifier. Оказалось, это аналог "Занято, идёт процесс, надо ждать, я тебе песочные часы пока порисую или что-то вроде того". Спасибо англоговорящему программисту, подсказал.
     

    Вложения:

    • 1.PNG
      1.PNG
      Размер файла:
      12,7 КБ
      Просмотров:
      579
    Последнее редактирование: 4 авг 2016
  21. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

    Регистрация:
    28 мар 2005
    Сообщения:
    9.292
    Нет, коммит - это любое изменение, зафиксированное в репе. Я не хотел бы сейчас рисовать схемы, но там больше ветвей.
    И ты не всегда собираешься сабмитить что бы то ни было обратно в апстрим. Может быть, он уже заброшен, а может быть, у вас с ними идеологические расхождения.
     
    Kristobal Hozevich Hunta нравится это.
  22. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    Насколько я понимаю, zip это clone, но не через клиент git, а через распаковку zip-архива
    commit - это атомарное изменение репозитория(а точнее текущей выбранной его ветви). от добавления одной буквы до перемещения кучи файлов в другое место с внесением в них кучи изменений.
    commit - ы репозьтория образуют в общем случае графовую структуру, где текущая ветка - это активная часть этого графа.
    Ты можешь переключаться на любой сохраненный в графе узел - commit, при этом файлы репозитория приводятся клиентом в состояние, соответствующее этому commit-у
    commit вносит изменение в локальную базу данных git репозитория.
    push - заливка измений локального репозитория на удаленный сервер. пока это не сделано, commit-ы еще можно локально удалять, сливать, модифицировать итд.
    merge - это процессов слияния двух таких графов, где в результате результирующий граф содержит узлы из обоих, а файлы в репозитории - все изменения, примененные друг на друга.
    Если в разных ветках не переписывалась по нескольку раз одна и та же строка кода, а делалась разная работа без прямых наложений, то merge - автоматический процесс, сводящийся к нажатию пары кнопок.
    pull (операция в клиенте git)- merge commit-ов из соответствующей ветки удаленного репозитория в твою локальную ветку репозитория.
     
    Последнее редактирование: 4 авг 2016
    Kristobal Hozevich Hunta нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление