Гири
anton_arhipov
Каждый год, в декабре, на тренировке делаю эдакий "марафон": выбираю одно упражнение, и на каждой последующей тренировке количество минут для этого упражнения увеличивается на 6. То есть: 6, 12, 18. 24,.. и т.д. К концу декабря доходит до 1ч.

Обычно, я выбираю "греблю" на концепте. Обычно, но не в этом году. В этом году я решил попробовать этот "марафон" пройти с упражнением "Толчок гирь по длинному циклу" с 2x16кг.

Для справки, в гиревом спорте это упражнение входит в программу соревнований и по нему даже выполняют разряды. А настоящие профи выполняют его с гирями 2х32кг и по 100+ повторений за 10 минут. Вот пример выступления чемпиона:



С двумя гирями я дотянул лишь до 18 минут, сделал 170 повторений. Должен вам сказать - ЭТО ЖЕСТЬ! За время выполнения упражнения эти две штуки высасывают из тебя всё. А если техники не хватает, то они высасывают энергию целые сутки и после тренировки. Получается довольно хороший метаболический отклик (что как бы и является целью).

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



С одной гирей всё оказалось гораздо проще. Нужно было только наращивать темп. За 30 минут получилось сделать 410 толчков. За 36 минут получилось 550. 650 повторов получилось сделать за 42 минуты. После 40 минут такого упражнения наваливается довольно сильная усталость но никакой боли в мышцах нет и нет никакой забитости. Главная борьба идёт даже не с усталостью, а головой: просто морально трудно долго выполнять одно и тоже упражнение.

За 48 минут получилось сделать 750 повторов, за 54 - 830, и за час 920. При том, в последнем подходе я всё таки сделал две остановки "на пожрать", секунд по 20 каждая.



Эксперимент удался. Я прям "подсел" на гири для тренировок в зале. В Таллинне я хожу в разные залы, просто для разнообразия, и внезапно обнаружил, что хороших гирь то особо и не найти. В основном находятся "модные", с широкой ручкой. С такими гирями удобно делать подрыв и выбросы двумя руками, но мне не очень удобно делать "рывок" одной рукой. Кроме того, в залах редко находятся парные гири одинаковой формы и веса, что тоже печально.

В MyFitness:


В HC GYM:


А ещё в спортклубах нет гиревых тренировок. То есть гири какие то есть, для тех кому интересно, а тренеров которые поставили бы технику, рассказали, показали - нет. Соревнований не проводится. Печаль. Видимо придётся куда нибудь съездить, чтоб поучиться. Ато только по видео технику и разучиваю

Skunk Anansie - An Acoustic Live in London
anton_arhipov
Я просто оставлю это здесь...


Функциональные тренеровки
anton_arhipov
Недавно прочитал довольно интересную книгу по ОФП - Human Kinetics, Functional training. Советую к прочтению всем любителям спорта, и ЗОЖ.



Книга легко читается и довольно просто структурирована. Теоретическая часть объясняет в чём заключается "функциональщина", т.е. какие принципе лежат в основе движений востребованных в спорте. Так называемые 4 столпа движений человека:


  1. Locomotion, передвижение. В книге locomotion определяется как поочерёдное поступательное движение, occurs one leg at a time. По сути, если ты просто идёшь, то locomotion уже имеет место быть. Так же сюда относится бег, разбег, итд.

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

  3. Pushing and pulling, тяни-толкай. В баскетболе, например, надо бросать мяч - push. В гребле на лодке надо грести вёслами - pull.

  4. Rotation, повороты. Очень часто, а особенно в спортивных играх, движение требует изменения направления. Например мы бежим в одну сторону, а мячик полетел в другую - нам надо быстро развернуться и бежать в другом направлении.



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



Я сделал такой вывод: в определённом смысле, основой функциональной подготовки спортсмена является подготовка кора. Исходя из этого, в книге приводится довольно обширный набор упражнений (и программ тренеровок), которые нацелены на укрепление соответствующих мыщц.

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



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




Словом, почитать советую, как минимум. Выполнение таких программ требует некоторого времени, по-этому за эффективность пока что не скажу :)

6 лет в ZT
anton_arhipov
Внезапно - уже прошло 6 лет как начал работать в ZT.



Из этих шести лет 3 года работал над JRebel-ем и 3 года работал над XRebel-ем. Наверное, пора уже новую трёхлетку начинать. Например, начать делать SuperRebel :)

