• Монитор качества воздуха в помещении

      image

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

      Для этого в первую очередь надо видеть и понимать, что нас окружает? Каким воздухом мы дышем? Нам уже стали привычны термометры, барометры, приборы показывающие влажность. Но эти приборы ничего нам не говорят о качестве окружающего воздуха. А значит мы будем слушать советы, которые не всегда верны, руководствоваться слухами, не зная наверняка, правильно ли мы поступаем.

      Один из таких мифов – что в городах отвратительный воздух, грязный и ядовитый. И вместо кислорода сплошные выхлопы от автомобилей. Мы воспринимаем это как данность, и не пытаемся исправить ситуацию, даже там, где способны это сделать, в собственном доме, или офисе. Даже те, у кого есть маленькие дети, или проблемы с аллергией, прикладывают свои усилия в слепую, не контролируя результатов.

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

      Но этого недостаточно. Нужен прибор которым вы могли-бы непосредственно померять качество воздуха в вашем доме. Что бы Вам было понятно и очевидно чем Вы дышите. Как температура на градуснике.
      Читать дальше →
    • Приглашаем на Lua in Moscow 2017 5 марта



        В первое воскресенье марта в офисе Mail.Ru Group пройдёт международная конференция Lua in Moscow 2017. В программе — выступления автора языка Роберто Иерусалимского и лучших зарубежных и отечественных экспертов по Lua и LuaJIT.

        Lua — уникальный язык программирования, который используется далеко не только в индустрии компьютерных игр, но и как встроенный язык расширений в таких инструментах web-программирования, как Redis, nginx, Tarantool, OpenResty. Lua также применяется для анализа больших данных, научных вычислений. Во многих роутерах, принтерах и других подобных устройствах есть Lua.

        В 2014 году мы провели восьмую ежегодную конференцию по языку программирования Lua Workshop, крупнейшую по числу участников за все годы. С тех пор мы не забывали про язык программирования Lua, проводили митапы и потоки на IT-конференциях. И вот, наконец, в этом году у вас снова есть шанс лично задать вопросы автору языка, обменяться опытом с лучшими программистами и, конечно, послушать доклады про передовой опыт применения Lua и LuaJIT.

        Часть докладов будет на английском языке.

        Даже если вы ещё не пишете на языке Lua, приходите, возможно, конференция откроет вам глаза на что-то новое и интересное!
        Читать дальше →
      • OpenResty: превращаем NGINX в полноценный сервер приложений

          Мы вновь публикуем расшифровку доклада с конференции HighLoad++ 2016, которая проходила в подмосковном Сколково 7—8 ноября прошлого года. Владимир Протасов рассказывает, как расширить функциональность NGINX с помощью OpenResty и Lua.

          Всем привет, меня зовут Владимир Протасов, я работаю в Parallels. Расскажу чуть-чуть о себе. Три четверти своей жизни я занимаюсь тем, что пишу код. Стал программистом до мозга костей в прямом смысле: я иногда во сне вижу код. Четверть жизни — промышленная разработка, написание кода, который идёт прямо в продакшн. Код, которым некоторые из вас пользуются, но не догадываются об этом.

          Чтобы вы понимали насколько всё было плохо. Когда я был маленьким джуниором, я пришёл, и мне выдали такие двухтерабайтные базы. Это сейчас тут у всех highload. Я ходил на конференции, спрашивал: «Ребят, расскажите, у вас big data, всё круто? Сколько у вас там базы?» Мне отвечали: «У нас 100 гигабайт!» Я говорил: «Круто, 100 гигабайт!» А про себя думал, как бы аккуратненько сохранить покерфейс. Думаешь, да, ребята крутые, а потом возвращаешься и ковыряешься с этими многотерабайтными базами. И это — будучи джуниором. Представляете себе, какой это удар?

          Я знаю больше 20 языков программирования. Это то, в чём мне пришлось разобраться в процессе работы. Тебе выдают код на Erlang, на C, на С++, на Lua, на Python, на Ruby, на чем-то еще, и тебе надо это всё пилить. В общем пришлось. Точное количество посчитать так и не удалось, но где-то на 20 число потерялось.
          Читать дальше →
        • Классические алгоритмы генерации лабиринтов. Часть 2: погружение в случайность

          • Tutorial


          Предисловие


          Первая часть

          Итак. Оценив отклик аудитории Хабра и разобравшись с делами, я принялся за написание второй статьи из цикла. Реакция публики оказалась значительно позитивнее моих предположений, а значит, мы продолжаем разговор на одну из любопытнейших тем процедурной генерации – создание лабиринтов.

          В этой части мы поговорим о том, что же такое случайная и псевдослучайная генерации, какие алгоритмы могут дать нам равновероятно ничем не похожие друг на друга лабиринты и в чем их минусы. Героями нашего сегодняшнего приключения станут алгоритм Уилсона и алгоритм Олдоса-Бродера для создания случайного остовного дерева (Uniform Spanning Tree). ОСТОРОЖНО ТРАФИК.
          Читать дальше →
        • Master-master репликация и масштабирование приложений между всеми IoT-устройствами и облаком


            На фото представлены устройства, использованные для прототипирования. Как видно, за основу взята процессор x86 (Intel Edison)

            Всем привет. В этой статье я хотел бы поделиться опытом решения одной интересной проблемы, связанной с синхронизацией данных между IoT-устройствами и облачным приложением. Сначала я расскажу об основной идее и целях моего проекта, а затем подробно опишу его техническую сторону и реализацию: речь пойдет об ОС Contiki, базах данных, протоколах и подобных аспектах. В заключение я кратко перечислю технологии, использованные при построении системы.
            Читать дальше →
          • Классические алгоритмы генерации лабиринтов. Часть 1: вступление

            • Tutorial


            Предисловие


            На написание статьи меня сподвигло практически полное отсутствие материалов на русском языке про алгоритмы генерации лабиринтов. На Хабре, из того, что вообще есть по теме, можно отметить две статьи: раз и два. Ценность и пользу из которых несет лишь вторая. В первой – просто перевод формального алгоритма и небольшое его пояснение. Что, конечно, неплохо, но очень скудно и не вызывает желания изучать тему дальше.

            Если моя статья Вам понравится, я продолжу писать о различных алгоритмах. Мы рассмотрим два самых примитивных и простых случая – генерация двоичного дерева и Сайдвиндер, который, по своей сути, просто чуть измененная версия двоичного дерева с одним заметным плюсом. ОСТОРОЖНО ТРАФИК.
            Читать дальше →
          • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

            Подробнее
            Реклама
          • Как я в одиночку сделал игру и выводы

            История разработки одной фанатской компьютерной игры Fallout: The X-Project и попытки сделать из неё «конфетку»


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

            Объясню почему: сама по себе игра разрабатывалась в период с 1998 по 2008 год, а наиболее активно — где-то с 2004 по 2007. Если честно, то я и в 2005-м понимал, что будущего у игры нет. Но хотел просто её закончить. Иначе зачем столько времени и усилий потратил на проект? К тому же, я был не один, и нельзя допускать, чтобы чужие усилия были потрачены впустую. Ответственность.

            Но не будем отходить в сторону. Кому будет полезна статья? В первую очередь таким же ребятам, каким я был сам, учась в институте. Мечтателям, желающим создать свою игру мечты.
            Читать дальше →
          • Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженном проекте

              Аникин Денис (@danikin, Mail.Ru)


              Денис Аникин

              Сегодня я расскажу, как сэкономить на базах данных огромные деньги, например, миллион долларов, как это сделали мы. Для начала вопрос: почему чаще используют именно базы данных, а не файлики?

              Базы данных – это хранилище, более структурированное, чем файл, и обладающее рядом некоторых фич, которых у файла нет.



              Там можно делать запросы, там есть транзакции, индексирование, таблицы, устойчивые, более-менее надежные хранилища. На самом деле, базы данных – это более удобно, чем файлы.
              Читать дальше →
            • Lua Meetup 2 сентября в офисе Mail.Ru Group



                2 сентября 2016 года в офисе Mail.Ru Group пройдёт очередной Lua Meetup — встреча, посвящённая языку программирования Lua и его экосистеме. Анонсированы два доклада (о них вы сможете подробнее прочитать под катом), но мне бы хотелось написать о другой причине, по которой на встречу нужно прийти. В мире очень много языков программирования, и новые языки появляются чуть ли не каждую неделю. Как писал классик, «все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему». Интересуясь исключительно мейнстримовыми языками программирования, мы лишаем себя ощущения контраста, и, как следствие, осознанности в выборе. Lua ни в какой мере не является «несчастливым» языком, но это однозначно язык, стоящий в стороне от мейнстрима. У Lua прекрасный синтаксис и очень легковесная реализация. Мало кто знает, что язык создан в 1993 году — настолько современно он смотрится. Что же мешает ему стать таким же популярным как Python или Go?
                Читать дальше →
              • World of Warcraft: одна строка кода, чтобы потерять все

                • Перевод


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