суббота, 31 января 2015 г.

Прикладное зельеварение или о пользе больших подвалов


29-го Мишке стукнуло 13 лет, но друзья-родственники отмечали сегодня. По этому случаю откопал в подвале банку сливовой наливки урожая 2009 года. Крепковата на мой вкус, но запах - божественный.

Жизнь полна иронии. Буквально на днях встретил человека, которого хорошо знаю, но давно не видел. Возраст где-то 65, но выглядит гораздо хуже. Спиртное в неумеренных дозах... Потом полдня размышлял на тему, что "Алкоголь есть большое социальное зло...". Я к спиртному равнодушен, но... самодельное вино, наливки - есть в самом процессе что-то от зельеварения... Без пафосных взмахов волшебной палочки разливаешь вдохновение по трехлитровым банкам под закатку


пятница, 30 января 2015 г.

Креаклы против ватников или второй турнир Теории игр.

В последние год-два я очень отчётливо осознал, что есть два типа людей.

Первый тип (условно - креаклы), это в основном те, кто:
- с удовольствием читал книги Айн Рэнд (или говорит, что читал и с удовольствием)
- не одобряет политику Владимира Путина
- одобряет деятельность Алексея Навального и других оппозиционеров
- поддерживал майдан на Украине зимой в начале 2014
- считает, что аннексия Крыма Россией была опасной ошибкой
- считает преступлением запрет на усыновление российских детей иностранцами
- считает запрет на пропаганду гомосексуализма среди несовершеннолетних ханжеством и глупостью
- считают что Советский Союз рухнул потому, что коммунизм слабее капитализма и туда ему и дорога

Второй тип (условно - ватники), соответственно, наоборот:
- книги Айн Рэнд, если и читал, то не понравилось
- в целом поддерживает политику Владимира Путина
- в целом не одобряет деятельность Алексея Навального и других оппозиционеров
- зимой 2014 предрекал Украине в случае победы Майдана будущее Ливии и Сирии
- считает, что вхождение Крыма в состав России было разумно и справедливо
- считает преступлением усыновление российских детей иностранцами
- поддерживает запрет на пропаганду гомосексуализма среди несовершеннолетних
- считают, что в Советском Союзе плюсов было больше, чем минусов

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

Совпадение по одному-двум пунктам ни о чём не говорит, но уже четыре - процентов на 80% определяют приверженность человека к той или иной группе.

И там, и там - есть умные, честные, успешные люди. И там, и там - есть подлецы и неудачники. По каким-то повседневным проблемам они могут вполне успешно сотрудничать, но в глобальных вопросах расхождение кардинальное...

К чему всё это? Как я уже говорил, сейчас я прохожу онлайн-курс Теории игр. Ведущие каждую неделю устраивают турнир для участников. Про первый турнир я уже рассказал - может вернусь к этой теме после 1-го февраля, когда на руках будут результаты. Второй турнир стартовал в понедельник. Задание довольно необычное.

Есть общий пруд с известным количеством рыбы и сегодня - единственный день, когда ещё можно ловить. Каждый участник может выловить из него до 100 рыбин и так или иначе обменять её на условные единиц. Количество рыбы, оставшейся в пруду, определяет количество призовых баллов, которые получат 25% участников, набравших максимум баллов. То есть, чем больше выловишь рыбы, тем больше шансов попасть в число призёров, но тем меньше будет вознаграждение призёров (вплоть до нуля).

Классическая дилемма заключённого. Деятельность, максимизирующая прибыль каждого из игроков, в итоге приводит к наихудшим результатам. Когда я это сообразил (честно скажу - не сразу), предложил участникам совместно максимизировать свой выигрыш. Из пояснений ведущего ясно, что если 75%+1 человек наберут одинаковое количество условных единиц (например - ноль), то призовые баллы будут разделены между всеми участниками. Да, количество баллов будет в 4 раза меньше, но зато они точно будут. Т.к. максимальное количество баллов, которое может получить участник за игру равно 9 (если вся рыба останется в пруду), то моя стратегия обещает от 1 до 2 баллов каждому. Стратегия единоличных действий (каждый сам за себя) - хотя в перспективе и обещает до 8 баллов, по факту, скорее всего даст ноль (всю рыбу из пруда выловят).

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

Однако, вдруг я ошибаюсь и люди гораздо мудрее, чем мне кажется? Итоги после 8 февраля покажут...

И, кстати, первый дедлайн по этому курсу 1 февраля, так что желающие ещё могут успеть прыгнуть на подножку уходящего поезда

четверг, 29 января 2015 г.

Как удалить скрытые имена в эксель-файле?

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

Всё бы ничего, но каждый раз при копировании выскакивает окно с уведомлением о том, что копируемые формулы содержат какие-то имена. И таких имён порядка 30 на странице. То есть, каждый раз копируя вкладку мне надо 30 раз нажать кнопку "Да".


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

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

Сделал, удалил, но... диспетчер имён удаляет только видимые имена, а есть ещё и скрытые. 

Следующая ссылка привела на сайт Майкрософт (доступ только по учётной записи). Там выложен макрос, который позволяет удалять скрытые имена из эксель-файла. Копирую макрос здесь, чтобы на будущее не искать:
' Module to remove all hidden names on active workbook
Sub Remove_Hidden_Names()
' Dimension variables.
Dim xName As Variant
Dim Result As Variant
Dim Vis As Variant
' Loop once for each name in the workbook.
For Each xName In ActiveWorkbook.Names
'If a name is not visible (it is hidden)...
If xName.Visible = True Then
Vis = "Visible"
Else
Vis = "Hidden"
End If
' ...ask whether or not to delete the name.
Result = MsgBox(prompt:="Delete " & Vis & " Name " & _
Chr(10) & xName.Name & "?" & Chr(10) & _
"Which refers to: " & Chr(10) & xName.RefersTo, _
Buttons:=vbYesNo)
' If the result is true, then delete the name.
If Result = vbYes Then xName.Delete
' Loop to the next name.
Next xName
End Sub
Вот вся последовательность необходимых действий:


На вкладке "Вид" (1) нажимаем кнопку "Макросы" (2) - выскакивает окно. Вводим произвольное имя (3) - становится доступной кнопка "Создать" (4). Нажимаем...


Открывается окно редактора макросов с набранными несколькими строчками заготовки макроса (5). 



