вторник, 8 августа 2017 г.

Структуры данных - выбирай правильно!

На уровне интеллекта всегда знал, что структуры данных (в каком виде хранятся и используются данные в программе) это важно, но знать и понимать это не одно и то же. Частенько бывало - "И так сойдёт, лень переделывать..." Сегодня - прочувствовал, почему правильный подбор структуры данных важен.

Когда то уже брался за проект Эйлера, но хватило меня не надолго, после 20-30 задач забросил. Недавно начал прорешивать по-новой, чтобы потренировать навыки программирования на Python.

Задача 23 - Non-abundant sums - быстро набросал простенький алгоритм, используя списки (list) и запустил. Жду - ответа нет, почитал книжку - ответа нет... Ладно пообедал, вернулся за монитор - наконец-то! 24 минуты ушло на подсчет. Ответ правильный, но - 24 минуты! У меня в памяти (не помню правда откуда) что задачи проекта Эйлер должны решаться в пределах минуты. Если дольше - скорее всего это не оптимальный алгоритм. Ладно, посижу-подумаю...

Алгоритм глобально не поменять, по крайней мере у меня идей нет, но можно заменить структуры данных. Множества (set) в некоторых аспектах быстрее, чем списки. Заменил список на множество, не трогая всю остальную логику, запускаю скрипт и 15 секунд спустя тот же самый ответ. Слегка дооформив, чтобы полнее использовать плюсы множеств, сократил время подсчета до 13 секунд.

Один и тот же алгоритм, разница только в используемых структурах данных - и такая разница во времени выполнения. 13 секунд против 24 минут

суббота, 15 апреля 2017 г.

Ловушка для шпионов

Ивангород - приграничный город. Последние несколько лет - въезд по пропускам. Пропуск оформить не сложно, достаточно придти в бюро пропусков, но бюро пропусков находится в Ивангороде. А Ивангород, как я уже говорил, приграничный город...

Похоже, все вражеские шпионы на этом месте должны понять бесперспективность попыток попасть в Ивангород...

Задача имеет решение, но сохраню интригу

понедельник, 30 января 2017 г.

Как прогрессировать в турецком подъёме?

Брутальность гирь (и главное неудобство в их использовании) - большой шаг нарастания весов. 16 кг, 24 кг, 32 кг. Конечно, сейчас можно купить всё что угодно, в том числе и с шагом по 2кг, но, во-первых это не брутально, во-вторых денег жалко, в-третьих жилплощадь тоже не резиновая... В общем, надо прогрессировать с тем, что есть.

Выполнив цацулинский норматив с 16 кг (10 турецких подъёмов за 10 минут), я смог хотя бы по разу на каждую сторону сделать турецкий подъём и с 24 кг. А перейти от двух подъёмов к десяти (с большим отдыхом между подходами) - дело двух-трёх недель.

Но, выполнив тот же норматив с гирей 24 кг, я ни разу не смог сделать турецкий подъём с двухпудовкой. Ладно, пойдем другим путём. На протяжении двух недель делаю максимальное количество турецких подъёмов с 24 кг в течение десяти минут. У меня получалось по девять на каждую сторону. После этого очередную тренировку начинаю с попытки выполнить подъём с 32 кг. Не получается, отдыхаю пару минут и делаю традиционные максимальное количество подъёмов с 24 кг в течение 10 минут. Так прошла ещё неделя...


На очередной тренировке поднял таки 32 кг. Подъёмы всегда начинаю с левой руки, как более слабой, так что подъём с правой тоже получился без проблем. Локти дрожат, но гирю не уронил. По одному подъёму с 32, плюс на добивание по четыре подъёма с полуторапудовой гирей. На следующей тренировке с 32 кг сделал уже по два подъёма, соответственно на 24 кг осталось по три подъёма, чтобы в сумме так и оставалось по пять подъёмов на каждую сторону.

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

А там надо будет думать, где покупать гирю на 40 кг.  Теоретически, можно залить двухпудовую свинцом до нужного веса, но... хлопотно, да и свинец сейчас не валяется под ногами, как в годы моего детства. Так что, что на свинец деньги тратить, что на готовую гирю, но во втором случае хлопот меньше.

Подскажет кто, где можно купить гирю 40 кг по разумной цене?

пятница, 13 января 2017 г.

Софт для бегуна

