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

Позднее Ctrl + ↑

Как я оформляю ссылки в черновиках статей

Используемая терминология. «Научную статью» я сокращаю до «статьи». «Научный журнал» — до «журнала». «Статья в журнале» — это научная статья опубликованная в рецензируемом научном журнале.

(Иванов, 2018) + [17] = [Иванов, 2018]

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

Дифференциальное уравнение, как того требуют законы термодинамики (Hamm, 2003), допускает интеграл от функции, обращающейся в бесконечность в изолированной точке (Aitken et al., 2016). Если для простоты пренебречь потерями на теплопроводность, то видно, что кварк оправдывает убывающий тройной интеграл (Dimas & Buehler, 2012).

Такая ссылка понятна и запоминаема.

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

Дифференциальное уравнение, как того требуют законы термодинамики [17], допускает интеграл от функции, обращающейся в бесконечность в изолированной точке [1]. Если для простоты пренебречь потерями на теплопроводность, то видно, что кварк оправдывает убывающий тройной интеграл [4].

Такая ссылка непонятна и запомнить ее сложно.

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

Дифференциальное уравнение, как того требуют законы термодинамики [Hamm, 2003], допускает интеграл от функции, обращающейся в бесконечность в изолированной точке [Aitken et al., 2016]. Если для простоты пренебречь потерями на теплопроводность, то видно, что кварк оправдывает убывающий тройной интеграл [Dimas & Buehler, 2012].

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

Пользуйтесь на здоровье.

Если вы знаете или написали скрипт, который будет конвертировать [ссылки] в нужный формат, напишите об этом в комментариях.

C 8 марта!

Милые читательницы моего блога.

C опозданием поздравляю вас с женским днем. Желаю весны в сердце, красоты в душе и молодости в теле.

5 мес   8 марта

Наблюдение 6. Тфилин и прибор для диагностики неврозов

Ученые из Пемзы разрабатывают прибор для ранней диагностики неврозов. Прибор будет крепиться на лбу пациента. Связь с аппаратом ЭКГ будет осуществляться по блютузу. Данные о состоянии пациента будут сниматься 24 часа в сутки.

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

Вопрос-ответ. Как написать о методах и результатах в отчете РФФИ

Меня спросили, что писать в отчете по проекту РФФИ. Вспомнил Макса Ильяхова и решил ответить в блоге.

Вопрос

Подскажите, в какой форме и в каком объеме вы заполняете пункт отчета «Полученные за период, на который предоставлен грант, результаты с описанием методов и подходов, использованных при реализации Проекта (описать, уделив особое внимание степени оригинальности и новизны)»?

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

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

Ответ

По моему опыту здесь важен не объем, а содержание. В целом надо следовать поговорке: «краткость — сестра таланта».

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

Небольшое описание результатов разбитое на абзацы, в каждом абзаце по результату на два-три предложения. Обязательно упомянуть степень новизны, т. е. написать: новое для науки, новое для региона или тривиальный результат подтверждающий известные факты (даже об этом можно написать).

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

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

Предлагаю всем, кто пишет отчеты по проектам, поделиться своим опытом в комментариях.

Как быстро закомментировать блоки кода

Блок — это фрагмент кода заключенный в условный оператор или цикл.

if (push_index > 0 ) {
  // Блок кода
}

for (i=0; i < row_of_areolae.length-1; i++) {
  // Блок кода
}

while (level < maximal_level) {
  // Блок кода
}

Чтобы быстро исключить блок кода из потока программы, достаточно к условию дописать выражение «Ложь и».

if (false && push_index > 0 ) {
  // Блок кода
}

for (i=0; false && i < row_of_areolae.length-1; i++) {
  // Блок кода
}

while (false && level < maximal_level) {
  // Блок кода
}

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

// Фрагмент выполняется
if (true) {
	angle = g_sectors[i].fi[1] - ksi;
	k = new_areolae.length-2;
	while ((k>push_index) && (angle>=g_sectors[i].fi[0])) {
		new_areolae[k][3] = angle;
		new_areolae[k][0] = Math.cos(angle)*level_po;
		new_areolae[k][1] = Math.sin(angle)*level_po;
		//pivot_areola = new_areolae[k];
		angle -= ksi;
		k--;					
	}
}

// Фрагмент не выполняется
if (false) {
	angle = g_sectors[i].fi[1] - ksi;
	k = new_areolae.length-2;
	while ((k>push_index) && (angle>=g_sectors[i].fi[0])) {
		new_areolae[k][3] = angle;
		new_areolae[k][0] = Math.cos(angle)*level_po;
		new_areolae[k][1] = Math.sin(angle)*level_po;
		//pivot_areola = new_areolae[k];
		angle -= ksi;
		k--;					
	}
}

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

