Pull to refresh
54
0
Максим @i4niac

User

Send message
С Bamboo работал долгое время, больше года. Теперь имею дело с Jenkins. С TeamCity опыта нет.

Пока мне нравится Jenkins по одной причине — Jenkins Job DSL плагин. Как для разработчика, для меня это была настоящая находка. Я могу генерировать билд планы (проекты?) автоматически с помощью Groovy скрипта. Причем этот скрипт может быть сколь угодно гибким и я получаю возможность использовать Java код, классы, наследование и все эти ООП прелести, плюс кучу библиотек и т.д. и т.д. В Job DSL добавлена поддержка для большинства популярных плагинов и сообщество активно добавляет новые фичи. Можно также генерировать новые View (вкладки), группировать проекты по папкам и многое другое. Короче, легче было бы перечислить что этот плагин не умеет.

Один из минусов — порог вхождения, но по большому счету выучить Groovy на базовом уровне будет достаточно для начала.

У Bamboo ничего подобного и близко нет. Насчет TeamCity не знаю.
Зависит от ваших требований к CI. У автора была задача «CI за день» и UCB с ней справился.

Если компания достаточно крупная и имеет желание и средства настроить свой CI/CD тогда Jenkins, Bamboo, TeamCity и т.д.
Мне приходилось раньше работать с Bamboo, сейчас с Jenkins, только специфика — мобильные приложения.

Конечно преимуществ в своем собственном CI много, только по моему опыту настроить все это дело а потом и поддерживать — задача непростая. Но с другой стороны это очень интересная область и все больше и больше контор, занятых разработкой мобильных приложений, задумываются о серьезном подходе к CI.
Точно, если спрашивать игроков случайным образом, будет близко к живому оригиналу.
Вместо «кто первый, тот и успел» будет выбор игрока случайным образом, по-прежнему сохранится элемент такой себе хаотичности и все также можно позволить подкидывать больше положенного, чтобы потом бить на выбор.

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

Я попробовал практически все варианты Дурака из App Store, везде на данный момент реализован простой подход, когда игроки подкидывают строго по часовой стрелке.
Скажите пожалуйста, каким образом было достигнуто переиспользование сущности х*як? И как можно избежать разрастания х*яка? :)
Когда я играл в Дурака в детстве, то можно было и подкидывать одновременно и бить на выбор и т.п., т.е. утверждение «В один момент времени всегда ходит 1 игрок» для такого Дурака — не верно.
Конечно же, реализовать такую игру гораздо сложнее, особенно если добавить режим мультиплеера. Там уже задачи из разряда синхронизации сразу нескольких процессов, разделенные ресурсы и подобное.
Это не совсем минусы Calabash. Как я уже сказал, они точно также используют Automator скрипт для сброса симулятора. Т.е. раз их скрипт сломался, то нет гарантии что ваш не сломается точно также. Это на самом деле стандартные заморочки при обновлении Xcode или Mac OS X, всегда есть вероятность что где-то что-то сломается. Ну и даже если что-то сломается фикс рано или поздно найдется. Вот вы например нашли как пофиксить проблему с локалями, по идее ничего не мешает открыть пул реквест с этим фиксом чтобы он попал в следующий релиз Calabash :)

Да, shell скрипты хороши тем, что их легче использовать повторно. В вашем случае, если вдруг не станет хватать мощностей одной Mac OS машины, и вы добавите еще одну, тогда CI-сервер и агенты подойдут лучше. Но это всегда итеративный процесс, постоянные улучшения — норма.
Сам занимался этим полтора года на прошлой работе. У Calabash большие перспективы. Основное преимущество по-сравнению с другими фреймворками — очень гибкий язык запросов.

Calabash пусть и не кросс-платформенный на все 100%, но уж мульти-платформенный это точно, я имею ввиду что есть еще Calabash for Android. API у них, к сожалению не совпадают полностью и даже есть определенные различия в синтаксисе запросов, но это вполне решаемо с помощью одного уровня абстракции в коде или даже пул реквестов.

