Про науку  Про жизнь  Про IT  Про спорт  Про книги  Разное

Проекты: Эйнштейны
Позднее Ctrl + ↑

Использование полей с экранируемыми символами в Elasticsearch

Если в наименовании полей индекса используются экранируемые символы, например, такие как ’:’, то при обращении к ним напрямую Elasticsearch вернет ошибку.

Вот такое обращение:

...
ctx._source.petrel:ProjectName = ...
...

вызовет ошибку с сообщением типа:

"unexpected token"

Для преодоления такого поведения нужно обратиться к полю через специальную переменную _source и передать наименование поля:

_source['petrel:ProjectName']

Во пример запроса на обновление текстового поля с условием:

POST petrel/_update_by_query
{
  "query": {
    "match_phrase": {
      "petrel:ProjectName": "Талахский гоизонт"
    }
  },
  "size": 10000,
  "script": {
    "source": "ctx._source['petrel:ProjectName'] = 'Талахский горизонт'"
  }
}

Генрих Альтшуллер. Найти идею

Ну вот я и добрался до долгожданной ТРИЗ — теории решения изобретательских задач. Помню, когда учился уже в старших классах, в классах по-младше, 7-8-х, начали преподавать ТРИЗ. Давно хотел погрузиться в эту тему, но так и не получалось. И вот спустя более 10-ти лет, совершенно случайно на одной из лекций Людвига Быстроновского опять услышал про ТРИЗ и решил прочитать ее самостоятельно.

Автор ТРИЗа — Генрих Саулович Альтшуллер — изобретатель, писатель, со сложной судьбой; сидел, потом реабилитировали. Лучше про его биографию прочитать отдельно. Первой под руку попалась одна из переработанных его учениками книг — Найти идею. О ней и речь пойдет.

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

  1. Прежде всего нужна достойная цель — новая (еще не достигнутая), значительная, общественно полезная.
  2. Нужен комплекс реальных рабочих планов достижения цели и регулярный контроль за выполнением этих планов.
  3. Высокая работоспособность в выполнении намеченных планов.
  4. Хорошая техника решения задач. Придется решать кучу попутных задач. Изучать новые области знаний.
  5. Способность отстаивать свои идеи — «умение держать удар».
  6. Результативность. На пути к цели должны быть положительные результаты, если их нет, то это плохо. Нет результатов — пересматриваем цель.

Ничего не напоминает? Любой вшивый бизнес-тренинг, коучинг, и прочий «-инговый» буллшит муссирует эти принципы. А ведь они были сформулированы еще в 1940-х, в послевоенное время.

Автор уделяет внимание и вопросу преодоления психологического барьера (инерции) при решений изобретательских задач.

«Для решения задачи нужно сперва представить ИКР — идеальное конечное решение. А также освободить условие задачи от специальных терминов, создающих психологическую инерцию».

«Для развития способностей очень сильно помогает научная фантастика, особенно, если задавать вопросы: „А как бы это сделал я?“».

Альтшуллер говорит, что любую техническую задачу можно решить, применяя определенные последовательные шаги — алгоритм. Он так его и называет его — АРИЗ — алгоритм решения изобретательской задачи. Как и всегда, разбиваем задачу на более мелкие, приводим каждую из подзадач к «нормальному» виду (канонизируем) и дальше решаем их с применением различных эффектов — физических, химических, геометрических, биологических, биофизических, биохимических и т. д. По сути, это набор типовых решений. Но есть небольшая проблема — эффектов очень много и их нужно очень хорошо знать. Отсюда и «учиться, учиться, учиться...».

Автор вводит свою систему понятий. Появляются такие определения как веполь — вещество-поле, ИКР — идеальный конечный результат и многие другие. С их помощью и идет объяснение всей теории. Например, при решении задачи стоит перевести неполный веполь в полный и тогда решение упрощается.

Откуда Альтшуллер придумал эту теорию? Он переработал несколько тысяч авторских свидетельств, патентных заявок и т. п. документов, систематизировал их, выявил закономерности и на этом построил свою теорию.

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

Приведу несколько, как мне показалось, интересных цитат:

«Идеальная система — это такая система, которой нет, а функция которой выполняется.»

«Если дана задача на измерение, желательно использовать обходной путь — перейти к задаче на изменение системы (поставить вопрос: „Как изменить систему, чтобы отпала необходимость в измерении?“).»

«Если дана задача на регулирование состояния вещества, желательно усложнить задачу, дополнительно потребовав, чтобы это регулирование происходило само по себе — за счет использования обратимых физических превращений, например, фазовых переходов, ионизации, рекомбинации и т. д.»

