Портрет 4X_Pro
Был в Сети сегодня, 02:11
Мультиблог
4X_Pro
Записки лишнего человека

Компьютерное

Adminer — легкая альтернатива phpMyAdmin

4X_Pro
Иногда бывает нужно выполнить на сайте несколько SQL-запросов, а ни SSH-доступ, ни PHPMyAdmin на хостинге по тем или иным причинам недоступны. Коненчо, можно загрузить и установить phpMyAdmin самостоятельно, но из-за его большого объема на загрузку и установку уходит достаточно много времени. В результате я стал искать какой-нибудь альтернативный скрипт, который состоял бы всего из одного файла и не требовал бы настройки, а только ввода логина/пароля. В итоге остановился на решении под названием Adminer. Это небольшой скрипт (около 200 Кб, если использовать английскую версию), который умеет показывать список и структуру таблиц, данные из них, выполнять SQL-запросы, делать экспорт и импорт данных. В общем, все необходимое для того чтобы быстро изучить и подправить базу данных сайта.

Редактор баз данных для Linux

4X_Pro
Долгое время для работы с базами данных MySQL (создания таблиц, редактирования данных, импорта, экспорта и т.п.) использовал замечательную программу HeidiSQL. Но увы, она существует только под Windows. Поэтому когда в очередной раз перебрался под Linux, встал вопрос о ее замене. Рассмотрев несолько вариантов, остановился на DBeaver (который поддерживает не только MySQL, но и множество других баз данных, например, PostgreSQL и SQLite) и является открытым ПО. В Ubuntu он устанавливается командой sudo apt-get install dbeaver-ce. Пока из недостатков выявил только один: интерфейс хуже в плане юзабилити. В частности, чтобы добраться до списка БД или списка таблиц в базе, нужно совершить больше щелчков мышью, так как индексы. В остальном программа вполне меня устраивает.

Google Maps: перемещение карты и маркеров

4X_Pro

В одном из предыдущих сообщений я писал про то, как вывести карту с помощью Google Maps API и поставить на ней маркер. Тема, как выяснилось, весьма востребованная, и я решил начать по ней серию публикаций, где буду рассказывать о том, как сделать различые действия с Google Maps. Итак, сегодня речь пойдет о перемещении самой карты и маркеров на ней при наступлении каких-либо внешних событий.

Читать далее…

Упрощаем разделение тем в PunBB

4X_Pro
Есть у меня с давних времен один форум, работающий на PunBB. В целом в нем меня все устраивало, кроме одного: очень неудобного разделения темы на несколько в случае возникновения оффтопика. Неудобство заключалось в том, что при разделении тема разбивалась на страницы точно так же, как при обычном просмотре, в результате чего если оффтопик шел на нескольких страницах, каждую из них приходилось вырезать в отдельную тему, а потом склеивать.
Наконец, мне это надоело, и я решил немного подредактировать исходный код moderate.php (который лежит в корне). Читать далее…

Преобразование PSD в TIFF с сохранением слоев

4X_Pro
Давно искал инструмент, который позволил бы конвертировать PSD во что-нибудь, что корректно читается GIMP (например, тот же TIFF) с сохранением слоев, причем так, чтобы это можно было делать под Linux. И вот вроде бы нашел подходящий сервис под названием Zamzar. Испытал, получил вполне приемлемый результат (но несколько слоев в результате конвертации оказались смещенными). Из недостатков сервиса можно назвать только ограничение на размер файла (50 Mb, но в большинстве случаев мне этого хватит) и то, что ссылка на файл высылается на EMail, а не выдается сразу же.

Обновление TextCMS до версии 1.01

4X_Pro
Рад сообщить всем читателям, что недавно я выпустил новую версию одной из своих разработкой — TextCMS. Она представляет собой предельно простую систему управления сайтом, работающую без использованя баз данных, где на одной странице любое динамическое содержимое можно комбинировать произвольным образом. В новой версии был заменени визуальный редактор и исправлено несколько незначительных ошибок.

Переключение раскладки по CapsLock в Lubuntu

4X_Pro

Установил недавно Lubuntu и обнаружил, что настроить с помощью GUI переключение раскладки клавиатуры по CapsLock не получается. Стал искать решение, и нашел следующее:

Читать далее…

Light: быстрый броузер для старых компьютеров

4X_Pro
Все популярные современные броузеры (Firefox, Chrome, Edge) имеют большой недостаток: они потребляют оперативную память просто в огромных количествах. Поэтому я давно искал броузер, который с одной стороны, поддерживал бы современные стандарты, с другой, расходовал бы память очень аккуратно. Перепробовал довольно много: QupZilla, KMeleon, Netsurf, Midori, но ни один из них в полной мере не устраивал: либо по потребленю памяти они оставались сопоставимы с Яндекс.Браузером (который я использовал в качестве основного), либо не поддерживают JavaScript, что делает невозможным их использование в качестве основного рабочего инструмента.
В итоге остановился на броузере под названием Light. По сути дела он представляет собой Firefox, из которого удалены все редкоиспользуемые функции: печать, аудит ссылок, синхронизация, поддержка WebGL и т.п. Читать далее…

Регулярные выражения для выделения ссылок

4X_Pro

Недавно потребовалось сделать автоматическое обрамление ссылок в тег <a>. Хотя на первый взгляд, задача совершенно тривиальная, обнаружилось несколько подводных камней. Во-первых, не все пользователи указывают протокол (http:// или https:// в ссылках). Во-вторых, требовалось распознавать ссылки не только на домен, но и на конкретную страницу сайта или вовсе содержать параметры после знака ?. В-третьих, распознавать кириллические домены. Кроме этого, нужно было сделать так, чтобы уже корректно обрамленная в тег ссылка не обрамлялась повторно, а также обеспечить безопасность, предусмотрев защиту от XSS, а также свести к минимуму ложные срабатывания.

Исходя из этих требований, были приняты следующие решения:

Читать далее…

Генерация ключа для шифра Вернама с помощью хеш-функций

4X_Pro

Недавно прочитал в Wikipedia про шифр Вернама, который теоретически взломать невозможно. Узнал оттуда, что на практике он не используется из-за того, что для него требуется генерировать случайный ключ, равный по длине самому сообщению, который не будет ни повторяться, ни повторно использоваться. И тогда возникла мысль: а что если использовать для генерации такого ключа криптографические хеш-функции. В этом случае взяв некоторое начальное значение (мастер-ключ), взять хеш от получившейся последовательности и зашифровать им первый блок (длина которого равна длине хеш-функции) сообщения, затем добавить получившееся значение к мастер-ключу и случайному числу, и зашифровать следующий блок и т.д. В результате получаем, что ключ для шифрования каждого следующего блока однозначно и просто генерируется из предыдущего при знании мастер-ключа, но получить мастер-ключ из хеша является сложной задачей в виду необратимости хеш-функций.

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

В итоге я получил следующий алгоритм шифрования:

Читать далее…

Страницы:
Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.

<