Я немного умею складывать, но от вычитания у меня всегда кружится голова

Позднее Ctrl + ↑

Приемы программирования. Вернуть вектор

Иногда функция должна вернуть не одно, а несколько значений. Например флаг успеха или неудачи, несколько найденных параметров и массив. Фактически она возвращает векторный результат.

Раньше для получения векторного результата я передавал несколько переменных по ссылке и ждал булево значение функции.

// Здесь ожидаю два параметра и двумерный массив, а функция возвращает флаг успеха-неудачи.
function navalniy( 
    source_data : TVector; var temperature : real; var blood_pressure : real; var spy_data : TVector
) : boolean;

Теперь я просто получаю один векторный результат.

function navalniy( source_data : TVector ) : TVector;

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


spy_data = navalniy( source_data );
if (spy_data[0][0] == 0) {
  alert(‘Явка провалена. Немедленно уходить!’);
  exit();
} else {
  temperature = spy_data[0][1];
  blood_pressure = spy_data[0][2];
  list_of_comrades = (spy_data[1], …, spy_data[M]);
  // Все в порядке, продолжаем готовить революцию
  // …
}

Единственное, при таком подходе нужно следить, чтобы размерность второй координаты массива (resulted_array[•][×]) была не меньше размерности ожидаемых дополнительных параметров (param{i}). В противном случае параметры следует вернуть в нескольких начальных компонентах ветора-результата.


spy_data = navalniy( source_data );
if (spy_dat[0][0] > 0) {
  temperature =spy_dat[0][1];
  blood_pressure = spy_dat[0][2];
  leukocytes = spy_datt[1][0];
  hemoglobin = spy_dat[1][1];
  erythrocytes = spy_dat[1][2];
  // Возвращенный массив начинается с N-ой компоненты вектора-результата
  list_of_comrades = (spy_dat[N], …, spy_dat[M]);
  // …
}

Векторы — это сила.

Как написать научную статью. 2. Отдохните

Если сесть и начать писать статью не получается — отдохните.

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

Научитесь качественно расслабляться. Для этого освойте шавасану.

Соберитесь мыслями и садитесь за статью. Предварительно решите, о чем писать не будете.

Сделал

На сайте появился новый раздел «Сделал». Выкладываю там свои разработки. Разработок много, но выложена малая часть сделанного.

Заходите. Раздел будет пополняться.

Второй Всероссийский конгресс по цвету

Оказывается, существует Российское общество цвета. В Смоленске 1-5 декабря 2020 года общество проводит Второй Всероссийский конгресс по цвету.

В 2019 году проходил первый конгресс.

Соответствие между цветами и названиями цветов в русском языке. Колор лаб.

Удивил сам факт проведения подобных конференций.

Изменение уровня средиземноморского бассейна

Изменение уровня Средиземноморского бассейна от 0 до -4 тыс. м.

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

Когда эта территория было долго обнажена, там протекали реки и водопадами стекали в пресный бассейн моря. Потом прорвался Босфор, из него хлынули соленые морские воды и затопили всю северо-западную часть, образовав современный контур Черного моря. При контакте пресноводной живности с солеными морскими водами, она погибла, загнила и образовала сероводородную зону от глубины 120-200 метров.

Приемы веб-программирования. Разрешить Апачу сначала искать файлы в текущем каталоге

Памятка тем, кто (до сих пор) руками пишет веб-движки на ПХП.

У вас есть два файла с одинаковым названием ’konstituciya.php’ в текущем и каком-то системном каталоге. Файл в системном каталоге делает основную работу, например, выводит перечень статей конституции. Файл в текущем каталоге устанавливает локальные настройки, например, вносит в конституцию поправки, а потом вызывает файл из системного каталога. Чтобы поправки вступили в силу, необходимо, чтобы первым был вызван файл из текущего каталога. Вот так:

konstituciya.php → ./system/konstituciya.php

Чтобы установить такую последовательность вызовов, в .htaccess в списке путей первой поставьте точку, а потом перечислите прочие каталоги:

php_value include_path ".:/home/system"

Тогда код выполнится правильно:

// Сначала вызовет файл из текущего каталога с поправками, а потом системный файл с основными законами
   include_once "konstituciya.php";

Удачи.

Как написать научную статью. 1. Решите, о чем писать не будете

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

Научный сотрудник производит публикации

Результатами работы любого научного сотрудника являются научные статьи. Когда мы отчитываемся, претендуем на повышение должности, подаем заявки на гранты — все оценивают, сколько статей мы написали и в каких журналах опубликовали. Желательно, чтобы статьи были в высокорейтинговых журналах, которые индексируются Веб оф сайнс (ВОЗ).