По опыту эти 6 лет были наверное как все 10. Много всего успели сделать, попробовать, ошибиться, и ещё раз попробовать. Всем советую :)
Tags: ,

Исландия на ЕВРО 2016
anton_arhipov
Исландия - самый большой сюрприз нынешнего чемпионата, попала в 8ку сильнейших команд, по дороге сотворив несколько сказочных эпизодов. Хотел даже купить футболку сборной после победы над Англией, но увы - всё раскуплено.



Спасибо за сказку этой команде!

Футбольные войныCollapse )

Снова Крит
anton_arhipov
В этот раз ездил в Ставрос. Небольшая деревенька недалеко от Ханьи, в полу часе езды на машине. Из Ираклиона ехать почти 2,5 часа. Тихо, спокойно. Есть небольшая бухточка, где почти всегда штиль, даже когда на море неспокойно. Есть несколько неплохих ресторанчиков.



Ещё фоткиCollapse )

В часе езды от Ханьи, на западном побережье, находится Фаласарна - отличнейший пляж, моё любимое место на Крите на данный момент.



Ещё фоткиCollapse )

Дорога на Фаласарну лежит через Киссамос - довольно живописное место.



А ещё не доезжая до Киссамоса, можно заехать в местечко под названием Колимбари. Тут есть отличные пляжи, можно очень вкусно поесть в таверне "Аргентина", и отовариться продукцией Terra Creta.

ФоткиCollapse )

Мой отпуск удался. Вобщем, всячески советую.


Как правильно делать слайды
anton_arhipov
Довольно часто вижу слайды, которые хочется переделать полностью, от слова "совсем". Вот неплохие советы человек набросал по тому, как оформлять код в слайдах.


Kotlin в Девклубе
anton_arhipov

Собрал скворечник? Протестируй!
anton_arhipov
Tags: ,

Конференционное: Riga Dev Day & JPoint
anton_arhipov
2-3 марта буду на Riga Dev Day, поболтаю за Javassist.

А ещё, 22-23 апреля собираюсь быть в Москве на конференции JPoint - там будет весело :)

XRebel 3.0
anton_arhipov
На прошлой неделе выложили новую версию продукта, XRebel 3.0 Получилось весьма круто - теперь можно отслеживать HTTP запросы которые проходят через несколько приложений:



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

В HTTP запросы между приложениям мы добавляем свои атрибуты для того чтобы потом всё это красиво связать. Таким образом получается отобразить всю транзакцию от пользователя до источника данных в одном дереве вызовов:



Когда дерево развёрнуто, то сразу видно, где происходит переход из одного приложения в другое, и где сколько времени тратится на обработку. Получилось весьма простенько, и, как оказалось, работает неплохо с "наивной" реализацией микросервисов, когда приложения общаются без извращений, по HTTP. Так что да - XRebel теперь профилирует микросервисы :)

Вот тут можно даже потыкать примерчик: https://share.xrebel.com/ESHjJSehSBA

Web Server vs Application Server
anton_arhipov
А вдруг вы не знали...



Там ещё много всякого :)
Tags: ,

Твиттерское: ботаны снова тешатся
anton_arhipov
Такое https://twitter.com/SiliconBangalor/status/679043123822116864


Твиттерское: ботаны тешатся
anton_arhipov

Вильнюс
anton_arhipov
Побывал в Вильнюсе. Впервые удалось посмотреть город при свете дня. Город мне понравился - чем-то напоминает Краков.



фоткиCollapse )

Отдых в Стокгольме
anton_arhipov
Внезапно изменил своим традициям и вместо отдыха на Крите поехал в Стокгольм. С погодой, кстати, повезло - всё время +25С, солнце, очень хорошо!





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

Цель была поставлена - выгулять сына перед школой. И относительно этой цели поездка себя полностью оправдала: Гуляли, много гуляли, очень много гуляли, и ещё немножечко гуляли :)

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

Skansen - Музей под открытым небом



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


ФоточкиCollapse )
А ещё есть т.н. "Аквариум", где полно экзотических тварей - змеи, пауки, акулы итд.
Ещё фоточкиCollapse )

Vasamuseet - Музей корабля Vasa