/*
	angle = g_sectors[i].fi[1] - ksi;
	k = new_areolae.length-2;
	while ((k>push_index) && (angle>=g_sectors[i].fi[0])) {
		new_areolae[k][3] = angle;
		new_areolae[k][0] = Math.cos(angle)*level_po;
		new_areolae[k][1] = Math.sin(angle)*level_po;
		//pivot_areola = new_areolae[k];
		angle -= ksi;
		k--;					
	}
*/

Очевидно, что дописать true или false к условию быстрее и удобнее, чем окружить или освободить блок от символов комментария.

Жизнь в ИМБИ 2. Упадок в изучении биолюминесценции

Читая работу Б. С. Кузина «Упадок систематики (I. Система, эволюция, мультимодация)», нашел утверждение, которое можно применить ко многим отраслям научных знаний. Адаптировал его к исследованию биолюминесценции в ИМБИ. Измененные фразы окружил квадратными скобками.

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

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

Приглашаю на конференцию по морской и теоретической паразитологии

С 9 по 14 сентября 2019 года в Севастополе в поселке Любимовка будет проходить седьмая по счету «Школа по морской и теоретической паразитологии».

Шестая паразитологическая школа тоже проходила в Севастополе. Участникам понравилась ее организация, время и место проведения, поэтому седьмую конференцию решили провести здесь же.

Общая фотография с шестой Паразитологической конференции 5-9 сентября 2016 года.

Научная программа конференции

Включает устные и постерные доклады по направлениям:

  • Современные экологические и эволюционные проблемы теоретической и морской паразитологии.
  • Жизненные циклы, популяционная биология паразитов морских организмов, взаимоотношения в системах паразит-хозяин.
  • Использование паразитов для оценки состояния водных экосистем и в качестве биологических меток при изучении различных сторон экологии хозяев.
  • Прикладные аспекты морской паразитологии: мониторинг эпизоотической ситуации в естественных водоемах и марикультурных хозяйствах, паразитологическое инспектирование продукции из морских гидробионтов.
  • Молекулярные маркеры в систематике, филогении и экологии паразитов.
  • Морфологические аспекты паразитизма.

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

Материалы конференции получат статус электронного издания и будут проиндексированы в РИНЦ.

Он-лайн регистрация

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

cprs.imbr-ras.ru/events/parasites2019/register

Ссылка из электронного письма приведет к анкете участника.

После можно подать один или несколько докладов, которые появятся в преварительном списке сообщений.

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

Дружеская атмосфера

На наших конференциях царит дружеская научная атмосфера. Здесь интересные доклады и докладчики, хорошие банкеты, великолепные окрестности и теплое Черное море.

Приезжайте.

Сайт — летопись конференции

Сайт этой и прошлой конференции я сделал сам. Это — летопись конференций, застывшая в потоке электронов.

Если вам нужен сайт научной конференции — пишите: me@antonlyakh.ru.

Памятка. Объекты и массивы объектов в Яваскрипте

Пиша — учишься.

Очень кратко

[...] — массив
{...} — объект

{ [...], [...], [...] } — объект хранит массивы
[ {...}, {...}, {...} ] — массив хранит объекты

[ [...], [...], [...] ] — двумерный массив
[ [{...}, {...}], [{...}, {...}], [{...}, {...}] ]  — двумерный массив объектов

И так далее рекурсивно.

Приемы работы

Проверить наличие ключа в объекте и удалить ключ объекта.

if ("ethanol" in chemicals)
  delete chemicals.ethanol;

В конец массива можно пушнуть элемент или попнуть оттуда.

var arra = [];
arra.push("ficker");
arra.push("popinjay");
// arra[ "ficker", "popinjay" ];
arra.pop(); // popinjay

В начало массива элемент можно шифтнуть или уншифтнуть оттуда.

var myau = [];
arra.shift("cat");
arra.shift("dog");
// arra[ "dog", "shift" ];
arra.unshift(); // dog

Аналогично в массив можно пушнуть или шифтнуть объект.

var fish = [];
fish.push( 
  {taxon: "Gobiidae", weigth: 17, region: "Moscow"}
);

В массив можно пушнуть объект содержащий массив.

var frogs = [];
frogs.push( 
  {color: "violet", dimensions: [12, 14, 10, 27, 8, 14]}
);

Пройтись по объектам из массива.

