Pull to refresh
11
0
Олег @nesmit

User

Send message

Мультидоменность в Apache без лишних хлопот на локальном хосте

Reading time3 min
Views49K
Интернет пестрит руководствами по настройке виртуальных хостов в Apache. Но, в большинстве случаев, создание такого поддомена представляется хлопотным делом.
По «стандартной» инструкции предлагается сделать следующее:
  1. Создать папку для сайта
  2. Создать конфигурационный файл с именем будущего домена
  3. Включить сайт специальной опцией
  4. Перезагрузить Apache
  5. Прописать наш домен в файле hosts

Некоторые пытаются оптимизировать данный процесс различными скриптами, но проблемы это, по сути, не решает.
Итак, попробуем добиться, чтобы процесс создания поддомена сводился лишь к созданию папки для сайта. Возможно ли это? Проверим…
Читать дальше →

Библиотека Qwt: как построить график функции на плоскости?

Reading time8 min
Views38K
Скриншот простейшей программы, демонстрирующей использование виджетов Qwt
Уже пять лет я не пишу приложения с GUI, потому предложение зав. кафедрой подготовить для его лекции программу, строящую некие графики, поначалу меня несколько расстроило.

Как настоящий программист я решил найти самый легкий (и полезный для саморазвития) путь.
А именно, это задание оказалось хорошим поводом для того, чтобы познакомиться с Qt и библиотекой Qwt. Заодно я узнал, что приложения с GUI, оказываются, могут быть кроссплатформенными, а их код не менее элегантным, чем у приложений с «интерфейсом в стиле Unix™».

Итак, Qwt — библиотека виджетов для программирования приложений, имеющих техническую направленность. Она содержит набор виджетов, представляющих собой всевозможные слайдеры и дисковые «номеронабиратели», виджеты для построение гистограмм. Но здесь я расскажу, как Qwt применить для построения самых обычных двумерных графиков функций вида y = f(x).

Дальше в данной заметке
  • приводится ссылка на исходный код моего простейшего примера (+ исполняемые файлы) и инструкция по его компиляции;
  • рассказывается, как же в этом примере всё устроено;
  • для новичков описывается компиляция и установка Qwt.

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

Оптимизация Ubuntu (и прочих Linux-ов) под SSD

Reading time4 min
Views206K
Доброго времени суток всем читающим. В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.
Читать дальше →

Генерим PDF бочками

Reading time6 min
Views13K

Предыстория


На хабре неоднократно упоминались различные инструменты и способы создания скриншотов WEB страниц.

Хочу поделиться собственным «велосипедом» для создания PDF на Python и QT, дополненным и улучшенным для централизованного использования несколькими проектами.

Изначально генерация запускалась из PHP скрипта, примерно так:

<?php
// локальный файл
exec('xvfb-run python2 html2pdf.py file:///tmp/in.html /tmp/out.pdf');
// или URL
exec('xvfb-run python2 html2pdf.py http://habrahabr.ru /tmp/habr.pdf');
?>

этого было достаточно и все было хорошо…
Читать дальше →

Почему в WiMax и LTE используют OFDM

Reading time18 min
Views124K


Аббревиатура OFDM расшифровывается как Orthogonal frequency-division multiplexing. В русскоязычной литературе встречается несколько различных переводов, несущих, в принципе, один смысл: OFDM — это механизм мультиплексирования (уплотнения) посредством ортогональных поднесущих.



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





Иллюстраций: 18, символов: 27 399, строк кода: 99.



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

Читаем QR код

Reading time5 min
Views1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →

SSH-туннели — пробрасываем порт

Reading time2 min
Views437K
Не всегда есть возможность, да и не всегда надо, строить полноценный туннель с интерфейсной парой адресов. Иногда нам нужно лишь «прокинуть» вполне определённые порты.

Тут важно понимать, что туннель можно организовать как изнутри сети, к ресурсам которой вы хотите получить доступ, на внешний ssh-сервер. Также можно организовать туннель с хоста в Интернете на пограничный ssh-сервер сети, чтобы получить доступ к внутренним ресурсам.
Читать дальше →

Приём и обработка SMS-сообщений на Linux-машине