«Если дана задача на обеспечение оптимального режима действия, а обеспечить его трудно или невозможно, желательно идти обходным путем: установить максимальный режим, а избыток действия убрать.» Очень интересный пример про точку Кюри!

«Многое завязано на знание физических взаимодействий. Постоянно веполи усложняются (дополняются) новыми полями и веществами. В веполи вводят новые элементы...без введения этих элементов. Используют обходные пути — такие как введение „пустоты“ вместо вещества; введение поля вместо вещества; использование в качестве вводимого вещества внешней среды и отходов системы; применение копий вещества; ввод вещества на время.»

«Техническим противоречием называют взаимодействие в системе, состоящее, например, в том, что полезное действие вызывает одновременно и вредное действие».

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

Обновление прошивки Garmin Nuvi

Иногда случается, что навигатор перестает загружаться. Обычно это происходит, если во время обновления прошивки произошел какой-то сбой. У меня именно так и случилось — завис Garmin Express при обновлении базы данных FM-трафика. И устройство перестало загружаться, зеленая полоска загрузчика зависает не дойдя до конца. Hard reset не помог, компьютер перестал видеть устройство, соответственно доступа к памяти не было.

В результате поиска нашел вот такое руководство.

Как выглядит процесс восстановления рабочей прошивки:

  1. Первым делом нам потребуется прошивка для навигатора. У меня навигатор Garmin nuvi 1340. Все прошивки находятся на официальном сайте Garmin, но с ходу найти их не так просто. Поэтому воспользуемся вот таким перечнем. Он находится на сайте GPSPower и возможно понадобится предварительная регистрация на нем.
  2. Дальше нам необходимо восстановить доступ к памяти, для этого потребуется две сторонние программы: GarminCure3 и Updater. Они идут вместе и их можно скачать с того же сайта. Доступны версии только для Windows.
  3. Далее запускаем GarminCure3, указываем путь до уже скачанной прошивки, выбираем режим CURE и нажимаем Make firmware. Программа создаст специальную (лечебную — cure) версию прошивки, которая позволит перевести навигатор в режим Mass Storage. Другими словами, компьютер увидит устройство как внешний носитель и доступ к памяти будет восстановлен. Но это только пол дела, загрузиться с такой прошивки не получится, она нужна только для доступа к памяти.
  4. Затем запускаем программу Updater. Если получилось ее запустить из GarminCure3, то хорошо. У меня она выдала ошибку с просьбой запуститься из командной строки и передать один единственный параметр — папку до прошивки. Если так, то смотрим куда именно GarminCure3 положил новую прошивку (в данном случае лечебную), копируем путь и запускаем Updater.exe <путь к папке с прошивкой>.
  5. После запуска Updater выбираем там режим USB и берем в руки навигатор.
  6. Навигатор изначально должен быть выключенным и отключенным от компьютера. Подключаем к компьютеру и сразу же зажимаем пальцем левый верхний угол тач-скрина и держим не отпуская. Через несколько секунд в программе Updater в списке устройств появится ваш навигатор. Тут же нажимаем OK, соглашаемся с перезаписью. Теперь палец с экрана можно убрать, на нем появится надпись о переходе в режим обновления.
    Если сразу не получилось, то выключаем устройство, отключаемся от компьютера и повторяем. У меня тоже не сразу заработало.
  7. Пол дела сделано. После перезагрузки устройства, компьютер его увидит и подключит внутреннюю память как внешние носители. В этот момент можно скопировать всю необходимую информацию (список избранного, какие-нибудь картинки и прочую пользовательскую информацию). Можно все это сделать вручную, а можно воспользоваться Garmin Express. Там после выбора устройства (теперь оно там появится) переходим в окно с инструментами и делаем Backup.
  8. Затем я отформатировал и карту и внутреннюю память устройства. Разбираться какой именной файл привел к зависанию я не хотел, там куча файлов.
  9. После форматирования необходимо обратно вернуть оригинальную (не лечебную) прошивку на устройство. Делается это аналогичным образом. Запускаем GarminCure3, указываем путь до скачанной прошивки, выбираем теперь режим ORIGINAL (не CURE), создаем прошивку. Запускаем Updater. Перезапускаем навигатор, загружаем на него прошивку, опять перезапускаем и при необходимости восстаналиваем из резервной копии сохраненные раньше настройки. Восстановиться можно также с помощью Garmin Express.
  10. Ну и в конце через Garmin Express обновляемся до последней версии прошивок, карт и прочих настроек.

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

