Я сперва подумал, что это шутка, искал где смеятся. Ан нет, всё серьёзно. Но надо же так назвать! Среди софта хуже названия только у lame (кодировщик) и MediaTomb (медиасервер).
«принципы на то и принципы, чтобы их придерживаться всегда». Ужас какой, Вы правда так считаете? Давайте без нездорового фанатизма. И потом, если предположить, что две указанные Вами проблемы действительно существуют, то ваш пример «рефакторинга» их не решает.
А я как раз заканчиваю её читать. Читал лет семь, а больше, наверное, не буду. Провокации Голубицкого утомили, у Козловского старческое занудство в тяжёлой форме, темы номера непонятно о чём, в новостях половина мусора (подсказка — если новость подписана «ГА», то можно пропускать: они все одинаковые). Только Вильянов радует увлечённостью, а Гуриев — языком, но их мало. Ну его, у меня Сумма Технологий недочитана, я оттуда больше про IT узнаю.
Если у вас нет намерения потратить много-много дней своей жизни на всякую неинтересную фигню с настройками, пакетами и т. д., лучше даже и не пытайтесь. «У некоторых иногда получается» что-то запустить. Но 1) далеко не всё 2) через кучу секса 3) кое-как 4) не на всяком железе. Я перешёл на линукс около полугода назад, долго пытался запустить всякие игры, потом купил xbox. Чудесная штука). И Убунта тоже — чудесная ось, но ровно с одним исключением: игры. Играть вы нормально не сможете, точка. Лучше сразу это запомните — сэкономите себе время.
А ещё можно математичненько так (и читаемо, заодно):
# Python
import timeit
def gen_positional_combinations(seq, n):
# Генерируем сочетания по n элементов, только позиционные.
# Не помню, как это называется в комбинаторике.
if n==1:
for e in seq:
yield e
else:
for i in range(len(seq)):
for tail in gen_positional_combinations(seq[:i]+seq[i+1:], n-1):
yield seq[i]+tail
def work():
result_set=set()
for perm in gen_positional_combinations('123456789', 5):
for i in (1,2):
x, y = int(perm[:i]), int(perm[i:])
xy = x*y
if ''.join(sorted(perm+str(xy)))=='123456789':
print x, y, x*y
result_set.add(x*y)
return sum(list(result_set))
t = timeit.Timer('print euler32.work()', 'import euler32')
print "Done 10 times in %s sec."%t.timeit(10)
На моей машине выдаёт «Done 10 times in 2.11714696884 sec.», т.е. считает за 0.2 секунды. Похоже, неплохо, учитывая рекурсивный генератор, сортировку и set.
Ну были иногда. То крутится что-то, то болтается. А были и без движущихся. Но, думается, странно разделять их именно по этому принципу — стиль-то, очевидно, один.
А в Москве были чудесные скульптуры на Семёновской около автомагазина (теперь там сделали Перекрёсток, скульптуры куда-то убрали). Особенно мне нравился Дон Кихот с мельницей. Увы, не смог найти фотографий.
До сих пор есть несколько маленьких фигурок на Пушкинской площади. Вот таких примерно: lori.ru/images/0000068322-preview.jpg
Это тоже Kinetic Art?
Ни чутьНичуть.Что быЧтобы.Чтобы иметь свои собственные мысли, не обязательно хорошо учиться, но безграмотность обычно сопровождается убогими, вторичными взглядами.
Ваш grammar nazi.
1 — Работает под маками и линуксами.
2 — НЕ гербалайф, тьфу, микрософт.
На моей машине выдаёт «Done 10 times in 2.11714696884 sec.», т.е. считает за 0.2 секунды. Похоже, неплохо, учитывая рекурсивный генератор, сортировку и set.
До сих пор есть несколько маленьких фигурок на Пушкинской площади. Вот таких примерно: lori.ru/images/0000068322-preview.jpg
Это тоже Kinetic Art?