Pull to refresh
0
0
Alexzander thunder Shevchenko @thunderspb

DevOps

Send message

Оформляем красиво «битые» картинки

Reading time3 min
Views43K
Предлагаю вашему вниманию вольный перевод статьи "Styling Broken Images" с сайта bitsofco.de.

«Битые» картинки выглядят ужасно.

image

Но они не всегда должны так выглядеть. Мы легко можем применить CSS к элементу (тегу) img, чтобы улучшить его внешний вид — сделать его куда более привлекательнее, чем как он выглядит по умолчанию.

Если вам наскучили дефолтные уведомления о «битых» картинках, милости прошу под кат.
Читать дальше →

Windows-way синхронизация настроек между системами

Reading time6 min
Views17K
Раз на хабре началась неделя powershell, то я решил самое время из черновика достать статью.
В то самое время когда был ZverCD, я эксперементировал с ubunta'ой и искренне поражался почему не сделают единный репозиторий для программ windows. С тех пор прошло порядка 5 лет, и под windows появился пакетный менеджер. Хорошо в win10 сделали OneGet, но и без OneGet начали появляться аналоги. Своего рода прорывом был chocolatey. Собственно с написания скрипта под chocolatey началась моя эпопея по всеобщей тотальной синхронизации и переносимости. Каждая новая установка операционной системы, для меня выглядит запуском одного скрипта (в идеальном мире так и есть! ), с каждой новой установкой правда все более и более расширяемого. Этот рассказ о том какой софт я синхронизирую под windows чем и как.
Начнем

ZeroNet — По настоящему распределенная сеть — год спустя

Reading time3 min
Views67K
image

Примерно год назад я писал об этой сети ZeroNet — Распределенные сайты через Bittorrent и Bitcoin тогда еще хабр был торт и в комментариях были обсуждения о том насколько сеть распределена. Да, год назад действительно были вопросы, но теперь всё изменилось.

Внутри:
  • Что это такое этот ваш ZeroNet
  • Что изменилось за год
  • Почему она полезно с точки зрения защиты от цензурирования
  • Почему она полезна в качестве импорто замещения и «защиты сувереннитета»
  • Что есть в сети?

Читать дальше →

Очень шустрый блог на WordPress при помощи связки nginx + PHP-FPM + MariaDB + Varnish

Reading time13 min
Views92K
В данной статье я расскажу о том, как я заставил свой блог на WordPress летать за счёт грамотного кэширования, сжатия и другой оптимизации серверной и клиентской сторон. На момент написания статьи характеристики VDS следующие:
CPU: 1 x 2GHz
HDD: 10Gb
RAM: 512Mb
OS: Debian 8 x64

Схема работы системы выглядит следующим образом:

image
Читать дальше →

Как я переносил рабочую систему Ubuntu MATE 14.04 на новый SSD-диск

Reading time3 min
Views37K
Как-то, работая, заметил, что мой личный ноутбук на i5-ом, с 8 гигабайтами ОЗУ на Linux уступает служебной, менее мощной, «лошадке».

Было решено сделать «ход конём»: вместо старого SATA HDD был приобретен новый SSD диск. Админы по сути своей существа ленивые, и я не стал исключением. Вспоминать все, что было сделано заново, выстраивая свою рабочую среду, не хотелось от слова совсем, и перенос операционной системы был наименее беспроблемным вариантом в моем случае. Итак, приступим.
Читать дальше →

Простейшая 3D игра на libGDX под Android в 200 строк кода

Reading time12 min
Views73K
Я преподаю в IT школе Samsung программирование под Android для школьников. Программа обучения охватывает множество разнообразных тем. В числе прочих предусмотрен один урок, знакомящий учеников с основами 3D-графики под Android. Стандартный учебный материал этого урока показался мне очень бесполезным по нескольким причинам:
  1. Используется голый OpenGL, а поскольку на практике в программировании игр чаще всего используются готовые движки, то это мало полезно для школьников в контексте их собственных проектов. Кто-то может возразить, что увидеть в деле чистый OpenGL полезно для понимания основ, но здесь вступает в дело 2-й недостаток.
  2. Урок очень непонятный. У типичного школьника, пусть и разбирающегося в программировании, нет достаточной базы, чтобы понимать многое из того, что описано в уроке (например матрицы многие пройдут только уже в ВУЗе).
  3. В конце урока мы приходим к результату — отрисовка 3-х треугольников средствами OpenGL. Это настолько далеко от реальной 3D-игры, что легко может отбить интерес у школьника.