UPD: После форматирования памяти слетели все раскладки клавиатур, иконки автомобилей и языки интерфейса. Cкачать эти файлы самостоятельно через Garmin Express навигатор не хочет, поэтому вот краткая инструкция:

  1. Раскладки клавиатур берем отсюда. Это для Nuvi 1340, но думаю ко всем моделям серии 12хх/13хх/14хх подойдут. Файлы с раскладками *.kbd нужно поместить в корень памяти навигатора в папку Keyboards. Если папки нет, то создаем руками. Готово.
  2. Для загрузки языков интерфейса, иконок и голосов необходимо использовать программу Garmin WebUpdater. Скачать ее можно с официального сайта Garmin. Запускаем, программа сама находит обновления, выбираем, обновляем. Готово.

Краткий курс психического здоровья без говна

По наводке Ильи Бирмана прекрасный пост Владимира Гуриева https://www.facebook.com/vguriev/posts/10155167409898305

«некоторые мои друзья несчастны, постоянно копаются в себе, ходят к психотерапевтам, портят жизнь себе и людям — и в результате все равно несчастны и не понимают, почему.
поэтому я решил, что будет полезно вкратце рассказать о моей жизненной, кхм, как бы философии. я не уверен, что это кому-то поможет, вряд ли вы сразу станете менее несчастны (да и потом — тоже вряд ли), но ответ на вопрос “почему” у меня есть, а это уже что-то.
вы несчастны, потому что вы живете в аду.
тут, конечно, пытливый ум сразу задается новым “почему”, но ответа на это “почему” уже нет. вы же не спрашиваете, почему вы живете в воронеже или в доме номер восемь. ваши родители жили в воронеже, ваши дедушка и бабушка жили в доме номер восемь, и все эти адреса находятся в аду.
так вышло.
это не самый очевидный факт в мире, потому что мы живем в аду давно, мы к нему привыкли, приноровились, и у нас есть икея. с бытовой точки зрения ад выглядит неплохо, мы мало-мальски обустроили его, провели водопровод, подключили газовую колонку и интернет.
нам сложно понять, что мы живем в аду еще и потому что, в книжках ад описывается совсем уж неприятно и совершенно с другим интерьером. считается, что в аду необходимо постоянно испытывать физические и душевные муки плюс там фиговая мебель и постоянно что-то горит.
я ад понимаю расширительно. ад — это мир, который не приносит радости.
это звучит немножко более знакомо, правда?
теперь я могу чуть точнее переформулировать свой первый и единственный тезис.
вы несчастны, потому что вы живете в аду и не понимаете этого. вы ждете от мира тепла и любви, но мир не может вам дать ни первого, ни второго, он совершенно не про это, он про ад. кстати, нельзя сказать, что этот ад настроен к вам враждебно.
совсем нет. ему просто насрать.
например, вы хотите, чтобы в вашей жизни появились люди, с которыми вы могли бы установить доверительные отношения. вы хотели бы, чтобы у вас были друзья.
миру насрать на это.
или вы хотите преуспевать в выбранной профессии и добиться в ней больших успехов.
ради бога. миру насрать на это.
или вы хотите, чтобы вами восхищались, чтобы даже незнакомые люди при звуках вашего имени улыбались и понимающе кивали.
миру насрать на ваши желания.
при этом вы в неплохой компании. точно так же миру было насрать на ницше, шопенгауэра, принцессу диану, курта кобейна и эйнштейна. да что там эйнштейн. мир плевать хотел на стива джобса, а этот человек подарил нам айфон.
но вот джобса нет, а айфон все есть и есть, а потом и его не будет, потому что на айфон миру тоже насрать.
просто айфон, в отличие от вас, это понимает и не парится по пустякам.
ну и, в общем, мир довольно сложно обвинять в равнодушии. если завтра кутикула на указательном пальце вдруг разговорится и сообщит вам, что вы слишком редко обращаете на нее внимание, вы тоже будете изрядно удивлены.
разница в масштабах между вами и кутикулой намного, намного меньше, чем между вами и, собственно, миром.
— так, — говорит вселенная, — значит, вам тридцать шесть, и, эээ, у вас сложные отношения с родителями, они вас не понимают и не видят в вас личность, все верно? и от этого у вас сильный внутренний конфликт, который, эээ, приводит к тому, что вы не можете реализоваться и что-то там еще, я не могу разобрать почерк.
— да, — говорите вы.
— окей, — говорит вселенная. — это действительно уникальная ситуация и серьезная проблема. мне четырнадцать миллиардов лет, радиус обозримой моей части составляет почти 50 миллиардов световых лет, и я никогда такого не встречала. сейчас я все брошу, перестану расширяться, поставлю энтропию на паузу и немедленно займусь вашим вопросом. присаживайтесь поудобнее.
ну, на самом деле, я пошутил. мир, конечно, ничего такого не говорит. ему наплевать.
собственно, даже слово “наплевать” слишком сильное, потому что миру, конечно, не наплевать, с точки зрения вселенной вас просто нет. все ваши мелкие обиды, надежды и победы настолько малы, что не существуют ни во времени, ни в пространстве.
вас для мира нет. и ваших претензий к миру — тоже.
по какой-то неведомой нам причине у маленьких и говнистых кусочков органики появилось самосознание и сразу же за этим — претензии и требования к миру, в котором они очнулись. но эти претензии бессмысленны и беспредметны.
никто не обещал, что будет легко.
в прямом смысле, никто. некому было обещать.
некому жаловаться. некого проклинать. не с кем поговорить.
в огромной и пустой, по большому счету, вселенной есть только мы.
ну и, кстати, говоря, если бы наш невидимый собеседник все-таки существовал и мог нас слышать, он бы сильно удивился, ознакомившись с нашими записями в книге жалоб.
— секундочку, — сказал бы он, — я хотел бы уточнить кое-что. то есть, я вас вытащил из небытия на какой-то краткий и совершенно неважный для меня миг, я дал вам кислород, сельдерей и netflix, я дал вам северное сияние и горные реки, я придумал чихание и икоту, я дал вам все, я создал вас, я нечаянно и случайно пригласил вас в свой кинотеатр с огромным экраном — и вы еще чем-то недовольны?
— да с чего вы взяли, что это все вообще для вас? кто-то из вас заплатил за билет? а покажите корешки.
а у нас нет корешков. у нас вместо них длинный список претензий и ожиданий. но эти претензии некому предъявить, потому что мы живем в аду.
и самое важное (и обидное) — этот ад не был построен специально для нас.
он просто был, мы тут гости.
собственно, это не ад даже, адом он становится только потому, что мы плохо понимаем контекст и ожидаем от мира того, что он в принципе дать нам не может.
в тех местах, где мы хорошо понимаем контекст, у нас проблем не возникает. ни один русский турист не выходит на улицы бангкока и не воет, потому что ему остро не хватает гречки. в ресторане никто не требует показать ему кино. в театре никто не ожидает ярких визуальных эффектов, мы пришли туда осознанно и понимаем, что у театра есть свои ограничения.
с миром у нас с самого начала все пошло не так, потому что мы повелись на всякие мелочи и не сразу поняли, что это ад.
мир как ад это, кстати, не очень свежая мысль, она есть в любой мало-мальски развитой религии, я тут никаких америк не открыл, но просто религии тоже прошли большой путь, и в какой-то момент в каждой из них появились маркетологи, которые поняли, что со слоганом “мир это ад” корову не продашь.
так появились всякие идеи про загробную жизнь и другие ништяки.
тогда же появилась вторая идея — будто бы богам есть до нас дело.
обе идеи совершенно контринтуитивны. вселенная ведет себя честно и последовательно объясняет нам, что это не так — и нет, мелкий клерк не может прийти к CEO, если у него источился карандашик, потому что в мире CEO нет ни карандашика, ни клерка.
почему бог должен вести себя иначе?
почему это бесконечное и безвременное существо, присутствующее на всех планах бытия, вообще должно принимать во внимание, что ваша жена в очередной раз недосолила лапшу и значит она вас не любит?
могла бы уже и запомнить, право слово.
но в то же время эти идеи слишком привлекательны и слишком хорошо продаются, чтобы от них можно было отказаться.
даже буддизм, который сопротивлялся дольше всех, и тот, в конце концов, сдался.
— о, в этот тарифный план теперь входит реинкарнация? отлично. дайте два.
мир это ад. вы умрете. все ваши враги умрут. все ваши друзья тоже умрут. солнечная система исчезнет и превратится в межзвездную пыль. мы это просто маленькие и недовольные искорки в очень пустом и непонятном для нас пространстве.
сами видите, это не выглядит очень привлекательно.
но это очень похоже на правду.
и это освобождает.
потому что если принять, что вы живете в аду, то все не так уж плохо. реально, если бы ад проектировали специально под нас, его можно было бы сделать намного, намного неприятней.
а так у нас есть горные реки, северное сияние, чихание и икота. и можно найти место с хорошим видом. у нас есть электричество, отопление, горячая вода, netflix, игра престолов — да, уже не та, но все равно ведь неплохо, мы же все равно ее смотрели только ради сисек и драконов.
у нас есть икея, наконец.
и никто никому ничего не должен, потому что никого из нас, в общем-то, нет — а даже если и есть, то скоро не будет.
мне кажется, просто логично немного отпустить все эти поляны и долины, освободить их от наших ожиданий и требований, принимать их такими, как есть.
а потом то же самое сделать с другими людьми.
это не очень просто, у меня тоже не всегда получается, хотя про ад я не вчера придумал.
но это очень полезно.
и тогда каждое маленькое потепление будет в радость, и каждая радость тоже будет в радость.
если вы понимаете, что по умолчанию вам положено ничего, то вам не будет казаться, что вам чего-то недодали.
и если люди вокруг вас ведут себя по-старому, если они что-то требуют от вас, если у них есть мнение, чем вы должны заниматься, как себя вести, как чувствовать, то не злитесь и простите их.
они не со зла. они не ведают, что творят.
просто они живут в аду, а это очень трудно.
они живут в аду и не понимают этого.
в отличие от вас.»

