• Лекции Технопарка. 2 семестр. Базы данных

    • Tutorial


    Очередной пост в рамках нашей постоянной рубрики «Лекции Технопарка». В этот раз предлагаем вашему вниманию лекции, посвящённые базам данных. Цель курса — получение студентами знаний в области проектирования реляционных баз данных, эффективной работы с базами данных, оптимизации запросов и схем данных, изучение особенностей использования баз данных в проектах с высокой нагрузкой и/или использующих большие массивы данных, noSQL и его применение для решения прикладных задач в WWW.
    Читать дальше →
  • Контроллер Wi-Fi точек доступа на Mikrotik

    Введение


    В последней версии операционной системы Mikrotik RouterOS под номером 6.11 была добавлена экспериментальная функция, позволяющая использовать роутер на этой платформе в качестве контроллера Wi-Fi точек доступа. К сожалению, так как данный функционал только что появился и находится в статусе бэта, информация о нём ограничевается довольно скучной статьёй на в Wiki-справочнике Mikrotik'а. Пошаговой инструкции по настройке мне найти не удалось, поэтому, решено было попытаться всё настроить методом научного тыка. В данном посте я рассматриваю простую настройку контроллера (не углубляясь в дебри настроек, коих очень много) обеспечивающую следующую конфигурацию (по сути, аналогичную той, что была бы настроена на простом SOHO-роутере уровня D-Link DIR-620 с родной прошивкой, и используемую в домашних условиях):

    • Два Wi-Fi роутера Mikrotik RouterBoard
      • Routerboard RB951G-2HnD — основной, является контроллером Wi-Fi, точкой доступа, маршрутизатором, DHCP- и DNS-сервером. Далее буду именовать его контроллером
      • Routerboard RB951Ui-2HnD — дополнительный, является только точкой доступа Wi-Fi и свитчём на 3 порта (POE in и out порты не включены в свитч и зарезервированы на будущее). Далее буду именовать его точкой доступа или точкой
    • WPA/WPA2-PSK аутентификация с AES-шифрованием
    • Строго определённый канал, с шириной 20МГц
    • Единственный SSID, не скрытый
    • Клиенты не изолированны друг от друга и проводной сети (действительно, зачем это дома?)

    Заинтересовавшимся, предлагаю продолжить чтение под катом. Внимание, трафик!
    Читать дальше →
  • КПК из GPS


      Ещё недавно держа некую сумму денег решил осуществить мечту — купить полноценный навигатор.
      Но т.к. бюджет был маленький, выбрал подешевле — Nexx NNS-3501.
      Всё было хорошо, вот только карты не ставились, а от iGo уже устаешь.
      Я решил сделать из него полноценный КПК(но только без связи :))!
      Начнём-с
    • Работаем с EMS по нарушению сроков доставки посылок — инструкция

        Недавний пост в «Я негодую» о работе EMS в нашей стране и полном пофигизме почтовых работников выявил потребность в инструкции о том, что можно сделать, чтобы когда-нибудь проблемы с посылками у EMS прекратились.

        Сходу расстрою — посылкой управлять никак нельзя. Если она долго не «прилетает» в Россию (т.е. статус Экспорт стоит, а Импорт — нет) — тут вряд ли что-то поможет. Однако страхуемся, делаем по шагам, описанным ниже.
        Порадовать тоже могу: процентов 95 посылок все-таки доходят. Объем для сравнений — порядка 10 посылок в месяц из США и Европы.
        Обращаю внимание, что многие посылки (процентов 60 всех отправлений) я получаю «от себя», используя сервисе вроде Шипито. В некоторых случаях это означает, что почта не может отказать в претензиях по причине того, что они представляются «не отправителем». Однако во многих случаях рекомендую идти и биться за свою посылку при помощи процессов и документов, представленных ниже.
        Читать дальше →
      • Краткая инструкция по настройке Vlan-ов

          Для начала определимся что такое 802.1q vlan, дабы не изобретать велосипед маленькая вырезка из википедии:
          VLAN (аббр. от англ. Virtual Local Area Network) — виртуальная локальная компьютерная сеть, представляет собой группу хостов с общим набором требований, которые взаимодействуют так, как если бы они были подключены к широковещательному домену, независимо от их физического местонахождения. VLAN имеет те же свойства, что и физическая локальная сеть, но позволяет конечным станциям группироваться вместе, даже если они не находятся в одной физической сети. Такая реорганизация может быть сделана на основе программного обеспечения вместо физического перемещения устройств.
          На устройствах Cisco, протокол VTP (VLAN Trunking Protocol) предусматривает VLAN-домены для упрощения администрирования. VTP также выполняет «чистку» трафика, направляя VLAN трафик только на те коммутаторы, которые имеют целевые VLAN-порты. Коммутаторы Cisco в основном используют протокол ISL (Inter-Switch Link) для обеспечения совместимости информации.
          По умолчанию на каждом порту коммутатора имеется сеть VLAN1 или VLAN управления. Сеть управления не может быть удалена, однако могут быть созданы дополнительные сети VLAN и этим альтернативным VLAN могут быть дополнительно назначены порты.
          Native VLAN — это параметр каждого порта, который определяет номер VLAN, который получают все непомеченные (untagged) пакеты.


          Для чего это надо?
          Есть несколько ситуаций:
          1. Банально представим ситуацию есть большая сеть, в районе покрытия этой сети у нас расположено два офиса, их необходимо объединить в одну физическую сеть, при этом общегородская сеть не должна видеть/иметь доступ к офисным тачкам. Данную ситуацию конешно можно разрулить VPN-ами, но на шифрованый трафик порядка 100 мегабит нужно не кислое железо, поэтому рулим vlan-aми.
          2. Есть масса подсетей, территориально поделенных по городу, необходимо на каждую подсеть настроить интерфейс, по началу можно конечно обойтись сетевыми картами, но сети имеют свойства разростаться, и что прикажете делать, например в такой ситуации?:
          serv:~# ifconfig | grep eth | wc -l
          152
          serv:~#

          3. Клиенту необходимо выдать блок из 4,8,16 и т.д. и т.п. адресов.
          4. Уменьшение количества широковещательного трафика в сети
          Каждый VLAN — это отдельный широковещательный домен. Например, коммутатор — это устройство 2 уровня модели OSI. Все порты на коммутаторе, где нет VLANов, находятся в одном широковещательном домене. Создание VLAN на коммутаторе означает разбиение коммутатора на несколько широковещательных доменов. Если один и тот же VLAN есть на разных коммутаторах, то порты разных коммутаторов будут образовывать один широковещательный домен.
          И множество других причин/ситуаций в которых это может понадобиться.
          5. Увеличение безопасности и управляемости сети
          Когда сеть разбита на VLAN, упрощается задача применения политик и правил безопасности. С VLAN политики можно применять к целым подсетям, а не к отдельному устройству. Кроме того, переход из одного VLAN в другой предполагает прохождение через устройство 3 уровня, на котором, как правило, применяются политики разрешающие или запрещающие доступ из VLAN в VLAN.

          Как мне это все сделать?
          Легко!
          Читать дальше →
        • Настройка времени на коммутаторах по SNMP

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

          Итак.
          Имеем:
          1. несколько тысяч коммутаторов (У меня dlink) примерно одно серии. А именно:
          DES-1228/ME
          DES-3200
          DES-3526
          DES-3010G

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

          Подсети:
          Неважно. пусть будет: 172.16.0.0/24
          Подсеть размера /24 отрабатывалась в течении 5 минут, а так как наш скрипт будет на .php надо перенастроить сервер, чтоб он не дропал скрипт через 30 секунд или уменьшить размер отрабатываемой за раз подсети.

          итак, наш конфиг (config.php):
          Читать дальше →
        • Обзор Cideko Air Keyboard

               Многие, как и я, сейчас используют неттопы (или ультракомпактные PC) для построения домашних мультимедиа центров. Это удобно и ненамного дороже, чем использовать готовые плееры, хотя и требует достаточно времени на отладку всей системы в сборе. (Основная причина, почему я выбрал именно неттоп — возможность смотреть полюбившийся Турбофильм, плееров которые это умеют, на сколько я знаю, нет.)

               Естественно, что основной способ просмотра видео на таком комплекте (телевизор + компьютер) — лежа на диване/кровати или сидя в кресле, что требует нестандартного комплекта управления компьютером, т.к. привычные клавиатуру и мышь, даже беспроводные, удобно расположить негде. Самым простым решением является приобретение ИК пульта ДУ, коих сейчас достаточно много, но все они ограничены по функционалу, например, набрать урл в адресной строке браузера будет проблематично. В связи с этим я принял решение искать беспроводную клавиатуру с интегрированной возможностью управления мышкой.

               В Москве, на самом деле, оказалось не так много вариантов, подходящих мне по функциональности, это dinovo mini от Logitech, но модель уже достаточно старая, а стоит все еще достаточно дорого (на маркете от 2500 сейчас, на момент поисков были от 5000), плюс тачпад меня не очень прельщал. Также есть полноразмерные клавиатуры с трекпоинтами и трекболами, но данный вариант очень громоздок, плюс цены, даже на Genius, достаточно высоки. Еще в интернете попалось описание мини клавиатуры от Lenovo, Т-образной формы, но мне она не очень приглянулась. В результате я решил заказать вожделенную мною ранее Cideko Air Keyboard, о которой писалось на Хабре в феврале.

            Что из этого вышло
          • Бекап баз данных – есть ли он?

              image

              Нет смысла говорить о том, насколько это актуальный вопрос. Сегодня мы расскажем, как у нас организовано резервное копирование баз данных mysql.
              И одно их самых важных – это проверка, а сделался ли бекап? А успешно ли прошел дамп? А были ли ошибки? А знаю ли я о них?

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

              Сразу оговорюсь, что, возможно, в принципе реализации использованы стандартные схемы, но, возможно, вы найдете для себя, что-то новое, что сможете внедрить у себя.
              Читать дальше →
            • VIM как IDE для разработки на Python

              • Tutorial
              image
              Данная статья будет посвящена настройке vim, в которой я поделюсь своим «скромным» пониманием того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п.
              Весь процесс постараюсь описать как можно более подробно, чтобы вопросов по мере чтения для начинающих осваивать vim возникало как можно меньше.
              Читать дальше →
            • PostfixАdmin revamped (ViMbAdmin)

                ViMbAdmin



                ViMbAdmin проект (vim/-be/-admin/) предоставляет веб-интерфейс администрирования виртуальных
                почтовых ящиков, позволяя почтовым администраторам легко управлять доменами, и псевдонимами.
                ViMbAdmin является свободным программным обеспечением, вы можете распространять или изменять его в соответствии с условиями GNU General Public License версии 3.

                ViMbAdmin был написан на PHP с использованием нашего собственного web application framework, который включает Zend Framework, ORM Doctrina и система шаблонов Smarty с JQuery и Bootstrap.

                ViMbAdmin размещается на отдельной странице проекта GitHub, где можно найти документацию,
                просмотреть исходный код. GitHub

                UPDATE:
                yum install dovecot-mysql
                

                Читать дальше →
              • Еще несколько слов о Path MTU Discovery Black Hole

                Еще несколько слов о Path MTU Discovery Black Hole



                Вместо вступления


                Однажды для каждого настоящего системного администратора (или исполняющего обязанности такового) наступает момент истины. Ему выпадает судьба настроить маршрутизатор на компьютере с установленной ОС GNU/Linux. Те, кто это уже прошел, знают, что ничего сложного в этом нет и можно уложиться в пару команд. И вот наш админ находит эти команды, вбивает их в консоль и гордо идет к пользователям сказать, что уже все работает. Но не тут-то было – пользователи говорят что их любимые сайты не открываются. После траты некоторой части своей жизни на выяснение подробностей обнаруживается, что большая часть сайтов ведет себя следующим образом:
                1. При открытии страницы загружается заголовок и больше ничего;
                2. В таком состоянии страница висит неопределенно долгое время;
                3. Строка статуса браузера все это время показывает что загружает страницу;
                4. Пинги и трассировка до данного сайта проходят нормально;
                5. Соединение по telnet на 80 порт тоже проходит нормально.
                Обескураженный админ звонит в техподдержку провайдера, но там от него быстро избавляются, советуя попробовать настроить маршрутизатор на OC Windows, а если уж и там не работает тогда… купить аппаратный маршрутизатор.
                Я думаю, эта ситуация знакома многим. Некоторые в нее попадали сами, у кого-то с ней сталкивались знакомые, а кто-то встречал таких админов на форумах и прочих конференциях. Итак: если у Вас Такая Ситуация, то — Поздравляю! Вы столкнулись с Path MTU Discovering Black Hole. Данная статья посвящается тому, отчего это бывает, и как решить эту проблему.

                Читать дальше →
              • Ежедневная работа с Git

                • Tutorial
                Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

                Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
                • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
                • будет ли менеджер и заказчик удовлетворён этим процессом?
                • будет ли легко работать разработчикам?
                • смогут ли новички быстро включиться в процесс?
                • можно ли процесс относительно легко и быстро изменить?


                Конечно, я попытаюсь рассказать обо всём по-порядку, начиная с основ. Поэтому, эта статья будет крайне полезна тем, кто только начинает или хочет разобраться с git. Более опытные читатели, возможно, найдут для себя что-то новое, укажут на ошибки или поделятся советом.

                Далее очень много букв случайным образом превратились в пост.
              • Я построю свой почтовый сервер с Postfix и Dovecot

                • Tutorial
                image

                В рамках программы по унификации установленных серверных систем встала задача по переделке почтового сервера. Вдумчивое изучение мануалов и руководств показало довольно любопытный факт – нигде не было найдено однозначно достоверного руководства или подобия Best Practice по развёртыванию почтовика.

                Мануал пошаговый, основывается на внутренней документации компании и затрагивает совершенно очевидные вопросы. Гуру могут не тратить время, ноу-хау здесь нет – руководство является сборной солянкой и публикуется только потому, что все найденные руководства по развёртыванию почтовика напоминали картинку о том, как рисовать сову.
                Очень много текста
              • Радиоприемник 60-1700 МГц на RTL2832 за 20 баксов или SDR для начинающих

                В этой статье я расскажу о том, как, потратив совсем небольшие деньги и немного времени, получить радиоприемник, способный принимать что угодно в диапазоне 60-1700 МГц (радиостанции, звуковое сопровождение ТВ, радиолюбителей, карманные радиостанции и многое другое). Для этого
                мы используем DVB-тюнер на чипе RTL2832, работающий в специальном режиме, который можно приобрести за $20 или даже дешевле.


                Читать дальше →
              • Установка любого клона Red Hat Enterprise Linux не используя стандартный инсталлятор

                Устанавливать современную Linux систему нужно только один раз, как для единственного физического сервера, так и развертывания целой виртуальной фермы. Почему бы не потратить на это чуточку больше времени и сразу сделать все именно так как нужно, а не допиливать то что приехало из инсталлятора по его рельсам. К тому-же, количество софта которое ставится в «минимальном» режиме стандартного установщика, не соответствует действительно минимальному.
                Кому-то ручная установка может показаться тратой времени, но каждый линуксоид обязан это сделать хотябы раз, чтоб лучше понимать как это работает. Eсли Вас не пугают слова fdisk, grub и chroot, читаем далее.
                Читать дальше →
              • Включение Samba-сервера на базе Ubuntu в домен AD

                  В нашей предыдущей работе было рассмотрено, что такое Active Directory и Samba и в чем состоят преимущества их совместной работы. Также был рассмотрен процесс сборки Samba из исходников и включение ее в домен, и все это — из командной строки. Следует признать, что сборка чего-либо из исходников не является распространенной практикой в современных дистрибутивах Линукс. Гораздо чаще для установки программного обеспечения используются репозитории. Это позволяет сделать процесс установки более дружелюбным и простым для пользователя. Также могут автоматически вовлекаться дополнительные пакеты, необходимые для работы устанавливаемого ПО, что опять же серьезно облегчает жизнь и избавляет от необходимости изучать списки необходимых предустановленных пакетов.
                  Читать дальше →
                • Как за одну минуту восстановить текст после неудачной отправки веб-формы

                    Бывало ли когда-нибудь так, что вы набирали в браузере длинный и интересный текст, внимательно вычитывали его, и тут, буквально через мгновение, понимали, что при обращении к сайту произошла ошибка, а ваш текст в форме был стёрт?

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

                    И, тем не менее, вы писали длинный текст именно там, где ничего для сохранения данных формы не сделано.

                    Можно ли теперь как-то восстановить данные, если вы не можете скопировать текст из формы и не можете отправить POST-запрос повторно?

                    Не закрывайте браузер!
                    Решение есть
                  • Пример примитивного веб сервера на С++ с использованием OpenSSL

                    Давно хотел написать полезную статью и вот наконец нашёл подходящий информационный повод.

                    Речь в этой статье пойдёт о создании примитивного web сервера работающего по https протоколу. Мы на пишем серверную часть, а в качестве клиентской части будет выступать любой из браузеров.
                    В итоге мы получим максимально упрощённый пример примитивного web сервера который можно будет улучшать и затачивать под свои задачи.
                    Читать дальше →
                  • Whois: практическое руководство пользователя

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

                    Что такое whois?


                    Что такое и для чего нужен whois можно прочитать, например, здесь: http://en.wikipedia.org/wiki/Whois.

                    В нескольких словах, whois (от английского «who is» — «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение в текстовом виде регистрационных данных о владельцах IP адресов и доменных имен (главным образом, их контактной информации). Запись о домене обычно содержит имя и контактную информацию «регистранта» (владельца домена) и «регистратора» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока ее действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 — 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

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