API Вконтакте «Поделиться» и параметр noparse, не работает, решено.

Решил поделиться проблемой и решением, небольшим костылем, может кто набредет.
Возникла необходимость добавить к статье виджет Вконтакте «Поделиться», покурил документацию, все сделал как там написано, в моем варианте решил воспользоваться параметром noparse и указать параметры публикации
<script type="text/javascript">
document.write(VK.Share.button({
  url: 'http://mysite.com',
  title: 'Заголовок страницы',
  image: 'http://mysite.com/mypic.jpg',
  noparse: true
}));
</script>
Но не тут то было, все параметры брались со страницы, noparse игнорировался. Хм.

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

Решил посмотреть устройство vk.com/js/api/share.js и что же там отправляется при клике на кнопку.

Параметры отправлялись, все честно, постом, НО, РЕДИРЕКТ (302), и все параметров больше нет, вот почему работал вариант с дописыванием параметров в урл. Редирект выполняется для смены протокола на https, у тех у кого сайт работает через https изначально никаких проблем нет.
Безымянный12 Для остальных простое решение, после инициализации первой кнопки добавляем такой код, 
VK.Share._base_domain = 'https:' + VK.Share._base_domain;
усе, теперь форма будет отправляться на https и редиректа не будет.

Полный пример рабочего кода:
!function (d, id, pr1, pr2) {
  var js = d.createElement("script");
  js.src = "http://vk.com/js/api/share.js?90";
  js.onload = js.onreadystatechange = function () {
  if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete") {
    if (!this.executed) {
      this.executed = true;
      setTimeout(function () {
        d.getElementById(id).innerHTML = VK.Share.button(pr1, pr2); 
        VK.Share._base_domain = 'https:' + VK.Share._base_domain;
      }, 0);
    }
  }};
  d.documentElement.appendChild(js);
}(document,"vk",{
  url: document.URL,
  title: 'Заголовок страницы',
  description: 'Описание ...',
  image: 'http://mysite.com/mypic.jpg',
  noparse: true,
},{type: 'round', text: 'Поделиться',});

JavaScript генератор паролей

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

reverse string search in Excel?

В Excel отсутствует функция поиска вхождения при чтении справа налево(обратного поиска). Воспользуемся VBA, создадим обертку к уже существующей в VBA функции и будем использовать ее непосредственно в формулах ячейки. Заходим в среду VBA (ALT+F11), добавляем модуль, в него вставляем функцию
Public Function ПОИСКОБР( _
   ByVal StringCheck As String, _
   ByVal StringMatch As String, _
   Optional ByVal Start As Integer = -1 _
) As Integer

    ПОИСКОБР = InStrRev(StringCheck, StringMatch, Start)
    
End Function
Все, используем ее в формулах книги.

UNPIVOT просто все столбцы в строчки

select * from
  (select * from (values(0,1,1,1,4), (5,6,6,6,9)) t (id1, id2, id3, id4, id5))t
   unpivot (value for columnName in (id1, id2, id3, id4, id5)) ttt
value	columnName
0	id1
1	id2
1	id3
1	id4
4	id5
5	id1
6	id2
6	id3
6	id4
9	id5

IE and cursor and pseudo element, detect click event on pseudo-element

Отображаем курсор над псевдо элементом, как обычно у всех, все хорошо, в ИЕ не работает.
IE :-(
IE :-)
Для ИЕ используем пустой спан как контейнер.
<div id="test1" class="test">IE -(</div>
<div id="test2" class="test">IE -)<span></span></div>
И уже на него
#test2 span {
 cursor: pointer;
}
Ну и тут же тема, как ловить события от псевдоэлемента, имеем три варианта:
1) воспользуемся CSS свойством pointer-events, но тут ограничение, поддержка только в современных браузерах, так и сделано для первого примера
2) обернуть реальным элементом, тема для второго варианта
3) еще можно контролировать координаты точки клика, как-то так
if (e.offsetX > e.target.clientWidth) {

text-overflow: ellipsis и иже сним

Забью свой костыль в виде аналога эффекта получаемого с помощью свойства text-overflow: ellipsis.
В моем случае задача немного сложнее, текст не умещался совсем не много, не больше чем на 50%, потому нужно было его отобразить при наведении курсора.
Все очень легко, на помощь пришли, псевдокласс :hover и свойство direction: rtl. Все бы ничего, Firefox, Chrome, Opera, все отлично, IE приплыли.
Безымянный Ну раз уж, придется задействовать JavaScript, значит чуточку добавим требований, текст не будет просто переключаться с отображения, то с начала, то с конца, пусть он плавно прокручивается, тут и ограничение в 50% снимется.
Сляпал плагин, малютка, меньше сотни строк.

А как работает твой браузер?
Раз, два, три, четыре, пять, вышел зайчик погулять, заинька вышел… Вдруг охотник выбегает, прямо в зайчика стреляет, пиф-паф, ой-ой-ой, умирает зайчик мой, привезли его домой, оказался он живой
Живой пример
Раз, два, три, четыре, пять, вышел зайчик погулять, заинька вышел… Вдруг охотник выбегает, прямо в зайчика стреляет, пиф-паф, ой-ой-ой, умирает зайчик мой, привезли его домой, оказался он живой
Есть нюанс в зависимости от шрифта могут «уехать» точки, нужно добавить некую поправку, но пока править не стал, в моем случае все и так работало.

Use jQuery .on and hover

метод hover() и псевдособытие «hover» разные вещи, тем более, что hover event support in On() was deprecated in jQuery 1.8, and removed in jQuery 1.9

используем два события mouseenter и mouseleave, в таком кратком виде

jQuery(function($) {
    // имитируем подгрузку аяксом
    $('#test').append( Array(6).join('<div></div>') );

    $('#test').on({
      mouseenter: function () {
        $(this).text( $(this).index() + 1 );
      },
      mouseleave: function () {
        setTimeout( $.proxy( function(){$(this).text('')}, this ), 350 );
      }
    }, 'div');
}(jQuery));

HTML5 Offline Web

Попробовал сервис-воркеры(Service Worker API), аналог прокси-сервера, находящегося между веб-приложением, браузером и сетью.
На момент написания спецификация в статусе рабочего черновика, поддержка в Firefox, Chrome, Opera.
Два ограничения необходимо использовать https и правильно определиться с областью видимости (максимальная видимость сервис-воркера равна его location, потому в моем случае, в случае с друпалом, сервис-воркер пришлось поднять из каталога шаблона).
Для проверки работы, отключаем инет, перегружаем страничку, играем.
Можно было бы прикрутить еще и Application Cache API для IE и Safari, но технология удалена из веб-стандартов, так что…

Simple filter table jQuery plugin

Понадобился простой фильтр в табличке по значениям с «памятью» все сессий, сваял jQuery плагин с хранением данных в локальном хранилище (localStorage).
NИДМЭСДоговорКварталКомментарийСостояние
1 58 МЭС Центра 30-2012 от 18.10.2012 IV 2016 Декабрь 2016 Формирование
2 57 МЭС Северо-Запада 30-2012 от 18.10.2012 IV 2016 Декабрь 2016 Формирование
3 56 МЭС Волги 30-2012 от 18.10.2012 IV 2016 Декабрь 2016 Формирование
4 55 МЭС Урала 30-2012 от 18.10.2012 IV 2016 Декабрь 2016 Формирование
5 54 МЭС Западной Сибири 30-2012 от 18.10.2012 IV 2016 Декабрь 2016 Формирование
6 53 МЭС Сибири 30-2012 от 18.10.2012 IV 2016 Декабрь 2016 Формирование
7 52 МЭС Востока 30-2012 от 18.10.2012 IV 2016 Декабрь 2016 Формирование
8 51 МЭС Центра 30-2012 от 18.10.2012 III 2016 Формирование
9 50 МЭС Северо-Запада 30-2012 от 18.10.2012 IV 2015 Не подлежит закрытию Формирование
10 49 МЭС Волги 30-2012 от 18.10.2012 IV 2015 Не подлежит закрытию Формирование
11 48 МЭС Востока 30-2012 от 18.10.2012 IV 2016 Октябрь 2016 Утвержден
12 47 МЭС Урала 30-2012 от 18.10.2012 IV 2016 Октябрь 2016 Утвержден
13 46 МЭС Западной Сибири 30-2012 от 18.10.2012 IV 2016 Октябрь 2016 Утвержден
14 45 МЭС Востока 30-2012 от 18.10.2012 IV 2015 Не подлежит закрытию Формирование
15 44 МЭС Урала 30-2012 от 18.10.2012 IV 2015 Не подлежит закрытию Формирование
16 43 МЭС Западной Сибири 30-2012 от 18.10.2012 IV 2015 Не подлежит закрытию Формирование
17 42 МЭС Центра 30-2012 от 18.10.2012 IV 2016 Перенос на октябрь Утвержден
18 41 МЭС Сибири 30-2012 от 18.10.2012 IV 2016 Перенос на октябрь Утвержден
19 40 МЭС Центра 30-2012 от 18.10.2012 IV 2015 Не подлежит закрытию Формирование
20 39 МЭС Северо-Запада 30-2012 от 18.10.2012 IV 2016 Перенос на октябрь Утвержден
21 38 МЭС Центра 30-2012 от 18.10.2012 III 2016 Утвержден
22 37 МЭС Юга 30-2012 от 18.10.2012 IV 2016 Декабрь 2016 Формирование
23 36 МЭС Волги 30-2012 от 18.10.2012 IV 2016 Перенос на октябрь Утвержден
24 35 МЭС Урала 30-2012 от 18.10.2012 III 2016 Утвержден
25 34 МЭС Западной Сибири 30-2012 от 18.10.2012 III 2016 Утвержден
26 33 МЭС Сибири 30-2012 от 18.10.2012 III 2016 Утвержден
27 32 МЭС Сибири 30-2012 от 18.10.2012 IV 2015 Не подлежит закрытию Формирование
28 31 МЭС Востока 30-2012 от 18.10.2012 III 2016 Утвержден
29 26 МЭС Урала 30-2012 от 18.10.2012 II 2016 Утвержден
30 25 МЭС Волги 30-2012 от 18.10.2012 II 2016 Утвержден
31 24 МЭС Северо-Запада 30-2012 от 18.10.2012 II 2016 Утвержден
32 22 МЭС Западной Сибири 30-2012 от 18.10.2012 II 2016 Утвержден
33 21 МЭС Сибири 30-2012 от 18.10.2012 II 2016 Утвержден
34 20 МЭС Юга 30-2012 от 18.10.2012 II 2016 Утвержден
35 19 МЭС Центра 30-2012 от 18.10.2012 II 2016 Утвержден

Portproxy windows

Из серии, век живи, век учись. Форвардинг пакетов штатными средствами виндовс.
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=192.168.0.101 connectport=2222 connectaddress=192.168.11.13
#ну и посмотреть, удалить все правила, или выборочно
netsh interface portproxy show all
netsh interface portproxy reset
netsh interface portproxy delete v4tov4 listenport=2222 listenaddress=192.168.0.101
Для чего понадобилось, в моем случае, с помощью «виртуального сервера» роутера (тплинк), нужно было пробросить порт, но сеть не директ коннект (маршруты прописаны, пинга ходит), соответственно пришлось перенаправлять дважды, от тплинка до маршрутизатора этой сети и с него уже дальше.