Меняемся местами

Пару постов назад уже показывал 2 фото из этой серии. Сегодня закрою тему. Вечер. Дождь. Не хочется думать и составлять какой-то осмысленно отчет по тем местам, что мы посетили в тот день. А это просто фото. Радость для глаз, а не для мозга. Отличный отдых. Вспоминать тепло холодными осенними вечерами. Мрачными.

А тем временем наткнулся на интересующий меня вопрос «Почему даже любимое дело надоедает?» и ответ на него по мнению автор. Он считает, что все дело в развитии. Когда оно останавливается, это развитие нас самих, останавливаемся и мы… Нет той былой подпитки энергией и мы выдыхаемся. Поэтому нет ничего плохого в том, что мы куда-то движемся, постоянно решаем задачи, сталкиваемся с трудностями. И это очень сильно подходит под то, чем мы занимаемся каждый день, под сущность работы. То, что мы делаем каждый день, может нам приносить радость только в том случае, если мы развиваемся, узнаем что-то новое, изучаем. И я считаю это очень правильным ответом! Попробуйте делать не рутиную работу, а что-то, что заставит вас углубиться в суть проблемы, изучить ее, попытать разные варианты. Не заметите, как время пролетит…

Попутно наткнулся там же на еще один свой «любимый» вопрос, связанный с поиском себя, своего таланта. Там много воды про родителей, это уже не мой случай. Ответ уже ближе к концу статьи словами «Никак. Себя невозможно найти. Но себя можно создать, а свой путь продолжить под собственными ногами. И я знаю тут только один практический способ – он называется «метод проб и ошибок».» И вот тут я увидел еще раз традиционный ответ из серии «иди копай картошку, а не нравится, рисуй картины, а не нравится, устройся медбратом» и т.п. Да только вот жизнь коротка. Так перепробуешь уйму всего и ничего толком не найдешь, лишь потратив жизнь на то, что ни тебе, ни кому-то еще не нужно!

ФОТОГРАФИИ

Share Button

Deadlock в MySQL

Это магическое пугающее слово deadlock =)

Получить его в мускуле достаточно просто:

Transaction #1
BEGIN;
SELECT * FROM `testlock` WHERE id=1 LOCK IN SHARE MODE; /* GET S LOCK */
SELECT SLEEP(5);
SELECT * FROM `testlock` WHERE id=1 FOR UPDATE; /* TRY TO GET X LOCK */
COMMIT;

Transaction #2
BEGIN;
SELECT * FROM `testlock` WHERE id=1 FOR UPDATE; /* TRY TO GET X LOCK - DEADLOCK AND ROLLBACK HERE */
COMMIT;

Первая транзакция лочит данные, вторая пытается получить лок ДРУГОГО типа этих же данных и ждет, в это время первая транзакция тоже хочет получить еще и блокировку ДРУГОГО типа. В итоге они ждут друг друга и так до бесконечности.

Описание ситуации.

Share Button

Числа Фибоначчи

Для расчета какого-то числа Фибоначчи необязательно брутфорсить, т.е. перебирать всю последовательность методом сложения. Есть прекрасная Формула Бине. По ней прекрасно можно найти n-й элемент последовательности.

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

Ну и наконец мы можем таким образом найти n, при котором число Фибоначчи перевалит, например, за 1000 знаков, по формуле: i * Math.log10(phi) + Math.log10(1/Math.sqrt(5)) , где phi — так называемое Золотое сечение. Вычисляется по формуле (Math.sqrt(5) + 1) / 2

Почему формула такая? Да потому что следуем условию, что phi**n/sqrt(5) > 10**999 (** — степень, 10**999 — это первое число, у которого 1000 знаков)

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

Share Button

Закат на Оке

Оказался в последний момент на Оке, чтобы поймать последние лучи светила. Температура резко свалилась с +20 до +13. На островке стоял рыбак. Почти тишина, лишь где-то слева бурчит плавучий буксир, медленно пробираясь сквозь буи на воде, следуя каким-то своим маршрутом. В какой-то момент вытесненная им вда практически накрывает островок рыбака. Физика. Гидродинамика, кажется. Ну а мы ретируемся, т.к. становится очень холодно, а до дома еше долгий путь.

GPS: 54.819108, 37.245432

ФОТОГРАФИИ

Share Button

Осень, а вместе с ней и настроение

Share Button