Копируем код макроса на место имеющегося текста и закрываем окно текущего макроса (6) и окно редактора макросов.


Снова Вид - Макросы и видим, что произвольное имя изменилось на Remove_Hidden_Names. Выбираем и нажимаем "Выполнить" (7)


Макрос запрашивает подтверждение на удаление каждого из имен, но это в последний раз. Так как кнопка "Yes" активна по умолчанию и если ни одно имя не нужно, то можно просто нажать и держать "Enter", пока все имена не будут удалены.

Всё. Теперь вкладку можно копировать без каких-либо дополнительных подтверждений.

среда, 28 января 2015 г.

Практически идеальный подарок для мужчины...

По наводке боевого библиотекаря нашёл эту прелесть:


Купить можно здесь

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

вторник, 27 января 2015 г.

Берегиня - шифруйся правильно

Это не просто декоративный узор - это мои имя и фамилия написанные шрифтом Берегиня.

Скачать и установить в свою систему можно в блоге разработчика - Міхаіл Баярын - пишу в именительном, не знаю как правильно склонять.

Стильно, но читать очень непросто с непривычки.

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

Гештальт-терапия: взгляд спустя 50 часов личной терапии..

Сразу скажу - мое отношение к личной терапии как было сугубо положительным, так таким же и осталось. А написать решил под впечатлением заметки в жж molnia. Там описан крайне негативный опыт и как раз у гештальт-терапевтов. Всё правда, наверное, но точно не вся правда.

Вот чтобы по возможности такого не было, хочется дать несколько рекомендаций:

1. Настоящий гештальт-терапевт имеет сертификат. Проверить наличие сертификата можно здесь - для относящихся к Московскому гештальт-институту. Для других федераций гештальт-терапевтов наверняка тоже есть базы данных. Наличие сертификата подтверждает, что данный специалист признан достаточно компетентным своими коллегами. Отсутствие данного сертификата значит, что звание гештальт-терапевта человек присвоил себе сам.

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

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

3. Гештальт-терапевт может дать совет. Гештальт-терапевт может помочь разобраться в конкретной ситуации. Но, по моему опыту, первые часов тридцать, конкретные ситуации в процессе сессии уходят на задний план, и с чего бы не начинали - всё переходит на детские переживания. Кто-то скажет, что не за этим пришёл. А я скажу, что благодаря этому у меня нет переживаний в конкретных ситуациях. Убрав зацепки из детского возраста, я могу спокойно жить в тех ситуациях, которые раньше были невыносимы. Да и возникают они гораздо реже.

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

5. Терапевт не умеет читать мысли, за редким исключением. Он работает с тем, что видит, как ведёт себя ваше тело, и с тем, что слышит от вас. По этому -  говорите. Больно, скучно, кажется бессмысленным - говорите. Со всем этим можно справиться, если вы делитесь этим.

Пожалуй, всё. Удачи!

воскресенье, 25 января 2015 г.

Клезмер - еврейский джаз

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

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






суббота, 24 января 2015 г.

Ядерный взрыв - определяем страну-производителя взрывного устройства

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

Оригинал взят у Юрия Панчул в Американский консультант о том, что нужно делать в момент вспышки ядерного взрыва

Если вам надоел порошенковско-яценюково-соросовский дискурс, как прошлогодний борщ, то вот занятное инфоблюдо: американский консультант рассказывает о том, что нужно делать в момент вспышки ядерного взрыва. Нет, не то, что вы подумали ("... чтобы расплавленный металл не капал на казенные сапоги!"). Вместо этого нужно моментально, не любуясь взрывом, лечь на пол подальше от всяких стекол и всего что может падать, после чегно начать считать секунды. Далее нужно зафиксировать, сколько длилось интенсивное белое свечение (это даст количество мегатон, страну происхождения и нужно ли ждать еще взрывов) и когда прийдет звук и ударная волна (это даст расстояние и информацию, когда прийдут радиоактивные осадки). Очень поучительно. Внимание любым начинающим лекторам - учитесь качественной манере изложения материала! С 2:15:
 

Screenshot 2015-01-21 08.43.21 Screenshot 2015-01-21 08.44.20

пятница, 23 января 2015 г.

Теория игр от ВШЭ - лучший старт для желающих распробовать онлайн-обучение

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

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

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

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

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

Картинка кликабельна.

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

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

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

До 1 февраля время есть - кручу в голове, какую раскладку делать. Кстати, если интересно - можете в комментариях выложить свой расклад, после турнира скажу результат.

четверг, 22 января 2015 г.

Джек Ричер, Боб Ли Свэггер: в книге и в кино

Когда читаешь книгу, в голове всегда есть какое-то представление о главном герое. А уж если автор акцентирует внимание на каких-то деталях внешности, то другим его реально сложно представить.

Например, Ли Чайлд описывает персонажа серии романов Джека Ричера как громилу ростом 196 см и порядка 110 кг весом, разукрашенного шрамами. Как никак - 13 лет в военной полиции. Я представлял кого-то с внешностью наподобие Марва из Син-Сити...


Дождался экранизации... Фильм, кстати, понравился, но есть нюансы... В главной роли - Том Круз. Рост - 170 см, вес - килограмм 70. Потрясающее сходство... Конечно, Джек Ричер другим быть не может. 


Дальше, другая книга, другой фильм. У Стивена Хантера есть интересная серия романов про снайпера Боба Ли Суэггера. Боб Ли - возраст чуть больше сорока, воевал во Вьетнаме, получил серьёзное ранение, был вынужден уйти из армии. Не нашёл себя в мирной жизни, развод, алкоголь и т.д. Несколько раз лечился в клинике для алкоголиков. Последние несколько лет живёт, практически не общаясь с людьми... Клинт Иствуд - однозначно, кого ещё брать?


Смотрим, что получилось у киношников - фильм так себе, но к актёру претензий нет, играет неплохо. Вот только не похож он на сороколетнего алкоголика - килограмм двадцать сбросить надо...


В общем, книги - лучше...

среда, 21 января 2015 г.

Про мотивацию и платежи по кредитам