Поэтому я решил подготовить свой урок, описывающий основы использования libGDX под Android, а раз я все равно готовлю этот материал, заодно разместить его здесь — на хабре. В этом уроке мы сделаем наипростейшую 3D игру под Android, скриншот которой вы можете видеть во вступлении к статье. Итак, интересующиеся, добро пожаловать под кат.

Читать дальше →

Сервер логов Elasticsearch + Logstash + Kibana4 + Beats(windows/linux). Установка и настройка

Reading time10 min
Views104K
Встал вопрос централизованного хранения и обработки журналов с серверов на базе Linux и Windows. Мой выбор пал на продукты от Elastic.
Большинство прочитанных статей на тему установки приложений Elastic показались мне достаточно расплывчатыми и неполными.
Читать дальше →

Уязвимость ВКонтакте: доступ к превью фотографий из диалогов и скрытых альбомов любого пользователя

Reading time3 min
Views108K

Коротко


Была обнаружена уязвимость в мобильной версии сайта vk.com. Она позволяла просматривать превью скрытых фотографий, в том числе фотографии из диалогов пользователей, плюс можно было получить информацию о пользователях лайкнувших это скрытое фото. На данный момент уязвимости уже нет — её устранили полгода назад. ВКонтакте выразили благодарность в размере 700$ (нет, не в голосах).
Подробнее

Linux демон на PHP5

Reading time8 min
Views29K
Доброго времени суток, сегодня я буду описывать довольно забавную задачку, из области мало связанной напрямую с web-программированием, а точнее создание демона на PHP. Понятное дело что первым вопросом будет: «А зачем это надо?» Ну что ж, будем разбираться последовательно.

Читать дальше →

Пересылка больших файлов. Автоматическое получение ссылки для скачивания на почту

Reading time6 min
Views13K
Пользователям достаточно часто приходится заниматься пересылкой больших файлов как внутри локальной сети, так и за её пределы. К примеру, Пьеро нужно выслать Мальвине документацию объёмом 10 гигабайт. Тут на помощь не придет корпоративная почта, так как пользователи обычно не хотят заморачиваться с копированием ссылок и т.п. Если они в одной локальной сети, то поможет расшаренная папка, а если они на разных концах страны… Как правило, приходится пользоваться FTP-сервером, что зачастую не очень удобно, либо интернет-сервисами обмена большими файлами.

Так пришла идея создать удобный и контролируемый сервис для пересылки больших файлов в локальной сети.

Реализация на PowerShell, платформа Windows.

Требования:

  • Веб сервер опубликованный в интернет.
  • Расшаренная папка на компьютере под Windows (для определения владельца файла).
  • Настройка на сервере с шарой выполнения скрипта по расписанию, раз в минуту.

Как это работает:

  • Пользователь помещает ZIP архив в расшаренную папку на сервере.
  • Скрипт ищет ZIP-файлы в расшаренной папке и перемещает их в папку веб-сервера, затем отправляет письмо Владельцу файла.
  • Пользователю приходит письмо со ссылкой на скачивание файла через ваш веб-сервер.
  • Пользователь пересылает письмо со ссылкой на скачивание адресату.

Читать дальше →

Ускорение Python-скриптов без приложения умственных усилий

Reading time3 min
Views26K
Одно из распространенных применений Python — небольшие скрипты для обработки данных (например, каких-нибудь логов). Мне часто приходилось заниматься такими задачами, скрипты обычно были написаны наспех. Вкупе с моим слабым знанием алгоритмов это приводило к тому, что код получался далеко не оптимальным. Это меня ничуть ни расстраивало: лишняя минута выполнения не сделает погоды.

