• Свой облачный хостинг за 5 минут. Часть 2: Service Discovery

      Cloud hosting

      Привет Хабр! В предыдущей статье я рассказал как построить свой облачный хостинг за 5 минут, используя Ansible, Docker и Docker Swarm. В этой части я расскажу о том, как сервисы, запущенные в облаке, находят друг друга, как происходит балансировка нагрузки между ними и обеспечивается их отказоустойчивость.

      Это вводная статья, здесь мы сосредоточимся на обзоре инструментов, которые будут решать проблему «обнаружения сервисов» в нашем облаке. В следующей части мы приступим к практике, поэтому я решил дать вам время поближе ознакомиться с ними.
      Читать дальше →
      • +20
      • 41k
      • 1
    • Новый тип ветрогенератора производит электричество без лопастей



        Все мы привыкли к стандартному виду ветрогенераторов и при слове ветрогенератор большинство сразу же представляет себе вращающиеся лопасти. В некоторых странах есть целые ветряные электростанции, которые состоят из многих десятков, если не сотен, «мельниц». У этого способа получения энергии есть достоинства, есть и недостатки. Главным недостатком обычно называют шум, а также обилие движущихся деталей. Оказывается, есть и другие, не менее эффективные, способы получения электричества посредством «ловли» ветра. К примеру, уже разработан эффективный ветрогенератор, у которого вообще нет движущихся лопастей.

        Читать дальше →
      • Обзор iconBIT Toucan W: Сможет ли это устройство на базе Android OS стать заменой домашнему компьютеру?



          Что можно делать за домашним компьютером, если не планируется работать? Интернет, фильмы, музыка, игры и иногда электронные книги – вот список наиболее востребованных функций от домашнего компьютера. Что вы представляете себе, когда слышите выражение «домашний компьютер»? Системный блок, к которому подключен монитор, клавиатура и мышка, или быть может ноутбук с большой диагональю экрана? А я теперь представляю небольшое устройство iconBIT Toucan W, к которому подключен монитор или телевизор, и беспроводную клавиатуру со встроенным гиро-датчиком. Причины, по которым я заинтересовался данным устройством, зачем оно вообще нужно и все остальные подробности под катом.
          Читать дальше →
        • Операция «посредник» или доставка товаров из США — проще, надежнее, дешевле

            Все мы знаем, что большинство гаджетов дешевле купить в США, чем у нас на родине, и особенно это относится к различным новинкам, цены на которые у нас просто взлетают к небесам! Так же всем известно, что самые «вкусные» предложения на eBay и в интернет магазинах США обычно имеют доставку US only и соответственно не доступны для нас. В этой статье я попытаюсь рассказать про еще один способ исправить это недоразумение. Конечно все более-менее опытные интернет-покупатели знают о посредниках, которые предоставляют услугу mail forwarding — тоесть пересылку посылок. Происходит это так — вы заказываете доставку товара на адрес в США, который вам выдал посредник, он получает посылку и пересылает ее вам, беря за это небольшую комиссию. Известные посредники это Shipito, Ebaytoday, Бандеролька и т.д. их достаточно много и все они предлагают набор услуг — пересылка, объединение нескольких посылок в одну, наоборот — разделение крупной посылки на несколько мелких и тд. Берут обычно фиксированную плату за каждую посылку + оплату за дополнительные услуги. Стоимость самой пересылки обычно рассчитывается по тарифам USPS и этой же службой отправляют посылку вам. Я же хочу рассказать про еще одну компанию — Meest.us, которая осуществляет пересылку посылок (среди различных других услуг) но в принципе ее работы есть некоторые интересные особенности.
            Читать дальше →
          • Почему на самом деле закрыли MegaUpload

            • Перевод
            В декабре 2011 года, за несколько недель до закрытия, Digital Music News сообщили о новинке, которую MegaUpload собирались запустить. Новинка, которая должна была потрясти музыкальную индустрию до основания.
            Читать дальше →
          • Страдания по CMF или Zend + Doctrine. Часть 1

              Попытки создания собственной системы начались довольно давно (думаю это всем знакомо). За последние пару лет была откатана схема на своей системе, но сама система благополучно почила в бозе. Если там были попытки как-то использовать Zend как компоненты, то в конце концов было принято решение не изобретать велосипед, а просто взять Zend за основу.
              Zend — 1.8/Doctrine — 1.1 на момент написания.

              Что было решено сохранить в системе из предыдущей версии
              1) Мультисайтовость
              2) Мультиязычность. Интернационализация производится за счет Zend и Doctrine.
              3) Модульность. При этом создать модуль можно в самой системе, задав yaml схему и получив стандартные методы для работы с помощью контроллеров и автогенерированых форм (Zend_Form).
              4) В создаваемых модулях по умолчанию присутствует поддержка i18n, versionable, timestampable.
              Каждый сайт имеет режимы отображения — backend, frontend,etc. Модель — одна для всех. Основой для моделей выбрана Doctrine. Показалась очень удобной.
              Читать дальше →
            • Была такая профессия: «Программист»

                Введение


                Не многие задумываются о том, кто такие программисты. Кажется в современном информационном обществе без них никуда. Но кто же они? Существует несчетное количество стереотипов, много слов написано о том, что это такие же люди, как и все остальные. Предлагаю посмотреть на этот вопрос в свете быстроразвивающейся отрасли информационных технологий.
                Читать дальше →
              • ZendX_JQuery + jqGrid

                  В продолжение темы о связке Zend/Doctrine.
                  Учитывая что потребуется решить вопрос о постраничном листинге данных из таблицы, было принято решение использовать jqGrid в качестве данного инструмента.
                  Причина выбора проста — на данный момент это один из наиболее мощных гридов, с хорошей документацией и тд.
                  Читать дальше →
                • Rounded corners HTML+CSS+jQuery

                    Закругленные уголки опять волнуют хабравчан, за последние 24 часа наблюдал 2 интересных топика с различными способа закругления этих самых уголков. Решил показать то, чем пользуюсь сам.
                    Сразу хочу оговориться, что я не претендую на уникальность данного способа, но додумался до него сам.
                    image
                    Читать дальше →
                  • jGrowl.1.2 — Введение

                      JGrowl — это плагин для всеми известного JQuery. Он позволяет выводить маленькие сообщения в пределах страницы браузера. Подобно тому как это работает в Growl Framework.

                      Для того что-бы начать работу с jGrowl, надо скачать этот самый jGrowl.
                      Скачать его можно с официального сайта разработчика stanlemon.net

                      На этом сайте можно посмотреть пример использования jGrowl.
                      LtbLinks.Ru
                      Там он используется для показа рекламы.

                      Читать дальше →
                    • Вебсервер на bash+inetd

                        Понадобилось мне отвечать на http запросы извне и неким образом их обрабатывать (подключались к терминалам экспресс-оплаты). Первое решение было на Nginx+FastCGI(PHP), что было несколько неоправданно тяжеловесно. И тут меня посетили старые воспоминания и благодаря ru_root в ЖЖ и Гуглю было сделано следующее:

                        [root@mysql-02 /etc]# cat services | grep freecashpayment
                        freecashpayment 433/tcp
                        freecashpayment 433/udp

                        Этим мы объяснили серверу, что на порту 433 у нас теперь живет сервис по фамилии freecashpayment

                        [root@mysql-02 /etc]# cat inetd.conf | grep freecashpayment
                        freecashpayment stream tcp nowait root /usr/home/firefly/freecashpayment.sh freecashpayment.sh

                        Так мы заставляем слушать порт 433 и отвечать на нем скриптом freecashpayment.sh

                        [root@mysql-02 /usr/home/firefly]# cat freecashpayment.sh
                        #!/usr/local/bin/bash
                        read request
                        while /usr/bin/true; do
                        read header
                        [ "$header" == $'\r' ] && break;
                        done
                        url="${request#GET }"
                        url="${url% HTTP/*}"
                        echo $url


                        В результате в скрипте в переменной $url у нас имееются все параметры, которые нам прислали в GET-запросе. echo же нам выведет все что надо в ответ.

                        Мы счааааасливы :)
                      • PHPInstaller. Архивация файлов в 1 php файл.

                          Здравствуйте.

                          Хочу вам представить свою небольшую разработку, которая облегчит установку скриптов на другой хостинг PHPInstaller.
                          Достаточно на локальном копьютере указать какие файлы нужны для упаковки, прописать название пакета, версию, автора и собрать пакет в 1 php файл!

                          Как работает?


                          Скрипт использует класс PclZip для паковки и распаковки архива.
                          В процессе работы скрипт создает подобие XML. Пакованный архив кодируется base64_encode, это увеличивает архив на 33%, но лишает пользователя обязательно заливать в бинарном виде, да и есть проблемы в содержании архива в XML.
                          По этому Base64… :)

                          После работы скрипта появляется 1 скрипт, который содержит в себе архив и оболочку для распаковки.

                          От слов к примеру


                          Покажу пример детальнее на сборке пакета phpMyAdmin.

                          Шаг1


                          Запустим скрипт и сразу же впишем название пакета, автора, а также укажем местоположение файлов.
                          (картинки кликабельны)



                          Читать дальше →
                        • ExtJs все чаще используется в создании CMS

                            В принципе уже сейчас можно сказать, что это новое
                            веяние в web-девелопменте. И не только потому, что красиво. Вкус у каждого разный
                            и может некоторым нравится
                            СMS типа Windows 3.1. С помощью ExtJs можно делать многооконные и интуитивные
                            системы управления сайтом, с которыми может работать и новичок. А на вид они
                            ничем не будут отличатся от привычного интерфейса Microsoft® Windows. Вот как
                            эта IB Pro CMS.

                            Поигратся панелью управления можно здесь.
                            Подробное описание CMS здесь

                             
                             
                          • Древовидная навигация с помощью Zend Framework

                              У больших проектов есть большая проблема — рано или поздно его содержимое превращается в хаос (в большей части это относится к бэкэнду, ибо на фронте обычно все в порядке). С ростом проекта усложняется его иерархическая структура, что затрудняет контроль или работу, поэтому стоит воспользоваться вполне очевидной вещью — вывод навигации в виде дерева. Довольно удобно, когда все содержимое вашего проекта отображается в иерархическом виде, вы так не думаете?
                              Читать дальше →
                            • Как из дешевого и простенького роутера сделать полнофункциональный сервер.

                                Введение


                                Первым роутером, который попал ко мне, был D-Link DI-524, у меня не было времени что либо выбирать, просто купил первый попавшийся недорогой роутер с wi-fi. Так как по натуре я люблю всё ломать, я почти сразу полез в интернет искать, как его можно усовершенствовать.
                                Но в то время почти ничего не нашел кроме советов просверлить в нем дырок. Да действительно он частенько перегревался и поэтому нестабильно работал, но на такой рискованный шаг я не пошел.
                                Благо я его почти сразу продал своему другу.
                                Когда мне снова понадобилось такое устройство, я уже знал какие функции мне действительно необходимы, для меня это было QoS. Я как обыденный покупатель начал смотреть на маркетинговые описания возможностей и фишек устройств. Для меня это тогда казалось единственно верным. Оказалось это не совсем так.
                                Я купил asus w520gu, я им в целом доволен (об этом позже), но считаю правильным поделиться опытом и информацией как я его усовершенствовал.
                                Кому интересно читаем дальше
                              • Как сделать подключенный к Стриму домашний комп веб-сервером

                                  Pre-Scriptum: насколько я знаю, некоторые из моих статей постились кем-то в Хабр, я же здесь всего второй день. Поэтому извиняюсь, если этот пост покажется вам «бояном». Чтобы меня не обвиняли в плагиате, приведу ссылку на оригинал моей статьи. Вообще же я собираюсь писать в своем хабра-блоге в основном на тему носимых компьютеров. Над одним из подобных устройств я работаю второй год. Собственно, приведенные ниже действия были направлены на создание «внешних мозгов» моему НК (носимому компу), чтобы тот мог передавать какие-то задачи на домашний комп или брать с него данные.

                                  Итак, начнем…
                                  Читать дальше →
                                  • +11
                                  • 1,2k
                                  • 9
                                • использование псевдостатических методов на примере Zend_Db_ActiveRecord

                                    Случилось так, что осваивая Zend Framework я решил написать компонент Zend_ActiveRecord по функциональности как можно более похожий на Rails. Подобное предложение возникало на комьюнити зенда, но давно не обновлялось, да при этом требовало php 5.3 из-за его __callStatic(). Меня этот факт не устроил, но необходимость вызова динамических методов класса модели как статичных по прежнему остается очень актуальной темой, я же попробовал разобраться с этим как раз на примере моей собственной ActiveRecord для зенда
                                    Читать дальше →
                                  • Несколько 3D-игр для Linux

                                      Товарищи из блога Online Games составили неплохой список 3D-игр под ОС Linux. Причем взятых не рандомно с потолка, а получивших какое-никакое, а признание от игровых журналов в виде обзоров и, в некоторых случаях, наград. Многие из игрушек приведенного ниже списка кроссплатформенные, но все из них полностью бесплатны и поставляются с инсталлером под Linux, так что тот же Wine для их запуска не понадобится.
                                      Игры с небольшим описанием и скриншотами...
                                    • Мой опыт восстановления зрения

                                      • Tutorial
                                         Этим летом я был на некоторое время предоставлен сам себе – всех своих я отправил подальше от дыма, а сам, недолго думая, решил немного подтянуть здоровье. Не просто записаться в тренажерный зал и накачать «квадратиков» для пляжа, а именно обследоваться у некоторых врачей, чтобы выработать для себя вектор дальнейших действий, дабы совсем не превратиться в «овоща».

                                      image

                                         Расскажу лишь про свой опыт восстановления зрения – именно оно больше всего подвержено риску у любого «компьютерного» человека.
                                      Читать дальше →
                                    • Распределённое серверное решение для ММО проектов (результаты тестирования транспортной части)

                                        По просьбам читателей привожу описание тестирования транспортной части серверного решения на облачной технологии, которое я описывал в прошлой статье. Вначале хочу немного описать, что это такое и для чего его тестировать. Начав свои разработки с построения серверных решений для высоконагруженных ММО проектов в реальном времени, постепенно пришёл к выводу, что для поддержания максимально большого количества клиентов необходимо использовать полностью распределённую систему. Ниже приведу тезисы, на основании которых, разрабатываем сейчас серверные решения.
                                         
                                        1. Полное разделение транспортной части проекта от логической части и данных
                                        2. Максимальная модульность для создания оптимального решения под конкретный проект
                                        3. Унификация сервисов решения (любую команду может выполнить любой из предназначенных для этого сервисов)
                                        4. Асинхронное выполнение задач
                                        5. SQL предназначена только для постоянного хранилища
                                        6. Использование NoSQL для хранения оперативных данных
                                        7. Использование системы пулов (многократно используемых групп объектов)
                                        8. Нет привязки данных к сервисам обработки

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