Как я уже говорил, поступил на онлайн-курсы edX. У меня были опасения, что брошу курс по информатике - из-за того, что там используется Python "не той системы" - однако, пока что разница не существенна. Рассчитывал, что этот курс поможет подтянуть английский - увы, не хватает мотивации разбираться, когда можно просто нажать кнопку Google Translite. Лень... Всё-таки, чтобы успешно двигаться - нужна не только морковка впереди, но кто-то должен пинать сзади. На этом курсе есть промежуточные дедлайны - они и играют роль этих пинков, возможность набрать 100% возможных баллов - хорошая морковка для меня. Поэтому процесс идёт.

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

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

Но, это так, лирическое отступление. Я вообще про другое хотел рассказать. На курсе информатики сегодня (потому что - дедлайн) делал задания по банковской тематике. Одно из заданий - есть кредитная карта с задолженностью, например 100 000, на которую ежемесячно начисляется процент (в задании - 18% годовых) Если ежемесячно оплачивать только минимально допустимый взнос (в задании - 2% от баланса), то каковы будут итоги год спустя? Сколько всего выплачено за год и какая сумма долга осталась на карте? Очень познавательно.
Total paid: 23312.61
Remaining balance: 93822.16
За год выплачено 23 300, а сумма долга уменьшилась всего на 6 200

Любопытства ради, прогнал программу с данными своей кредитной карты ВТБ24 (19% годовых и ежемесячный платеж 5% от баланса). Беспроцентный период (до50 дней) не учитывал - не знаю, распространяется ли он на начисленные проценты.
Total paid: 49707.99
Remaining balance: 65245.83
Уплачено почти 50 тысяч, а долг уменьшился на 35 000. При всё при том, повышенный минимально допустимый взнос - гуманнее по отношению к потребителю, активнее гасится основное тело кредита.

Хорошее задание. В школьный учебник математики я бы таких побольше поставил - детям полезно.


вторник, 20 января 2015 г.

12 обезьян, Plague Inc. и сила желания


Наткнулся на новый сериал "12 обезьян" - лет через 30 смертоносный вирус выкосит практически всё человечество. Группа выживших ученых смогла создать машину времени и отправила в прошлое (примерно в наши дни) мелкого уголовника (но героя в душе), чтобы он нашёл и ликвидировал предполагаемого виновника катастрофы. Но, с виновником "всё не так однозначно"... Довольно интересный сюжет, симпатичные актёры - вот уже вторую серию смотрю с удовольствием.



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


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

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

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

Искупались

Зима в этом году тёплая, так что нормальной полыньи на Луге не оборудовали. Узнал об этом вчера вечером, куда-то ещё дёргаться было лень, полуночное купание отменилось. Честно говоря был большой соблазн вообще задвинуть на это дело... Однако, в прошлом году - уже раз пропустил, и что в итоге - на Украине началась гражданская война, курс рубля упал почти вдвое. Еще раз пропущу - и? Третья мировая, мор, глад и эпидемии? Нет, мир надо спасать. Тем более что и Мишка не прочь составить компанию.

В общем, поехал в другое место. Километрах в 25 от Кингисеппа, недалеко от деревни Онтстополь есть источник, народ там регулярно окунается, поехали туда.

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

Яшка под общий ажиотаж тоже загорелся искупаться. Я честно его отговаривал - всё-таки в четыре года в прорубь, даже на мой взгляд чересчур. Сводил его потрогать воду, предложил дома поплескаться в ванной - однако "Я тоже хочу купаться!". Ладно, раздел его и окунул в воду. Как ни странно - визга не было (дыхание перехватило?) Слегка расхныкался - похоже, стукнулся ногой об железную лестницу, когда я его окунал, но в целом на удивление спокойно. Быстро одел и отнёс его в машину - там тепло. Ну и сам залез в воду - бодрит.

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

воскресенье, 18 января 2015 г.

С наступающим или айда купаться!


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

До Крещения несколько часов. Православным себя не считаю, но нырять в прорубь буду. Потому что.

Кстати, завтрашний день - весь "зачётный", хотя спасатели у проруби обычно только в ночь на 19-ое. Если кто надумает впервые окунуться - мои советы трехлетней давности тут, а кто не впервые - те и без советов обойдутся.

С наступающим! 

суббота, 17 января 2015 г.

Таро для психолога (и не только - для психолога)

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

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

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

Второй курс - проработка техник, как можно работать с картой, от чего отталкиваться, на что обращать внимание. Как раз про навык "толкования" из первого абзаца. Опять же - понравилось. И опыта прибавилось, и сам курс оказался очень ресурсный, поддерживающий. Картинка, кстати, как раз с того курса - для меня очень символичная. Слегка фривольно, но отзывается инженерный подход к творческим задачам. Да и форма одежды намекает на расслабленный образ жизни - без чужих НАДО и ДОЛЖЕН.

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

пятница, 16 января 2015 г.

2048 - новая зараза

По-хорошему, надо было публиковать это в понедельник, в начале трудовой недели...

Пару недель назад подсел на игру 2048 - идеальная замена для маджонгов, пасьянсов и т.п. Универсальный убийца офисного времени.


К счастью, собрал 2048 - мозг дал команду "вольно". Собрать 4096 теоретически возможно, но только при немалой доле везения. Теперь осталось передать эстафету дальше.

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

четверг, 15 января 2015 г.

Детсад - подготовка к Fallout

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


Ну, что тут скажешь. Надо так надо. Сшил, отнёс. Халтурно получилось, честно говоря - нос прикрыт, но с боков никакого прилегания. По-хорошему, надо пользоваться нормальными респираторами. "Лепесток" стоит недорого, а качество - не сравнить.

Слегка тревожно от таких приготовлений. Похоже, всерьёз рассматривается вероятность перехода конфликта со Штатами в горячую фазу? Или, надеясь на лучшее, просто из-за близости Сосновоборской ЛАЭС? Мда...


среда, 14 января 2015 г.

Проверенная технология - как снять наличные с карты свыше дневного лимита?


Пластиковые карты - это удобно. Хотя, конечно, есть и "особенности". Одна из таких особенностей - лимит на снятие наличных. С зарплатной карты ВТБ24 мне невозможно снять свыше ста тысяч рублей в сутки. Да, такая необходимость возникает не часто, (да и сто тысяч накопиться редко когда успевает) - однако, за год уже второй раз столкнулся с такой проблемой.

Пойти в кассу банка и снять всю сумму там - не вариант. Дневной лимит снятия наличных - это не в банкомате, а любым способом, в т.ч. и в кассе.

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

