• О вкусном и здоровом питании ESP8266 от батареек

    Многие из тех, кто мастерит разные штуковины на ESP8266, в какой-то момент задумывались, что было бы здорово взять ту штуковину, положить в карман — и пойти с ней погулять. ESP8266 ведь такой маленький, так и просится. И тут на нашем пути встречается небольшое препятствие — одним программированием здесь не обойтись, придётся брать в руки паяльник, но всё не так страшно, и, надеюсь, эта статья вам поможет.
    Читать дальше →
  • Несколько дельных советов по CSS


      CSS Protips

      Это современные решения типичных проблем, коллекция советов, которая поможет вам улучшить ваши профессиональные навыки CSS.

      От переводчика

      Приветствую, для вас подготовлен еще один перевод заметок на тему CSS. Мэтт Смит, разработчик из Портленда, поделился CSS-советами и выложил их на GitHub. Мне особенно понравилась его подборка, она структурирована, не особо громоздкая в плане скучных больших текстов и описаний, и в целом будет понятна даже новичку. Я буду рад, если в комментариях мы с вами обсудим каждый пункт и в итоге дадим некоторые заключения. Итак, приступим.



      Cодержание


      1. Используем псевдо-класс :not для задания рамки навигации
      2. Добавляем межстрочный интервал элементу body
      3. Центрируем по вертикали все что угодно
      4. Правильно разделяем запятыми элементы списков
      5. Отрицательный порядковый номер в nth-child
      6. Используем SVG-логотипы
      7. Аксиоматический CSS
      8. Максимальная высота у CSS-слайдера
      9. Наследуем box-sizing
      10. Одинаковая ширина ячейки таблицы
      11. Динамические внешние отступы при помощи flexbox
      12. Используем селектор атрибутов пустых ссылок
      13. Стили по умолчанию для обычных ссылок
      Читать дальше →
    • Параметры Wayfinder

        Описание


        Служит для организации меню. Позволяет организовать простые,
        многоуровневые, а также выпадающие меню.
        Благодаря использованию шаблона результат может быть выведен в виде
        нумерованных и ненумерованых списков или любом другом.

        Рассмотрим параметры, которые есть у Wayfinder. Указанные параметры относятся к первой версии.
        Читать дальше →
      • Почему SNMP это не очень просто?

        • Tutorial
        Давным давно, на Хабре была опубликована статья, рассказывающая о том, как использовать популярную библиотеку, для работы с SNMP из Java-приложения. Поддерживая, в целом, начинание автора, я хочу остановиться на тех сложностях, которые могут возникнуть в реальном проекте, использующем SNMP.
        Читать дальше →
      • Собственный сервер Git на базе Ubuntu или Debian/GNU Linux

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

          Читать дальше →
        • Arduino & Modbus

            В предыдущей статье мы соединили открытую платформу домашней автоматизации OpenHAB с контроллером Arduino использовав очень простой, текстовый протокол. Но это решение поставит нас в тупик, если мы захотим подключить наш контроллер к другой системе, что же делать?

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

            Что нам необходимо знать об этом стандарте?
            Протокол Modbus использует последовательные линии связи (например, RS232, RS485), а протокол Modbus TCP рассчитан на передачу данных по сетям TCP/IP.
            Протокол Modbus имеет два режима передачи RTU и ASCII, в режиме ASCII каждый байт передается как два ASCII символа его шестнадцатеричного представления.
            В сети Modbus есть только один ведущий, который с заданным интервалом опрашивает несколько ведомых устройств, каждое из которых имеет свой уникальный адрес от 1 до 254, адрес 0 широковещательный и на него отвечают все устройства, так как ведущий в сети один у него нет своего адреса.
            В спецификации Modbus определено два типа данных, один бит и 16 битное слово. Данные организованны в четыре таблицы с 16 битной адресацией ячеек, адресация в таблицах начинается с 0. Для доступа к данным из разных таблиц предназначены отдельные команды.
            Discrete Inputs 1 бит только чтение
            Coils 1 бит чтение и запись
            Input Registers 16 бит только чтение
            Holding Registers 16 бит чтение и запись

            Как нам подключить Modbus устройство к OpenHAB?
            Читать дальше →
          • Кнопок много не бывает

            LessПримерно полгода назад я прочитал статью «Почему стоит использовать препроцессоры». В ней автор описывает преимущества препроцессоров на примере реализации кастомных кнопок. Статья оказалась познавательна и очень интересна. Автор приводил в примеры разные препроцессоры и объяснял почему остановился на Sass. На счет цвета карандашей и вкуса я не вправе спорить, у каждого свои взгляды. Но еще тогда мне показались несправедливыми описания о том, что Less не достаточно мощный. Еще тогда хотелось сделать что-то подобное, воплотить идею автора на других препроцессорных языках (Less, Stylus). На момент прочтения статьи времени что-то сделать свое не было. И вот недавно, в один из выходных, я вспомнил об этой статье и решил реализовать идею автора — только средствами Less. Делать что-то новое я не видел смысла, поэтому решил помочь автору в развитии проекта, сделал форк с его репозитория, проделал необходимую работу и создал pull request.
            Читать дальше →
          • Проблема «7-го января»

              Во время работы над одним из проектов обнаружился довольно интересный баг, который, как потом выяснилось, проявляется не только в «самописных» календарях, но и в популярных open-source библиотеках. Проблема заключается в невозможности выбрать 7 января. В некоторых календарях эта дата просто отсутствует:
              image
              Если выбирать 6-е число (которое стоит на месте 7-го), то выбирается… 6-е число.

              Баг наблюдается (по предварительным оценкам) под Windows 8.

              UPD: Природа проблемы раскрыта здесь. Все дело в RTZ2 после Microsoft Update KB2998527.

              UPD2: 0xy: проблема наблюдается не только в Firefox, но и в мобильных версиях различных браузеров. Подробнее (плюс баг-фикс).

              Некоторые подробности под катом.
              Читать дальше →
            • Методы мониторинга в системах DWDM (Часть 1)



                Основным принципом технологии WDM (Wavelength-division multiplexing, частотное разделение каналов) является возможность передавать в одном оптическом волокне множество сигналов на различных несущих длинах волн. В российском телекоме системы передачи, созданные с помощью технологии WDM, называют «системы уплотнения».
                Читать дальше →
              • Поддельное BLE-устройство на nRF24l01

                  Данная статья на 90% основывается на заметке «Bit-Banging» Bluetooth Low Energy. Все началось с того, что потребовалось запустить распространенные сейчас трансиверы на чипе Nordic nRF24l01. В процессе поиска примеров работы с ними я и наткнулся на вышеупомянутую статью. Являясь обладателем телефона с поддержкой Bluetooth 4.0 (который и включает в себя Bluetooth Low Energy), подумал: а почему бы не попытаться повторить эксперимент?
                  Читать дальше →
                  • +30
                  • 57.2k
                  • 9
                • IPv6: Сколько адресов нужно для счастья?

                    Картинка, которая некоторых привыкших к IPv4 сетевиков может ввести в ступор:

                        R6#sh ipv6 interface brief
                        FastEthernet0/0            [up/up]
                            FE80::218:18FF:FE45:F0E2
                            1::1
                            1::2
                            1::3
                            1::10
                            1::100:500
                            2::1
                            2::2
                    

                    Причём каждый из этих адресов может быть использован наравне с другими. Как так?
                    Читать дальше →
                  • Прозрачная аутентификация в Redmine

                      Сегодняшний пост будет про удобство использования Redmine в корпоративной среде, а если быть точнее, про прозрачную авторизацию пользователей Redmine в домене Microsoft Active Directory.

                      Мы используем Redmine как единую информационную среду, в которой работают все сотрудники компании. Вводить один и тот же пароль дважды — это всегда неудобно. Поэтому, мы настроили прозрачную аутентификацию через домен.



                      Читать дальше →
                      • +13
                      • 18.7k
                      • 9
                    • Установка «Redmine» на «Linux Ubuntu» с прозрачной аутентификацией в домене (Apache, Passenger, RVM, MySQL)

                      • Tutorial
                      Данным постом хотелось бы начать цикл статей о том, как мы адаптировали под свои нужды трекер задач «Redmine».

                      Около 2-х лет назад мне пришлось достаточно сильно изменить профиль своей деятельности, и от системного администрирования уйти в разработку на фреймворке «Ruby on Rails». Нужно было адаптировать «Redmine» под нужды достаточно большого IT-отдела, а потом и под нужды компании в целом. Тогда, я столкнулся, с относительной не простотой установки «Redmine». И комплексной статьи для новичков очень не хватало!

                      Есть несколько способов установки ROR-приложения, которым является «Redmine». В данной статье речь пойдет об установки на web-сервер «Apache», с использованием «Passenger» и «RVM». В качестве сервера баз данных, мы до сих пор используем «MySQL» (вернее MariaDB), хотя и подумываем о переезде на «PostgreSQL».
                      Читать дальше →
                    • Hadoop для сетевых инженеров

                        Apache Hadoop — это набор утилит для построения суперкомпьютера, способного решать задачи, слишком большие для одного сервера. Множество серверов образуют Hadoop-кластер. Каждая машина в кластере носит название узла, или ноды. Если необходимо увеличить производительность системы, то в кластер просто добавляется больше серверов. Ethernet выполняет функции «системной шины» суперкомпьютера. В данной статье будут рассмотрены аспекты дизайна сетевой инфраструктуры, а также архитектура, которую Cisco предлагает использовать для таких систем.
                        Читать дальше →
                        • +23
                        • 20.3k
                        • 7
                      • Офис на Linux — мой опыт

                          Предисловие


                          Возникла у меня с полгода назад задачка: быстро и с минимальными затратами организовать работу аудиторской фирмы после переезда и резкого расширения штата сотрудников. Имелся десяток стареньких компьютеров, NAS c RAID-массивом, около ста тысяч рублей денег на всё про всё. Надо было умудриться купить ещё несколько компьютеров и сделать так, чтобы «тормоза», к которым сотрудники уже почти привыкли, хотя бы не усилились. Появились и рабочие места вне офиса, по области, с не очень-то «толстым» каналом в Интернет. Плюс ко всему имелось пожелание улучшить безопасность: новые сотрудники должны быть ограничены в доступе к некоторым базам данных, не могли скопировать базы к себе на «флэшку» и т.п.

                          Понятно, что в такой (впрочем, как почти в любой) фирме всё вертится вокруг 1С (в данном случае — 8.2). Используются файловые базы данных, это для заказчика весьма важно. Узкое место здесь — сеть. Ну, предположим, заменить 100-мегабитное оборудование на гигабитное несложно, но есть ещё и вопрос безопасности: файлы в общем доступе — хорошая дырка. А ведь есть ещё и удалённые рабочие места. Очевидно, что я стал смотреть в сторону терминального доступа.

                          Покрутив в голове и электронных таблицах различные варианты коммерческих терминальных серверов известных фирм я понял: в бюджет не уложиться. Зато, как я помнил, 1с версии 8.3 существует в виде «нативной» реализации под Linux, при этом конфигурации от 8.2 с ней вполне совместимы. Проведя пару экспериментов дома, я решился и вышел к заказчику с предложением: «делаем терминальное решение полностью на Linux!» Заказчик отреагировал здраво: «хоть на чёрте лысом делай, но чтоб в понедельник всё работало!» И я взялся за работу.

                          В статье я вольным стилем и кратко опишу, как я решал задачу. Не претендую на то, что сделал всё правильно и хорошо, однако задача решена и пользователи довольны.
                          Читать дальше →
                        • Демо для Sega MegaDrive

                            В прошедшие выходные на демопати EVOKE 2013 была выпущена лучшая в истории Sega демонстрация под эту платформу. Реакция в сообществе настолько бурная, что даже если вы слышали о демосцене лишь краем уха — стоит посмотреть!

                            Overdrive by Titan — Sega MegaDrive demo


                            По ссылкам на Pouet вы можете дополнительно проникнутся атмосферой показа через две live-записи — оцените реакцию зала! Сама работа наполнена огромным числом референсов к классическим demo на Amiga, PC и C64.

                            В основе архитектуры Sega MegaDrive лежат два классических процессора: Motorola 68000 (16bit, 7.61 МГц) и Zilog Z80 (8bit, 3.55 МГц). Последний почти ничем не помогает в конкретном демо, так как используется в режиме совместимости с Master System. Основное ОЗУ консоли — 64 кб.

                            Всем Сега, пацаны!
                          • Интеграция с ВКонтакте на базе Open API

                            Социальная сеть ВКонтакте предоставляет широкие возможности для интеграции со сторонними сайтами. В основном эти возможности представлены уже готовыми виджетами. Однако, есть еще и Open API, которое позволяет не только авторизовать пользователя, но и выполнить любой метод, доступный приложениям ВКонтакте (ВКонтакте API).
                            Читать дальше →
                          • Воскрешение D-Link DWL-2100AP

                              Я работаю в мелкой фирме-провайдере, предоставляющей интернет в области, в том числе и в частном секторе. В качестве технологии последней мили выбран Wi-Fi с направленными антеннами и точками доступа на обеих сторонах (в режимах WDS и «клиент»). Энергоснабжение в частном секторе оставляет желать лучшего — напряжение скачет и довольно часто пропадает совсем. Само собой, на оборудовании такие условия сказываются крайне негативно — точки часто выходят из строя, при этом многие из них вываливаются в циклическую перезагрузку из-за возникающих сбоев в прошивке. Таких точек у нас скопилась пара десятков. Начальство решило, что ремонтировать точки в итоге обойдется дороже чем купить новые. Но жаль, когда столько оборудования лежит мертвым грузом, но еще может послужить родине.



                              Читать дальше →
                            • Связка Nginx+Apache, как отдавать Apache только запросы к PHP?

                                Была поставлена задача: сделать отказоустойчивый и производительный веб-сервер. В интернете можно найти большое количество документации по настройке связки Nginx+Apache, всю технологию описывать нет смысла. Идея состоит в том, что легковесный Nginx должен отдавать весь статический контент (картинки, архивы и т.п.), запросы на генерацию динамического контента отдаються тяжеловесному индейцу Apache. Такая связка разгружает сервер и сейчас используется почти повсеместно.

                                Как же отдавать Apache ТОЛЬКО запросы на PHP, а все остальное обрабатывать NGINX`ом?

                                Читать дальше →
                              • Пишем скрипт голосового меню для Asterisk

                                  Всем привет!
                                  Решил написать небольшую заметку как у нас в компании организовал голосовое меню для Asterisk. Тема наиболее актуально для новичков в IP-телефонии. Так что, товарищи хабравчане, не минусуйте сильно, я же стрался помочь новичкам.

                                  Что нам для этого потребуется: заранее записать 4 приветственных сообщения:
                                  1. Здравствуйте, вы позвонили в компанию Рога и Копыта. Для соединения с сотрудником наберите его внутренний номер или оставайтесь на линии.
                                  2. Секретарь не может вам ответить, но вы можете связаться с интересующим вас отделом. Нажмите 1 — отдел ТС, 2 — 1С-программирования и т.д.
                                  3. К сожалению, сотрудник не может вам ответить. Будет сделана переадресация на его сотовый телефон.
                                  4. К сожалению, сотрудники отдела не можут вам ответить. Вы можете оставить голосовое сообщение руководителю отдела.

                                  Схема выглядит следующим образом[Зараннее прошу прощения за художественную часть :) не силен]
                                  Читать дальше →