Если был в Стокгольме и не был в музее корабля Vasa - значит не был в Стокгольме! На удивление, ребёнок остался доволен и мы даже проходили там 2 часа без экскурсий и аудиогида. Думаю, что если вдумчиво ходить по музею, смотреть все инсталляции, фильмы и экспонаты, то уйдёт запросто часа 4.


ФоткиCollapse )

Tom Tits Experiment - Центр науки


Центра науки - это апофеоз нашей поездки! Собственно, в Эстонии есть похожий центр - Ahhaa - но мне кажется Tom Tits гораздо более массивен. Посетить стоит, конечно же, оба.

Есть только одно небольшое неудобство - Tom Tits находится не совсем в Стокгольме. Точнее, совсем не в Стокгольме :) Находится он в местечке под названием Сёдерталье, и ехать туда на электричке надо почти час. Но это мелочи, это того стоит.


Много фотокCollapse )
На месте мы провели почти 5 часов. Благо, на месте есть и ресторан, и кафе, чтоб перекусить. Центр работает до 6 вечера, а если бы работал дольше, видимо, мы там ещё дольше бы ходили. Для детей дошкольного возраста это место - сокровищница. Взрослым тоже будет интересно - есть с чем поиграться :)

Tekniska museet - Технический музей


После Центра науки, Технический музей будет скорее разочарованием: поиграть почти не с чем :) На самом деле неплохое место, но после Tom Tits туда лучше не идти - будет скучновато. Сын более менее расцвёл когда дошли до залов с компьютерной техникой. Но и там будет скучно если вы вдруг уже были в музее компьютерной истории в Калифорнии :)


Немного фотокCollapse )

Прогулка по каналам Стокгольма


Ещё можно покататься на кораблике. Расписание, места отбытия, цены итд можно найти на http://www.stromma.se/ На выбор есть несколько маршрутов. Мы взяли тур вокруг Стокгольмских островов, 1ч40мин. Но такая экскурсия, как выяснилось, интересна больше взрослым, а детям вообще не катит. Кораблик едет по каналам, проходит через шлюзы, проходит под мостами, аудиогиб бухтит в наушники. Скукота. Не, мне то было интересно послушать и посмотреть, но ребёнку - тоска. Может на других рейсах более интересно.

Вывод


Раньше я хоть и бывал в Стокгольме, но всё как-то либо проездом, либо на денёк, либо на конференции. По сути - не шибко много видел. 5 дней хоть и не позволяют посетить все места, куда быть может хотелось бы, но всё таки позволяют провести время более насыщено. Иногда интересно съездить отдохнуть вовсе не на море, а куда нибудь в более обычное место, например - в Стокгольм :)


Бухтел в про Golang
anton_arhipov
Рассказик получился такой, как будто мне Go вообще не нравится. Но это не так :)




5 лет в ZT
anton_arhipov
Полёт нормальный! :)
Tags: ,

Новости про sun.misc.Unsafe
anton_arhipov
It's well-known that some popular libraries make use of a few of these internal APIs, such as sun.misc.Unsafe, to invoke methods that would be difficult, if not impossible, to implement outside of the JDK.
[...]
The critical internal APIs proposed to remain accessible in JDK 9 are listed in JEP 260

Скалалазы шутят: Programming in Go
anton_arhipov


И снова по следам sun.misc.Unsafe
anton_arhipov
В 87м выпуске подкаста "Разбор Полётов" замечательно проехались по sun.misc.Unsafe.

sun.misc.Unsafe и все, все, все
anton_arhipov
В недрах JDK есть такой замечательный класс - sun.misc.Unsafe. Название как бы намекает нам - не трогать! Но ведь по рукам не бьют - можно использовать.

На Unsafe за предыдущие годы подсело жуткое количество проектов. Некоторые конференции даже отметились докладами на эту тему. А некоторые программисты пишут блоги о том, какой офигенный прирост производительности можно через Unsafe выжать. Особенно всякие NoSQL решения которые на Java сделаны и кэши. С кешами вообще блеск - обычно коммерческая часть продукта, которая скидывает что нибудь в offheap, завязана именно на Unsafe. А чо - API есть, вроде не ломается - с бубном и такой то матерью заводится. На это даже патент есть у Terracotta Inc. Патент, Карл!!!

И вдруг нежданчик. Сегодня по твиттеру расплылся блог чувака из DripStat, он же из Chronon, он же Прашант, о том, что Unsafe хотят убрать из JDK 9 и #кошмармывсеумрём (тм).