Уже несколько лет у меня дома валялась дебетовая карта ВТБ24 (красного цвета) - с её помощью я погашал автокредит. С карты можно снять только то, что положил, проценты за вклад не начисляются, зато срок действия пять лет и годовой платы за обслуживание нет. Лежит и лежит, есть не просит. Сегодня пригодилась.


Через систему ТЕЛЕБАНК (бесплатный для владельцев зарплатных карт), перевёл то, что свыше ста тысяч рублей, с зарплатной карты на дебетовую (бесплатно для переводов между картами одного владельца). Ну а дальше, банально снял деньги с карты.

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

И кстати, сообразил, две такие карты на одного владельца плюс ТЕЛЕБАНК - идеальная система для перевода денег по всей России, например, в случае длительных командировок кого либо из членов семьи

вторник, 13 января 2015 г.

Программист - верхний уровень или куда стремиться?

Огромная статья с жж sharpc.livejournal.com  - Теоретический минимум для программиста. Утащил к себе, чтобы было под рукой, а автора добавил в Feedly - пишет редко, но сильно. В декабре я писал, что должен уметь программист-джуниор, а это уже требования где-то ближе к верхней планке:
Многие начинающие программисты, особенно обучающиеся в провинциальных вузах, часто не знают, в какую сторону им развиваться, и что они должны знать для того, чтобы эффективно работать по специальности. Удивительно, но каждый день используя продукты и технологии, созданные другими программистами на основании развитых областей знания, они даже не догадываются о том, как они устроены.
Построенные на теории массового обслуживания и стандарте GSM сети мобильной связи; PHP-скрипты, исполняющиеся на удаленных серверах и передающие свою выдачу через Ethernet по TCP/IP на компьютеры с NDIS-драйверами; процессоры, переупорядочивающие и спекулятивно исполняющие наборы инструкций для того, чтобы скомпенсировать вызванную ограничениями полупроводниковой электроники и скоростью света остановку роста тактовой частоты; рассчитанные на ЭВМ корпуса самолетов и автомобилей, лекарства и структуры ДНК; компьютерные игры, ради крохотного блика в которых пишутся мегабайты заполненных интегралами Френеля статей; электронные фильмы и книги; алгоритмы NLP и TreeNet, вызывающие нам из огромных баз данных поисковую выдачу — вот то, что окружает нас каждый день благодаря программистам, благодаря оригинальным подходам и фундаментальным знаниям, благодаря продуманной и отточенной десятилетиями методологии разработки и управления сложностью ПО.
Я и мои единомышленники взяли на себя труд составить теоретический минимум для программиста на основании наиболее ярких отраслей IT, вошедших даже в программы нормальных университетов, на основании собеседований и постоянно пригождающихся на практике знаний. Часть из пунктов этого минимума можно изучить за 5 минут по википедии, часть же потребует серьезного труда на протяжении нескольких месяцев, но это именно то, что обязательно следует знать и чем следует свободно владеть. В комментариях приветствуются исправления и дополнения.

  • C++, стандарт, Comeau, 1TBS, Страустрап/D&E/Джосаттис/Вандервуд, Дьюхэрст/Мейерс/Саттер, RAII/copy-and-swap/exception-safety, правило пяти, Александреску/Абрахамс-Гуртовой, type erasure, CRTP, NVI, SFINAE, Koenig lookup, Duff's device, Boost, Сик-Ламсдейн/Карлссон, TR on C++ performance, тест Степанова, forwarding problem/move semantics, SPECS

  • Компиляторы, особенности реализации стандарта, ограничения реализации, интринсики, отличия стандартных библиотек (контейнеры, rand), ABI, реализация виртуальных функций, виртуального наследования, исключений, RTTI, switch, указателей на функции и методы; оптимизации, copy elision (RVO, NRVO), sizeof на различных платформах, дефайны компилятора и среды, __declspec, ключи компилятора, empty-base optimization, статическая и динамическая линковка, манглинг, распределенная компиляция, precompiled header, single compilation unit, (strict) aliasing/restrict, inline/_forceinline, volatile

  • Мультитредность, обедающие философы, deadlock/livelock/race condition/starvation, атомарность, lock инструкции процессора, memory model/barrier/ordering, CAS или LL/SC, wait/lock/obstruction-free, ABA problem, написание lock-free контейнеров, spin-lock, TLS/per-thread data, закон Амдала, OpenMP, MPI, map-reduce, critical section/mutex/semaphore/condition variable, WaitForSingleObject/WaitForMultipleObjects, green thread/coroutine, pthreads, future/deferred/promise, модель акторов

  • Язык ассемблера, Зубков/Хайд/Дреппер/Касперски/Фог/Абраш,x86, FPU/MMX/SSEn/AVX, AT&T и Intel-синтаксис, masm32, макросы, стек, куча/менеджеры кучи, соглашения вызова, hex-коды, машинное представление данных, IEEE754, little/big endian, SIMD, аппаратные исключения, прерывания, виртуальная память, реверсинг, срыв стека и кучи, return oriented programming, alphanumeric shellcode, L1/L2/RAM/page fault и их тайминг, язык ассемблера ARM

  • Аппаратное обеспечение, Хоровиц-Хилл/Титце-Шенк/От физики к Си от panchul, полупроводниковая электроника/спинтроника/фотоника, транзистор, триггер, схемотехника, микрокод, технология создания процессоров, logic synthesis, static timing analysis, FPGA, Verilog/VHDL/SystemC, SISAL, Arduino, устройства памяти (ROM → EEPROM, RAM, SSD, HDD, DVD), RISC/CISC, Flynn's taxonomy ([SM]I[SM]D), принстонский и гарвардский подход, архитектуры процессоров, архитектуры x86, VID/PID

  • Процессоры, конвейеризация, hyper-threading, out-of-order execution, спекулятивное исполнение, static/dynamic branch prediction, префетчинг, множественный ассоциативный кэш, кэш-линия/кэш-промах, такты, кольца защиты, память в мультипроцессорных системах (SMP/NUMA), тайминг памяти

  • Дискретная математика, K2, теорема Поста, схемы, конечные автоматы (ДКА и НДКА), автомат Калашникова, клеточные автоматы

  • Вычислимость, машина Тьюринга, нормальные алгоритмы Маркова, машина Поста, диофантовы уравнения Матиясевича, лямбда-функции Черча, частично рекурсивные функции Клини, комбинаторное программирование Шейнфинкеля, Brainfuck, эквивалентность тьюринговых трясин, проблема останова и самоприменимости, счетность множества вычислимых функций, RAM-машина, алгоритм Тарского, SAT/SMT-солверы, теория формальных систем

  • Языки программирования, грамматики, иерархия Хомского, теорема Майхилла-Нероуда, лемма о накачке и лемма Огдена, алгебра Клини, НДКА → ДКА, алгоритмически неразрешимые задачи в формальных языках, Драгонбук, Фридл, регекспы и их сложность, PCRE, БНФ, Boost.Spirit + Karma + Qi/Ragel, LL, LR/SLR/LALR/GLR, PEG/packrat, yacc/bison/flex/antlr, статический анализ кода, компиляция/декомпиляция/обфускация/деобфускация, Clang/LLVM/XMLVM/Emscripten, GCCXML, OpenC++, построение виртуальных машин, JiT/AoT/GC, DSL/DSEL

  • Алгоритмы и комбинаторная оптимизация, Кормен/Скиена/Седжвик/Кнут/Ахо-Хопкрофт-Ульман/Пападимитриу/Шрайвер-Голдберг/Препарата-Шеймос/e-maxx.ru, структуры данных, алгоритмы, сложность, символика Ландау, теорема Акра-Баззи, time-space tradeoff, классы сложности, NP-полные задачи, КМП, графы и деревья, потоки в сетях, матрица Кирхгофа, деревья поиска (особенно RB-дерево и B-дерево), occlusion detection, куча, хэш-таблицы и идеальный хэш, сети Петри, алгоритм русского крестьянина, метод Карацубы и матричное умножение Винограда-Штрассена, сортировки, жадные алгоритмы и матроиды, динамическое программирование, линейное программирование, diff-алгоритмы, рандомизированные алгоритмы и алгоритмы нечеткого поиска, псевдослучайные числа, нечеткая логика

  • Численные методы, дихотомия/метод Ньютона, интер- и экстраполяция, сплайны, метод Гаусса/Якоби/Зейделя, QR и LU-декомпозиция, SVD, МНК, методы Рунге-Кутты, метод Адамса, формулы Ньютона-Котеса, метод Ритца, метод Бубнова-Галеркина, метод конечных разностей/элементов, FFT/STFT, сходимость и устойчивость

  • Машинное обучение, Рассел-Норвиг/Bishop, подходы к моделированию AI, переобучение/кроссвалидация, байесовские сети, нейросети, сети Кохонена, Restricted Boltzmann machine, градиентный спуск/hill climbing, стохастическая оптимизация (метод Монте-Карло, метод отжига, генетические алгоритмы, муравьиные алгоритмы), SVM, gradient boosting, кластерный анализ, метод главных компонент, LSH, обучение с подкреплением, MDP, information retrieval/data mining/natural language processing, машинное зрение, Szeliski, OpenCV, image processing, OCR, фильтры Собеля, каскад Хаара, Viola-Jones framework, SURF, введение в психофизиологию зрения, IPython/pandas/scikit-learn

  • Теория информации, сжатие, Хаффман, RLE, BWT, LZ, коды коррекции ошибок, сжатие с потерями (изображения, аудио, видео), информационная энтропия, формула Шеннона, сложность Колмогорова

  • Криптография, Шнайер/Ященко, Принцип Керкгоффса, симметричная (DES, AES), асимметричная (RSA), качество ГПСЧ, алгоритм Диффи-Хеллмана, эллиптические кривые, хэширование (MD5, SHA, CRCn), DHT, криптостойкость, криптоатаки (атака гроссмейстера), WEP/WPA/WPA2 и атаки на них, цифровая подпись и сертификаты, PKI, HTTPS/SSL, доказательство с нулевым разглашением, пороговая схема

  • Математика, Кнут-Грэхем-Паташник/Зорич/Винберг, Spivak/Dummit-Foote, матан, линал, комплан, функан, диффгем, теория чисел, дифуры/интуры/урчпы/вариационное исчисление/оптимальное управление, производящие функции, ряды, комбинаторика, теорвер/матстат/слупы/теория массового обслуживания, цепи Маркова, интегральные преобразования (Фурье, Лаплас, вейвлет), NZQRCHOS, матпакеты (Mathematica, Maple)

  • Физика, правила Кирхгофа, закон Джоуля-Ленца, комплексное сопротивление, скорость и частота света, уравнения Максвелла, лагранжиан и гамильтониан

  • Химия, стехиометрия, химия кремния :)

  • Архитектура и стиль кода, Макконнелл/Фаулер/Лебланк/Гамма/Александреску-Саттер/Буч, защитное программирование, паттерны, SOLID/GRASP/KISS DRY SPOT/YAGNI, UML, OOP (Smalltalk), OOD/OOA, метрики кода

  • Методологии разработки, Waterfall/RUP/Agile/Scrum/Kanban/XP, TDD/BDD, CASE

  • Тестирование, юнит-тесты, функциональное, нагрузочное, интеграционное тестирование, тестирование UI

  • Инструментальные средства разработки, IDE, IntelliSense, отладчики (VS/Olly/WinDbg/kdb/gdb) и трейсеры (strace/ltrace), DWARF debug information format, дизассемблеры и декомпиляторы (IDA/HexRays/Reflector), системы контроля версий (SVN, GIT), merge/branch/trunk, системы именования файлов и бранчей, continuous integration, ant, code coverage, статический анализ (lint, cppcheck), динамический анализ (valgrind, фаззинг), верификация и валидация ПО (Frama-C, RAISE (RSL), Coq), профайлинг, багтрекеры, документирование кода, системы сборки (CMake), пакетные менеджеры (NuGet)

  • Фреймворки, Qt, moc и метаинформация, концепция слот-сигнал, Саммерфилд-Бланшет/Шлее, PoCo, промышленные библиотеки: GMP, i18n, lapack, fftw, pcre

  • Операционные системы, Silberschatz/Рихтер/Соломон-Руссинович/Робачевский/Вахалия/Стивенс/Love/Linux Kernel Internals, менеджер памяти, менеджер кучи и ее устройство (LAL/LFH/slab), менеджер устройств, менеджер процессов, context switch, реальный и защищенный режим, исполнимые файлы (PE/ELF/Mach), объекты ядра, отладочные механизмы (strace/ptrace/dtrace/pydbg, Debug API) и минидампы, bash, сетевой стек и высокопроизводительные сервера, netgraph, CR0, IPC, оконная подсистема, система безопасности: ACE/ACL и права доступа, технологии виртуализации, RTOS (QNX), программирование драйверов, IRQL, IRP, файловые системы, BigTable, NDIS/miniport/FS drivers/filter driver, Mm-, Io-, Ldr-функции, DKOM и руткиты, GDT/IDT/SDT, ядра Windows/Linux/BSD, POSIX

  • Компонентно-ориентированные модели, Роджерсон/Таварес, COM/OLE/ActiveX/COM+/DCOM RPC, ATL, апартменты, моникеры, MIDL, XPCOM, CORBA, TAO, D-Bus

  • Сеть, Стивенс, OSI model/Internet model, Ethernet, TCP/IP, TCP window, алгоритм Нейгла, сокеты, Protocol buffers/Thrift/Avro/ASN.1, AMQP, ICMP, роутинг/BGP/OSPF, ARP, атака Митника, syn flood, HTTP/FTP, P2P/DHT, DHCP, SMB/NBNS, IRC/XMPP, POP3/SMTP/ESMTP/IMAP, DNS, WiFi/WiMax/GSM/CDMA/EDGE/Bluetooth/GPS, ACE, Wireshark

  • Графика и GPGPU, алгоритм Брезенхема, цветовые модели, трассировка лучей vs полигональная графика, OpenGL/GLSL/Open Inventor, DirectX/DirectShow/DirectAudio/HLSL, stencil/depth/alpha-test, графический конвейер в DirectX 11, шейдеры, модели освещения (Фонг), пропускная способность, fillrate, OpenCL/CUDA/AMP, ландшафты, лоды, тени, deferred shading, текстурирование и фильтрация, антиалиасинг, HDR, tone mapping, virtual/augmented reality

  • Форматы, XML/XSLT/XPath/XMLStarlet/DOM/SAX, RTF/ODF, JSON/BSON/bencode, YAML, JPEG/PNG/WebP, AVI/MPEG/RIFF/WAV/MP3/OGG/WebM, SVG, Unicode, кодировки однобайтные/UTF-8/UTF-16/UCS-2/UTF-32, проблемы длины и сравнения Unicode-строк

  • Базы данных, Грубер/Дейт, ANSI SQL, T-SQL, ODBC, MySQL/PostgreSQL/MS SQL/BDB/SQLite/Sphinx, хранимые процедуры, триггеры, алгебра Кодда/А, Tutorial D, нормальные формы, оптимизация и выполнение запросов, структуры данных индексов, транзакции и ACID, CAP-теорема Брюера, NoSQL, key-value storage, шардинг, ORM (C++ ODB), ERD, OLAP, семантическая сеть, triplestore, RDF/Turtle, SPARQL, OWL, Semanticscience Integrated Ontology, reasoner, DBpedia

  • Прикладное программирование, C#/F#, Шилдт/Троелсен/Рихтер, генерики, yield, linq/plinq, рефлексия, AST, WCF, WinForms/WPF/Silverlight, AOP, фреймворки логгирования, .NET assembly, Scala, Хорстманн/Одерски, pattern matching, макросы/квазицитаты

  • Квантовые вычисления, алгоритм Шора, квантовая криптография

  • Функциональное программирование, Haskell/Ocaml/Scheme/Alice или Oz, SICP/TaPL/YAHT/Purely Functional Data Structures/Харрисон-Филд, HOF (map/fold/filter), система типов Хиндли-Милнера, монады, тайпклассы, АТД, dependent types, ленивость/энергичность, логическое программирование (Prolog или Mercury), конкурентное программирование (Erlang или Oz)

  • Веб-программирование и скриптовые языки, Фланаган/Zend PHP5 Certification Course + Study Guide, Apache/nginx, CGI/FastCGI, PHP/Zend Framework/ReactPHP/Zend Engine/Doctrine или Propel/CodeIgniter или Symphony или Yii, Python/Django/Twisted, Ruby/RoR, ASP.NET MVC, JavaScript/jQuery/React/Google Closure/ExtJS/node.js, ООП в JavaScript, HTML5, CSS3/табличная и блочная верстка, RSS, canvas/WebGL, Ajax/WebSockets, вопросы безопасности (XSS, SQL injection, CSRF), highload, C10k problem, SWIG

  • Проектирование GUI и представление информации, Раскин/Тафти, юзабилити, основы дизайна и типографики, закон Фиттса, основы верстки, LaTeX

