• Поднимаем Owncloud с нуля с динамическим IP и Let's Encrypt. Тысяча слонов!*

    • Tutorial


    Давно хотел написать целостный туториал по поднятию Owncloud в условиях домашнего сервера или небольшой компании до 500 пользователей. Owncloud — это прекрасный open-source проект, который позволяет на собственной инфраструктуре поднять свой вариант сервера синхронизации. По возможностям очень похож на Dropbox, а в чем-то его и превосходит. Огромный плюс — отсутствие ограничений по объемам хранения, полный контроль над сервером. Минусы тоже очевидны: вам самим придется следить за всем этим безобразием и беспокоиться о надежности сервера, валяющегося на антресолях или в шкафу.

    Совсем недавно мне подвернулась задача по развертыванию Owncloud в домашне-боевых условиях. Я честно отработал свои два литра кошерного русского имперского стаута и решил поделиться своим опытом, собрав все воедино. Итак, сегодня мы рассмотрим:

    1. Развертывание актуального LEMP-stack
    2. HTTPS. Let's Encrypt для Nginx с автоматическим обновлением сертификата
    3. Конфигурирование Nginx для Owncloud
    4. Кэширование php-apcu
    5. Подключение внешнего основного хранилища по NFS
    Читать дальше →
  • 7 сервисов для мониторинга сайтов

      Здравствуйте! Часто перебои в работе сайта могут привести к потере клиентов, репутации, минусам в карму и прочим неприятностям. После покупки виртуального или выделенного сервера важно вовремя получать информацию о недоступности, поэтому сегодня я хочу рассказать о нескольких сервисах мониторинга сайтов/серверов и провести их сравнение.

      image

      На обозрение представлены следующие сервисы:
      1. host-tracker.com
      2. monitis.com
      3. monitorus.ru
      4. pingup.ru
      5. site24x7.com
      6. uptimerobot.com
      7. webopulsar.ru

      Читать дальше →
    • Еще 7 сервисов для мониторинга сайтов

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

        image
        Ещё семь новых сервисов мониторинга в этой статье
        Читать дальше →
      • А если найду? Перелет еще дешевле чем вы уже нашли

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

          Всем известно, что авиакомпании берут свои цены с потолка. Маркетологи придумывают хитроумные непрозрачные схемы отъёма денег у пассажиров пропорционально финансовым возможностям последних. Так, чтобы богатые платили за билеты побольше, а бедные — сколько смогут.

          Читать дальше →
        • Адаптивные email-письма и media queries: Проблемы и решения



            В нашем блоге мы неоднократно затрагивали тему создания адаптивных почтовых рассылок. В наши дни почти половина всех писем просматривается со смартфонов и планшетов, а значит, необходимо позаботиться о том, чтобы письмо хорошо выглядело на устройствах с разным форм-фактором. Именно для этого в вёрстке и начали использовать медиазапросов (media queries). Однако существует целый ряд препятствий для широкого применения технологии. Сегодня мы по-дробнее взглянем на проблемы при использовании media queries и их возможные решения.
            Читать дальше →
            • +16
            • 19k
            • 1
          • HackerSIM: небольшое разъяснение (комментарий)

            Эта минипубликация — развёрнутый комментарий на публикацию о HackerSIM.

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

            Читать дальше →
          • Генерируем PDF-файлы в веб-проекте: программа wkhtmltopdf

            При работе над веб-проектом иногда возникает необходимость генерировать PDF-файлы с большими таблицами: прайс-листы на тысячи позиций. Нашлись разные библиотеки для генерации PDF-файла из PHP-скрипта:

            • FPDF
            • MPDF — основанная на FPDF библиотека, позволяющая генерировать pdf-файл из любого html-кода
            • DOMPDF
            • TCPDF

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

            Дальнейший поиск помог найти программу wkhtmltopdf. Сайт программы: http://wkhtmltopdf.org.
            Читать дальше →
          • Верстка писем: Что такое «кинетический email»

            • Translation
            Примечание переводчика: В нашем блоге мы уже неоднократно рассказывали о создании интерактивных email-рассылок с помощью CSS и HTML. Но рассылки могут быть не только интерактивными, но и кинетическими — о том, что это такое, читайте в адаптированном переводе заметки email-дизайнера Джастина Ку.



            Хотя HTML-письма существуют почти так же долго, как и интернет, к электронной почте часто относятся как к нелюбимому дитю Сети. Кажется, что противоречивая и устаревшая поддержка элементов HTML в почтовых клиентах отражает следующий настрой – «вполне достаточно того, что отправители могут разместить в письме текст и несколько изображений». Разве нужно что-то еще? По-видимому, электронная почта – уже не среда для инноваций.
            Читать дальше →
            • +13
            • 15.3k
            • 2
          • NGINX — История перерождения под Windows

              Раз уж тут у нас «неделя» nginx, например тут или тут, то попробую и я внести свою, так сказать, лепту. Речь пойдет про nginx 4 windows, а именно про более-менее официальную сборку для этой пропритарной, некоторыми не очень любимой платформы.

              Почему Windows. Все просто, в корпоративном секторе Windows на сервере, да и на рабочих станциях — нередко обязательная программа. И от этих требований к платформе, например в ультимативной форме озвученных клиентом, никуда не денешься.
              И раз уж имеем Windows, но не хочется мучиться с IIS, apache и иже с ними, если хочется использовать любимые инструменты, а nginx однозначно к ним относится, то приходится иногда мириться даже с некоторыми ограничениями на этой платформе. Вернее приходилось…

              Хотя нужно заметить, что даже с этими ограничениями, nginx даст фору практически любому веб-серверу под windows по многим факторам, в том числе по стабильности, потреблению памяти, а главное производительности.

              Спешу сразу поделится хорошей новостью — больше ограничений, критичных к высокой производительности, при использовании nginx под windows практически не существует, и последнее из критичных, с высокой долей вероятности, тоже скоро отпадет. Но по порядку…

              Здесь описаны известные проблемы nginx 4 windows, а именно:

              • Рабочий процесс может обслуживать не более 1024 одновременных соединений.
              • Кэш и другие модули, требующие поддержки разделяемой памяти, не работают под Windows Vista и более поздними версиями в связи с тем, что на этих версиях Windows включена рандомизация адресного пространства.
              • Хоть и возможен запуск нескольких рабочих процессов, только один из них реально работает.

              Я немного изменил порядок, т.к. именно в такой последовательности я разбирался с этими ограничениями, так сказать отсортировано «исторически».
              Читать дальше →
            • Git и Microsoft SQL Server

              • Tutorial
              Привет всем!

              В предыдущем посте было рассказано о трудностях, которые испытывают разработчики при написании SQL-кода (причём актуальны эти проблемы не только для MS SQL Server). Здесь же рассказ о том, как использовать Git для версионного контроля кода SQL Server с помощью SQLFuse. Принцип тот же, что и с обычными файлами, но есть некоторые особенности.



              Читать дальше →
            • Новые Яндекс.Карты, которые каждый теперь может поправить сам

                Сегодня произошло одно из самых значительных обновлений Яндекс.Карт за всю историю. Во-первых, Народная карта объединяется с основной, а значит каждый сможет сам быстро и легко добавить на карту свой дом или поправить неточность. Результаты изменений будут доступны всем — на Яндекс.Картах, а также в мобильных Картах и Навигаторе. И во-вторых, Яндекс.Карты получили новый интерфейс, о бета-версии которого мы когда-то уже рассказывали на Хабре на ранних этапах работы над ним (большое спасибо за все замечания и советы, которые тогда были высказаны).



                Под катом я расскажу о том, как мы работали над интерфейсом, как решили задачу быстрой загрузки объектов в браузере, придумывали и реализовывали новые инструменты, которые должны защищать правки пользователей, как сделали так, что новая жизнь вообще стала возможной, и почему карты теперь будут обновляться быстрее, чем когда бы то ни было и при этом будут точными, и многое другое.
                Читать дальше →
              • oEmbed. Делаешь веб-сервис? — Делай и oEmbed



                  Конечно вы видели этот эффект, когда вставляешь в фейсбуке или вконтакте ссылку, и в посте тут же начинает подгружаться какой-то контент с сайта, на который ведет ссылка. И я видел, но даже не представлял, насколько это легко можно сделать с oEmbed'ом.

                  oEmbed.com — впринципе, на этом можно было бы и закончить читать тем, кто хочет провести самостоятельное мини-исследование.
                  Но вот мой рассказ, как этим пользоваться и много ссылок
                • Сервис для определения имени абонента по телефонному номеру

                    За всё время пользования телефонией (городской или сотовой, не важно) меня удручала одна вещь — отсутствие возможности узнать имя абонента при его отсутствии в вашей телефонной книге. Даже если у вас подключена услуга АОН то определяется только телефонный номер, но не имя.

                    Для решения этой проблемы я сделал proof-of-concept сервиса, который ставит в соответствие телефонному номеру имя абонента. Таким образом вы сможете понять кто вам звонит и дальше принять решение — снимать трубку или нет.

                    Читать дальше →
                  • Делаем Twitter Cards с галереями и котиками


                      Речь сегодня пойдет о встраивании расширенного контента в твиты, содержащие ссылку на ваш сайт. Многие наверняка встречались с подобным в Facebook'е или ВК: вы расшариваете в соцсеть некую ссылку, а помимо нее туда автоматически подгружается, например, заголовок, описание и изображение. Вот только поддержка технологии для VK и FB сейчас не является редкостью, а Twitter Cards встречаются не так часто, особенно в рунете.
                      Читать дальше →
                    • Total Commander 8.50 Final

                        Вчера, после необычно долгого периода открытого тестирования, зарелизился Total Commander 8.50. Улучшений и исправлений, как обычно, многие сотни, вот наиболее значимые из них (заранее оговорю, что всё настраивается или отключается при невостребованности):

                        • Фоновый поиск (команда cm_SearchStandalone или Alt+Shift+F7). Даже не верится — об этом просили, наверное, все двадцать лет существования программы! Более того: инструмент поиска в TC можно вызывать отдельно от самого TC, запуская программу с ключом /S=F.
                        • Редактирование прямо на FTP (работает и для FS-плагинов). Вернее, именно так это выглядит для пользователя, на самом же деле TC будет автоматически синхронизировать локальную копию изменяемого файла при каждом его обновлении.
                        Ещё под катом
                      • Обзор сервисов отсылки мобильных push-уведомлений

                          Недавно заметил за собой, что получать уведомления из разных программ на email для меня стало неудобным. Уже давно устоялся термин “email overload” и компании вроде Google с этим стараются работать (вводят папки, фильтры, а теперь и вкладки в Gmail).

                          Мне понравилась концепция центра уведомлений, которая успешно показала себя на ОС Android, появилась в iOS6 и запланирована к выпуску в Windows Phone. Это одна лента уведомлений для всех сервисов, удобный просмотр, работа с уведомлениями, простая очистка списка. На своем опыте убедился, что это в разы удобнее, чем привычные email уведомления, которые превращают inbox в кашу.

                          Поскольку наша команда работает одновременно над несколькими проектами (где-то летят “билды”, где-то пушатся изменения и так далее), мне показалась интересной идея подключить свои проекты к такому варианту уведомлений о событиях, происходящих в системе. В идеале я хотел иметь возможность рассылать уведомления разным членам команды, а при необходимости и на всю команду целиком. Только мне хотелось получать их именно от ПО, с которым я работаю — начиная от инструментов Continuous Integration и автоматического тестирования, и заканчивая непосредственно логами ошибок, статистикой и критикалами из проектов.
                          Читать дальше →
                          • +16
                          • 27.5k
                          • 7
                        • Создание мультизагрузочного USB HDD или флешки



                          Загрузочный USB Flash или HDD накопитель удобен тем, что можно отказаться от использования CD/DVD для установки ОС и использования диагностических программ типа Memtest, MHDD, Acronis TI.

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

                          Существует множество решений для флешек (например, http://eee-pc.ru/wiki/софт:usb_multiboot), но, как правило, они не работают с USB HDD. На хабре я нашел только статью об установке Win7 с USB HDD, но год назад попытки воспроизвести это не увенчались успехом. Для установки Windows 7 с флешки существует MS Win7 DVD Tool, но он опять же не работает с HDD. Поэтому давайте создадим свой мультизагрузочный USB HDD с помощью GRUB4DOS.

                          Нам понадобится:
                          • USB HDD (все описанное должно работать и для флешек).
                          • ОС Windows (естественно можно аналогично сделать это и из ОС на базе Linux, но у меня сейчас нет возможности проверить работоспособность и наличие «подводных камней»).
                          • Материнская плата (BIOS) с поддержкой загрузки с USB накопителей. Если загрузка с USB не поддерживается, можно использовать Plop, об этом ниже.


                          Читать дальше →
                        • Прямая работа с SMS-сервисом МТС: история одной интеграции

                            Многие считают, что SMS — одна из причин того, что Твиттер так хорошо «выстрелил» на Западе. В США и ряде стран Европы твиты можно как публиковать, так и получать через SMS, при этом цена исходящего твита равна цене обыкновенной SMS, а входящие сообщения — бесплатны. Для пользователей без смартфонов (коих большинство) это значительно снижает порог на вход.

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

                              Вобщем поставили передо мной на работе задачу организовать прием платежей в наш проект через Paypal. От меня требовалось дать все необходимые данные для настройки аккаунта (сам аккаунт настраивался другим человеком), ну и, собственно, написать скрипт, который и будет принимать данные от paypal-а и начислять деньги юзерам.

                              Ничего толкового по этой теме на хабре я не нашел. Пришлось разбираться со всем самому. Ниже – результаты этих разбирательств:)
                              Читать дальше →
                            • Создание event c SMS уведомлением в Google Calendar с использованием XMLHTTP и запуск скрипта из Outlook

                                Создание event:


                                1. Для начала необходимо настроить ваш Google Calendar — вот здесь описано как это сделать

                                2. Сохранить VBScript код в vbs-файле (например, google_sms.vbs).

                                3. Строка запуска:
                                cscript.exe google_sms.vbs «Google account name» «Google account pass» «Path to text file»

                                Интеграция в Outlook:


                                1. Открыть «Tools»-«Macro»-«Visual Basic Editor», выбрать ThisOutlookSession в проекте VbaProject.OTM. Вставить SendNotificationSMS функцию. Необходимо указать: User, Password, Путь к скрипту.

                                Желательно «подписать» скрипт (в Visual Basic Editor «Tools»-«Digital Signature...»)

                                2. Создать правило «Tools»-«Rules and Alerts…» и выбрать «run a script» действие. Выбрать функцию SendNotificationSMS.

                                3.Outlook 2007. Открыть «Tools»-«Macro»-«Security…». Установить “Warning for all macros”. Перезапустить Outlook. Если появится окошко с «Enable Disable macros» то сделать Enable (обычно появляется при первом срабатывании правила или открытии «Tools»-«Macro»-«Visual Basic Editor»)

                                4. Проверить что все работает – отправив например самому себе e-mail, правило на которое должно вызывать .

                                код