Когда почти два года назад начал готовиться к первым соревнованиям, поставил себе на телефон программу Sports Tracker. Тренировался, бегал - вроде бы всё нормально было, но на соревнованиях он насчитал мне 12.7 км вместо 10.5. И, кстати, не было русскоязычного голоса на звуковых оповещениях. Так что, когда после большого перерыва, этим летом снова начал бегать, решил искать другую софтину.

По отзывам бегунов в сети, поставил себе Runkeeper - вроде удобно, понравилось, но из первых трёх пробежек на двух он потерял спутники, соответственно ничего не намерял. Не, такой софт нам не нужен...

Вспомнил, что в каратистском лагере Татьяна говорила про micoach от Адидас. Правда в ГуглПлэй искать надо было не micoach, а train&run. Практически всю осень отбегал с этой софтиной, был полностью доволен... В начале зимы прошло очередное обновление... Слов нет, одни маты - раньше голосовое оповещение можно было выставить, чтобы срабатывало через каждые 250 м, 500 м, 1 км и далее, это было очень удобно. Большую часть пробежек я ставил на оповещение через 500 м, когда бежал темповый бег и важно держать скорость - через 250 м. После обновления режимы 250 м и 500 м исчезли, меньше 1 км не поставить. Вдобавок вместо темпа (пять минут на км), программа стала говорить скорость (двенадцать километров в час). Теоретически разницы нет, но практически, те кто бегают разницу оценят.

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


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

Ладно, ищу дальше... Все упорно хвалят Runkeeper - решил дать ему второй шанс, тем более что переустановил смартфон. Поставил и... понравилось. Голосовые оповещения есть, на русском в том числе, оповещения выставить можно и по 250 м, и по 500. Дистанцию меряет точно - бегая с train&run ближние к дому 5 км промаркировал, результаты обоих программ совпадают. Просмотр результатов на сайте реализован менее удобно, чем на micoach - мелковат масштаб графика темпа, стометровые ускорения похоже будет проблемно считывать, но с этим я готов мириться. Похоже, мой выбор по софту сделан - по крайней мере на ближайшее время.

З.Ы. Получил сегодня рассылку от Runkeeper - "Присоединяйтесь к Испытанию" - именно так, с большой буквы


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


Советы, чтобы бежалось легко:
- Посмотрите видео
- Сделайте ваше фото и поделитесь им
- Посмотрите, кто ещё считает так

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

среда, 4 января 2017 г.

Хочешь насмешить Бога - расскажи ему о своих планах...

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


В общем за декабрь раза четыре покататься удалось...

Ладно, в январе раз тепло - решил ударно заняться бегом, первый день просто идеальная погода была, сегодня - уже другая:


На пробежку собирался всерьёз - футболка, тёплая тельняшка, свитер, куртка. Снизу - трусы, хэбэшные штаны, поверх шорты и спортивные штаны. Шорты - для утепления вторичных половых признаков - помню ещё по ноябрьским пробежкам: если всё свободно болтается, то на морозе замерзает и звенит. Ничего, отбегал. Морально настраиваюсь на следующую пробежку.

Что характерно - нормального снега всё равно нет, выпало на полсантиметра и всё...

вторник, 3 января 2017 г.

Обратно к гиревому фитнесу

В начале зимы пытался заняться гиревым спортом - нашёл в сети "систему Мандригеля", всё доходчиво и проверено на многих, но у меня не пошло. Слишком длинные подходы, психологически тяжело. Так что с Нового года вернулся к гиревому фитнесу.

Основа - моя любимая "Simple&Sinister" - турецкие подъёмы и махи. По пять турецких подъёмов на каждую сторону и 100 махов. Как только укладываешься по времени (10 минут для турецких подъёмов и 5 минут для махов), можно переходить на следующий вес.


Летом уже выходил на нижнюю границу нормативов - делал упражнения с 32 кг, но после того как переключился на бег, навык потерял. Две недели с 16 кг - ориентируясь на максимальное количество в нормативное время (12 подъёмов и 180 махов) - помогли мышцам вспомнить. Сегодня с 24 кг выполнил норматив. Дальше так же - пара недель на максимальное количество в заданное время и буду примеряться к двухпудовке.

Ну и плюсом - отработка жима - у меня это слабое место, с 24 кг никак не получается. Основа - программа опять же Павла Цацулина из книги "Гиревой тренинг". В неделю три тренировки - "тяжёлая" (была как раз сегодня) - три подхода "лесенкой" до трёх, "лёгкая - три подхода, но "лесенка" на две ступени меньше, "средняя" - те же три подхода, но "лесенка" на ступень короче.

