Полезные инструменты для редактирования сайта

При работе с системами управления содержимым сайтов само собой приходиться править их исходный код. Html, css, php, javascript. Желательно, чтобы этот процесс происходил как можно быстрее, и поможет в этом некоторый набор программ, о котором пойдет речь.

Первое — это, конечно же, хороший редактор кода. Использую Notepad++ (notepad-plus-plus.org), привычка — вещь страшная, никак не могу пересесть на что-то другое. Совсем никак. Notepad++ наше все. Лёгок, поддерживает подсветку синтаксиса огромного количества языков программирования. Под Linux можно использовать через эмулятор Wine. Работает быстро, вполне корректно.

Второе — инструмент сравнения файлов. К примеру, внесли мы изменение в файлы темы WordPress (какой-нибудь function.php), она возьми и обновись. 🙂  Всё — собственные изменения удалены, файл перезаписан. Для визуального сравнения текстовых документов в на предмет изменений в них отлично подойдет программа WinMerge (winmerge.org). Очень полезна, скажем, для определения того, что изменилось в одной версии проекта по сравнению с другой.

Но что делать, если кусочек нужного кода находится где-то в одном из множества файлов плагина? Не беда, найти его поможет популярный файловый менеджер Total Commander (ghisler.com). Достаточно зайти в папку с нужными файлами и папками, выбрать меню «Команды» —  «Поиск файлов«. Далее ставим галочку напротив строки «С текстом» , выбираем кодировки, пишем требуемый текст — найти. Готово! Масса времени сэкономлена.

Ну и четвертое — конечно же инструменты разработчика (ctrtl-shift-j) браузера Google Chrome. Как раньше специалисты без них обходились — это просто выше моего понимания. 🙂

Может быть сюда добавить ещё растровый графический редактор Gimp (gimp.ru)? Пожалуй, да. Кроссплатформенный и мощный. Он необходим. А чем пользуетесь вы?

«Чиз»-то оно да, только где фото хранить?

 

Краткий обзор плагинов WordPress для организации фотографий. 

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

Скажем, пару лет назад вопрос «где хранить фото для сайта» был практически закрыт. Конечно же на Яндекс.Фотках Почти что прямые ссылки (для «выпрямления» я писал как-то на php простенькую страничку, которой активно пользовался). Фото хранились в разных разрешениях, от 150px до оригинала, а объем дискового пространства был неограничен! Кроме того проводились различные конкурсы поддерживались комментарии, геотэги и прочее, и прочее. На специализированных ресурсах то и дело возникали мнения о том, что фотохостинги типа radikal.ru отомрут, зачем они нужны, раз есть Яндекс.Фотки?

Потом пришла весть, что все фото уходят на яндекс-диск, старые «прямые» ссылки на форумах/блогах сохранятся (спасибо на этом), а вот новые для вставки фотографий система не выдаст. Мы предприняли попытку спасти уникальный сервис Яндекс.Фоток, но наши обращения в различные инстанции и подписи под петицией не возымели должного эффекта. 🙁

Аналогом отечественного фотохостинга в англоязычном сегменте сети Интернет можно было назвать flickr.com. Предоставляли целый терабайт дискового пространства для фото. Опять же возможность хранить в разных разрешениях, возможность скачать файлы из альбомов в архиве zip. На wordpress даже готовый плагин вставки изображений есть (wp-flickr-press). Но владельцы сервиса поменялись и установили лимит на 1000 фото на бесплатном тарифе. Всё. Всё остальное удалить или плати. В долларах, конечно же.

И тут мы подходим к главному вопросу — как же хранить изображения? Ведь именно они «отнимают» наибольшее место на хостинге. Предположу, что в текущих условиях фотографии к записям логичнее хранить на том же хостинге, на котором расположен сам сайт. Если речь идет об организации 360-галереи, здесь вариант только на своем хостинге. Само собой изображения желательно сжать. Использовать графический редактор довольно долго. Для этой задачи мне понравился плагин под WordPress «Compress JPEG & PNG images» от TinyPNG.