Ситуация немного изменилась, когда объем данных для обработки вырос. И после того, как время выполнения очередного скрипта перевалило за сутки, я решил уделить немного времени оптимизации — все-таки хотелось бы получить результат до того, как он потеряет актуальность. В рамках этой статьи я не планирую говорить о профилировании, а затрону тему компиляции Python-кода. При этом обозначу условие: варианты оптимизации не должны быть требовательными к времени разработчика, а, напротив, быть дружественными к «пыщ-пыщ и в продакшен».
Читать дальше →

Быстрая установка SSL сертификата от StartSSL в почтовом сервере iRedMail

Reading time4 min
Views16K
В повседневной практике использования почтового сервера iRedMail возникает необходимость замены SSL сертификатов (как при первичной установке, так и ежегодная смена). В топике описан процесс смены SSL сертификатов для iRedMail от StartSSL и предложен скрипт, позволяющий автоматизировать все необходимые действия.

Если вы заинтересовались, то добро пожаловать под кат.

UDP. По состоянию на 30.10.2016, инструкция утратила свою актуальность, в связи с изменениями внесенными разработчиками пакета iRedMail.

Читать дальше →

Собственный поисковик по раздачам The Pirate Bay

Reading time10 min
Views18K
В последнее время на хабре стало популярно делать собственные поисковики по RuTracker. Мне это показалось прекрасным поводом для того, чтобы отойти от скучной enterprise разработки и попробовать что-нибудь новое.



Итак, задача: реализовать на локалхосте поисковик по базе The Pirate Bay и попутно попробовать, что же такое frontend разработка и с чем её едят. Задача осложняется тем, что TPB не публикует своих дампов, в отличие от RuTracker, и для получения дампов требуется распарсить их сайт. В результате гугления и осмысления задачи я решил в качестве поисковика использовать Elasticsearch, для которого написать client-side only фронтенд на AngularJS. Для получения данных я решил написать собственный парсер сайта TPB и отдельный загружатель дампа в индекс, оба на Go. Пикантность выбору придавал тот факт, что ни к Elasticsearch, ни к AngularJS я до этого ни разу не прикасался и именно их опробывание было моей настоящей целью.
Читать дальше →

Быстрое создание phar файлов используя Box

Reading time6 min
Views10K


Phar — это аналог jar из мира Java, но только применительно к PHP. Phar упаковывает файлы проекта в специальный архив и позволяет легко переносить и устанавливать приложение без манипуляций с самим проектом в виде исполняемой программы.

Описание phar из официальной документации
Phar archives are best characterized as a convenient way to group several files into a single file. As such, a phar archive provides a way to distribute a complete PHP application in a single file and run it from that file without the need to extract it to disk. Additionally, phar archives can be executed by PHP as easily as any other file, both on the commandline and from a web server. Phar is kind of like a thumb drive for PHP applications.


Для создания phar файлов в PHP существует довольно развесистый API, но есть способ проще и удобнее — использовать проект Box.

Формат JSON файла


Проект Box позволяет описать процесс создания phar файла в удобном JSON формате.

Самый простой файл выглядит так:

{
    "files": ["src/Put.php"],
    "main": "bin/main",
    "output": "example.phar",
    "stub": true
}

Читать дальше →

Spark local mode: обработка больших файлов на обычном ноутбуке

Reading time3 min
Views24K
image
Всем привет.
4 января вышла новая версия Apache Spark 1.6 с bug fix новыми возможностями обработки больших данных. На Хабре написано немало статей по использованию этого инструмента от введения до опыта использования в проектах. Spark работает на большинстве операционных систем и его можно запускать в локальном режиме даже на обычном ноутбуке. Используя простоту настройки Spark в этом случае грех не воспользоваться основными функциям. В этой статье мы посмотрим как на ноутбуке быстро настроить обработку большого файла (больше оперативной памяти компьютера) с помощью обычных SQL-запросов. Это позволит делать запросы даже неподготовленному пользователю. Дополнительное подключение iPython (Jupyter) notebook позволит составлять полноценные отчеты. В статье разобран простой пример обработки файла, другие примеры на Python есть тут.
Читать дальше →