UPD: Некоторые комментарии повторяются довольно часто, и разумно было бы попробовать ответить на них в апдейте поста.

Этот теормин вполне справедливо критикуется за отсутствие системности изложения и ВНЕЗАПНЫЕ соседства различных как по глубине, так и по содержанию топиков. Это не бага, это фича. Системное изложение программы по практически любому из пунктов заняло бы места не меньше, чем оглавления пухлых талмудов, поэтому лучше как раз названия этих талмудов и приводить. Как же тогда работать с этим списком? Следует брать хорошие книжки по тематике и читать их до тех пор, пока все упомянутые слова не встретятся в процессе чтения. Авторы и в страшном сне не могли предположить, что кто-то решит, что устройство Даффа посчитают по глубине и объему чем-то равным полуторатысячестраничному Священному Стандарту. Однако этот критерий вполне рабочий — можно перечитать сотню книг по C++ для начинающих, и ни разу не встретить упоминания о нем, но если читать действительно полезные книги и статьи (для тем, подобных C++, такие книги существуют и перечислены), то все слова довольно быстро встречаются. Смысл программы, обусловленный ее размером, именно в том, чтобы дать возможность оценить, достаточное ли количество книг по теме прочитано.
Весьма значительное количество критики теормин встречает и со стороны людей, считающих себя программистами, которые полагают, что все это знать невозможно, изучать слишком долго, а в некоторой абстрактной узкой практике большая часть не используется. Эти люди, к сожалению, просто не понимают, в чем разница между эрудицией/памятью и знаниями. Ценность для программиста имеет не запоминание точного формата какого-нибудь из пакетов NBNS, а овладение подходами, которые использовались при разработке, другими словами не способность воспроизвести, а способность воссоздать или опознать, в том числе в другой области. Именно способность человека к анализу и синтезу (которая все же не берется из ниоткуда, а достигается активным познавательным трудом) отличает его от гугла, который даже в очень отдаленной перспективе не научится решать даже div2 250. Именно на развитие этой способности и направлен теоретический минимум, который в процессе работы обязательно придется дополнять domain-specific знаниями, будь то особенности игровой физики, разработка оперденей на Java или создание реальных микросхем.
В отдельный абзац стоит выделить вопрос от тех, кто сомневается в своих способностях освоить теормин, либо полагает, что способность его применять будет редко востребована и ослабнет. В целом, теорминимум в большинстве пунктов несколько уступает учебным программам факультетов CS нормальных университетов, так что за 5 лет его освоить вполне возможно, даже совмещая с работой. Конкретно в геймдеве активно используются (по разным подсчетам в обсуждениях) от 1/3 до 2/3 перечисленных пунктов. Недостающую активность можно восполнять, к примеру, консультируя других на Stack Overflow.
Отдельную категорию людей, высказывающуюся в стиле «я такого не знаю, я такое запрещаю» составляют те, кто полагает, что цель программиста заключается не в улучшении мира, а в зарабатывании денег. Им этот теоретический минимум действительно не нужен, а следует поискать самоучители по тому, как правильно и со знанием всех тонкостей воровать, обманывать и заставлять работать вместо себя других.
«Нас и тут неплохо кормят». Этот аргумент встречает свое опровержение во втором по активности обсуждении статьи у metaclass:
Все, что должен знать программист, чтобы его после 40 лет не выбросили на Помойку, Где Бомжи.
Действительно, в возрасте около 45 лет начинает активно проявляться деградация мозга, приводящая к существенным проблемам в понимании и способности оперировать кодом с обычной цикломатической сложностью. Потеря способности писать код в сочетании с неспособностью из-за отсутствия тренировок к анализу/синтезу — гарантированный путь именно туда. Некоторые люди сохраняют способность оперировать нормальной цикломатической сложностью и в старости, однако лишь за счет превышающих норму показателей в молодости. Проверить, входите ли вы в зону риска, можно на TopCoder.
Кроме того, хочу поблагодарить тех, кто помогал исправлять досадные ошибки в этом теормине, особенно своих коллег, которые не только владеют его большей частью, но и внесли наиболее ценные замечания по его дополнению. 
Некоторые полезные ссылки:
Книги, которые стоит читать в IT 
Матрица Компетентности Программиста
Список Баткина
MIT OpenCourseWare
Курсы Интернет-университета