Плагин использует внешний сервис для сжатия фото, может также автоматически уменьшать разрешения снимка по ширине и высоте. Сжимает изображения здорово. Например, панорамные фото уменьшил чуть ли не в 5 раз практически без потери качества! Также скрипт способен как оптимизировать сразу после загрузки, так и «анализировать» вообще все изображения в медиафайлах и преобразовывать пакетно. Минус плагина — на бесплатной подписке установлен лимит в 500 изображений в месяц. Но это тоже не мало.

Если стоит задача организовать обширные фотогалереи, например, для музея, есть предложение использовать google photos при помощи  wordpress-плагина с длинным названием Photonic Gallery & Lightbox for Flickr, SmugMug, Google Photos, Zenfolio and Instagram. 

По названию понятно, что поддерживает он немало сервисов. Правда настройка с google photos мне показалась несколько не интуитивной. Осуществляется через кабинет разработчика google. Сам фотохостинг «гугл фоток» хоть и предоставляет неограниченное пространство для фото, хранить фотографии в исходном разрешении, не затрачивая ресурсы google-диска нельзя. Если согласиться на меньшее разрешение — тогда пожалуйста, пока ограничений на хранение нет. Однако просто так фото на какой-нибудь форум не вставить, так что фотохостингам вроде ru.imgbb.com еще жить да жить.

Итого для оптимизации изображений, хранящихся на самом хостинге, можно использовать плагин Compress JPEG & PNG images.

Для вставки изображений с flikr.com — wp-flickr-press (только тысяча в бесплатном варианте).

Для организации больших фотогалерей google photos и плагин Photonic Gallery & Lightbox for Flickr, SmugMug, Google Photos, Zenfolio and Instagram. 

Если Вам известны более простые решения — просьба написать в комментариях. 🙂

С праздником Победы. Фото и видео в формате 360.

Сегодня в городе Гусеве прошел торжественный парад, посвящённый 74-летию Победы в Великой отечественной войне. Громкие и пафосные слова писать не буду, для освежения памяти лучше прочесть «Блокадную книгу» Даниила Гранина и Алеся Адамовича. Хотя бы выдержки. Полностью и я прочитать не смог — настолько страшные события там описаны.

Для того, чтобы отразить мероприятие в сети, решил использовать 360-камеру Samsung Gear 360 sm-r210. Производитель заявляет способность снимать видео в разрешении вплоть до 4096×2048 в прогрессивной разверстке и 24-х кадрах в секунду. В качестве видоискателя используются смартфоны Galaxy S8,  S8+, Galaxy S7 edge, S7, Galaxy Note5, Galaxy S6, S6 edge, S6 edge+, Galaxy A5, A7 (2017) с ОС Android 5.0 и выше, а также iPhone 7, 7+, 6S, 6S+, SE с ОС iOS 10.0 и выше. С китайским Vernee Thor камера дружить отказывается, даже через модифицированное приложение, поэтому снимать пока приходится «вслепую».

Можно снизить разрешение видео и добиться 50 кадров в секунду. А вот выбора размера фото я не нашел — только 15 мегапикселов и точка. В помещении камере явно не хватает света. Склейка фото и видео происходит в специализированной программе CyberLink Gear 360 ActionDirector. Причём если со склейкой видео всё понятно, то с фотографиями не всё так очевидно. В программе просто нет опции вывода «склеенного» фото. Но, как оказалось, вытащить их очень просто. Во время склейки программа сохраняет файлы в определённую папку, которую можно просмотреть, нажав «правка» — «параметры» — «файл». В строке «Папка экспорта» и лежат склеенные фото.

Отдельного упоминания заслуживает вкладка «Аппаратное ускорение» параметрах. У меня при активации опций «Включить аппаратное кодирование», «Включить аппаратное кодирование» видео воспроизводится и сохраняется с большими артефактами в виде квадратов. ПРи отключении опции всё нормально. ВИдеокарта семейства Radeon RX.

Фотографии сшиваются чуть ли не мгновенно, склейка практически не видна, хотя качество в помещении далеко от идеального. А вот для монтажа видео, да ещё в 4К, нужен довольно производительный компьютер. Ниже представлен скриншот загрузки 6-ядерного, 12-поточного CPU Xeon X5690 (3.47 Ghz) при выводе 360 4К видео.

