|
Подпишитесь на новости сайта по RSS
|
|
Главная страница
Здравствуйте!
Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...
Новости
|
|
|
По долгу службы мне приходится работать с чудом современного юзабилити - Microsoft Outlook 2013. Этот глючный кусок кала включает в себя множество неожиданных решений, так что за несколько лет работы я каждый раз вздрагиваю, когда открываю его окно. Но ничего не попишешь - корпоративный стандарт есть корпоративный стандарт.
Самой неоднозначной вещью в Microsoft Outlook 2013 является поиск писем. Да, это банальное действие, которое в других email-клиентах решается довольно понятным способом, в Outlook сделано максимально неудобно. В результате люди годами не понимают, как блин в этом Outlook найти нужное письмо. Я вижу, что мои сотрудники часто ищут письмо вручную, и только самые продвинутые могут помочь себе сортировкой.
Чтобы пробиться сквозь джунгли корпоративного безумия, я написал для себя памятку о том, как пользоваться поиском по письмам с помощью языка запросов:
Как осуществлять поиск в Microsoft Outlook 2013
Надеюсь, кому-нибудь эта помятка тоже пригодится.
|
|
|
|
Что-то я забросил свой профиль на GitHub, и сейчас решил немного его подобновить. Для этого я переношу все свои проекты, которые раньше просто хостил на домашнем сайте WebHamster.ru. Недавно я перенес Python-проект monitoring-sp, теперь настала очередь низкоуровневого переключателя клавиатуры LoLo Switcher.
Как мне сказали добрые люди, "ты написал этот переключатель для того, чтобы троллить на ЛОРе". Но на деле LoLo Switcher - это мой рабочий инструмент, которым я пользуюсь много лет, начиная с момента его появления в 2011 году. Тогда я одним махом решил для себя все проблемы, существующие в Linux с переключением раскладок: я перестал тратить время на разломанные то в Gnome то в KDE стандартные переключатели раскладок - мой переключатель работал везде. Я наконец-то смог настроить переключение по чистому отжатию клавиш, что позволило использовать самые широкие клавиши клавиатуры - левый и правый Shift. Само переключение раскладок стало турбореактивным, потому что LoLo Switcher работает напрямую с устройством ввода, и такое решение заставило взвыть любителей крутить зубодробительные конфиги X11. Как вишенка на торте, настройка переключения производится через регулярные выражения, что заставило взвыть уже любителей GUI. Обо всем этом написано на странице русскоязычной документации LoLo Switcher.
С переключателем LoLo Switcher связана одна интересная история. Когда я его писал, я не пользовался IDE, и просто работал со своим C++ кодом в консоли. В тот момент я находился в поисках хорошего консольного редактора, и за неимением лучшего, настроил себе редактирование текста в Midnigth Commander через опенсорчный FAR Editor в эмуляции WINE (да, я очень маргинален, и Micro на тот момент еще не появилось). А потом стал пользовать редактор KWrite. Особенность этих двух редакторов в том, что у них есть автоопределение кодировки. Они молча открывают файл в нужной кодировке, и ты работаешь, не задумываясь о том, что появились какие-то кракозябры: ты просто видишь нормальный текст на национальном языке. Даже если эти файлы пришли с другой платформы. Это очень круто.
Однако в тот момент, когда в файле кода первый раз появляются строки с национальными символами, эти редакторы сохраняют код по-разному. FAR Editor сохраняет в CP1251, а KWrite - в кодировку локали, обычно UTF-8. Ну а так как в обоих редакторах есть автоопределение кодировки, все файлы всегда отображаются нормально. И я, как пользователь, не замечал этой проблемы: ведь мой инструментарий просто давал возможность комфортно работать.
Каково же было удивление линуксоидов, когда в однозначно Linux/X11 коде в некоторых файлах оказалась Windows-кодировка. Никто не мог понять, как такое вообще возможно. Олдфаги решили, что я издеваюсь над ними. Никто не мог поверить, что автор об этой проблеме не знает (я действительно не знал). Поднялся жуткий срач, а я ухахатывался над тем фактом, что общество может любую ерунду обратить в кошмарную трагедию.
Сейчас на GitHub залита последняя версия LoLo Switcher v.0.28. В ней, по сути, изменились только некоторые сообщения и содержимое дефолтного конфига. Релизные сборки кода теперь берутся с GitHub, а прекомпиленные бинарнки все так же можно брать с официальной страницы.
* * *
Хотел сказать несколько слов про дальнешее развитие LoLo Switcher. Низкоуровневый доступ к файлу устройства ввода - это одновременно и благо и проклятие. Благо - это четкая и безглючная работа со всеми известными DE и независимость от настроек X11-подсистемы, а проклятие - это то, что такой переключатель может быть только локальным. Особых проблем это не вызывает - вопрос только в работе с удаленным графическим X11-сервером. Но дух перфекционизма говорит, что переключатель должен работать даже в такой экзотической конфигурации. И я на протяжении этих лет не оставлял попыток сделать LoLo Switcher действительно X11-полным переключателем.
Вначале мне показалось, что я нащупал правильное решение. По этому поводу я написал новость про то, что разобрался как делать глобальный перехват клавиш в X11 (XWindow). Однако, это достижение жестоко обломились о реальность: стандартная утилита xinput, на основе кода которой я собирался делать глобальный перехват, тоже не может работать в удаленной сессии. Об этом я написал в третьем пункте своего годового отчета. Ну а если даже сами авторы X11 не в состоянии сделать получение всех событий удаленной сессии, то мне и подавно не осилить такую вещь. Поэтому пока что действует стратегия выжидания: если xinput вдруг заработает в удаленной X11 сессии, тогда можно будет двигаться дальше.
|
|
|
|
В мире OpenSource существует прекрасная платформа мониторинга сетевого оборудования Zabbix. Грамотный админ одним из первых сетевых инструментов поднимает именно эту систему, чтобы практически в реальном времени понимать, что происходит у него в сети. Zabbix лучше всего ставить на выделенный сервер, чтобы его скрипты работали с физической сетевой картой. На вдумчивое конфигурирование Zabbix уходит несколько недель, чтобы полностью разобраться с ним и отладить все механизмы сбора данных.
Но что делать, если под рукой только единственный тестовый сервер, на котором крутится все что можно - от 1С с его PostgreSQL и апачевым веб-клиентом до видеонаблюдения? А бедолагу-админа завалили тоннами бумаги по безопасности, тратя все его время на проверки и прохождение очередных сертификаций? В такой ситуации можно и заколхозить самодельную легковестную систему монторинга, чтобы через нее видеть проблемы, возникающие хотя бы в ядре сети. Так сказать, до лучших времен.
Так у меня появилась маленькая самописная система мониторинга, и неплохо отработала несколько месяцев, пока на предпиятии не появились новые сервера и админ наконец-то не настроил Zabbix. Написана система на Python. Особенность этой системы в том, что она способна делать различные замеры по ICMP и SNMP, а отправлять отчеты о критических ситуациях может на только на email, но и по SMS. Да, для этого дела я прикрутил к серверу по COM-порту старенький мобильник Siemens M50 с параллельной подзарядкой и с SIM-картой, которая была активирована на корпоративный тариф с бесплатными SMS-сообщениями в количестве 2000 штук.
Логика настройки этой системы следующая: сначала настраивются источники обрабатываемых данных (источники именованных значений), и потом настраиваются правила, которые выполняют различные проверки полученных значений. В случае, если обнаружено отклонение от допустимых величин, считается что наступило критическое событие.
Сами именованные значения могут иметь обычные Python-типы int, float, bool, string.И вытягиваются они из оборудования примерно так:
measureValue.addItem( "APC5000_Temperature", # Имя значения "int", # Тип значения "snmpDeviceSensor", # Механизм получения "10.153.0.88", # IP устройства ".1.3.6.1.4.1.318.1.1.1.2.2.2.0") # SNMP идентификатор
А сравнение возможно по принципу больше/меньше/равно и даже можно оценивать градиент, так как недавняя история каждого значения хранится в БД SQLite3. И выглядит описание правил примерно так:
valueAnalytic.addRule({ "ruleName" : "ИБП APC5000 слишком горячий", "ruleType" : "aboveOrEqual", "valueName" : "APC5000_Temperature", "targetValue" : 35 })
valueAnalytic.addRule({ "ruleName" : "На ИБП APC5000 нет напряжения питания", "ruleType" : "equal", "valueName" : "APC5000_InputVoltage", "targetValue": 0
})
Исходники этой системы мониторинга опубликованы на GitHub:
Проект Monitoring-sp
Почему в названии используется суффикс "-sp"? Потому что нотификация возможна по SMS и по электропочте (Post), вот почему.
К вопросу, зачем вообще заморачиваться с COM-портом и SMS, рекомендую рассмотреть непредвиденные ситуации, когда из-за форсмажора обрубается интернет (например, перерубили кабель, возник пожар, которокое замыкание в блоке питания маршрутизатора), и никто в этом случае никакого письма не получит, да и SMS, отправляемое через какое-нибудь Interner API, тоже отправлено не будет. Конечно, лучше было бы использовать промышленный GSM-модуль. Но предприятия бывают разные, и есть такие, в которых доказать необходимость закупки такого устройства невозможно, а если чудо и произойдет, то поставка затягивается на годы. В таких условиях, хочешь не хочешь, а расчехлишь свой старенький мобильник с AT-командами, и сделаешь из говна и палок очередного монстрика.
|
|
|
|
Пузомерка ТИЦ (тематический индекс цитирования) - однин из основных оценочных показателей качества сайта. Логично было бы видеть плавные изменения этой цифири во времени. Но не таков наш Яндекс! ТИЦ у него скачет в зависимости от... фиг знает чего. Сейчас вдруг обнаружил, что сайт Webhamster.Ru неожиданно получил нулевой ТИЦ.
Один раз уже такое было в 2015 году, и после краткосрочного обнуления ТИЦ, он возвращался на прежнее место, причем даже с увеличением значения:
Новое же обнуление ТИЦ затянулось на более длительный срок. С чем это связано - пока неясно. Есть предположение, что Яндекс резко невзлюбил сайты с размытым семантическим ядром - то есть, сайты обо всем. Так что если автор интересуется многими вещами, и не делает сайт с заточкой на одну тематику, то он в пролете. Хотя, это всего лишь предположение.
Однако интересно то, что количество посетителей не уменьшилось, хотя с таким ТИЦ-ем траффик посетителей с Яндекса должен был бы совсем исчезнуть. В общем, что-то в Яндексе опять накрутили с алгоритмами оценки сайтов.
|
|
|
|
Возможно, некоторые пользователи заметили, что на страницах сервиса MyTetra Share появилась баннерная реклама книг с Озона. Я сам очень не люблю баннерную рекламу, тем более тизеры, и поэтому нашел вот такой компромис: книги рекламировать не стыдно, тем более если они соответствуют тематике сайта. Баннеры размещаются в правом верхнем углу страницы, вот так:
Реклама книг с Озона провисела у меня два с половиной месяца, и теперь я её отключаю. Почему? Потому что не заработал на ней ни копейки. Я не знаю, что учитывает Озон в своей статистике заказов, но реальность такова, что факт покупки книги в статистику просто не попадает. Доход же партнеры Озона получают по поведенческому фактору, только если покупка состоялась. Для теста я специально организовал покупку книги через баннер на сайте, и... ничего! Для сайта с посещаемостью ~3000 посетителей в день и откруткой ~4000 страниц в день такой "успех" неприемлем.
Да, я еще раз убедился, что заработать в интернете на хороших вещах практически нереально. Пока что единственная действенная монетизация сайта - это Сапа, как бы ее не ругали вебмастера за все закидоны руководства в последнее время. Кстати, монетизация через Google Adsence тоже дохода не приносит. Осталось мне еще пощупать Яндекс.Директ. Если и с ним не получится, то вынужден буду констатировать, что заработок возможен только на тизерах. А это значит, что в рунете сформировалась такая копроэкономика, которая нацелена на самые низменные рефлексы пользователя. Нормальной рекламой могут заработать только крупные порталы, по моим прикидкам от 30 000 посетителей в сутки, на 100 000 станиц и более. То есть, портал должен быть раз в 10 больше, чем я имею сейчас. А вебмастера небольших ресурсов, для выживания своего сайта вынуждены играть именно в эту игру: испоганить сайт тизерами, либо держать заведомо убыточный ресурс. Других вариантов интернет-среда не предполагает, если, конечно, сайт не является игровым или что-нибудь не продает.
|
|
|
|
Давненько я хотел написать статью про Linux-утилиту xargs. Эта утилита входит в состав базовых программ, которые используются в Linux при составлении команд и написании bash-скриптов. Однако за все время работы с Linux я не нашел ни одного вменяемого описания на данную утилиту. Долгое время её синтаксис и работа оставалась для меня загадкой. Но постепенно, проведя некоторые эксперименты, я наконец разобрался с тем, что же эта утилита делает.
Наконец, недавно я нашел время чтобы написать свою небольшую статью про утилиту xargs:
Как сконструировать нужную команду с помощью xargs. Понимание xargs.
Данный текст должен помочь начинающим луноходам быстрее разобраться в премудростях bash-скриптинга.
|
|
|
|
Признаюсь: я неосилятор Vi, Vim и Emacs. Не могу я комфортно работать с этими странными *NIX редакторами, в которых нужно все помнить и просто знать как что делать. Я проходил встроенные туториалы Vi/Vim, но в конце забывал, что там было в начале. В emacs меня всегда удивляло то, что стандартная поставка идет с каким-то диким конфигом, пользоваться которым вообще невозможно. Но главное не это. Главное то, что редактировать текст приходится не только в консольном текстовом редакторе, но и в других местах: в полях ввода браузера, в специфических IDE, в различных GUI программах, да в том же офисе наконец. И я считаю, что везде должны использоваться одни и те же принципы, одна и та же логика, одни и теже сочетания клавиш.
Я не понимаю, как люди при работе в vi/vim/emacs делают одно и то же действие над тестом так, а в других программах, - те же действия над текстом, - эдак. Все время следить за контекстом работы - это очень утомительно. И поэтому я давно уже ищу человеческий консольный редактор под Linux, чтобы все популярные действия в нем делались так же как и в других частях DE.
Долго меня убеждали, что такого нет и не будет, потому что консоль, потому что терминал. Но я потихоньку разбирался с настройками, и, например, научился делать правильный и заметный курсор в Konsole и настраивать в терминале копипаст по клавишам Ctrl+C/Ctrl+V. Эти маленькие победы дали сумасшедшее удобство в работе. Я уже не задумывался, когда и где нужно нажимать Ctrl/Shift+Ins. Везде Ctrl+C/V и все! Но у меня все так же небыло нормального консольного редактора. Я около года пользовался редактором FAR в эмуляции, потом переключился на Sublime, потом на KWrite, о чем написал цикл из трех статей.
Но, скажем честно, KWrite - это очень хороший, но все-таки не консольный редактор. А хотелось иметь такой редактор, который бы работал не только в локальной консоли, но и удаленно через SSH. И чтобы небыло никакой разницы, локально ли правится текст, или текст правится на удаленной машине. Да, vi/vim частично обладают таким свойством. Но эта универсальность была достигнута дорогой ценой: полный отказ от привычных комбинаций с клавишами-модификаторами, и построение работы через алфавитно-цифровую часть клавиатуры, плюс извращенное использование клавиши Esc.
И вот, в 2016 году, совершенно неожиданно появился консольный редактор Micro, написанный с нуля на языке Go. Он оказался удивителен тем, что в нем - о ужас! - работали привычные сочетания клавиш! Он молча перебиндивал сочетания Ctrl+C/V, благодаря чему сразу работал привычный копипаст. Он интегрировался с буфером обмена DE. Он показывал помощь по клавише F1, сохранял файл по Ctrl+S, отменял действия клавишей ESC, и даже по этой же клавише завершал свою работу. И даже текст выделялся привычными клавишами Shift+Стрелки. Для меня это было сигналом к тому, что авторы данного редактора на одной волне со мной. И я решил начать им пользоваться постоянно.
В процессе использования данного редактора выявилась пара проблем, которая была успешно решена при общении с автором редактора. Я сделал себе небольшие записульки о том, как пользоваться и что надо настроить в первую очередь в редакторе Micro:
Следует сказать, что по-умолчанию некоторые комбинации клавиш работают не так, как привычно. Например, клавиши выделения до начала/конца строки придется настраивать отдельно. Но настройки в Micro очень обширны и работают как положено.
На русском языке материалов об этом редакторе практически нет. Поиск Яндекса выдает на первой странице всего три статьи:
Тем не менее, редактор очень хорош, а если в нем еще и появится привычное многим меню, то он вообще сможет стать идеальной программой для редактирования текстов.
|
|
|
|
В последней актуальной версии PIM-менеджера MyTetra v.1.42 появилась возможность делать в текстах записей ссылки на другие записи. Такие ссылки называются внутренними. Для пользователя это выглядит следующим образом: кликнув правой кнопкой мышки на запсиь, выбирается пункт "Скопировать ссылку на запись". После чего данную ссылку можно использовать как обычные http-ссылки, размещаемые в тексте с помощью кнопки редактирования ссылки (иконка земного шара, пристыкованного к проводу).
Для обозначения внутренних ссылок был создан специальный протокол "mytetra". На уровне HTML-кода ссылки на записи представляются в виде:
<a href="mytetra://note/идентификатор_записи">Это ссылка на другую запись</a>
Внутренние ссылки работают в самой программе MyTetra, однако до сегодняшнего момента сервис MyTetra Share не умел преобразовывать такие сылки в обычные URL, чтобы перекрестная навигация работала и в браузере при просмотре баз знаний. В версии 0.44 этот недостаток был устранен, и теперь ссылки на другие записи в текстах записей не вызывают ошибки, а открывают соответствующие Web-страницы.
|
|
|
|
Нашел тут интересный сайт MegaIndex, на котором есть куча бесплатных инструментов для анализа сайта. Один из инструментов называется "Внешние ссылки", с помощью которого можно анализировать ссылки, ссылающиеся на анализируемый сайт. В нем есть раздел "Популярно в анкорах", в котором формируется графическое облако слов, чаще всего используемых в ссылках на сайт. Напрямую можно попать на страницу внешних ссылок вот так:
https://ru.megaindex.com/backlinks/имя_вашего_сайта?sort=desc&sort_by=domain_rank
В результате будет сформировано облако, которое наглядно дает понять, как выглядит сайт в интернете с точки зрения ссылок, ссылающихся на него на различных сайтах. Для моего проекта WebHamster.Ru это облако выглядит так:
Все ключавые слова очевидны, за исключением загадочных Family, Gift Card, Racing. Предполагаю, что они образовались в результате использования форума сайта в спамерской сети, когда на форуме спамботами публикуются посты с сылками, а на эти посты делаются ссылки на других сайтах, чтобы для целевого ресурса сформировать ссылочную массу с хороших сайтов для людей. Я периодически борюсь со спамерами, и для этого сделал и самодельную sin/ellipse искаженную капчу, и прикрутил проверку через stopforumspam.com, однако настойчивые спамеры пролезают вручную. Поэтому, если оставить форум без присмотра на неделю, то несколько сообщений будут болтаться, пока их не удалишь. Так что сейчас подумываю о прикручивании модуля, который будет удалять сообщения после их публикации.
В общем, сервис интересный, рекомендую вебмастерам проанализировать свой сайт им, а так же другими инструментами типа Xtool и ему подобными. Удачи!
|
|
|
|
В рамках работ по внедрению криптоанархии в жизнь, наконец-то было сделано то, что давно должно было быть сделано. Сегодня я перевел свой сайт в режим шифрования по протоколу HTTPS (SSL). Теперь только злой человек посередине сможет перехватить мой пароль на админку. Повышение секьюрности - бесполезный, но необходимый шаг, который рано или поздно надо было совершить.
Для получения сертификатов я использовал бесплатный сервис Let's Encrypt. Данные сертификаты выдаются на три месяца, поэтому помимо включения протокола HTTPS, нужно настраивать автоматическое продление. Все производимые настройки я методично записывал, и в результате получилась такая статья:
Настройка сертификатов Let's Encrypt HTTPS на веб-сервере NGinx в Debian Linux Jessie
Внимание! Некоторое время на сайте могут наблюдаться проблемы, связанные с переходом на новый протокол. Я не робот, и сразу все неполадки заметить не могу. Можно рапортовать о проблемах мне на email (см. внизу страницы) или писать в гостевую книгу.
|
|
|