Нелли Литвак и Андрей Райгородский. Кому нужна математика?

Легкая и непринужденная беседа на тему того, как используется математика в IT-технологиях. Логистика, составление расписаний, криптография, Тьюринг, «Энигма», всем ненавистный SEO, чудак Эрдеш и всего остального помаленьку.

Прекрасно подойдет для старшеклассников, для взрослых особей будет простовата и местами наивна.

Автодополнение кода в PhpStorm

Иногда бывает так, что работая с проектом, на локальном компьютере нет всех необходимых библиотек. На сервере они есть, а у тебя нет. У тебя только пути в проекте к ним прописаны. Например, у меня так было с PHP-фреймворком Silex. Все его библиотеки лежат на удаленном сервере и в системе контроля версий их нет. Поэтому когда сливаешь себе копию проекта, чтобы поработать, то PhpStorm не видит Silex и автодополнение не работает. Было крайне не удобно. Но тут наткнулся на статью, в которой было изложено как это исправить.

Оказывается, достаточно скачать себе на локальный компьютер Silex в любое место и в дереве проекта в ноде «External Libraries» выбрать в контекстном меню «Configure PHP Include Paths...».

И добавить папку с фреймворком в окне «Include path». После этого PhpStorm проиндексирует содержимое папки и автодополнение чудесным образом заработает.