"Лесенка" до трёх это жим левой, перехват, жим правой, перехват, два жима левой, перехват, два жима правой, перехват, три жима левой, перехват, три жима правой. После каждого жима гиря опускается вниз.

Нагрузка растёт постепенно. 1-ая неделя - 3 подхода, "лестница" в "тяжелый" день - 3 ступени.
2 неделя - 4 подхода. 3 неделя - 5 подходов. 4 неделя - те же 5 подходов, но "лестница" в "тяжёлый" день уже 4 ступени. 5 неделя - 5 подходов, "лестница" в "тяжёлый" день 5 ступеней. После уверенного выполнения пяти лестниц по пять ступеней (в сумме - 75 повторений на каждую руку), Цацулин рекомендует тестировать следующую гирю.

Жимовый норматив пока что для меня кажется совсем запредельным - 40 кг выжать на раз


В программу ещё входят рывок (буду выполнять в "лёгкие" дни вместо махов) и подтягивания (дома опасаюсь - мой вес 76 кг уже близок к тому, который указан как предельный для спортивной стенки, на улице холодно и/или сыро, буду делать на работе - повесил наконец-то там кольца)

С маленькой добавкой гимнастических упражнений (L-sit в упоре на полу, мостик, планка, скручивания из вейдовской трифесты) укладываюсь в 45 минут, не шибко выматывающих. Надеюсь, впишется в беговую тренировку - всё таки нагрузка на ноги минимальная, в основном спина/плечи/руки.

понедельник, 2 января 2017 г.

Как научиться стоять на руках без опоры?

В последние полгода регулярно общаюсь только в одной группе ВКонтакте - "Без фанатизма". Подобралась уютная компания из четырёх физкультурников и ещё с десяток периодически комментируют. В конце прошлого года я выложил ссылку на статью "Стойка на руках обучение" Дикий Билл выложил ещё несколько отрывков из аналогичной книги того же автора, ну и понеслось. 20 декабря поставил цель - научиться стоять на руках без опоры (зачётное время 15 секунд).

Суть системы Криса Сальвато (Chris Salvato) - ежедневно тратить пять минут на отработку стойки на руках. Умение стоять на руках - это в первую очередь навык, а не сила. Так что короткие, но ежедневные тренировки за месяц-два приведут к успеху.

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

Собственно, на видео как раз третий день тренировок на рабочем месте и в конце - то самое приземление пируэтом


В книге Криса Сальвато "The 15-Second Handstand" есть полезные не очевидные моменты, но, увы, она на английском. Ниже выложил несколько переведённых кусочков от Дикого Билла:

"Автор там советует для начала сделать такой челлендж. Посвятить 28 дней тренировке стойки на руках. Заведите мол таблицу на 28 дней, и ставьте там флажки. Не меньше 5ти минут поделать что-нибудь для стойки на руках. Каждый день в течении 28ми дней.
По его мнению главное это приучить себя к регулярной практике"

"Вот поподробней шаги программы
Начинать предлагается не с самого начала, а с того уровня что можешь сейчас. 


1. 60 секунд планка у стены. (Тут цель просто наработка необходимой силы и приучиться к перевернутому положению).
2. Стойка у стены 60 секунд
3. Выход из стойки пируэтом
4. Стойка у стены 90 секунд
5. Контроль баланса вперед/назад.
Используя технику выгнутых кистей, слегка оттолкнуться от стены и удерживать равновесие.
Как я понял какого-то отдельного временного отрезка на это не предполагается, просто когда уже близок к нужной цели (60 или 90 секунд) добавлять по крайней мере один такой подход.
6. Вставать в стойку без опоры на стену.

Короче за первый месяц добиться 60 секунд у стены, за второй месяц сделать стойку без опоры. В крайнем случае за третий :)"

"кстати хорошая книга. главное на чем должны сосредоточиться новички это

1. прямые руки
2. уши между плеч
3. выгнутые кисти. то есть кисти должны напоминать стопу"

"Он там достаточно долго объясняет, что мы воспринимаем как должное то, что мы стоим на ногах прямо, но на самом деле там постоянно то передняя часть стопы чуток напрягается, то задняя, для восстановления равновесия. Это мол очень хорошо чувствуют те, кто с ногами под анестезией пытаются стоять прямо, для них это большая проблема.Поэтому надо и руки держать прямыми "включенные локти" - чтоб легче передать усилие от кистей, и уши между плеч ("активные" или "включенные" плечи), тоже для передачи усилия от кистей, чтобы восстановить равновесие"