UPD2 (2011.07.04): Огромное спасибо Vissi за перевод статьи на английский язык.

UPD3 (2011.12.31):
Питер Норвиг. Научитесь программировать за десять лет
Matt Might. What every computer science major should know
От физики к программированию 
Зачем нужно знать всякие низкоуровневые вещи 

Ну и наконец, откуда вообще вырос этот теормин:
ACM Computer Science Curriculum
Last update: 2014/12/31
 Впечатляет. Программа лет на -дцать

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

Лучшие фики по ГП. Естественно, ИМХО


Решил собрать списком - дюжина лучших фанфиков по вселенной Гарри Поттера. Нумерация большей частью произвольная, по мере нахождения точных названий и ссылок:

1. Vizivul - Ворон. Подлинная история лорда Северуса Тобиаса Снейп-Принц
Умирая в Визжащей хижине, Северус Снейп применяет зелье, пробуждающее кровь Рода Принц и заклинание Рода перебрасывает его личность в прошлое, в его же подростковое тело. Макси, в процессе.  Самиздат

2. Альбус, Poxy_Proxy - Вальпургиев рассвет
Беллатриса Лестрейндж выходит на свободу после 10 лет Азкабана. Она стала гораздо мудрее, по прежнему преданна идеалам Волдеморта, но воплотившегося мутанта не принимает за своего Лорда. Макси, в процессе. Fanfics.me