Pagekit: обзор модульной CMS на базе Symfony

Reading time7 min
Views34K
Pagekit: обзор модульной CMS на базе Symfony

Знакомьтесь: Pagekit — это новая модульная CMS от немецкой студии-производителя шаблонов YOOtheme, основанная на Symfony компонентах, а также Vue.js, Webpack, Doctrine и других современных технологий. Pagekit задумывался как сочетание простоты в управлении с гибкими возможностями для разработки — того, чего не хватает известным CMS на базе PHP, и имеющим множество анахронизмов.
Читать дальше →

Сборка и настройка FreeRADIUS 3 с поддержкой SQLITE

Reading time3 min
Views29K
Доброго дня, уважаемые.
Хочу поделиться с Вами решением одной творческой задачи. Надеюсь кому-то будет полезно.
Итак,

ДАНО:


маломощная железка с arm процессором и собранный под нее и установленный Debian 7 wheezy.

ЗАДАЧА:


поставить FreeRADIUS 3.0.X, настроить его на работу с БД SQLITE. Т.е., учетные записи пользователей (которых нужно аутентифицировать) RADIUS должен брать из БД SQLITE.
Читать дальше →

Бесплатный практический курс по Bash и другие хорошие новости

Reading time3 min
Views43K


Привет, Хабр!

Давно не писали про обновления в нашем образовательном проекте Хекслет, а тут как раз Новый год — самое время поделиться хорошими новостями. Мы сделали бесплатным популярный курс «Bash: Основы командной строки»! Это уникальный курс, потому что упражнения в нем (как и везде в Хекслете) выполняются в условиях, приближенных к боевым: вам доступен личный контейнер с root-доступом, в котором среди прочего запущена оболочка Bash.

Курс затрагивает навигацию, работу с файловой системой, пейджеры, перенаправления и потоки, историю, псевдонимы и другие аспекты работы с Bash, которыми должен владеть любой уважающий себя программист.
Читать дальше →

Использование облачной АТС pbxes.com для расширения возможностей VoiP / SIP телефонии

Reading time4 min
Views10K
Так сложилось, что у меня есть несколько SIP номеров от разных VoiP операторов в разных странах мира (США, Израиль, Украина, Россия). В какой-то момент, получив очередной звонок с предложением «купить слона» на мой израильский номер в 4 часа утра (я в США, а израильский телемаркетолог об этом, естественно, не догадывается), я понял, что надо что-то делать.

В случае с израильским провайдером все было просто — в личном кабинете провайдера изменил настройки, перенаправив все звонки от незнакомых номеров (которые не в «белом списке») в voice mail с 9 вечера до 7 утра.

Все бы ничего, но через какое-то время я стал получать звонки с предложением купить украинского слона (на украинские номера от Атлантис Телеком и Интертелеком) и российского слона (на номер от Задарма). А тут уже хуже — в личных кабинетах этих трех провайдеров нет возможности перенаправить звонок в voice mail по расписанию или заблокировать какой-то номер. В Задарма и Интертелекоме вообще нет voicemail, с переадресацией тоже не все хорошо (в Задарма — только безусловная переадресация), в Атлантис Телекоме и Интертелекоме — переадресация только на телефонные номера, но не на SIP URI.

В итоге, было найдено решение с использованием облачной АТС pbxes.com.

Кому интересно, приложением под катом (много картинок)

Читать дальше →

Как мы делали Linux-пингвинов к Новому году

Reading time2 min
Views4.6K


Почему пингвины?


Всё просто! Рано или поздно, но каждому IT-шнику хочется иметь некий талисман или атрибут, который бы своеобразно демонстрировал себе самому и окружающим, какую IT-религию ты исповедуешь. Так же как и с шаманскими бубнами, настало время и мягких игрушек. Я сам лично, хотел Linux-пингвина, но всё что было найдено — было мягко говоря «не совсем пингвин» :) Поэтому, нами было принято решение самим делать его.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity