All streams
Search
Write a publication
Pull to refresh
25
0
Send message
Ну очень я как-то слабо верю в эволюционирующий электродвигатель с турбинами

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

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

Подскажите как, пожалуйста. Сразу могу сказать, что
+e.target.innerText
в ФФ не работает – испольуйте textContent вместо innerText
Используя более изящный код от Anonym'a (он медленнее в 2–3 раза, но это вопрос лишь нескольких миллисекунд, а автору спасибо за него), вот фильтр по авторам, компаниям и флагам (это которые сразу за заголовком, например "новость")

Фильтр 2.0: по авторам, компаниям и флагам
var authors = [
  'user1',
  'user2',
];

var companies = [
  'company1',
  'company2',
];

var flags = [
  'Новость',
];

function filter(selector, prop, list, type) {
  var re;
  if (prop === 'href') {
    re = new RegExp('.ru/' + type + '/(' + list.join('|') + ')/');
  } else if (prop === 'title') {
    re = new RegExp(list.join('|'));
  } else {
    return;
  }
  $(selector).filter(function() {
    return this[prop].match(re);
  }).parents('.post').hide();
}

filter('a.post-author__link', 'href', authors, 'users');
filter('a.hub', 'href', companies, 'company');
filter('a.megapost-cover__blog-link', 'href', companies, 'company'); // new-styled
filter('span.flag', 'title', flags);


Жаль только что немногие уже увидят этот апдейт — потенциальных юзеров больше тем те кто вернутся посмотреть новые комментарии.
Нет, вроде всё в порядке, блокирует.
Другое дело что фильтровать посты такого типа надо не по авторам, а по компаниям. Сделать такую возможность (вопрос также и к awaik)?
Можно, хотя особого смысла нет — там всего-то 50 итераций. Как вам такой код:

var postAuthorLinks = document.querySelectorAll('.post-author__link');
for (var idx = 0; idx < postAuthorLinks.length; ++idx) {
  var postAuthorLink = postAuthorLinks[idx];

  var isBlockedAuthor = authors.some( function(author) {
    return postAuthorLink.href.endsWith('/' + author + '/');
  });
  if (isBlockedAuthor) {
    postAuthorLink.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  }
}
Спасибо, что помогли всем тем, кому нужно такое фильтрование. Хотя сам я не против почитать некоторые статьи редакторов, пусть даже и в "жёлтом" формате — уже само ознакомление с топиком бывает интересно, а развёрнутые статьи можно найти и на других ресурсах.

Насчёт кода — он действительно не идеален, тут можно было бы обойтись одним циклом. Если будет время — переделаю.
Установите GreaseMonkey (Firefox), создайте новый скрипт, скопируйте туда это:

javascript
// ==UserScript==
// @name        Habr editor blocker
// @description Hides articles that were posted by certain authors
// @include     https://geektimes.ru/*
// @version     1
// @grant       none
// ==/UserScript==

var authors = [
  'alizar',
];

var posts = document.querySelectorAll('.post');
for (var idx = 0; idx < posts.length; ++idx) {
  var post = posts[idx];
  for (var i = 0; i < authors.length; ++i) {
    var selector = '.post-author__link[href$="/' + authors[i] + '/"]';
    var blockedAuthor = post.querySelector(selector);
    if (blockedAuthor) {
      post.style.display = 'none';
      break;
    }
  }
}


и отредактируйте список нежелательных для вас авторов. Для Хрома есть TamperMonkey, там тоже будет работать если строку '@include' заменить на '@match' и добавить

// @namespace    http://tampermonkey.net/
Там ещё один скрипт добавить надо (auto-render). Но KaTeX выбрасывает ошибку на тех местах где между $$ стоит некорректный LaTeX код: при обработке этой статьи такое встречается в некоторых ваших комментариях. При этом у самого katex можно установить options.throwOnError в false (наверное, он будет игнорировать такие места), но этот параметер не регулируется через auto-render (renderMathInElement)

Код для GreaseMonkey
// ==UserScript==
// @name        LaTeX for Habr
// @include     https://habrahabr.ru/*
// @version     1
// @grant       none
// ==/UserScript==

var loaded = 0;

// Load KaTeX CSS
var css = document.createElement('link');
css.rel = 'stylesheet';
css.href = '//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css';

// Load KaTeX
var js_katex = document.createElement('script');
js_katex.src = '//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.js';
js_katex.onload = run;