"Про пятиминутные тренировки стоек на руках (перевел кусочек из-за споров как считать - с отдыхами или без).

Ставя галочки в дневнике вы не просто отмечаете прогресс. Это и есть цель - челлендж.
Каждый день, выделите 5 минут и установите таймер. Большинство смартфонов имеют функцию таймера, или же можете использовать онлайн таймер http://e.ggtimer.com/5minutes.
Каждый, независимо от обстоятельств, сможет выделить 5 минут в день для тренировки стойки на руках. 

Если вы слишком устали и не можете тренироваться в этот день, то сядьте и помедитируйте о стойках на руках в течении пяти минут. Наша задача просто выработать привычку, что стойки на руках неотъемлемая часть расписания дня. 

Чтобы добиться такого уровня постоянства, можно привязаться к какому-нибудь якорю. Якорь это событие, которое обязательно произойдет в течение дня. Что-то вроде завтрака, просыпания, или отправки ко сну.
Например, вы можете тренировать стойки на руках перед завтраком, возможно после прихода домой с работы. Возможно после ужина, или перед сном. Поставьте себе какое-то напоминание, например стикер на холодильник или на зеркало в ванной. Так чтобы вы вспомнили, что сейчас время для вашей пятиминутки.
И не беспокойтесь о том, чтобы тренироваться все 5 минут, просто отложите 5 минут из расписания дня на эти тренировки. Цель в том, чтобы эти тренировки стали привычкой. Ограничивающий фактор в стойке на руках не сила, а постоянство"

"Про отталкивание от стены.
Отталкиваться нужно не ногами, а руками

...Теперь, когда вы знаете о технике выгнутых ладоней, попробуйте сделать следующее:
1. Встаньте в позицию стойки у стены лицом к стене.
2. Подтяните пальцы, чтобы ладони приняли нужную форму.
3. Толкните основаниями ладоней в пол, так чтобы ноги оторвались от стены.
4. Теперь сильно надавите пальцами в пол так, чтобы ноги вернулись к стене

Чтобы это освоить, понадобится практика. Поэкспериментируйте отрывая кончики пальцев ног от стены, и силой пальцев рук возвращайтесь обратно к стене.
Другой метод практики это встать в стойку в каком-нибудь узком проходе.
Далее раскачивайтесь вперед и назад, давя в пол основаниями ладоней или пальцами рук.

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


Ну и пара кусочков из второй книги на эту тему (Balancing the Equation by Yuri Marmerstein)

"из новой книги, по отрыву от стены - все примерно то же самое, главное на что обратить внимание - ни в коем случае не отталкиваться ногами, прям вообще , даже пальцами ног, второе - ни в коем случае не позвалять ситуации, когда ноги оторвались, а живот прижат к стене. Не допускать прогибов"

"Сначала целью поставить число раз, в смысле сколько раз оторветесь от стены и вернетесь обратно. Потом сосредоточится на длительности времени проводимого в свободной стойке, перед возвратом к стене. После этого ножницы, это уже подводящее к вставанию в стойку с пола.

Тут отвести одну прямую ногу назад, так чтобы она потянула вторую. Опять же не отталкиваться от стены, а одна нога тянет другую. Когда вторая нога оторвалась, они идут навстречу и меняются"

"Встаньте в стойку на руках лицом к стене, в этот раз подальше от стены, примерно 50 сантиметров.Одна нога касается стены, другая в воздухе. Обе ноги прямые, также как спина и руки. Используя ведущую ногу в качестве тянущей силы, мы отрываем другую ногу от стены.
Попытайтесь найти равновесие в этой позиции.
Из этой позиции, медленно двигаем ноги навстречу друг другу, пока они не будут вместе. После того как найдете равновесие в этой позиции, возращайтесь в позицию с одной ногой у стены.
Упражнение должно выполняться с полным контролем, это означает что вы должны суметь сделать паузу в любой фазе движения.
Отрыв от стены осуществляетя за счет рук и ведущей ноги. Не отталкивайтесь от стены другой ногой.
Вытягивание носков поможет отучиться от привычки отталкиваться ногами."


Ну и вот результат первых двух недель пятиминутных тренировок: