Mikrotik - Lost Connection

Мне часто приходится работать со свичами от MikroTik. И при работе с RB260GS я столкнулся с проблемой постоянного обрыва соединения в GUI(ERROR:Lost Connection), что очень сильно напрягало. Погуглив на эту тему я убедился, что проблема не только у меня: https://forum.mikrotik.com/viewtopic.php?t=61058. К сожалению решения проблемы найти не удалось и пришлось разбираться самостоятельно. Результатом стал userscript: https://github.com/azurre/mikrotik-lost-connection-fix

 

CKEditor Images Manager

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

Устанавливается, как и все плагины, путем распаковки в папку plugins CKEditor'а и добавлением в extraPlugins:

CKEDITOR.replace( 'editor1', {
  extraPlugins: 'imagesmanager'
});

Плагин на Githubhttps://github.com/azurre/ckeditor-images-manager

Пример реализации транслитерации для ЧПУ.

var transliterateToUrl = function (text) {
    return text.replace(/([а-яё])|([\s_-])|([^a-z\d])/gi,
        function (all, ch, space, words, i) {
            if (space || words) {
                return space ? '-' : '';
            }
            var code = ch.charCodeAt(0),
                index = code == 1025 || code == 1105 ? 0 :
                    code > 1071 ? code - 1071 : code - 1039,
                t = ['yo', 'a', 'b', 'v', 'g', 'd', 'e', 'zh',
                    'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p',
                    'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh',
                    'shch', '', 'y', '', 'e', 'yu', 'ya'
                ];
            return t[index];
        }).toLowerCase();
};