// Load AutoRun
var js_auto = document.createElement('script');
js_auto.src = '//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/contrib/auto-render.min.js';
js_auto.onload = run;

function run() {
  if (++loaded != 2) {
    return;
  }

  try{
    renderMathInElement( document.body, {delimiters: [{left: "$$", right: "$$", display: true}]} );
  } catch (e) {
    console.log('error', e);
  }
}

document.head.appendChild(css);
document.head.appendChild(js_katex);
document.head.appendChild(js_auto);

Автоматическая подгрузка кода для определённого сайта легко осуществляется с помощью GreaseMonkey (Firefox) или Tampermonkey (для браузеров на основе Chromium).
Установите GreaseMonkey, создайте новый скрипт и вставьте в него вот это:

// ==UserScript==
// @name        LaTeX for Habrahabr
// @include     https://habrahabr.ru/*
// @version     1
// ==/UserScript==
v = document.createElement('script');
v.type = 'text/x-mathjax-config';
v.textContent = 'MathJax.Hub.Config({tex2jax:{inlineMath:[[\'$tex\',\'$\']],displayMath:[[\'$$tex\',\'$$\']]},asciimath2jax:{delimiters:[[\'$asc\',\'$\']]}});';
s = document.createElement('script');
s.src = '//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML&locale=ru';
document.head.appendChild(v);
document.head.appendChild(s);

Автоматическая подгрузка скрипта будет срабатывать на всех страницах Хабра
Очень верно подмечено. И в первом опросе почему-то отсутствует вариант «тормозить максимально (но безопасно для пассажиров), чтобы люди на проезжей части получили минимально возможные травмы». Мне кажется, именно такой вариант наиболее этичен.
Удивительно, что такое малое расхождение в пройденных расстояниях, один год из 10 миллиардов.

Впрочем,… Ближайший путь от источника проходит примерно через середину креста, т.е. уже в 2014 году видели запоздавшую вспышку, но лишь совсем малость. Если ею пренебречь, то выходит что угловое расстояние между ним и копией (которая засветилась только сейчас) это arccos (5 000 000 000 / 5 000 000 001.1) / 2 = 2.16". На самом деле, даже чуть больше.
Хорошее замечание. А может предки змей сами нор не рыли: может они там даже не жили (поначалу) а только охотились на древних млекопитающих, которые и рыли эти норы и жили в них (и были мелкими в то время)? Может, этим протозмеям надо было проползать сотни метров в день по узким норам чтобы пообедать, и ноги только мешали ввиду их размеров (а меньшими размеры быть не могли – а то ещё не ясно кто там добычей бы стал)?

Похоже, что протозмеи были ещё и ядовиты. Уж не потому ли что убить добычу в узких норах не получалось, и она часто вырывалась и убегала. Яд тут был бы очень кстати.
Уважаемый Чебурашка, а где эта статья была опубликована, в каком рецензируемом журнале? Я только ссылки на реддит пока нахожу, и ещё блог «Lambda the Ultimate». Там есть хоть какое-то рецензирование? Я это к тому, что вроде как статья подтверждает очевидное, но всё же будет лучше если она ещё будет и признана качественной по исследовательским меркам.
Ага, я сейчас как раз заворачиваю статью на Eye Tracking Research & Applications на подобную тему и схожими проблемами: 15 участников, при этом дизайн эксперимента — between-subject. Там 7 студентов исправляли ошибки в Java коде (30 строк) без инструкций, а 8 — с инструкцией сначала прочитать техзадание (коротенькое), а уж потом искать ошибки (это так профи делали). Получили типа инструкции помогают быстрее находить ошибки «до 17% быстрее». Ну а после ревью все 4 рецензентов отправили работу на доработку, в том числе и по про причине количества участников.
Так что некачественные статьи не пройдут, спите спокойно, дорогие разработчики :)
Разработка фронтэнда – штука хитрая.
По данным Википедии, размеры китайских посёлков поскромнее:
В конце 1970-х годов Шэньчжэнь представлял собой небольшой рыбацкий городок с населением 30 тыс. человек
В статье про это же:
До получения статуса СЭЗ в 1979 году это был относительно небольшой рыбацкий посёлок с населением 300 тыс. человек

Посёлок, однако…

Information

Rating
Does not participate
Registered
Activity