Просматривать полученный результат лучше программой VideoLan (VLC). Очень желательно, чтобы компьютер был оснащён производительной видеокартой с поддержкой аппаратного декодирования кодека h.264, которая и возьмёт на себя основную нагрузку при воспроизведении контента. Как по мне, то видео получаются с излишне выкрученным «зумом», в результате чего кажутся смазанными. В том же VLC достаточно немного изменить масштаб колесиком мышки, как сразу появляется чёткость. Ниже представлен пример воспроизведения в программе.

А вот при загрузки в youtube/facebook такой функции нет. Как настроить «зум по умолчанию» в CyberLiink ActionDirector я так и не нашел. Возможно это поддерживается в каких-то более продвинутых программах монтажа, вроде Adobe Premier.

Ниже представлены фотопанорамы в формате 360. Трафика довольно много, перелистывание фото происходит при помощи стрелочек.

Закончу же вольной цитатой одного из блогеров — «Дай-то Бог, чтобы войны проходили только в комментариях«.

WordPress повышает требования к хостингу

Вчера состоялся выпуск новой версии системы управления контентом — WordPress. Самая популярная система во всём мире. Мои сайты также работают на ней. Но если в версии 5.1.1 WordPress только мягко намекал о том, что пора переходить на интерпретатор PHP 7+, то уже минимальные требования 5.2 — PHP уровнем не ниже 5.6.20

Согласно статистике разработчиков, только 2% сайтов на WordPress используют в качестве интерпретатора версию PHP 5.2.4 и 20% версии от 5.3 до 5.5. Конечно же я вхожу в эту двадцатку. На одном из серверов у меня установлен PHP 5.5.9 (эээх, одной сотой не хватает), на другом как модуль Apache 5.4.16.

Что ж придется обновлять ПО на серверах. Вчера при обновлении WordPress у меня слетела админка. Стили просто не подгружались, пришлось откатываться из резервной копии (всегда делайте копии перед обновлением!). Сегодня обновился на том же самом хостинге — проблем никаких не заметил. То ли изначально выложили немного недоработанную версию, потом исправили, то ли у меня был какой-то странный, непознанный глюк.

Ранее одним из самых требовательных к хостингу я считал «движок» форума phpbb 3.2.X (аж 5.4.8 ему требовалось), теперь же пальму первенства перехватил WordPress. Столь радикальные изменения вызваны, скорее всего, необходимостью проверки обновлений и дополнений по цифровой подписи. При установке обновлений в WordPress основным фактором обеспечения безопасности было доверие к инфраструктуре и серверам WordPress . В случае компрометации серверов проекта атакующие имели возможность подменить обновление и распространить вредоносный код среди сайтов на базе WordPress, использующих систему автоматической установки обновлений. На стороне пользователей подобная подмена осталась бы незамеченной.