Синхронизация между Suunto Movescount и Garmin Connect

Появилась задача скопировать свою трехлетнюю базу тренировок из Garmin Connect во вновь созданную базу Suunto Movescount. Можно все сделать руками через экспорт/импорт тренировок в формате .TCX, но по одной — долго и неудобно.

После получасового поиска нашел замечательную утилиту MXActivityMover товарища Маркуса Рейха. Вот его беговой блог. В нем есть и полное описание работы утилиты.

Утилитка написана на Java, поэтому запускается на любой операционной системе. Для работы требуется минимум 8-я версия Java. Кстати, предназначена она не только для синхронизации между Garmin и Suunto, но и между Polar и Suunto.

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

Затем выбираем нужный нам режим экспорта/импорта — единичный или массовый, через обменный файл или напрямую, временной интервал выборки. Дополнительно в настройках можно указать алиасы для видов спорта из разных сетей, чтобы более точно произвести синхронизацию.

При первой попытке создать Move появится окно с запросом разрешить приложению доступ к учетной записи Movescount.

Для этого заходим в профиль Movescount в раздел «Подключения».

И даем приложению доступ.

Затем пробуем синхронизировать еще раз, все должно заработать. Выбранные тренировки Garmin Connect попадут в виде move в Suunto Movescount с сохранением всех параметров.

Утилита работает не очень стабильно и может выдавать неочеловеченные ошибки. Помогает перезапуск.

Емко и по делу. Гравитация.

За 15 минут профессор Мартин Рис расскажет больше, чем я прочитал в последних трех книгах про космологию, квантовую механику и теорию относительности. Наслаждаемся!

Главред

Нашел в блоге Сергея Короля упоминание об интересном сервисе — Главреде. Автор — Максим Ильяхов — редактор Дизайн-бюро Артема Горбунова.

Вот, что пишет автор о сервисе:

Главред — это сервис для улучшения текста.
Главред помогает находить в тексте стоп-слова: языковой мусор, рекламные и журналистские штампы, признаки плохого синтаксиса и канцелярит. Без этих слов текст становится понятным, коротким и информативным. Мы называем это информационным стилем.

Иными словами, вставляешь свой текст в форму на сайте Главреда и сервис подсвечивает в твоем тексте слова, которые автор считает информационным мусором. А еще предлагает способ, как этот мусор очистить. Замечательная штука!

P. S. Вот как текст этой заметки выглядит в Главреде:

В. П. Решетников. Почему небо темное. Как устроена Вселенная.

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

Ранее Ctrl + ↓