• Инфосистемы Джет продали в Беларусь оборудование для блокировки интернета

      11 сентября вышла публикация у новостного агентства Блумберг, что в 2019 году Инфосистемы Джет продали в Беларусь на 2,5 миллиона долларов оборудования для блокировки интернета от компании Sandvine.

      В США по-этому поводу скандал, как минимум два сенатора, в том числе известнейший Марко Рубио, потребовали расследовать деятельность Sandvine. Официальные лица в России хранят молчание. Cогласно tut.by, оборудование родительской компании Sandvine Инфосистемы Джет с 2012 года поставляют в города России.

      Это конец...
    • Инкрементальный бекап в дюжину строк

      Что самое важное для бекапов? Правильно, воспроизводимость. Поэтому давайте сделаем велосипед на коленке и на опции --link-dest у rsync. У нашего велосипеда не будет сложной структуры данных в стиле git как у restic, ни кучи бекендов как у duplicity. Но мы сможем восстановить его работу по памяти даже под стрессом.


      Опция --link-dest позволяет указывать предудущую версию бекапа, на которую rsync будет ставить жёсткие ссылки, если файлы с прошлого раза не поменялись.

      Читать дальше →
    • Несколько историй про подпольных программистов

      Продажник-программист


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


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


      image

      Читать дальше →
    • Data-mining в 40 строк или с кем и против кого вы заодно

      Находим единомышленников и противников друзей и врагов среди пользователей сайта на Drupal, используя данные votingapi.

      Делаем выборку данных


      SELECT v1.uid uid1, v2.uid uid2, u1.name name1, u2.name name2,
        v2.entity_id entity_id, v1.value value1, v2.value value2
      FROM votingapi_vote v1
      JOIN (votingapi_vote v2, users u1, users u2)
       ON (v1.uid != v2.uid AND v1.entity_id=v2.entity_id
         AND v1.entity_type=v2.entity_type AND v1.uid=u1.uid AND v2.uid=u2.uid)
      WHERE v1.uid < v2.uid AND v1.uid != 0 AND v2.uid != 0
      ORDER BY v1.uid,v2.uid;


      JOIN таблицы votingapi_vote на себя саму выбирает все пермутации пар пользователей, а условие v1.uid < v2.uid превращает пермутации в комбинации.

      Условие v1.entity_id=v2.entity_id AND v1.entity_type=v2.entity_type позволяет выбрать голоса, которые пользователи отдали за одну и ту же тему или комментарий. Скажем, первая строчка в нашей выборке означает, что Administrator и Bob дали 100 очков одной и той же теме или одному и тому же комментарию.

      Условие v1.uid != 0 AND v2.uid != 0 исключает анонимные комментарии.

      В результате получаем таблицу из шести колонок:
      Читать дальше →