3. karpovam - Старший брат
Попаданец в теле старшего брата Северуса Снейпа (здесь - есть). Макси, закончен (но есть надежда на вторую часть). Fanfics.me

4. Poxy_Proxy - Tempus Colligendi
Главный Аврор Поттер умер и получает шанс прожить жизнь заново. Макси, в процессе. Fanfics.me

5. Кой - И такое бывает
Попаданец в теле Рона Уизли. Макси, заморожен. Fanfics.me

6. Akana - Господин декан
В конце 1981 года преподавателем зельеварения в Хогвартсе назначается бывший Пожиратель Смерти 21-летний Северус Снейп. Спустя несколько месяцев он становится деканом Слизерина. С чего он начинал и как добился признания для себя и для своего факультета? Макси, закончен. Fanfics.me

7. Ushba - Чудовище
В зеркале отражается чужое лицо, ты помнишь странные и страшные вещи, и это не твои воспоминания, а внутри тебя живет охочее до чужой крови и боли чудовище... Попаданка в теле Беллатрис Лестрейндж. Макси, закончен. Fanfics.me

8. GlazGo - ГП и Ткач-недоучка
Попаданец в теле Колина Криви. Макси, в процессе. Fanfics.me

9. Tansan - Команда
После воскрешения Волдеморт без конца пролетает со своими планами, и виновата в этом таинственная Команда, о существовании которой не подозревает никто, включая Дамблдора. Двойственные чувства по поводу этого фика - интересно, но выкладывается настолько редко, что я напрочь забываю сюжет. Макси, в процессе (одна глава раз в полгода). Fanfics.me

10. Calien Azari - Судьба Плеяды
Аж две попаданки в тело Меропы Гонт-Риддл, вынашивающей будущего Тома Риддла. В перспективе макси, но заморожен уже долго. Самиздат

11. Пайсано - Хроники профессора Риддла
Том Риддл добился преподавательского места в Хогвартсе и снова ведёт дневник. Шикарный юмор!!! Макси, в процессе. Snapetales.com

12. Чернокнижница - Её сердце.
Что - канон? Где канон? Какой канон? Ах, канон... Фтопку канон! Безумно трогательная вещь. По хорошему - должна быть на первом месте в списке, но мне лень переставлять. Миди, закончен. Fanfics.me

Пока записывал - вспомнил ещё с дюжину классных, но как-нибудь в другой раз...

суббота, 10 января 2015 г.

Дозоры всё?