Меня вот немного удивило использование Automator-а, почти все можно сделать с помощью shell/ruby скриптов и ios-sim. Например calabash-ios sim reset сбрасывает настройки симулятора, с помощью DEVICE_TARGET переменной окружения можно ресетить только один какой-то симулятор. Ну естественно эта команда использует Automator скрипт, во многом похожий на ваш.

К тому же разве все это не должно происходить как часть процесса Continuous Integration? Т.е. в данном примере как часть build pnan/job на TeamCity? Если будете масштабировать, добавлять новые билд боксы, получите децентрализованную систему где на каждой машине крутится свой автоматор. Именно для этого у TeamCity, также как и у Bamboo, Jenkins и других есть поддержка билд агентов. Но тогда все эти задачи (git, calabash.framework, xcodebuild, тесты и отчеты) должны выполняться как часть билда (build job или build plan, или что там у TeamCity). Один и тот же план может выполняться параллельно на нескольких агентах.

И если будете вдруг поддерживать Андроид, то тесты для андроида можно гонять на Linux машинах, где Automator-а нет.
Вы так много написали про локализацию и при этом нет кнопки переключения языка в настройках… ((

А насколько большой спрос на подобную фичу? Если судить по себе, то в 99.9% случаев меня устраивает дефолтный язык операционки и нет необходимости его менять отдельно в играх. Возможно в детских приложениях может быть спрос на такую опцию.
210 скриншотов… Не было мысли схитрить и сделать один набор скринов нейтральных по отношению к языку? Добавить какие-нибудь вставки поверх текста внизу, «замылить» или что-то подобное. Некоторые разработчики так и поступают, в качестве скриншотов используется какой-нибудь арт или компонуют сразу 4 экрана в одном скрине, при этом избегая текста.

Спасибо за наводку на uploader, по сути это продвинутый генератор XML метаданных для iTMSTransporter. Мне кажется образовалась ниша для OSX приложения, которое будет удобной оберкой для iTMSTransporter. Там большое количество задач, которые требуют автоматизации и удобного интерфейса.

А как так получилось использовать cocos2d-swift и зарелизить приложение? Ведь Swift доступен только в Xcode 6 Beta, а насколько я помню, приложения собранные в beta версиях Xcode Apple никогда не принимала…

И последний вопрос :) В плане локализации использовали старые добрые .strings или XLIFF добавленный в Xcode 6? Не посоветуете простой софт для работы с XLIFF? Я перепробовал все опенсорсные программы, которые смог найти, все со старта отпугнули сложностью и избыточностью интерфейса, а я искал что-то «для чайников», типа слева оригинал — справа пиши перевод.
Полезный пост, спасибо.
Раз такое дело, у меня есть вопрос. Вам не приходилось собирать boost для iOS?
Я сделал скрипт на основе других решений: github.com/mgrebenets/boost-xcode5-iosx.
Тем не менее у людей возникают проблемы, когда им нужно собрать, например, locale библиотеку, которая имеет зависимость от icu или iconv.
Каждый раз, кога читаю посты про ZoG, меня мучает один и тот же вопрос — «на чем написан этот движок и почему его еще не портировали под мобильные платформы?»

Если там C/C++ то это можно собрать под iOS, Android и вообще что угодно.
С таким количеством игр успех обеспечен. Можно зарабатывать на рекламе, или на встроенных покупках.
Ради интереса поискал ZoG и Zillon в iTunes AppStore и ничего не нашел.

Еще мне интересно, мультиплеер в ZoG реализован?
И как обстоят дела с карточными играми, вроде дурака или даже преферанса?
Ума не приложу, как можно «запатентовать слово»? Другое дело — зарегистрировать торговую марку «Candy».
Да, ссылка неправильная. Я подправил статью, вот то самое обсуждение.
Сообщение об ошибке будет такое
error: addition of default argument on redeclaration makes this constructor a default constructor
Да, конечно, это как раз и есть arm64 архитектура.
Да уж, все оказалось достаточно просто.
Зашел повторно в Settings репозитория и там в разделе GitHub Pages черным по белому написано
Update your site
Easily change your content or theme with the page generator.

To publish a page manually, push an HTML or jekyll site to your gh-pages branch. More info.


Там можно и текст поменять и тему.
В общем, плохо смотрел.
Вопрос от Jekyll-нуба.
Совсем недавно хотел добавить GitHub Pages к своему репозиторию. Воспользовался простым путем — автогенерация, выбрал шаблон, набил пару абзацев текста в Markdown (рассчитывал отредактировать позже), нажал OK и через 10 минут сайт готов.

Вот только когда я захотел отредактировать текст, начались непонятки. Когда я клонировал gh-pages ветку, там был уже сгенерированный index.html, и нигде нет markdown файла. Я так и не понял, что же делать если я хочу поправить markdown текст, запушить изменения в gh-pages и подождать пока Jekyll сгенерирует обновленную страницу. Или я в упор не вижу какой-то очевидный способ, или фиг знает что еще. В доках github-а ничего полезного не нашел, нагуглить тоже не удалось.

В результате использовал комбайн jekyll-bootstrap, хотя меня вполне устраивала дефолтная тема, если бы была возможность редактировать текст.
Работал и работаю с calabash.
Из плюсов — Ruby и кросс-платформенность. Cucumber и BDD тоже можно отнести к плюсам. Тесная интеграция с Xamarin, в будущем calabash станет плагином к Frank. Ну и конечно же активное сообщество, частые коммиты и релизы.

Минусы свои тоже есть, например некоторые вещи сломались с выходом iOS 7, но со временем фиксят или находят обходные пути.

Не могу напрямую сравнивать с UIAutomation для iOS или Android, не достаточно опыта работы с этими фреймворками. Пробовали сначала MonkeyTalk — calabash гораздо лучше.
Но насколько я знаю, без JB вы не сможете установить приложение.

Почему же, можно. Существует несколько утилит способных сделать это. Вот например одна из них: github.com/tborys/fruitstrap.git
Мы используем github.com/calabash/calabash-ios, который скоро станет частью уже упомянутого Frank-a.
Один из плюсов в сравнении с KIF — кросс-платформеность. Есть поддержка Android github.com/calabash/calabash-android.
К тому же не так давно Xamarin купил Less Painful вместе с основными разработчиками Calabash. Так что это плюс для тех, кто использует Xamarin.

Тесты можно писать используя Cucumber, под капотом — Ruby, т.е. огромный выбор gem-ов для любых задач.
Начало за здравие… а потом, внезапно утверждается что рабство и интеллектуальная собственность это одно и то же. Вот прям так, с бухты барахты, тождественно равно и все тут. Такой себе риторический прием, интеллектуальная собственность = рабство, а рабство это плохо, очень плохо.

Но давайте посмотрим правде в глаза — большинству этих людей не нужны многомиллионные прибыли.

Не согласен. Чем то можно подтвердить это факт? Опросы, статистика, вера в человечество?
Конечно, они хотят зарабатывать деньги.

Так в чего же они хотят в конце концов?

И с играми не совсем ясно. Ведь эта модель уже практически существует. Многие фримиум игры дают поиграть бесплатно, а различные фичи — за деньги, в том числе, например, мультиплеер. Тем не менее in-app покупки ломают налево и направо и оправдывают это пиратство именно такими аргументами, как у вас в статье или схожими.

Нельзя так просто валить все в одну кучу, жадных издателей/правообладателей и тех, кто пытается продать свое творчество без посредников. Ведь на сегодняшний день «пираты» воруют у всех без разбора и у «хороших» и у «плохих».

Имхо, очень сложный вопрос. Я не вижу «светлого» будущего, где все доступно за «просто так» и при этом авторы как-то умудряются зарабатывать. Это какая-то утопия, глобальный коммунизм, где каждому по способностям или по количеству сожженных калорий, или как-то еще. Утопия, в общем.
Убирать посредников — нужно, чем больше площадок для продажи контента напрямую по приемлемым ценам, тем лучше. Только закоренелых халявщиков это не остановит.

Information

Rating
Does not participate
Location
Sutherland, New South Wales, Австралия
Date of birth
Registered
Activity