Блог Александра Башкирова

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

Alib.spb.ru

Подписаться на эту рубрику по RSS

Про статью "Agile в небольших командах — как красиво сломать себе шею"

Просмотров: 1713Комментарии: 0
Alib.spb.ru

Еще интересный пост на Хабре: https://habrahabr.ru/company/bitrix/blog/321098/

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

Хотя, на мой взгляд, основное условие, при котором Agile в принципе будет работать - высокая степень зрлости команды. Когда работа идет на результат, а не на бумагу. И когда разработчики нацелены на сотрудничество, а не на "копать отсюда и до обеда".

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

Так как-то.

Про блокировки таблиц в mysql

Просмотров: 3317Комментарии: 0
Alib.spb.ru

Натолкнулся на любопытную особенность работы блокировки в mysql. Итак дано:

таблица table-1 и table-2. Из второй мы читаем, результат записываем в первую. Но читаем не просто - а достаточно хитро, примерно так

TRUNCATE TABLE table-1;
INSERT INTO table-1 SELECT * FROM table-2 WHERE flf2=(SELECT fld FROM table-2 WHERE fld3='value');

Если таблицы не заблокировать (что мне понятнее) или не использовать транзаккцию (что для случая mysql я пока не использовал), то при одновременном выполнении запроса получится ... да всё, что угодно. Имитация (запуск скрипта с вызовом указанного кода в несколько потоков) приводил к тому, например, что для ряда ситуаций число строк в table-1 превышало ожиждаемое в 1,5-2 раза.

Соответственно, требуется обернуть вызовы блокировкой. Которая по идее должна выглядеть так:

LOCK TABLES table-1 WRITE, table-2 READ;
TRUNCATE TABLE table-1;
INSERT INTO table-1 SELECT * FROM table-2 WHERE flf2=(SELECT fld FROM table-2 WHERE fld3='value');
UNLOCK TABLES;

Но вот фигушки. В такой конструкции mysql упорно выдает ошибку ERROR #1100: Table 'table-2' was not locked with LOCK TABLES

Как оказалось, это не бага, это фича. Как написано в документации https://dev.mysql.com/doc/refman/5.7/en/lock-tables.html - для каждого упоминения таблицы table-2 в SELECT требуется свой блокировочный алиас в LOCK'е. Вот так примерно:

LOCK TABLES table-1 WRITE, table-2 READ, table-2 AS t2 READ;
TRUNCATE TABLE table-1;
INSERT INTO table-1 SELECT * FROM table-2 WHERE flf2=(SELECT fld FROM table-2 AS t2 WHERE fld3='value');
UNLOCK TABLES;

В такой конструкции - всё будет работать.

И еще момент: когда используем LOCK TABLES, то в нем надо перечислить (заблокировать) все таблицы, к которым будет доступ на чтение / запись. В противном случае mysql выдаст Error #1100. Ту самую, что какая-то таблица не блокирована, ага.

Рабочие столы в вебе на javaScript

Просмотров: 3043Комментарии: 0
Alib.spb.ru

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

Пост про реализации этой идеи: https://habrahabr.ru/post/320124/

Ссылки на проекты:

Автор поста очнеь подробно разбирает именно функции этих проектов - где что можно сделать. А я хотел бы остановиться на аспекте безопасности данных. Загрузка файлов в облако, если только это не частное приватное облако, самостоятельно настроенное и с шифрованием - это всегда риск. Почему тогда весь мир (ок, весь рунет) пользуется Гугл Диском, Яндекс Диском, Облаком Мэйл.Ру и не парится?

Причин, на мой взгляд, две.

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

Вторая - большие компании это большая инфраструктура. Если, например, Мэйл.Ру дает сколько-то там Гигабайт, то они есть. Если кто-то обещает, что будет резервирование - то оно будет. Без вариантов. (Подозреваю, что риск потери пользовательских данных присутствует и в таких компаниях, но он несопоставим с риском потерь в компаниях небольших).

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

Мораль наверное такая: проекты классные, но ... для поиграться. Разве что OS.js можно рассматривать более серьезно - так как есть возможность установить его к себе на сервер. Что в какой-то мере будет уже гарантией приватности. Остальные, к сожалению, предлагают именно сервис - использование которого для меня выглядит немного рискованно, учитывая, что компании - владельцы сервисов - совсем не на слуху.

Про осознанность

Просмотров: 2715Комментарии: 0
Alib.spb.ru

Очень важное свойство в жизни человека - осознанность.

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

Важное качество которое обретает человек, практикующий осознанность - это жить в моменте. То есть не пытаться сфокусироваться и рефлексировать ни на том, что было, ни на том что будет. Жизнь проходит сейчас. Реальность такая, как она есть.

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

Инструментами осознанности являются внимание, наблюдение и принятие. Внимание фокусирует человека на важном. Наблюдение дает фактическую картину важного. Принятие позволяет видеть себя, своё место и роль в происходящем.

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

Осознанность бывает разной. Ее “разность” определяется степенью внутренней организации того, кто осознан. А также тем, на что именно направлена осознанность.

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

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

Итого, резюмируя:

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

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

- осознанность дает более цельное мироощущение.

- фундамент осозанности - чувства.

Про кадрирование реальности

Просмотров: 2593Комментарии: 0
Alib.spb.ru

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

Всё это очень здорово. До тех пор, пока сам человек смотрит на процесс жизни без “розовых оков” (не опечатка), трансмутирующих реальность очков. То есть - в непридуманном мире.

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

Я сейчас не говорю о ком-то конкретном, скорее - подвожу итог наблюдений.

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

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

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

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

Что с этим делать и как лечить. Честно? Я не знаю. Из того, что получалось в общении с такого рода людьми, у которых этот синдром проявляется не очень сильно - “выбить” их из этого состояния, последовательно, несколько раз показать реальность под другим углом. И тогда - кадрирование начинает рассыпаться, человек начинает видеть мир как есть, без розовых очков, с него спадают оковы… Дальше всё зависит от человека. Захочет поменяться, получив стимул - сделает это. Не захочет - будет продолжать играть и жить в зоне околосказки.

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

Первый пост февраля

Просмотров: 2876Комментарии: 0
Alib.spb.ru

Пришел февраль. Ура! И само собой приходит на ум знаменитое стихотворение Пастернака "Февраль":

Февраль. Достать чернил и плакать!
Писать о феврале навзрыд,
Пока грохочущая слякоть
Весною черною горит.
  
Достать пролетку. За шесть гривен,
Чрез благовест, чрез клик колес
Перенестись туда, где ливень
Еще шумней чернил и слез.
  
Где, как обугленные груши,
С деревьев тысячи грачей,
Сорвутся в лужи и обрушат
Сухую грусть на дно очей.
  
Под ней проталины чернеют
И ветер криками изрыт,
И чем случайней, тем вернее
Слагаются стихи навзрыд.

Это - в версии 1928 года. Но как известно, есть еще одна версия этого стихотворения, ранняя, 1912 года:

Февраль. Достать чернил и плакать!
Писать о феврале навзрыд,
Пока грохочущая слякоть
Весною черною горит.
  
Достать пролетку. За шесть гривен,
Чрез благовест, чрез клик колес
Меня б везли туда, где ливень
Сличил чернила с горем слез,
  
Где, как обугленные груши,
На ветках,— тысячи грачей,
Где грусть за грустию обрушит
Февраль в бессонницу очей.
  
Крики весны водой чернеют
И город криками изрыт,
Доколе песнь не засинеет
Там над чернилами — навзрыд.

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

Вот так, например:

Фото (с) http://alex-anv.ru/blog/135