Внедрению проверки источника обновлений по цифровой подписи мешало то, что поддержка необходимых криптографических алгоритмов появилась в штатной поставке PHP относительно недавно. Нужные криптографические алгоритмы появились благодаря интеграции библиотеки Libsodium в основной состав PHP 7.2.(!) Выходом стала разработка и включение в состав WordPress 5.2 компактного варианта Libsodium — Sodium Compat, в котором на языке PHP реализован минимальный набор алгоритмов для проверки цифровых подписей. (подробнее можно прочесть здесь: https://www.opennet.ru/opennews/art.shtml?num=50649).

Так что ещё легко отделались 🙂 CMS WordPress используют более 30% сайтов, представляете, что было бы в случае компрометации обновлений? На всякий случай публикую таблицу версий Ubuntu Linux LTS и нативной поддержки php из репозиториев по умолчанию.

Версии PHP в Ubuntu

Ubuntu PHP
12.04 LTS (Precise) 5.3
14.04 LTS (Trusty) 5.5
15.10 (Wily) 5.6
16.04 LTS (Xenial) 7.0
18.04 LTS 7.2

В Ubuntu 18.04.2 LTS (Bionic Beaver)  поддержка 32-битных платформ прекращается и если есть желание сделать сервер из старенького Intel Pentium IV — нативно установить не выйдет. Пришло время обновлений.

Изучаем ошибку SQL в анкете

Наверное, одни из самых технически оснащённых, мощный и развитых комплексов дополнительного образования являются научно-технологические фабрики «Кванториум». Там и ЧПУ-станки, и 3D/фотополимерные принтеры, и системы виртуально/дополненной реальности, а также многое многое другое.

Само собой, когда пришло положение о конкурсе «Кванториада» — мы со студенческим кружком не могли пройти мимо. Задания, как по мне, весьма не простые, но в номинации  Low cost high-tech (сделай дешёвый аналог дорогому продукту) можно попробовать принять участие. Не победим, но заявим о клубе. 🙂 Сюрприз ждал в анкете регистрации, при попытки ввода даты рождения участников получаем SQLSTATE[22008]: Datetime field overflow: 7 ERROR: date/time field value out of range: «23.01.1989» HINT: Perhaps you need a different «datestyle» setting. The SQL being executed was: UPDATE «user» SET «updated_at»=1557245448, «birthdate»=’23.01.1989′ WHERE «id»=89

Что в переводе означает переполнение поля даты и времени, значение поля даты / времени вне диапазона. Отчего так произошло?  Предположу, что по умолчанию используется формат YYYY-MM-DD (год, месяц, день), ввести же предлагают в формате день, месяц, год. Судя по сервисному сообщению используется PostgreSQL. Следует использовать параметр DateStyle для управления тем, как PostgreSQL генерирует даты.

Параметр DateStyle (string) задаёт формат вывода значений даты и времени, а также правила интерпретации неоднозначных значений даты. По историческим причинам эта переменная содержит два независимых компонента: указание выходного формата (ISO, Postgres, SQL и German) и указание порядка год(Y)/месяц(M)/день(D) для вводимых и выводимых значений (DMY, MDY или YMD). Эти два компонента могут задаваться по отдельности или вместе. Ключевые слова Euro и European являются синонимами DMY, а ключевые слова US, NonEuro и NonEuropean — синонимы MDY.

Ну а дальше нужен доступ к исходным кодам. 🙂 Собственно система позволяет произвести регистрацию и без ввода даты, даже несмотря на то, что поле помечено красной звездочкой, как обязательное. Само собой мы написали в техническую поддержку. Заодно появился повод создать ещё одну красивую электронную почту — evrika@katip39.ru. Пишите 🙂

1С: Новая угроза?

Сегодня позвонил друг из компании, которая занимается обслуживанием платформ и конфигураций 1С. С его слов: у клиентов есть сервер под управлением Windows Server (извините за каламбур), на нём установлено ПО 1С: Предприятие с конфигурацией 1С Бухгалтерия.

Сотрудники бухгалтерии организации уходят на майские праздники, возвращаются, а там… Картина Репина «Приплыли».

  1. Файлы зашифрованы. Текстовые документы, таблицы и даже картинки. Что самое страшное зашифрованы даже файлы этой самой 1С, включая 1Cv8.1CD, чего раньше известные вирусы-шифровальщики не делали. При этом административного root-доступа по умолчанию без ввода пароля у бухгалтеров нет.
  2. Переименованы процессы в Windows. Раньше такого не видел.
  3. Очищены файлы журнала, определить по логам было ли подключение по RDP не представляется возможным.
  4. Не выставлены требования — это вообще странно. Обычно авторы шифровальщиков требуют немножко биткоина.
  5. Установленный Антивирус Касперского не помог. (хотя продукты Касперского я считаю одними из самых лучших).

В общем что-то очень странное, страшное и непонятное. И копий базы на внешних носителях тоже не оказалось, есть только давнишний архив от начала года. Ооох представляю состояние сотрудников, у меня у самого аж всё сжалось, пока слушал. Потом тут же побежал делать дополнительные копии на внешний жесткий диск, который запер в сейфе. При чем у них было организовано копирование средствами Windows на дополнительный HDD, архивы также оказались зашифрованы.

Сотрудники собираются подавать заявление в полицию, но что-то мне подсказывает — будет очередной отказной материал. В общем подходим мы к проблеме надежного резервного автоматизированного копирования. Автоматизировать копирование на второй жесткий — ничего сложного. Достаточно через планировщик указать запуск бат-файла примерно с таким кодом

 

set sFolderName=D:\backup\%date:~6%.%date:~3,2%.%date:~0,2%
if not exist %sFolderName% (
md %sFolderName%
)
robocopy C:\base D:\backup\%date:~6%.%date:~3,2%.%date:~0,2%

 

Копирует файлы из C:\base в папку под именем даты, находящуюся в D:\backup

Только от вируса-шифровальщика, коли он запустился под root, это не поможет. Тем не менее советую под Windows помимо основного антивируса установить Kaspersky anti-ransomware tool — бесплатная утилита от шифровальщиков.

Автоматизированное копирование мне видится так:

  1. Где-то в 2:30 отдельная машина под Linux/FreeBSD предоставляет доступ к сетевому хранилищу до 3:10
  2. В 2:35 планировщик заданий запускает bat-файл, который копирует данные в сетевое хранилище (до 3:10 успеет).
  3. В 3:10 доступ к сетевому хранилищу прекращен со стороны машины под Linux/FreeBSD. Всем.

Может быть я не прав? Так давайте же обсудим возможные решения на форуме. https://makson.ru/forum/viewtopic.php?f=8&t=1055

А облака, белогривые лошадки

 

Один умный человек мне сказал — избавляйся от флешек. Флэшка — это очень небезопасно. Есть у неё два очевиднейших минуса: 1) Они часто теряются. 2) Они также часто ломаются.

