Search
Write a publication
Pull to refresh
7
0
Send message

8123 байта хватит каждому

Reading time2 min
Views11K
Сегодня во время перевода одного сайта с таблиц MyISAM на InnoDB, у последних выяснилась одна интересна особенность. Запрос на изменение движка для двух таблиц возвращал странную ошибку «Got error 139 from storage engine». После поиска информации на эту тему, было выяснено, что данная ошибка возникает тогда, когда какая-либо строка таблицы не вмещается в половину страницы памяти, с которыми работает MySQL. Страницы эти равны 16 Кб, а половина, стало быть, 8 Кб.

Само по себе ограничение довольно странное, но на первый взгляд кажется трудно достижимым, ведь как известно, MySQL хранят текстовые данные в хранилище, отдельном от табличных строк. Оказалось, что это верно только на половину. На самом деле InnoDB хранит в отдельном хранилище только «излишки», к коим он не относит первые 768 байтов каждого текстового поля. Т.е. любой текст будет отъедать от длины строки столько байт, сколько он содержит, но не больше 768. Несложно подсчитать, что максимальное число текстовых полей длиной от 768 байт, которое можно безопасно хранить в одной таблице — 10. И действительно, если запустить пример, все пройдет гладко. Но стоит увеличить количество полей хотя бы на одно, и мы получим ту же ошибку, что и в начале.
Читать дальше →

Как разместить картинку внутри QR-кода

Reading time2 min
Views141K
Автор блога Hack A Day Брайан Бенчофф (Brian Benchoff) разобрался в алгоритме генерации QR-кодов (стандарт ISO 18004) и составил инструкцию, как можно внедрить в QR-код произвольное изображение. Например, логотип фирмы.

Для работы использовались генератор QR-кодов и Microsoft Paint для попиксельного редактирования.

Шестая версия QR-кодов представляет собой квадрат со стороной 41 пиксел.



На картинке показан шаблон QR. На нём чёрные пикселы всегда обязаны быть чёрными, а белые обязаны быть белыми. Серая зона свободна для творчества.
Читать дальше →

Как начать работать с GitHub: быстрый старт

Reading time6 min
Views1.3M


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →

Бесплатная отправка SMS уведомлений в Zabbix

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

Сейчас я активно использую ветку Zabbix 2.0: Удалось прикрутить постоянный контроль параметров абонентских линий ADSL на всех узлах доступа, порядка 200 000 параметров. Описания как это было сделано хватит на отдельную статью. Я же расскажу как сделать простым и доступным способом оповещение о каких либо событиях посредством SMS, и не использовать для этого специфического железа.

Я же расскажу как сделать простым и доступным способом оповещение о каких либо событиях посредством SMS, и не использовать для этого специфического железа.
Читать дальше →

Обзор CDN-сервиса CloudFlare

Reading time3 min
Views212K
Привет, хабр! Сегодня я расскажу о сервисе CloudFlare. Куча возможностей, помощь в переносе, и многое другое.
Хотелось бы начать с того, что данным сервисом можно пользоваться бесплатно. В CloudFlare предусмотрены PRO возможности, но лично мне эти возможности не нужны. Стоимость PRO довольна высока — $20 в месяц.
Читать далее

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 3

Reading time13 min
Views6K
Часть 1
Часть 2
Часть 4

В предыдущей статье было рассказано о тегах синтеза и о построении грамматик распознавания.
В этой части мне хотелось бы показать построение конкретного голосового приложения в Asterisk. Чтобы не придумывать голосовое меню для магазина «Рога и копыта», решил поступить проще и найти на Хабре ранее реализованный пример, на котором можно наглядно показать преимущества использования синтеза и распознавания.

На Хабре нашелся вот этот пост, который когда-то довольно активно обсуждался. Автор предлагает прослушивать прогноз погоды по телефону, используя множество предзаписанных файлов и xml-информеры с сайта Gismeteo. Мне хотелось бы усовершенствовать данное приложение и показать, как синтез и распознавание облегчают жизнь при построении IVR и получении динамической информации.

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

Новые смайлы в Skype 5.5

Reading time1 min
Views88K
В дополнению топика Скрытые смайлы в Skype допишу новые смайлы которые появились в обновленном скайпе версии 5.5

Итак, вот они:

image «это провал» или «о нет» = (facepalm) или (fail)
image«работаю из дома» = (wfh)
image«скрестил пальцы» (на удачу) = (yn), (fingers), (fingerscrossed), или (crossedfingers)
image«ляляляляля, я тебя не слушаю» = (lalala), (lala) или (notlistening)
image «заждался» или «ну сколько можно» = (waiting), (forever), or (impatience)
image«дай пять» = (highfive), (hifive), or (h5)
image«перекати поле» = (tumbleweed)

Взято из официального русского блога скайпа

UP: Разработчики указали что спрятали еще 2 смайла, про которых нигде не упоминалось. Один смайл нашелся =(wtf)
Другой тоже = (hollest) (спасибо dazran). Думаю это не все

Собственный сервер Git на базе Ubuntu или Debian/GNU Linux