Сергей Лукьяненко, по моему, лучший российский фантаст. Хороших книг много не только у него, но у тех современных фантастов, что я читал - что-то очень нравится, что-то мне кажется полной фигнёй. Лукьяненко - читал не всё, но всё что читал - нравится.

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

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

Прочитал "Линия грёз" и "Императоры иллюзий" - и на несколько лет влюбился в примитивную по графике игру Master of Orion.

Бесподобный "Рыцари сорока островов" - для одного знакомого ролевика она была почти как Библия.

"Лабиринт отражений" (кстати, она оказывается не дилогия, а трилогия - надо будет найти и дочитать) - наш ответ Матрице - совершенно меняет взгляд на жизнь.

"Геном" (кстати, тоже уже ТРИлогия - отстал я от жизни) - шикарный сюжет. В общем, хвалебные эпитеты у меня кончились, но главная мысль понятна - творчество Лукьяненко мне нравится.

Сейчас начал читать "Шестой дозор" - интрига закручена по полной. Да ещё на обложке - мол, последняя книга про Антона Городецкого... Очень не хочется, чтобы серия закончилась

пятница, 9 января 2015 г.

Метод Janki для запоминания деталей

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

В общем, нашёл одну идею, надо попробовать. Подробности по ссылкам:

Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»
Метод Janki - система обучения на основе интервального повторения
Метод Janki - система обучения на основе интервального повторения. Часть 2
Эволюция метода Janki. Советы, комбинации клавиш, пересмотр первоначальной версии метода

Для простого знакомства с методом не обязательно читать все - они про одно и то же, просто с разных сторон.

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

Время покажет, насколько это работает

четверг, 8 января 2015 г.

Солёные огурцы урожая 2012 года.


Этим летом огурцы не солил, подъедаю урожай 2013. Разбирал подвал в гараже, раскопал несколько банок с солёными огурцами почти трехлетней выдержки - урожая 1812 2012 года. Очень даже вкусно - и сами огурцы, и рассол...

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

Рецепт вычитал давным-давно в книге Николая Курдюмова "Умный сад в подробностях", немного доработал и с той поры всячески эксплуатирую. Минимум хлопот и гарантированный результат!

Вот оригинальный рецепт Курдюмова:
В чистый баллон кладём побольше приправ: хрен, чеснок, укроп, горький перец - до четверти банки. Любишь потверже - клади хрен, поострее - перец. А можно и вообще не класть ничего. Мытые огурчики - туда же. Заливаем холодным рассолом - столовая ложка на литр. И оставляем под крышечкой на четыре дня - киснуть. Прошло четыре дня - сливаем рассол, достаём огурцы, ополаскиваем муть со специй, огурцы моем, укладываем обратно, заливаем водой из-под крана и закатываем. На пятый день муть исчезла - и всё.
В моей редакции:
В трехлитровую банку (чистую, но не стерилизованную) кладу специи - листья смороды, укроп, чеснок - сколько не жалко. Укладываю огурцы и заливаю холодным рассолом - столовая ложка соли (без горки) на литр. Вода для рассола - сырая из колодца или с родника (водопроводная у меня в городе жёлтая - не эстетично). Закрываю пластмассовой крышкой и оставляю в комнате на четыре дня. Прошло четыре дня - сливаю рассол в кастрюлю, довожу до кипения, заливаю обратно в банку и закатываю уже под жестяную крышку. В городской квартире спокойно стоит два-три месяца, в неотапливаемом подвале - два-три года.

Пока огурцы киснут - пластиковые крышки бывают слетают. Обратно одеваю и всё. Закатанные банки не взрывались ни разу.

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

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

среда, 7 января 2015 г.

Онлайн-курсы edX - Линукс и программирование

Снова записался на онлайн-курсы - теперь на edX. Бесплатно, но только на английском - заодно попрактикуюсь. 

Первый - "Введение в Линукс" () - ранее был платным курсом от Linux Foundation. Сильно и уважаемо. Хотя я и не собираюсь получать официальный сертификат, если успешно сдам все экзамены - это будет весомо. Да и просто линукс понравился - стоит изучить

Второй - "Введение в информатику и программирование на базе Python" - пока не решил, буду ли его идти до конца. Используемый в курсе Python - версия 2.7 (я планировал сосредоточиться на 3.х) плюс используется не официальный пакет, а некий Enthought Canopy - в Рунете про него очень мало (в основном, как грамотно удалить), что не вызывает желания ставить. Посмотрю пару недель, там решу, продолжать или нет.

Линукс начался 5-го января, информатика - сегодня, так что если у кого есть желание присоединиться - вполне реально.

вторник, 6 января 2015 г.

Силовая гимнастика от Пола Вейда

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

Под эту тему попалась серия книг от Paul Wade - Convict Conditioning с оригинальной системой силовой гимнастики.

Суть системы очень проста.

Вся нагрузка задаётся собственным весом тела. Со слов автора, это позволяет свести вероятность травм на тренировках к нулю. Из реквизита - только турник и два квадратных метра пола.

Есть шесть базовых движений:
- отжимания
- приседания
- подтягивания
- подъём ног
- мостик
- отжимания в стойке на руках
Каждое из этих упражнений задействует множество мышц по всему телу. Это минимальная комбинация, которая прорабатывает всё тело, не оставляя "мертвых зон".

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

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

В общем, любителям физкультуры однозначно рекомендую почитать. Конечно, как во всех современных массовых книгах много саморекламы и голословных утверждений, но система вполне рабочая. Не уверен, что все заявленные результаты достижимы - например, 10 уровень отжиманий в стойке на одной руке - по 5 подходов. Но, как путь - вполне симпатично и логично. Стоит проверить.


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

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

Весёлые традиции бразильского спецназа

Утащено у valde-khan



Крепкие ребята. Я в такой ситуации только матом кричу 

Эквалайзер: Первая кровь


Посмотрел свежий боевик - The Equalizer - в русском переводе как ни странно, не "Эквалайзер", что было бы логично, а "Великий уравнитель".



В главной роли - Дензел Вашингтон, но, по первым кадрам, я был уверен, что Форест Уайтекер. Заматерел

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

Один момент особо порадовал.


Судя по наколке - мужик 1942 года рождения - или какую дату ещё можно наколоть? Т.е., ему сейчас где-то 72...


А выглядит хорошо... ЗОЖ и работа, приносящая радость - творят чудеса