Не путайте с ВОЗом, заставившим нас сидеть дома.

Большой секрет

Скажу по большому секрету: качество опубликованных статей абсолютно никого не интересует. Иначе нас окружали бы только полезные и крайне интересные работы.

Качество научных публикаций никого не интересует

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

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

Самый большой секрет

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

Если вы такой же, продолжим.

Итак, писать надо, надо писать много, а не получается. Что делать?

Путь к написанию статьи

И тут я вспомнил, что умею хорошо программировать. Значит — формулировать алгоритмы. «Ну-ка, придумай алгоритм написания статьи», — сказал я себе и сел думать.

Первое, что я придумал: надо четко решить, о чем писать не надо.

Надо решить, о чем не писать

Этот совет подсмотрел у Темы Лебедева «Выбор направления деятельности».

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

Не писать локальные заметки

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

Локальные заметки имеют примерно такие названия:

  • Новые данные о динамике состава чего-то там в вершинной части Севастопольской бухты
  • Загрязнение вод крымского побережья Черного и Азовского морей чем-то там зимой 2016 года
  • Изменчивость пространственного распределения чего-то там в фотическом слое Черного моря летом 2018 г.
  • Сезонная изменчивость чего-то там у берегов Кавказа в 2020 г.

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

Ценен результат, а не премия

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

Пишите не ради баллов, а ради общей пользы и так, чтобы вам самим было интересно писать и перечитывать написанное

Для просветления рекомендую настоящим ученым послушать лекции Людвига, почитать ЖЖ и покопаться в «Соли».

Успехов.

Журналистка купленная

Иллюстрация из книги П. Бажова «Орлиное перо»

Ехал в машине, слушал радио. А там какая-то купленная журналистка доказывала, что мы не знаем, зачем путешествуем. Страны во время путешествий изучить не успеваем, ходим-бродим просто-так. Вот лучше дома посидеть, подуплить в мониторчик, почитать, изучить мнения блогеров и, глядишь, уже как-будто съездил не сходя с дивана. А то, что ножками не ходил, людей не осязал, воздух не вдыхал, в истории не попадал, еды не вкушал, не обгорел, не обморозился, не влюбился, не прикоснулся, не заблудился, не соскучился — так оно и лучше. Лучше дома.

Купленная, короче, журналистка.

С первым мая


Лесная дубовая роща Левадки

В этот солнечный день
Карантин соблюдаю,
Из окна, словно тень,
За весной наблюдаю.

Как цветут васильки,
Зеленеют березки,
И на глазках опять
Появляются слезки.

Общие впечатления от книги В. Л. Андреева «Анализ эколого-географических данных с использованием теории нечетких множеств»

Ленинград: Наука, 1987.

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

Тут логично предположить, что степень принадлежности — это обычная вероятность. Например число от 0 до 1, которое показывает с какой вероятностью данный объект относится ко множеству. Но это не так.

Теория вероятности подходит для соотнесения объекта к четкому классу, а здесь класс — нечеткое множество с неясными, размытыми границами. Вместо вероятностной меры в теории нечетких множеств вводится понятие функции принадлежности.

Функция принадлежности — не обязательно строгая количественная мера. Позволяет (субъективно) оценивать, насколько сильно элемент принадлежит к заданному множеству.

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

Книга содержит семь глав.

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

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

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

Четвертой глава содержит формальное описание наиболее употребительных отношений между реальными объектами: отношений сходства и оригинальности.

Пятая глава посвящена вопросам нечеткой классификации объектов; в ней даны приемы описания одних признаков объектов через другие.

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

В седьмой главе приводятся коды программ для классификации и упорядочивания эколого-географических описаний, представленных как семейство нечетких множеств.

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

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

Математика в книге есть, но она доступна для понимания, если разобраться. В книге приведены коды подпрограмм на Фортране, которые помогают понять описанные методы.

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

Рекомендую.

Прочитал — новый раздел сайта

Прочитал — новый раздел о прочитанных книгах.

За свою жизнь я прочитал очень много разных книг. И мне кажется диким, что современные блогеры рассказывают о пользе чтения. Это же очевидно. Также странно, что говорят, в основном, о саморазвитии. Сколько можно развиваться-то? Пора за дело браться.

Но я не об этом.

Я никогда не стремился рассказывать о прочитанном и делиться конспектами. А вот теперь — созрел. Может это кому-то поможет начать читать.

В основном буду рассказывать и рекомендовать советские научные и научно-популярные книги с примесью философских трудов и современных изданий. Приключения и фантастику тоже читаю, но ее оцениваю на «Фантлабе».

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