Ну естественно цунами говна прокатились по твиттеру. Если коротко, народ относительно sun.misc.Unsafe делится на следующие категории:

- Те, кто используют, а другим не разрешают
- Те, кто используют, но дрожат - “а вдруг уберут и тогда #кошмармывсеумрём!"
- Те, кто используют, и не парятся - "работает, чо!"
- Те, кто думают, что не используют и поэтому вообще в ус не дуют (таких большинство, наверное)

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

Так вот, первые - те, кто другим не разрешает этот Unsafe использовать - вроде бы делают всё правильно: приватный API, фигли, жить мешает, удалим. Но типа поскольку уж так много проектов, то вот будет новый нормальный API и ключик, которым этот ваш Unsafe можно будет вернуть. Логично? - Логично!

Для вторых это решение - ад и преисподняя - ведь надо будет всех клиентов сидящих на суперсофте научить этот ключик в опции добавлять. А это, уж поверьте мне, огромный гемор. Если только ваша софтина не запускается через нативный агент (-agentlib) где можно свои аргументы в JVM подставить не моргая глазом. А во-вторых, новый API ведь надо ещё внедрять - лень.

Третьи (себя причислю к этой категории) смотрят на это всё и говорят - нуок, будет новый API - поставим новый костыль. У нас, например, в XRebel есть небольшой кусочек который грешен использованием Unsafe (кстати, как раз для offheap). И даже когда его вносили, мы уже были в курсе предстоящей свистопляски. Сейчас же я думаю, что эта функциональность вообще не нужна и скорее всего даже на новый API переносить не придётся.

Четвёртые товарищи читают твиттер и во основном играют в хомячков: "ай-ай-ай, Unsafe убирают, всё поломается”, или “ну и правильно убирают - давно пора! мы же вам говорили! (тм)"

Но вернёмся в блогу от товарища Прашанта. Надо сказать, что статья показательна тем, что с коммуникацией по данной теме всё довольно хреново. И вот почему. В самом начале статьи упоминается ДОКУМЕНТ, который Java Community во главе с парнями из Hazelcast и jClarity, ну и другие причастные лица, составляют для того, чтобы разложить в данной теме всё по полочкам. Прашант как то эмоционально записал этот документ на счёт Oracle, хотя парни из Oracle этот документ и пальцем не трогают. Вся дискуссия по этим темам идёт у них в своих мэйл-листах и иже с ними. Например, тот же опросник по использованию был сначала закинут именно в мэйл-лист, а потому уже усилиями сообщества распространён.

Так вот проблема номер раз - это, конечно же, истерический тон самой статьи и перепутанные факты. Проблема номер два - парни, которые составляют вышеупомянутый документ не сообразили сослаться на мэйл-листы, чтобы это всё не звучало как “Unsafe removal”, а звучало бы как “Unsafe replacement”. А те парни, которые Unsafe выпиливают, думают, что выпиливают приватное API.

Технически, да - Unsafe приватное API. Но de facto - оно уже давно public. Я помню как об этом говорили на JVM Language Summit - “let’s face it, sun.misc.Unsafe is a public API”. Цитату никому не буду приписывать ибо не помню кто сказал. Да и закладываться на такие фразы нельзя. Но тут надо таки учесть, что речь не идёт об одном-двух, или даже о десятке проектов.

Речь идёт об огромном количестве проектов. И довольно популярных. И мне кажется, тут уже аргумент “это же приватный API” неочень хорошо работает. Есть такое слово как community - и чем оно больше, тем больше оно решает. Можно на community забить и дать корявый workaround - мол, "ключик поставите и всё ОК будет". А можно сделать как в случае с public API - сначала дать _хорошую_ альтернативу, а в следующем релизе вырезать опухоль. Но ведь нет - “это же приватный API”.

И вот вроде бы прав shipilev, стыдя тех, кто кричит, что Unsafe нужен кровь из носа как - "вот вам надо а палец о палец не ударите".




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

О том, что Unsafe хотят убрать я слышал уже года четыре назад (2011). О VarHandles разговор был уже на прошлом JVM Language Summit. Вот даже видео есть: https://www.youtube.com/watch?v=DpA6xLGWSyA&feature=youtu.be&t=36m34s