Одно из решений — хранить в «облаке», реализовав его или на своём сервере через VPN, либо использовать облачные хранилища от известных компаний, вроде Яндекс, Майкрософт, Apple и так далее. Минус заключается в том, что нужно использовать или браузер для скачивания/загрузки файлов, или же ставить программу синхронизация, которая делает копию на жестком диске. А если диск — это 70 гигабайт SSD? Совсем не радостно. Казалось бы вопрос может решить протокол webdav — подключил себе Яндекс.Облачко по этому протоколу и видишь себе ещё один диск. А у моих облачков по 175 гигабайт, так уж получилось. 🙂

Может быть я что-то делаю не так, но подключение по webdav что к Яндекс-диску, что к OneDrive через проводник крайне медленное! А при попытке через этот самый протокол скачать файл более 150 мегабайт с Яндекса получил сообщение о том, что размер слишком велик. OneDrive также принимать файл в 200 мегабайт через проводник отказался. При этом если с Яндексом использовать специализированную программу, вроде Cyberduck, то всё работает исправно.

Немного погрустив, я начал думать о реализации облака на отдельно взятом роутере с поддержкой flash-накопителя. Понадобится поддержка DDNS (ip-адрес дома не статический), собственно flash_накопителя и VPN по протоколу PPTP. Остановился на двух моделях, которые есть в наших магазинах: TP-LINK ARCHER C59 и ASUS RT-AC51U. Пошел уже денежку снимать, как наткнулся на статью с популярного сайта habr.com В ней описывалось программное обеспечение Disk-O (disk-o.cloud). По словам разработчика Диск-О превращает облака в жесткие диски. Достаточно установить приложение и подключить облачные хранилища, чтобы ваши облака отображались в списке устройств вместе с физическими дисками.  

Поддерживаются операционные системы Windows и MacOS. Скачал, попробовал — мне понравилось. В проводнике появляется диск, который ничем от обычного не отличается. Ограничения только по скорости Интернет-соединения. Программы поддерживает куча различных сервисов (облако mail.ru, dropbox, Яндекс.Диск, Google Drive и т.д.).

И теперь к минусам. Программка платная. Запускается на 30 дней в демо-режиме. А бесплатно она позволяет соединяться только с одним аккаунтов в облако mail.ru. А там у меня всего 8 гигабайт. Ну хотя бы так. Что мы получаем? Маленькую медленную (точнее ограниченную скоростью интернета) флэшку, тем не менее весьма надежную (не теряется, не ломается), которую можно подключить к любому компьютеру дома или на работе под управлением Windows/MacOS.  Отличное решение хранить копии документов, или научных работ при их написании. В общем — использую, на первое время хватит. А далее, возможно, буду приобретать умный роутер и настраивать облако в квартире.