Reading time2 min
Views81K
Я встречал в сети много tutorial'ов по установке своего сервера git как на gitweb, так и на webdav, но, увы, они либо были только по одному из вышеназванных пунктов, не освещая другой, либо банально не работали. Вчера возникла необходимость поднять свой сервер репозиториев. Потратил пару часов — поднял, теперь хочу поделиться опытом, потому что считаю проблему актуальной :)

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

Интеграция asterisk с Active Directory

Reading time9 min
Views34K
На некотором этапе развития нашей организации было решено перейти на VoIP телефонию. В качестве платформы безоговорочно был выбран Asterisk-PBX. Оконечное оборудование брали бюджетное из доступного — DLink DPH-150.
В результате проделанной работы получилась автоматизированная VoIP система, с управлением через стандартную оснастку MS ActiveDirectory.

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

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

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

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

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

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

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

Зеркало сервера обновлений ESET на Linux

Reading time6 min
Views26K
Каждый из вас, кому приходится держать корпоративный linux-сервер может сталкивается с тем, что у замечального антивируса ESET нет сервера обновлений под linux, виртуалку windows с ESET Remote Administrator Server под такое поднимать, конечно, нет желания, а это значит настала пора его написать самим. Тема не претендует на новшество, этот вопрос достаточно рассмотрен в интернете, однако, мне не попадалось хороших решений, давайте же доведем скрипт до ума. Наш скрипт должен уметь находить новые пароли к официальным серверам на просторах интернетов и поддерживать базы для всей линейки продуктов, таких как Smart Security, Business Edition, Home Edition, Exchange Server.
Оставим легитимность данных действий на вашей совести, статья дается для ознакомления с особенностями обновления баз антивируса, и не является руководством к нарушению законности. Во избежание нарушений вы должны пользоваться только Evaluation License от ESET.
Итак, неонка внутре:
Читать дальше →

Как связать два asterisk-сервера (часть вторая. IAX2)

Reading time3 min
Views47K
image
Статья для начинающих астерисководов.
Итак, имеем два астериска.
Задача — организовать прямой дозвон через префикс туда и обратно по IAX2.
Исходные данные:
Астериск 1.4 на обеих концах
1. samara.asterisk.ru — внешнее DNS имя первого астериска.
2. kazan.asterisk.ru — внешнее DNS имя второго астериска. Пусть он имеет несколько провайдеров (например, kazan2.asterisk.ru, kazan3.asterisk.ru).

Обратимся к автомобильным кодам регионов.
Тогда дозвон из Самары будет 9-16-<номер>.
Из Казани 9-63-<номер>.
Читать дальше →

Apache HTTP Server: Обслуживание нескольких HTTPS-хостов на одном IP-адресе

Reading time5 min
Views21K
При миграции сервера в облако возникла необходимость разместить несколько веб-сайтов, работающих по HTTPS на одном физическом IP-адресе.
При этом нужно было остаться на той же операционной системе CentOS 5.6 и штатном apache-2.2.19.
Готового решения для CentOS не нашел, поэтому предлагаю свой вариант решения.

Теория


Согласно RFC 4366, раздел 3.1. Server Name Indication это возможно.
Для полноценной работы это расширение должен поддерживать и сервер и клиент (браузер).

Практика


Поддержка расширения SNI согласно Wikipedia появилась в Apache HTTP Server начиная с версии 2.2.12.
Подробности есть в Apache Wiki.
Для работы расширения нужна библиотека OpenSSL версии 0.9.8f или выше.
Проблема в том, что в CentOS 5.6 встроен OpenSSL версии 0.9.8e, и «поднять» ему версию не так то просто, т.к. именно на эту версию завязано много других компонент.
Собирать отдельный OpenSSL и Apache вне дерева пакетов — неспортивно.
В процессе поиска решения наткнулся на альтернативу: библиотеку gnutls и модуль mod_gnutls.
Библиотека gnutls в системе тоже присутствует и тоже очень старая, правда достаточно безболезненно удаляется вместе с зависимостями.

В результате были собраны и установлены «свежие» пакеты gnutls и mod_gnutls, которые дали нужный функционал с минимальным влиянием на остальную систему. Под катом подробности по процессу сборки и примеры файлов конфигурации.
Читать дальше →

Спасение «битого» переносного винчестера с TrueCrypt-контейнером

Reading time5 min
Views11K

Анамнез


Для кражебезопасного перемещения персональных данных, portable-приложений, базы ScrapBook и индексов Архивариуса 3000 между двумя стационарными точками присутствия по примеру Брюса Шнайера была создана СуперФлешка – переносной 2.5’’ винчестер Toshiba MK2552GSX в корпусе ViPowER VP-352518 с USB и SATA-интерфейсами с криптоконтейнером внутри. Однако, "пришла беда, откуда не ждали!".

В открытом виде в корне раздела лежали дистрибутив TrueCrypt 7.0a и portable-инсталляция KeePass Password Safe свежайшей версии с базой паролей. Всё остальное место отдано под крипто-контейнер в виде файла. Пароль к контейнеру хранится в базе KeePass.