for (var item in array_of_objects)
  // item - текущий объект из массива; есть ли у него такое-то свойство-ключ?
  if ( desired_key in item)
     alert( item.desired_key );

Заполнить массив объектов вычисленными значениями.

var cloud = [];
var N = 128, i=0;
while(i++ < N)
  cloud.push( {x: Math.random(), y: math.random(), id: i} );

Примеры

Массив:

var hex = [1, 2, 3, 4, 5, 6, 7, 8];
alert( hex[4] );

Объект:

var flex = {
  x: 10,
  y: 50,
  name: "point"
};

var hrex = new Object( {0:"one", 1:"two", third : "three", fourth : "four"} );

alert( flex.x );
alert( flex["y"] );
alert( hrex[third] );

Пустой объект, который заполняется позже:

var plex = new Object();

plex["road"] = "M-86";
plex["speed"] = 120;

Объект с массивом:

var hrex = {
  name: "Petr",
  coins: [1, 2, 3, 4, 5, 6, 7, 8],
  slaves: ["John", "Abram", "Rosa"]
}

alert( hrex[slaves][1] );

Массив объектов:

var abra = [
  {cadabra: 17, place: "town"},
  {cadabra: 23, place: "lake"},
  {cadabra: 66, place: "street"}
];

Дальнейшее чтиво

Все способы перебора массива в JavaScript
Полезные методы массивов и объектов в JavaScript
Выразительный JavaScript: Структуры данных: объекты и массивы

Руководство по JavaScript, часть 2: стиль кода и структура программ
Руководство по JavaScript, часть 3: переменные, типы данных, выражения, объекты

Стрелочные функции в JavaScript: зачем они нужны, как с ними обращаться, когда ими стоит пользоваться, а когда — нет
Функции высшего порядка в JavaScript

Тезисы к тезисам

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

Очевидно, что такие требования сильно сокращают объем полезного текста. Это понимает каждый участник и организаторы. С другой стороны организаторы экономят на бумаге, но повышают статус публикаций. Потому что эти публикации относятся к «материалам конференции» включенным в РИНЦ. В некоторых научных организациях за них начисляют премии.

Получается, что подобное премирование плодит массу бесполезных одноразовых работ, не проходящих рецензирования.

Лучше, когда вместо ущербных материалов печатают совсем краткие тезисы, чтобы знать о чем будет говорить докладчик. А по результатам выборочно — полноценные рецензируемые статьи. Тогда не будет стыдно ни авторам, ни организаторам. И будет интересно читателю.

Храним данные в СВГ

В СВГ можно хранить свои данные. Это могут быть дополнительные количественные или качественные характеристики векторной модели, которые не поддерживает формат СВГ.

Для хранения данных придумываем новый тег newtag.

СВГ основан на XML. Согласно спецификации надо описать каждый новый тег в ДТД файле, выложить его на сервер и сослаться в заголовке.

<svg ... xmlns:newtag="http://antonlyakh.ru/new-svg-tags.dtd">

По факту работает, если указать пространство имен xhtml.

<svg ... xmlns:newtag="http://www.w3.org/1999/xhtml">

И работает даже если не упоминать новый тег в заголовке.

<svg ...>

Вставляем тег в текст.

<svg ...>
  <newtag>My own data.</newtag>
</svg>

Прописываем атрибуты тега.

<newtag scale="1" scaleunit="mkm" scalepx="254" />

Комбинируем атрибуты и содержимое.

<newtag scale="1" scaleunit="mkm" scalepx="254">Very usefull data.</newtag>

Текст на русском кодируем в УТФ-8.

<newtag lang="ru">╨Я╨╛╨╝╨╜╨╕, ╤З╤В╨╛ ╤А╤Г╤Б╤Б╨║╨╕╨╣ тАФ ╨╜╨╡ ╤П╨╖╤Л╨║ ╨╝╨╡╨╢╨┤╤Г╨╜╨░╤А╨╛╨┤╨╜╨╛╨│╨╛ ╨╛╨▒╤Й╨╡╨╜╨╕╤П.</newtag>

Загружаем файл в браузер — браузер правильно рисует вектор и не ругается на теги.

Открываем файл в Иллюстраторе или Инкскейпе. Правим. Сохраняем. Смотрим исходник — теги с данными сохранились. Иллюстратор и Инскейп теги не портят.

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

<newtag scale="1" scaleunit="mkm"><line ... /></newtag>

Это скроет векторный объект, и он не будет виден ни в браузере, ни в векторных редакторах, но будет доступен парсеру.

10 мес   СВГ
Ранее Ctrl + ↓