Reading time5 min
Views43K
В одном из наших свежих проектов команде разработчиков была поставлена задача собрать максимально реальные контактные данные о пользователях нашего сайта. Жаркое обсуждение правильных и неправильных форм регистрации, одно- и двушаговые, дополнение информации по мере пользования сайтом… Казалось поток идей не остановится. Однако ни одна из них не гарантировала, что в результате мы не получим кучу никчемных данных. Валидировать? Можно, но разве все предусмотришь? Активация учетной записи через почтовый ящик для его валидации? Но куча сервисов типа 10 Minute Mail сводят на нет эффект. К тому же, специфика проекта не позволяла слишком растягивать процесс регистрации. Решено было, что пользователь должен зайти, сделать своё дело, а потом уже активировать или нет свою учетную запись. В конце концов прозвучала фраза «А давайте активировать по SMS!». Поиск провайдеров, изучение прайс-листов и отказ от идеи взвалить обработку SMS на стороннюю контору… Стало понятно, что принимать и обрабатывать их придется самим.
Читать дальше →

Система автоматической генерации настроек DNS-сервера Bind

Reading time5 min
Views7.9K
По службе приходится часто и много создавать зоны ДНС, добавлять или изменять в них записи. Вручную это довольно кропотливый и сложный процесс: ведь надо держать в голове синтаксис и не ошибаться в мелочах. Для таких вещей самое оно заставить работу выполнять компьютер.

IAdmin — это система создана для автоматической генерации конфигов Bind на хостинговом сервере и представляет собой базу iadmin в БД MySQL и скрипт, который на основании данных из базы генерирует конфигурационные файлы. Для настройки Bind используются таблицы dns_domains, dns_records, dns_subgmail. Основной скрипт, написанный на перле читает данные из БД iadmin и создаёт файлы конфигурации. Файлы зоны генерируются в дирректории /var/cache/bind/. Там же хранятся и прочие файлы зон, которые не обслуживаются системой iadmin. Этой же системой создаётся конфиг для secondary-DNS, который туда и переносится. До тех пор, пока скрипт не отработает, все изменения из БД НЕ материализуются.
Читать дальше →

Экстремальное восстановление данных с деградировавшего 5го рейда

Reading time8 min
Views13K

Написано на реальных событиях.


Любое повторение действий и необдуманные решения могут привести к полной утрате данных. Не для HowTo-шников, данный материал лишь для воссоздания картины о представлении данных на дисковых носителях.

Итак, приступим. Вводные данные:
  • 7 дисков, 2 primary-раздела на каждом;
  • 1й раздел 7и кратное зеркалирование (RAID1);
  • 2й раздел RAID5, под которым крутится LVM.

Два диска отказывают в одночасье из-за скачка электричества и каких-то еще проблем с железом. Попытки ассемблировать диски обратно не увенчались успехом, т.к. система проработала в автопилоте на умершем рейде часа два, в добавок ко всему диски то оживали то умирали заново, ядро не отрабатывало какой диск на каком месте в данный момент, т.е. что на них писалось и как это происходилос — можно только догадываться.
В общем, имеем, полностью погибший рейд. и mdadm тут бессилен.
Читать дальше →

Командная строка на службе фотографа-линуксоида

Reading time4 min
Views4.6K
Здравствуйте, хабралюди!

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

Для Линукса, которым я пользуюсь практически 100% времени, есть много различных графических инструментов для работы с фото. Но иногда бывает, что нужной функции в используемой программе — нету.
Или она есть, но ты не смог её найти. Что же делать? Конечно же, использовать bash.

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

Используем GPS в Ubuntu

Reading time3 min
Views24K
Многим сисадминам нравится телефон нокиа Е61. Для своего времени, напичканый разными форматами связи, помимо стандартного GSM/UMTS, ИК, блютус и WiFi, (push-to-talk). QWERTY-клавиатура (полная). Большой яркий экран. Качественная сборка и металлическая спинка. Было в телефончике и несколько минусов, некоторые считают их несущественными. Итак: нет камеры, большой размер, нет FM, и нет GPS. Кроме размера, все остальные проблемы решаемы. Для GPS я приобрел nokia LD-3W.
Дальше

Кодирование видео для веб-проектов

Reading time7 min
Views28K
image
Доброго времени суток.
Многим web-программистам рано или поздно нужно работать с видео. Такая задача возникла и у меня.
В Интернете есть много статей на форумах и блогах, как на русскоязычных, так и на зарубежных сайтах. Но, проделавши, так же как и предлагалось в инструкциях — результата ожидаемого не дало. Что и послужило поводом для этой статьи. Думаю, она поможет таким же как и я многим начинающим.
Читать дальше →