Хотел записать поучительное видео, а вышло наоборот?

Знакомое выражение «Деньги из воздуха». Как его не применить к игровым микротранзакциям, особенно за предметы, не влияющие на игровой процесс, а всего лишь меняющие оформление (скин)? Особенно в этом деле преуспела такая игра, как Counter-Strike: Global Offensive (CS:GO). Картинки с изображением оружия (не влияющие на игровой процесс) могут стоить от 50 копеек, до 200 тысяч рублей (например картинка-3D модель снайперской винтовки AWP «История о драконе») и даже выше!

Как грибы появляются сайты, где можно как купить «скин» за реальные деньги, так и «выбить» его из кейса. То есть покупается возможность прокрутить кейс, скажем за 50 рублей, из которого может моделька оружия и за 3 рубля, и за 700 рублей. Чаще, конечно, первое. Причём авторы игры явно «троллят» игроков, иначе как объяснить, почему картинки-скины ножей (которые в игре используется гораздо реже, чем огнестрельное) стоят от 3000 тысяч, а «скин» перчаток, которые видит только сам игрок, и того выше!

Возможно, это связано с развитием Youtube-каналов? Тоже вариант. Таким образом рынок этих самых скинов сформировал некую субкультуру коллекционирования компьютерных пикселей за вполне реальные деньги. И вот уже игрок в очередной раз пополняет баланс в надежде выбить нечто дорогое, дабы повысить мнимое уважение, а вместо этого сливает деньги просто в никуда. В воздух.

Собственно, об этом я и пытался сказать в этом видео, показать на собственном примере но…. взял и окупился на одном из кейсов раза так в 4. Теперь не знаю, что написать. В общем не открывайте кейсы и поменьше играйте в CS:GO, лучше займитесь самостоятельной разработкой этого «скина» в каком-нибудь Blender 3D. 🙂

А теперь само видео. Извините за звук, писал на другую звуковую карту и забыл поставить одну галочку в программе 🙂

Размещу на своём хостинге студенческий Интернет-проект

Отсутствие специализированной материально-технической базы не должно стать препятствием на пути реализации студенческого проекта. Главное — желание, остальное попросим, одолжим, арендуем, приобретём наконец.

К сожалению с прискорбием наблюдаю тенденцию закрытия бесплатных хостингов с поддержкой php и mysql. К примеру раньше был очень популярен hostinger.ru, сейчас же они перешли только на оплачиваемые тарифы. Есть неоплачиваемый тариф у beget.ru, но на парковку бесплатных доменов в зоне tk установлен запрет. Что-то предлагает 000webhost.com, но у меня с регистрацией почему-то возникли какие-то проблемы. Ээх, а ведь ещё в 2007-м году я находил не просто хостинг, а вполне себе рабочую VPS для обучения с Линуксом и Putty. Чатовский бот у меня там крутился на Perl 🙂 Были времена.

В общем к чему это я всё? У нас есть web-ресурсы, у студента есть web-проект. Разместим студенческий сайт на нашем сервере совершенно бесплатно с возможностью парковки домена из любой зоны.

Характеристики: Apache 2.4.6, PHP от 5.4 до 7.3. В качестве базы данных MariaDB 5.5.6. Предусмотрена защита от DDOS и поддержка SSL сертификатов для HTTPS (Let’s Encrypt или собственный).  Это не сервер колледжа, дата-центр физически находится в Москве. Вам нужны какие-то специфические процессы, вроде icecast для потокового вещания, или Node.js для сайта на Javascript? Тоже не проблема, если вы готовы заниматься своим проектом. Пишите, решим. Нужна консультация как и что настроить? Поможем. С вас главное идея, ну и маленькая ссылка на один из проектов студенческого научного клуба «Эврика» 🙂

E-mail тот же: maksim@makson.ru