Наверняка до меня вся эта инфа добиралась с довольно большим запозданием, а значит известно о таких штуках было за-а-а-адолго до сегодняшних набросов. Так в чём же проблема? А проблема, как мне видится - в коммуникации.

И вот мысль - а чем занимался OpenJDK product manager? Вот мне кажется - его часть работы по разбору требований для нового API и должна была бы состоять в том чтобы найти эти все популярные проекты, которые используют Unsafe и завести диалог. Может это и было сделано - мне неизвестно. Но вот сейчас этим занимается сообщество и как мне кажется - уже немного поздно пить Боржоми.

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

Моё мнение - всё что делается, всё к лучшему. Все будут счастливы и никто не умрёт.


P.S. Ну и в догонку ещё твиты по теме:























Tags: , , ,

Golang
anton_arhipov
Иногда меня пробирает на то, чтобы палкой поковырять какой нибудь ЯП. Вот некоторое время назад добрался до Go.



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

Почитал A Tour of Go и Go Bootcamp, посмотрел доклады с разных конференций - раз, два, три, четыре. Стоит ещё пошелестеть Effective Go, для более отчётливого восприятия.

Весьма простятский язык программирования, этот Go. Именно это и является его фишкой. Ну то есть отсутствие фишек - уже само по себе фишка :)

Из приятных моментов, что присутствуют в Go:
- Результат компиляции - один бинарник - очень удобно!
- Довольно богатая стандартная библиотека
- Кросс-компиляция. Супер!
- Т.н. "горутины" (goroutines) и каналы (channels) для асинхронностей
- Сборщик мусора
- go-fmt - Вот это вообще чума, я считаю :) Код форматируется одним правильным стилем. Другие стили, соответственно, неправильные :)

Из странного:
- ООП в Go по меньшей мере странное. Неявные интерфейсы, довольно часто приходится делать приведение к странному типу interface{}.
- Названия функций с заглавной и прописной буквы - типа конвенция для определения публичной и приватной функции.
- Отсутствие генериков. Говорят, генерики хотят добавить, но пока не придумали как это всё должно выглядеть.

Надо сказать, поддержка в радакторах оставляет желать лучшего, но всё таки становится более-менее приемлимой. Я пробовал настроить Vim и таки нет: Vim использовать как IDE - это отдельная форма извращения. Пробовал Atom: получилось весьма неплохо - плагин go-plus правда имел некоторые трудности восприятия окружения на моём компьютере, по сему я решил посмотреть плагин для IDEA. И не ошибся - плагин для Go в IDEA молодец. Пока не супер-супер, но молодец - жить можно.

Долго думал, какова же ниша для Go. Язык простой, с неплохой библиотекой, но в языке отсутствуют некоторые конструкции, которые так любят ынтерпрайзные программисты (генерики, например), ну и система типов не предохраняет от критичных ошибок. Низкоуровневый код на Go писать не будешь - нет таких возможностей для управления памяти как в C/C++. Ынтерпрайз? - там жёстко сидят Java и C# - уже понаписано куча всяких библиотек и отлажено сто-тыщ-миллиардов ситуаций. Судя по всему, на Go переползают с Ruby, Python, Node.js итп.

Плюс, на Go очень модно стало писать утилиты для командной строки. Например тот же Сloud Foundry выкинул утилиты которые были написаны на Ruby и теперь используют Go... Docker и etcd написаны на Go.

Поддержка в языке всяких "горутин" навивает на мысль, что на Go должно быть весьма удобно писать всякие сетевые сервисы или даже REST - почему бы нет. Но в таком случае возникает вопрос, что даст мне Go по сравнению с Java. Наверное, ничего.

Для себя сделал вывод - на Go программировать было бы вполне ОК, хоть язык довольно и скучный. Для командной разработки Go подошёл бы очень хорошо. В то же время, если у меня рядом есть молоток в виде Java, то непонятно, почему я решил бы использовать Go. Вероятно, всё тот же пресловутый memory footprint мог бы сыграть Go на руку.

Вобщем... пойду на Rust посмотрю :)

Опубликованы видео с конференции GeekOut 2015
anton_arhipov
http://2015.geekout.ee/videos/

Между прочим, у конференции имеется страничка в Фейсбуках: https://www.facebook.com/GeekOut.ee

Hello World, v.2
anton_arhipov
Tags: , ,

?

Log in