Подмонтирование в точках присутствия – скриптами nnCron по времени или по подключению соответствующего USB-диска с автозаполнением диалога ввода паролей с помощью связки nnCron+KeePass.

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

Как научить Wordpress движок дружить с Proxy? Легко!

Reading time1 min
Views6.3K
Я занимаюсь разработкой локального корпоративного сайта работающего на Wordpress. В компании нет прямого доступа в Интернет, все работают через прокси-сервер.

Для автоматического обновления ядра и плагинов (и некоторых других функций), во избежание, сообщения «WP HTTP Error: couldn't connect to host» или даже 500 ошибки на IIS 7 (Windows 2008), у меня появилась необходимость, научить Wordpress подружится с прокси.

Поиск по Интернету ничего не дал. Естественно тот факт что я чего то не нашел, не означает что его нет в Интернете. По крайней мере, нет описания в Codex. И мне пришлось заглянуть в код движка, и как выяснилось, там эта функция предусмотрена и работает себе отлично. Чем я и спешу с вами поделиться.

Решение


Для этого необходимо добавить по меньшей мере две строки в любое место файла ./wp-config.php

define(WP_PROXY_HOST, 'localhost'); // ваш адрес
define(WP_PROXY_PORT, 3128); // ваш порт


И еще две, если прокси требует авторизацию:

define(WP_PROXY_USERNAME, 'username');
define(WP_PROXY_PASSWORD, 'password');


Вот и все. Проверено на версиях 3.1+.

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 2

Reading time7 min
Views8.6K
Часть 1
Часть 3
Часть 4

В предыдущей статье была описана общая схема работы, установлен UniMRCP, Asterisk подключен к VoiceNavigator и создано простое голосовое приложение.
Остановимся подробнее на возможностях синтеза и распознавания. Первая часть статьи будет посвящена языку разметки SSML, вторая — построению грамматик.

Использование языка разметки SSML


Управление синтезом речи на лингвистическом и акустическом уровне, происходит с помощью управляющих тегов в формате SSML.
С помощью тегов можно определить произношение, управлять интонацией, скоростью и громкостью звучания и т.д.
Опишу только наиболее используемые теги.
Подробную информацию по всем тегам можно получит в описании стандарта .
Читать дальше →

Основы репликации в MySQL

Reading time10 min
Views333K
С репликацией серверов MySQL я познакомился относительно недавно, и по мере проведения разных опытов с настройкой, записывал, что у меня получалось. Когда материала набралось достаточно много, появилась идея написать эту статью. Я постарался собрать советы и решения по некоторым самым основным вопросам, с которыми я столкнулся. По ходу дела я буду давать ссылки на документацию и другие источники. Не могу претендовать на полноту описания, но надеюсь, что статья будет полезной.
Читать дальше →

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 1

Reading time9 min
Views31K
Часть 2
Часть 3
Часть 4

Учитывая, возросший интерес сообщества к Asterisk решил внести и свою лепту и рассказать о построении голосовых меню с использованием синтеза и распознавания речи.

Статья рассчитана на специалистов, имеющих опыт работы с построением IVR в Asterisk и имеющих представление о системах голосового самообслуживания.

СГС (системы голосового самообслуживания) значительно расширяют возможности по созданию голосовых приложений и позволяют пользователю получать информацию и заказывать услуги самостоятельно, без участия оператора. Это может быть маршрутизация вызовов, запрос и выдача информации по расписанию авиарейсов, состояние банковского счета, заказ такси, запись на прием к врачу и пр.
Распознавание позволяет отказаться от линейных меню, создаваемых с помощью DTMF, разговаривать с системой человеческим языком и легко создавать меню с множественным выбором.
Синтез значительно упрощает работу с динамически меняющейся информацией и большими объемами текстовых данных.


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

DSL роутер D-link D2650u для не-DSL провайдера

Reading time4 min
Views72K
imageВ наличии: Роутер D-link DSL2650U, который имеет встроенный DSL модем, 4-портовый коммутатор и один USB вход и не-DSL провайдер ( обычная витая пара и DHCP на том конце провода ). Ревизия роутера: D, Board ID: 96358VW2.
Проблема: Некуда вставлять витую пару провайдера, поскольку нет Ethernet WAN порта, а просто свич не работает с провайдером.
Решение: Перенастроить один из LAN портов как WAN.
Статья будет в формате пошаговой инструкции, как решить эту задачу. Поскольку времени на поиск и вкуривания информации я потратил относительно много, решил написать об этом пост, чтобы систематизировать и помочь людям решить подобную проблему.
Читать дальше →

Asterisk chan_ss7 «12 потоков»

Reading time5 min
Views8.2K

Задача:


Подключение к Городской Телефонной Станций «ГТС» используя систему сигнализации N7 (Общеканальная сигнализация № 7(ОКС7 или SS7)

Решение по этапам:


  • Сервер
  • Система и софт
  • Настройка подключения
  • Проблемы и их решения
  • Тестирование

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

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Date of birth
Registered
Activity