Парсер RSS на bash для Лостфильма: щадящий режим для RSS сервера, проверка скачанного

Reading time3 min
Views5.9K
Доброго времени суток!
Когда-то, благодаря этому топику, был написан неплохой парсер для Лостфильма. Сейчас я хотел бы поделиться собственной доработкой скрипта, связанной с изменением формата ссылок на Лостфильме, добавлением проверки на обновление ленты и проверки скачанного.

Прежде всего, что-бы снизить нагрузку на RSS сервер, при запросе ленты с помощью wget нужно использовать «If-Modified-Since:». Тогда, при отсутствии обновлений, мы не будем качать и обрабатывать всю ленту. Такой подход снизит нагрузку на сервер (и немного на наш компьютер).
Используем следующий вариант команды:

# Подготовка заголовка If-Modified-Since
lastmod="$( grep -m 1 Last-Modified response.out )"

header="If-Modified-Since:"${lastmod#*:}

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

Автоматические хосты для веб-разработки (FreeBSD)

Reading time2 min
Views6K


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

Как вариант, можно скриптами обновлять конфиги apache и файл hosts.

Другое решение, настройка собственного DNS сервера с зоной верхнего уровня.
Это мы и сейчас и проделаем.

Итак, создадим зону ".dev" (используя демон named и apache под FreeBSD)
Читать дальше →

Лайтпак 5.5 опубликован

Reading time1 min
Views8.3K
Читатели помнят, что ещё в декабре прошлого года, после публикации пользователя brunql мы с ним и timsat решили всерьёз взяться за open-hardware проект, который назвали Лайтпак. В феврале мы даже презентовали вам ревизию 4.3 после которой к проекту присоединилось много светлых голов.

А сегодня я готов показать вам чего мы добились к версии 5.5, ставшей первым коммерческим вариантам Лайтпака, который можно купить за деньги:


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

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

Reading time5 min
Views102K

Рассматривается библиотека NetworkX предназначенная для создания, манипуляции и изучения структуры, динамики и функционирования сложных сетевых структур.
Рассмотрены основы использования библиотеки в качестве инструмента обучения, прикладного программирования или научных исследований.
Основой для описания библиотеки служат официальные материалы с сайта.
Рассмотрена версия библиотеки 1.5.
Читать дальше →

Аудит. «Черный ящик»

Reading time6 min
Views13K
В данной статье я предложу вам технику аудита «черного ящика», которую можно освоить не обладая особыми знаниями и применить ее относительно своих ресурсов.

Естественно, статью можно перевести и в технику взлома ресурсов. Но чтобы знать, как защищать — надо знать, как взламывать. Ответственность за приобретенные знания вы берете на себя ;)

И если вы, как разработчик, будете знать хотя бы некоторые принципы и техники, что используют хакеры — думаю вам станет чуть спокойнее за них (ресурсы) и результат вашей деятельности приобретет более высокий уровень

В статье отображен аудит базового уровня, сохраняем низкий порог для чтения и понимания.

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

Qt. Создание виджета-консоли для графического приложения

Reading time5 min
Views25K
Привет добрым людям.
При прочтении этого заголовка читатели могут подумать: зачем смешивать консольные и графические приложения – консоль в GUI-приложении не нужна. А вот и нет, смею заметить. Иногда совмещение функциональной консоли с полным набором команд и графического отображения для удобной навигации и просмотра данных может дать в итоге мощный инструмент.
И у меня есть пример.
Начав использовать быстрое key-value хранилище данных Redis для своих проектов, я обнаружил, что на данный момент нет ни одного вменяемого desktop-приложения для просмотра, редактирования и администрирования баз данных Redis. Есть только консоль от разработчиков, веб-интерфейс Redis Admin UI, который для своей работы требует .NET (что само по себе уже отпугивает) и пару Ruby-приложений, сделанных, похоже, на скорую руку, на коленке.
Хотелось бы иметь что-то удобное и быстрое, как сама база данных Redis. Поэтому я решил восполнить этот пробел и написать такой инструмент. Так как нужен быстрый – то C++, так как нужен кроссплатформенный – то Qt.

RedisConsole

Из-за того, что все возможности базы данных не реализуешь, да они и могут появляться каждый день новые, нужно было добавить в графический интерфейс консоль. На основе какого виджета в Qt ее имитировать, и как, и хочу вам рассказать.

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

Information

Rating
Does not participate
Location
Домодедово, Москва и Московская обл., Россия
Date of birth
Registered
Activity