1) при настройке VCS Root очень удобно в поле default branch подставить какое-нибудь property %system.BranchName%
таким образом в разных конфигурациях можно использовать повторно один и тот же VCS Root
просто задавая через property имя нужного бранча
2) если у вас стоит Checkout mode = on server, то удобно использовать VCS Checkout Rules отфильтровывая всё лишнее.
Если репозитори большой, а собирается маленькая часть, то за счёт этого clean checkout будет банально быстрее.
#test3.py
def test1():
n = 5
with open("./pg2600.txt", "r") as f:
s = f.read()
d={}
for x in re.findall(r'\w+',s):
if x in d:
d[x] += 1
else:
d[x] = 1
print repr([k for k,v in d.items() if v == n])
#чуть модифицированный test3.py
def test2():
n = 5
with open("./pg2600.txt", "r") as f:
s = f.read()
d=defaultdict(int)
for x in re.findall(r'\w+',s):
d[x] += 1
print repr([k for k,v in d.items() if v == n])
Поддерживаю. Вынужден постоянно носить на флешке portable версию, чтобы rss дома/на работе не перечитывать. (про гуглридер в курсе, но oper'овская читалка как то «более приятна»)
Да, сохранять данные никак не получится.
У heiaheia для меня один плюс — она очень простая.
По сути простой и удобный сервис сохранить «результаты» с красивым веб-интерфейсом.
для бега использую sigma RC 1209
пульсометр+шагомер (для записи треков есть отдельный навигатор, но для тренировок имхо лишнее)
данныые руками сохраняю в heiaheia
живучесть вполне (пару суточных мультигонок пережил)
к слову
сэмпл используя boost::python (windows, boost 1.51, release)
#include <boost/python.hpp>
using namespace boost::python;
namespace Test
{
unsigned long long sumrange(unsigned long long arg)
{
unsigned long long i, x;
x = 0;
for (i = 0; i < arg; i++) {
x = x + i;
}
return x;
}
}
BOOST_PYTHON_MODULE(boost_python_module)
{
def("sumrange", Test::sumrange);
}
import timeit
from boost_python_module import sumrange as sumrange2
def sumrange1(arg):
return sum(xrange(arg))
for power in (2, 8, 9):
loops = 10**power
t = timeit.Timer(lambda : sumrange1(loops))
print("Loops: {0} Time: {1}".format(loops, t.timeit(1)))
print()
for power in (2, 8, 9):
loops = 10**power
t = timeit.Timer(lambda : sumrange2(loops))
print("Loops: {0} Time: {1}".format(loops, t.timeit(1)))
Согласен это лучше чем было.
Но если я верно понимаю, остаётся и старый способ скрытия методов. То есть читая декларацию класса с вопросом «Можно ли объект копировать? Как?» вынужден проверять оба сценария. Отсюда и сомнения. Тут проще, там сложнее. А вместе как? (вопрос риторический, реальное использование покажет что к чему)
Вот auto + decltype это да. Действительно существенно упрощают синтаксис.
А почему бы не сделать привязку на основе любого open ID провайдера
захотел привязал хабр
захотел livejournal
захотел ещё что-нибудь из списка доступных
Заказчик увидел ссылку на блог/профиль
Зашёл, почитал. Не понравилось — пометил для себя и прошёл мимо.
Вот оно как оказывается :) А то я как то наткнулся в help'e msiexec
на строчку
/a <Product.msi> Administrative install — Installs a product on the network
и в дальнейшем исходил из того что это некий специфический способ установки по сети. Да и в msdn'e как то невнятно написано, что это.
таким образом в разных конфигурациях можно использовать повторно один и тот же VCS Root
просто задавая через property имя нужного бранча
2) если у вас стоит Checkout mode = on server, то удобно использовать VCS Checkout Rules отфильтровывая всё лишнее.
Если репозитори большой, а собирается маленькая часть, то за счёт этого clean checkout будет банально быстрее.
3) кажется этот плагин confluence.jetbrains.com/display/TW/Deployer+plugin вам пригодится в фазе заливки на сервер
PS: список плагинов confluence.jetbrains.com/display/TW/TeamCity+Plugins
все property вида env.* и system.* доступны внутри msbuild скрипта
задали property system.Configuration
а внутри msbuild можете получить значение $(Configuration)
ну и ещё нюанс вдогонку. если property например такое system.A.B.C то переменная будет ${A_B_C}
вот вам пример сходу (извините если вдруг, где-нибудь ошибся)
где
У heiaheia для меня один плюс — она очень простая.
По сути простой и удобный сервис сохранить «результаты» с красивым веб-интерфейсом.
пульсометр+шагомер (для записи треков есть отдельный навигатор, но для тренировок имхо лишнее)
данныые руками сохраняю в heiaheia
живучесть вполне (пару суточных мультигонок пережил)
сэмпл используя boost::python (windows, boost 1.51, release)
Результат:
Loops: 100 Time: 8.08813168841e-06
Loops: 100000000 Time: 14.5755965742
Loops: 1000000000 Time: 143.893784101
()
Loops: 100 Time: 2.51157773619e-05
Loops: 100000000 Time: 0.173007690962
Loops: 1000000000 Time: 1.69442229668
ссылка Screenshots API ведёт на dev.opera.com/articles/view/extensions-api-resourceloader/
вместо dev.opera.com/articles/view/extensions-api-screenshot/
Но если я верно понимаю, остаётся и старый способ скрытия методов. То есть читая декларацию класса с вопросом «Можно ли объект копировать? Как?» вынужден проверять оба сценария. Отсюда и сомнения. Тут проще, там сложнее. А вместе как? (вопрос риторический, реальное использование покажет что к чему)
Вот auto + decltype это да. Действительно существенно упрощают синтаксис.
вот из С++11
у меня сомнения проще это, или дополнительные нюансы синтаксиса…
захотел привязал хабр
захотел livejournal
захотел ещё что-нибудь из списка доступных
Заказчик увидел ссылку на блог/профиль
Зашёл, почитал. Не понравилось — пометил для себя и прошёл мимо.
регишься и выбираешь себе роли (а какие то возможно назначаются. схема когда работадатель собирает команду.)
читатель
исполнитель
работадатель
и тп
обе крайности забавно описаны
на строчку
/a <Product.msi> Administrative install — Installs a product on the network
и в дальнейшем исходил из того что это некий специфический способ установки по сети. Да и в msdn'e как то невнятно написано, что это.