Для того, чтобы разбираться в ГМО, генетику знать не надо

Медицину знать не надо тоже. Достаточно только изучить физику и можно смело заявлять о магистральных путях развития человечества. Например так, как это делает председатель комиссии по борьбе с лженаукой Евгений Александров (см. источник на утро.ру)

Да и в сельском хозяйстве разбираться совсем необязательно, чтобы сделать вывод, спасёт ли ГМО от голода человечество или нет. На самом же деле, производство продуктов это, во многом, химический процесс — что в почву внесёшь, то и получишь на выходе. Читать далее «Для того, чтобы разбираться в ГМО, генетику знать не надо»

По прямой путь короче

Виляния на пустом месте одного могут быть источником лишней работы для многих.

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

Имитация планирования — источник лишней работы

На самом деле, это кажется удивительным, как так в XXI веке люди не могут спланировать проект и просто перейти из точки А в точку Б. Однако, это сплошь и рядом — сначала делается имитация плана, делается на «отвяжись», без резервирования ресурсов, без выстраивания зависимостей между задачами и без создания нормальной постановки.

А потом на совещаниях начинаются вещания про то, что план был ненастоящим, план был игрушечным и мы теперь будем делать прямо то, что надо сделать прямо сейчас, а не то, что мы собирались сделать ещё неделю назад.

Это, конечно, весело, но создаёт внеплановые активности, а что значит активности внеплановые? Это значит, что они не были оплачены клиентом (а клиент их мог бы и оплатить), то есть, это обворовывание фирмы-разработчика и увеличение нагрузки на проекте за счёт минимизации собственных рисков и экономии личного времени руководителя.

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

Принудительный труд запрещён

Конституция РФ, глава 2, статья 37.

1. Труд свободен. Каждый имеет право свободно распоряжаться своими способностями к труду, выбирать род деятельности и профессию.

2. Принудительный труд запрещен.

Читать далее «Принудительный труд запрещён»

Некомпетентность руководителя — источник лишней работы

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

Когда я спросил, что же такое случилось, и почему начальницы выполняют работу секретарш, я получил ответ, что так делать приказал непосредственный руководитель, которого недавно назначили. Читать далее «Некомпетентность руководителя — источник лишней работы»

Пренебрежение абстракциями — источник лишней работы

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

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

Да, а ведь ещё Рене Декарт отметил, что классификация — основа научного подхода. Равно как и в йога-сутре написано, что неразличение есть ложное знание, которое не приведёт к счастью.

Но, кто сейчас помнит труды Декарта?

Методики должны умереть

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

А, скорее всего, всплывут на этапе эксплуатации, ибо тестировщик будет тестировать разработку на соответствие ТЗ.

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

Соответственно, избыточная детализация ТЗ это одна из главных причин снижения качества продукта, производительности труда и появления ненужных задач, которых можно не делать. Ещё одна причина это отсутствие высокоуровневых постановок.

Сортировка на SSE2

Некоторые «айтишники», когда слышат о сортировке на GPU, удивлённо спрашивают, «как ты будешь сортировать терабайтную таблицу на GPU?».

Странные люди. Как бы я не сортировал эту таблицу, по-любому, это будет быстрее и экономнее того метода, которым таблицу сортирует оракл.

Однако, специально для них, пример сортировки на SSE.

#include <float.h>  /* DBL_MAX */
#include "sse.h"    /* ssesort16d from https://github.com/mischasan/sse2 */
#include <memory.h> /* memcpy */
#include <stdio.h>

/* sort up array using SSE2 instructio set, merge sort, buf is working area, size of buf at least same as size of up */
double* msortd(double *up, double *buf, unsigned int left, unsigned int right) {
  unsigned int l = right-left+1;
  unsigned int i;

  if (l == 16) {
    ssesort16d((void*)(up+left));
    return up;
  }

  if (l < 16) {
    double sbuf[16];
    memcpy((void*)sbuf,(void*)(up+left),l*sizeof(double));
    for (i = l; i<16; i++)
      sbuf[i]=DBL_MAX;
    ssesort16d(sbuf);
    memcpy((void*)(up+left),(void*)sbuf,l*sizeof(double));
    return up;
  }

  unsigned int middle = (unsigned int)((right+left) * 0.5);
  middle = middle - (middle+1)%16;

  double *l_buff = msortd(up, buf, left, middle);
  double *r_buff = msortd(up, buf, middle + 1, right);

  double *target = l_buff == up ? buf : up;

  unsigned int l_cur = left, r_cur = middle + 1;

  for (i = left; i <= right; i++) {
    if (l_cur <= middle && r_cur <= right) {
      if (l_buff[l_cur] < r_buff[r_cur]) {
        target[i] = l_buff[l_cur];
        l_cur++;
      } else {
        target[i] = r_buff[r_cur];
        r_cur++;
      }
    }
    else if (l_cur <= middle) {
      target[i] = l_buff[l_cur];
      l_cur++;
    } else {
      target[i] = r_buff[r_cur];
      r_cur++;
    }
  }
  return target;
}

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

Однако, в оракл такую сортировку встроить не удастся. Ещё один недостаток использования СУБД от крупных производителей для ETL — вы всегда будете работать с устаревшими решениями.

Если же вы хотите достингуть максимума производительности работы с данными, надо использовать для работы специальные устройства обработки данных (см. http://СУОД.РУС )

Что здесь?

В рунете, наконец-то, появился отечественный аналог давно уже работающего в англоязычном сегменте сервиса » what is here? «.

Сервис доступен по ссылке: Что здесь?

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

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

Движок сервиса написан на Драконе с использованием в качестве целевого языка JavaScript/NodeJS.

Привет, люди!

Раньше здесь был другой сайт. Большой и с хорошим поисковым трафиком с яндекса. Но он удалён. Ибо нефиг! Всему приходит конец. Особенно сайтам.

Сейчас здесь есть это. Если вы ищете новые идеи в аналитике, посетите суод.рус. Если не ищете, то не посещайте.

Хорошего дня.

Сайт работает на хостинге УльтраВДС

Если есть вопросы — пишите на info@analyticls.ru, либо оставляйте комментарии к записи.