Кстати, понял, что чтение советской научно-популярной литературы приносит пищу уму и радость сердцу.

Читайте на здоровье.

Как победить ботов в блоге на Эгее

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

Боты мне раньше гадили в комментариях. Примерно так:

Тогда я заблокировал серию ай-пи и закрыл комментарии ко всем заметкам.

В новых версиях Эгеи Илья Бирман улучшил защиту от ботов-комментаторов и мусор оттуда исчез. Но боты остались и стали накручивать число посетителей. Это нечестно по отношению к читателям и создает у меня ложные иллюзии.

Даю рецепт, как запретить ботам читать блог. Он основан на  совете из базы знаний Аквиа.

Избавляем Эгею от ботов

Заходим в каталог блога Эгеи, открываем .htaccess и в начало файла дописываем три следующих строчки:

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} 11A465|Ahrefs|ArchiveBot|AspiegelBot|Baiduspider|bingbot|BLEXBot|Bytespider|CCBot|Curebot|Daum|Detectify|DotBot|Grapeshot|heritrix|Kinza|LieBaoFast|Linguee|LMY47V|MauiBot|Mb2345Browser|MegaIndex|MicroMessenger|MJ12bot|MQQBrowser|PageFreezer|PiplBot|Riddler|Screaming.Frog|Search365bot|Seekport|SemanticScholarBot|SemrushBot|SEOkicks|serpstatbot|Siteimprove.com|Sogou.web.spider|trendictionbot|TurnitinBot|UCBrowser|weborama-fetcher|Vagabondo|VelenPublicWebCrawler|YisouSpider [NC]

RewriteRule ^.* - [F,L]

Первая — разрешает использовать правила переадресации. Вторая — сопоставляет имя программы посетителя с перечисленными именами ботов. Третья — запрещает читать страницы блога, если найдено совпадение имен.

Проверю действие на этой заметке. Если за три дня у нее не будет сотен прочтений, значит правила работают.

На этом все.

О пользе блога на своем домене

Где-то читал, что одна из причин, по которой блог надо вести на своем домене, состоит в том, что:

Материал из собственного блога вряд ли внезапно пропадет или станет недоступным

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

Зайти получается только через ВПН. Санкции американские, однако. А я думал туда что-то написать. Теперь нет — пишу только здесь.

Апдейт
Хабр доступен, но смысл заметки от этого не поменялся.

Систематика — это рутина и гадание на кофейной гуще

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

Морфологическая структура есть адаптация к окружающему миру

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

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

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

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

Понять — это ответить на вопрос как

  • Как работает морфологическая структура?
  • Какую пользу или вред она приносит?
  • Как она связана с другими частями?
  • Как она возникла?

В 95% случаев систематики отвечают на вопрос что.

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

Батеньки-родные, да я новый вид описал! Осталось встроить его в «естественную систему» классификации живых существ.

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

Эволюционные изгибы древа жизни. Круциал консидерейшенс

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

Систематика — обычная рутина

Особенно хорошо подобная рутина видна среди систематиков-днк-рнк-штрихкодеров. Эволюционное (филогенетическое) дерево строит алгоритм, думать вообще не нужно.

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

Функциональная морфология объясняет как работает морфология организма

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

Геодезическое расстояние

Геодезическое расстояние измеряют вдоль произвольной траектории, не обязательно прямой.

Путь из А в Б по хорошему шоссе и путь из Б в А по битой грунтовке — два разных геодезических расстояния

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

Геодезическое расстояние зависит от выбранной траектории

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

Об этом поговорим в другой раз.

Как определить огромное число видов диатомовых за разумный срок?

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

Диатомовая водоросль из рода Mastogloia

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

Поэтому попросил в РГ посоветовать способ быстрого определению очень большого числа организмов — нескольких тысяч штук. Быстрого — значит определение должно быть завершено за несколько недель, а не длиться годы. Есть еще одно ограничение: большинство диатомовых я вижу впервые.

Если найдется работающий метод, значит «Фотосистематизатор» не нужен.

Какой-то неизвестный вид диатомовой

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

В свою очередь, я поделюсь своими находками.

Контуры иконок Чикина

Сергей Чикин каждый день рисует одну иконку. Еще он делится своими секретами, ведет курс и работает в Бюро, но я сейчас не об этом.

Когда смотришь на иконки Чикина, кажется, что контур — это отдельная линия. Если изменить ее толщину, контур потолстеет или похудеет.

На самом деле контур возникает за счет наложения фигур. Даже снежинка и спираль — это многоугольники без контура.

Для меня это прям открытием стало.

Ранее Ctrl + ↓